/* files (views/files.js, views/analyses.js): Dosyalar and its Analizler tab. Small additions to panel.css; colours only
   via the theme variables, so dark and light both work. Prefix fl-, an- for what only the analyses have. */

/* ---------- toolbar: every filter on ONE visible row at 1440 px (v3 "Lists"): the switch with its counts, the search
   (it takes what is left), the select(s), the dates; "Temizle" while a filter is set goes at the end of the row, or
   under it when the row is full. Nothing hides behind a scroll on a wide screen: a narrower one wraps the row, a phone
   scrolls the switch inside its own box (it is the only item wider than the screen). Under the row the chips (P.chips)
   of the filters that arrive by link only. ---------- */
.fl-panel .filters{margin-bottom:0}
.fl-panel .fl-filters{gap:6px}
.fl-seg{flex:0 1 auto;min-width:0;max-width:100%;overflow-x:auto;scrollbar-width:none}
.fl-seg::-webkit-scrollbar{display:none}
.fl-seg .seg{flex:none;min-height:36px}
.fl-seg .seg button{white-space:nowrap}
.fl-panel .fl-seg .seg button{padding-left:8px;padding-right:8px}
.fl-q{position:relative;display:flex;flex:1 1 100px;min-width:100px}
.fl-q span:where(.ic){position:absolute;left:10px;top:50%;width:15px;height:15px;margin-top:-7.5px;color:var(--faint);pointer-events:none}
.filters .fl-q .input{width:100%;padding-left:32px}
.fl-panel .fl-filters > .select{flex:none;width:auto;padding-left:10px;padding-right:26px;background-position:calc(100% - 13px) 50%,calc(100% - 8px) 50%}
.fl-dates{display:flex;align-items:center;gap:4px;flex:none}
.filters .fl-dates .input.fl-date{width:112px;padding-left:8px;padding-right:2px}
.fl-panel .fl-filters > .fl-clear{flex:none}
.fl-chips{display:flex;margin-top:-4px}
.fl-priv{font-size:12.5px}
.fl-priv span:where(.ic){color:var(--warn)}
.fl-hint{display:flex;gap:7px;align-items:center;margin:0;font-size:12px}
.fl-hint span:where(.ic){width:13px;height:13px;flex:none}
.fl-small{font-size:12.5px;margin:0}
.fl-center{display:flex;justify-content:center;padding:0 16px 22px}
.fl-busy{opacity:.55;pointer-events:none;transition:opacity .15s}
.fl-list{overflow:hidden}

/* ---------- the one-line lists: Dosyalar, Analizler and the analyses summary (v3 "Lists", decision C: compact for every
   role, the owner too; a value cut with "…" is whole in its title and in the side panel). table-layout: fixed, so a long
   value (a 255-character HWID, a file name without spaces) never widens its column: the time, the state / result /
   size, the counts and the ⋯ have their width, the first cell a third, the rest share what is left. Every cell one
   line of 18 px, the first cell's grey line 14 px: a row is at most 44 px. ---------- */
.fl-list .tbl,.an-sum .tbl{table-layout:fixed}
.fl-list .tbl th,.fl-list .tbl td,.an-sum .tbl th,.an-sum .tbl td{padding-left:14px;padding-right:14px}
.fl-list .tbl td,.an-sum .tbl td{padding-top:5px;padding-bottom:5px;line-height:18px;white-space:nowrap}
.fl-list .tbl th.fl-c-time,.fl-list .tbl th.an-c-time,.an-sum .tbl th.an-c-time{width:124px}
.fl-list .tbl th.fl-c-file,.fl-list .tbl th.an-c-file,.an-sum .tbl th.an-c-pc{width:33%}
.fl-list .tbl th.fl-c-files{width:190px}
.fl-list .tbl th.an-c-res{width:124px}
.fl-list .tbl th.an-c-size{width:190px}
.an-sum .tbl th.num{width:104px}
.an-sum .tbl th.an-n-only{width:136px}
.fl-list .tbl th.fl-c-more{width:56px}
.fl-list .tbl td.fl-c-more{padding-left:6px;padding-right:12px;text-align:right}
.fl-fcell{min-width:0}
.fl-list .tbl td a.n{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-weight:600;text-decoration:none}
.fl-list .tbl td a.n.faint{color:var(--muted)}
@media (hover:hover){.fl-list .tbl td a.n:hover{color:var(--text);text-decoration:underline;text-underline-offset:2px}}
.fl-list .tbl td .sub,.an-sum .tbl td .sub{margin-top:0;font-size:12px;line-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbl td .sub.fl-monly{display:none}
.fl-one,.fl-list .tbl td .p-time,.an-sum .tbl td .p-time{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fl-list .tbl td .st{max-width:100%;line-height:18px}
.an-size .an-gone{color:var(--bad)}
.fl-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.fl-pager{margin-left:auto;display:flex;gap:8px;align-items:center}
.fl-pager .mono{font-size:12px}
/* the side panel's chips and tags (opsNode, typeTag, statusBadge) */
.fl-type{font-weight:600;white-space:nowrap}
.fl-type.t-tune_pcr21,.fl-type.t-tune_online,.fl-type.t-tune_local{background:var(--acc-bg);color:var(--accent-text)}
.fl-type.t-clone,.fl-type.t-edit{background:var(--info-bg);color:var(--info)}
.fl-ops{display:flex;flex-wrap:wrap;gap:5px}
.fl-op{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:999px;border:1px solid var(--line2);background:var(--panel2);font-size:11px;font-weight:600;color:var(--muted);white-space:nowrap}
.fl-op.dtc{color:var(--accent-text);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}
.fl-op.more{color:var(--faint)}
.fl-op.skip{text-decoration:line-through;color:var(--faint)}
a.fl-co,a.fl-key{text-decoration:none}
.fl-co{color:var(--text);font-weight:600}
a.fl-key{color:var(--text)}
@media (hover:hover){a.fl-co:hover,a.fl-key:hover{text-decoration:underline}}
.fl-list .tbl td .fl-co,.an-sum .tbl td .fl-co{font-weight:400}
.fl-name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}
.fl-st.purged{border-color:color-mix(in srgb,var(--bad) 45%,transparent);color:var(--bad)}
.fl-st.deleted{border-color:color-mix(in srgb,var(--warn) 45%,transparent);color:var(--warn)}
.fl-when{color:var(--muted);font-size:12.5px;white-space:nowrap}

/* ---------- detail drawer ---------- */
.fl-d{display:flex;flex-direction:column;gap:16px}
.fl-d h4{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:600;margin:0 0 9px}
.fl-d section{border-top:1px solid var(--line);padding-top:14px}
.fl-dh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fl-break{overflow-wrap:anywhere;word-break:break-all}
.fl-dfiles{gap:10px}
.fl-pair{display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);gap:8px;align-items:stretch}
.fl-arrow{display:grid;place-items:center;color:var(--faint)}
.fl-arrow span:where(.ic){width:16px;height:16px}
.fl-fcard{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);min-width:0}
.fl-fcard.none{background:none;border-style:dashed}
.fl-frole{font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--muted)}
.fl-fname{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}
.fl-fsize{font-size:11.5px}
.fl-fcard .fl-dl{align-self:flex-start;margin-top:4px}
.fl-fcard .fl-dl span:where(.ic){width:14px;height:14px}
.fl-lock{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;margin-top:4px}
.fl-lock span:where(.ic){width:13px;height:13px}
.fl-rep .fl-fcard{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 12px}
.fl-rep .fl-fcard .fl-fname{flex:1 1 160px}
.fl-rep .fl-fcard .fl-dl,.fl-rep .fl-lock{margin-top:0}
.fl-opsbox{gap:12px}
.fl-report{gap:8px;padding:12px;border:1px solid var(--line);border-radius:10px}
.fl-rh{font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.fl-dtcs{gap:6px}
.fl-acts{gap:3px}
.fl-log summary{cursor:pointer;font-size:12.5px;color:var(--muted)}
.fl-log ul{margin:8px 0 0;padding-left:18px;font-size:12px;color:var(--muted);font-family:var(--mono)}
.fl-mach{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}
.fl-links{gap:6px}
.fl-fb{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.fl-fb-i{display:flex;flex-direction:column;gap:4px;padding:9px 12px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.fl-fb-i:last-child{border-bottom:0}
@media (hover:hover){.fl-fb-i:hover{background:var(--panel2)}}
.fl-fb-m{font-size:13px;overflow-wrap:anywhere}
.fl-r-ok{background:var(--ok-bg);color:var(--ok)}
.fl-r-partial{background:var(--warn-bg);color:var(--warn)}
.fl-r-fail{background:var(--bad-bg);color:var(--bad)}
.fl-r-none{background:var(--panel3);color:var(--muted)}
.fl-dfoot{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;width:100%}

/* ---------- licence / customer tab ---------- */
.fl-scope-h{gap:8px}
.fl-scope .fl-foot{padding:0 2px}
.fl-scope-sw{align-self:flex-start}

/* ---------- Analizler (views/analyses.js; prefix an-) ---------- */
/* An analysed file's state is never mistaken for one of History's types (owner, 2026-10-05): its words sit next to its
   name. Live 1 (the owner 2026-10-26: the violet / teal pills broke the one-accent rule): a status dot and muted text
   (panel.css .st), no pill and no colour of its own: "Yalnızca analiz" a ring, "Analiz + işlem" a filled dot; a
   flagged PC's state is amber (an attention state: dot and text). Both read 4.5:1 or more in dark and light. */
.an-st{flex:none;gap:6px;font-size:12px;color:var(--muted)}
.an-st i{width:7px;height:7px}
.an-st.only i{background:transparent;box-shadow:inset 0 0 0 1.5px var(--muted)}
.an-st.both i{background:var(--muted)}
.an-st.an-flag{color:var(--warn)}
.an-st.an-flag i{background:var(--warn);box-shadow:none}
.an-name{display:flex;align-items:center;gap:4px 7px;flex-wrap:wrap;min-width:0}
.an-name .fl-name{min-width:0;max-width:100%}
/* in a list the name and its badge share one line: the name is cut with "…" (whole in its title), the badge never */
.fl-list .tbl td .an-name,.an-sum .tbl td .an-name{flex-wrap:nowrap}
.an-sum .tbl td .an-name b{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.fl-list .tbl td .an-st,.an-sum .tbl td .an-st{display:inline-flex;align-items:center;height:18px;font-size:12px;line-height:18px}
.drawer-h .muted .an-name{margin-top:3px}
.an-op{font-weight:600;white-space:nowrap}
.an-op.o-process,.an-op.o-dtcoff,.an-op.o-solution{background:var(--acc-bg);color:var(--accent-text)}
.an-res.r-ok{background:var(--ok-bg);color:var(--ok)}
.an-res.r-refused{background:var(--warn-bg);color:var(--warn)}
.an-res.r-error{background:var(--bad-bg);color:var(--bad)}
.tbl td .sub.an-gone,.an-gone{color:var(--bad)}
.an-sum-sub{margin:0;padding:10px 16px;font-size:12.5px;border-bottom:1px solid var(--line)}
.an-sum .card-h{flex-wrap:wrap}
.an-sum-seg .seg button{padding:5px 10px}
.an-sum-more{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap;padding:8px 10px;border-top:1px solid var(--line);font-size:12px}
.an-sum-more .btn span:where(.ic){width:14px;height:14px}
.an-sum .empty{padding:22px 16px}
.an-sum .tbl tr.an-flagged td:first-child{box-shadow:inset 3px 0 0 var(--warn)}
.an-pc{display:flex;flex-direction:column;min-width:0}
.an-zero{color:var(--bad);font-weight:600}
.an-file{gap:10px}
.an-file .an-dl{align-self:flex-start}
.an-file .an-dl span:where(.ic){width:14px;height:14px}
.an-sha{font-size:11.5px}
.an-same{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.an-same-i{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:8px 12px;border:0;border-bottom:1px solid var(--line);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.an-same-i:last-child{border-bottom:0}
@media (hover:hover){.an-same-i:hover{background:var(--panel2)}}
.an-same-i .fl-when{margin-left:auto}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .tbl td .sub.fl-monly{display:block}
  .fl-list .tbl th,.fl-list .tbl td,.an-sum .tbl th,.an-sum .tbl td{padding-left:12px;padding-right:12px}
  /* the columns left (hide-m): the first cell, the files' cell / the size, the ⋯; the summary's PC and its two counts */
  .fl-list .tbl th.fl-c-file,.fl-list .tbl th.an-c-file,.an-sum .tbl th.an-c-pc{width:auto}
  .fl-list .tbl th.fl-c-files,.fl-list .tbl th.an-c-size{width:34%}
  .an-sum .tbl th.num,.an-sum .tbl th.an-n-only{width:25%}
  .fl-list .tbl th.fl-c-more{width:48px}
}
@media (max-width:560px){
  .fl-q{flex:1 1 100%;min-width:0}
  .fl-panel .filters > .select{flex:1 1 100%;width:100%}
  .fl-dates{flex:1 1 100%}
  .filters .fl-dates .input.fl-date{flex:1 1 0;width:auto;min-width:0}
  .fl-pair{grid-template-columns:minmax(0,1fr)}
  .fl-arrow{transform:rotate(90deg);height:16px}
  .fl-pager{margin-left:0;width:100%;justify-content:space-between}
  .fl-scope-h .sp{display:none}
  .fl-list .tbl td,.fl-list .tbl th{padding-left:10px;padding-right:10px}
  .fl-list .tbl td .an-name{flex-wrap:wrap;row-gap:2px}
  .an-panel .filters > .select{flex:1 1 calc(50% - 4px);width:auto;min-width:0}
  .an-sum .tbl td,.an-sum .tbl th{padding-left:8px;padding-right:8px}
  .an-sum .tbl th{white-space:normal;letter-spacing:.04em}
  .an-st,.fl-list .tbl td .an-st,.an-sum .tbl td .an-st{white-space:normal;height:auto;min-height:18px;line-height:1.25}
  .an-sum .tbl td .an-name{flex-wrap:wrap;row-gap:2px}
  .an-sum-sub{padding:10px 12px}
  .an-same-i .fl-when{margin-left:0}
}
