/* ============================================================
   SQVD - DCF WORKSPACE
   A DCF_UI_vazlat_2026-09-11.html szerint, az elo app szinvilagaban.

   Minden osztaly "sqvd-dcf-" elotagot kap: a vazlat rovid nevei (.card,
   .step, .chip) utkoznenek az app tobbi stilusaval.

   A szinek az app.css valtozoibol jonnek (--bg, --surface, --border,
   --text, --muted, --accent, --green, --red, --font) - nincs masodik
   szinpaletta. A DCF-specifikus szinek (forras-chipek, szakasz-savok,
   ROIC/WACC sorozatpar) itt, EGY helyen allnak.

   MERET (spec 16.3): kb. 1100 px alatt a keret vizszintesen gorget,
   semmi nem nyomodik ossze es semmi nem tunik el.
   ============================================================ */

.sqvd-dcf{
  --dcf-inset:#0f141b;
  --dcf-raised:#1c2330;
  --dcf-line-soft:#232a33;
  --dcf-ink-2:#b1bac4;
  --dcf-faint:#6e7681;
  --dcf-active:#f2cc60;            /* az app "kivalasztott" sargaja = USER */
  --dcf-roic:#3f8ee0;              /* szinvak-ellenorzott par sotet alapon */
  --dcf-wacc:#b88a22;
  --dcf-hist:#8b949e;
  --dcf-est:#a371f7;
  --dcf-auto:#58a6ff;
  --dcf-user:#f2cc60;
  --dcf-gap:#f85149;               /* potolt / eldobott konszenzus: keret + halvany hatter */
  --dcf-capped:#2bb5a8;            /* konszenzusra korlatozott ev (2026-09-15) */
  --dcf-band-s1:rgba(63,142,224,.09);
  --dcf-band-s2:rgba(184,138,34,.08);
  --dcf-band-tv:rgba(163,113,247,.10);
  --dcf-sans:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;

  font-family:var(--font);
  font-size:12px;
  line-height:1.45;
  color:var(--text);
  background:var(--bg);
  padding:10px 12px 16px;
  overflow:auto;
  height:100%;
}

.sqvd-dcf *{ box-sizing:border-box; }
.sqvd-dcf .num{ font-variant-numeric:tabular-nums; }

/* ---------- allapotok ---------- */

.sqvd-dcf-loading,
.sqvd-dcf-error,
.sqvd-dcf-gate{
  padding:18px;
  font-family:var(--dcf-sans);
  font-size:13px;
  color:var(--muted);
}
.sqvd-dcf-error{ color:var(--red); }
.sqvd-dcf-gate{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:6px;
  color:var(--text);
}
.sqvd-dcf-gate h3{
  margin:0 0 8px;
  font-size:13px;
  font-family:var(--font);
}
.sqvd-dcf-gate ul{ margin:8px 0 0; padding-left:18px; }
.sqvd-dcf-gate li{ margin:3px 0; }
.sqvd-dcf-gate .sqvd-dcf-gate-why{ color:var(--muted); }

.sqvd-dcf-table th.is-tv,
.sqvd-dcf-table td.is-tv{
  border-left:2px solid var(--dcf-est);
  background:var(--dcf-band-tv);
}

/* ---------- elrendezes ---------- */

.sqvd-dcf-main{
  display:grid;
  grid-template-columns:300px minmax(0,1fr);
  gap:14px;
  min-width:1040px;              /* ez alatt a panel sajat gorgetosavot kap */
}
.sqvd-dcf-main.is-collapsed{ grid-template-columns:40px minmax(0,1fr); }

.sqvd-dcf-rail{ display:flex; flex-direction:column; gap:10px; min-width:0; }
.sqvd-dcf-work{ display:flex; flex-direction:column; gap:14px; min-width:0; }
.sqvd-dcf-sectionlabel{
  color:var(--muted);
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:0 2px;
}
.sqvd-dcf-main.is-collapsed .sqvd-dcf-rail .sqvd-dcf-sectionlabel{ display:none; }

.sqvd-dcf-railtoggle{
  background:var(--dcf-inset);
  border:1px solid var(--border);
  color:var(--dcf-ink-2);
  border-radius:3px;
  padding:3px 8px;
  cursor:pointer;
  align-self:flex-start;
  font-family:var(--font);
  font-size:11px;
}
.sqvd-dcf-main.is-collapsed .sqvd-dcf-step > summary{ grid-template-columns:22px; padding:8px; }
.sqvd-dcf-main.is-collapsed .sqvd-dcf-step > summary > .sqvd-dcf-steptext,
.sqvd-dcf-main.is-collapsed .sqvd-dcf-step > summary > .sqvd-dcf-chip,
.sqvd-dcf-main.is-collapsed .sqvd-dcf-stepbody{ display:none; }

/* ---------- beallitas-sav (6 lepes) ---------- */

.sqvd-dcf-step{
  background:var(--surface);
  border:1px solid var(--dcf-line-soft);
  border-radius:6px;
}
.sqvd-dcf-step > summary{
  list-style:none;
  cursor:pointer;
  display:grid;
  grid-template-columns:22px 1fr auto;
  gap:8px;
  align-items:center;
  padding:10px 12px;
}
.sqvd-dcf-step > summary::-webkit-details-marker{ display:none; }
.sqvd-dcf-stepno{
  width:22px; height:22px;
  border-radius:50%;
  border:1px solid var(--border);
  display:grid; place-items:center;
  color:var(--muted);
  font-size:11px;
}
.sqvd-dcf-step[open] .sqvd-dcf-stepno{ border-color:var(--accent); color:var(--accent); }
.sqvd-dcf-steptitle{ font-weight:700; }
.sqvd-dcf-stepsub{ color:var(--muted); font-size:11px; }
.sqvd-dcf-stepbody{
  padding:4px 12px 12px;
  display:flex;
  flex-direction:column;
  gap:10px;
  border-top:1px solid var(--dcf-line-soft);
}

.sqvd-dcf-help{
  font-family:var(--dcf-sans);
  font-size:12px;
  color:var(--dcf-ink-2);
  line-height:1.5;
  margin:0;
}
.sqvd-dcf-kv{ display:grid; grid-template-columns:1fr auto; gap:4px 10px; margin:0; }
.sqvd-dcf-kv dt{ color:var(--muted); }
.sqvd-dcf-kv dd{ margin:0; text-align:right; }

.sqvd-dcf-field{ display:flex; flex-direction:column; gap:5px; }
.sqvd-dcf-field > span{
  color:var(--muted);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.sqvd-dcf-inline{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }

.sqvd-dcf select,
.sqvd-dcf input[type=number]{
  background:var(--dcf-inset);
  border:1px solid var(--border);
  border-radius:3px;
  padding:3px 6px;
  color:var(--text);
  font-family:var(--font);
  font-size:11px;
  max-width:100%;
}
.sqvd-dcf select:disabled,
.sqvd-dcf input:disabled{ color:var(--dcf-faint); cursor:not-allowed; }
.sqvd-dcf :focus-visible{ outline:2px solid var(--dcf-active); outline-offset:2px; }

.sqvd-dcf-seg{ display:inline-flex; border:1px solid var(--border); border-radius:3px; overflow:hidden; }
.sqvd-dcf-seg button{
  background:var(--dcf-inset);
  border:0;
  padding:3px 9px;
  cursor:pointer;
  color:var(--dcf-ink-2);
  font-size:11px;
  font-family:var(--font);
}
.sqvd-dcf-seg button + button{ border-left:1px solid var(--border); }
.sqvd-dcf-seg button.is-on{ background:#1976D2; color:#fff; }

/* driver-sorok a Stage 1 lepesben */
.sqvd-dcf-drv{
  display:grid;
  /* minmax(0,1fr): a nev-oszlop keskenyebb lehet a tartalmanal (tor), igy a
     szampar nem nyomodik ki a kartyabol */
  grid-template-columns:minmax(0,1fr) auto;
  gap:2px 8px;
  padding:7px 0;
  border-top:1px dashed var(--dcf-line-soft);
}
.sqvd-dcf-drv:first-of-type{ border-top:0; }
.sqvd-dcf-drv .sqvd-dcf-drv-name{ color:var(--text); overflow-wrap:anywhere; }
.sqvd-dcf-drv .sqvd-dcf-drv-path{ color:var(--dcf-ink-2); text-align:right; white-space:nowrap; }
.sqvd-dcf-drv label{
  grid-column:1/-1;
  color:var(--muted);
  display:flex;
  gap:6px;
  align-items:center;
  font-size:11px;
}
.sqvd-dcf-drv-excl{
  grid-column:1/-1;
  color:var(--muted);
  font-family:var(--dcf-sans);
  font-size:11px;
}

.sqvd-dcf-formula{
  background:var(--dcf-inset);
  border:1px solid var(--dcf-line-soft);
  border-radius:4px;
  padding:8px;
  color:var(--dcf-ink-2);
  font-size:11px;
  overflow-x:auto;
  white-space:nowrap;
}

/* ---------- chipek: a felirat az azonosito, a szin masodlagos ---------- */

.sqvd-dcf-chip{
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size:10px;
  letter-spacing:.05em;
  padding:1px 6px;
  border-radius:3px;
  border:1px solid currentColor;
  white-space:nowrap;
}
.sqvd-dcf-chip.is-hist{ color:var(--dcf-hist); }
.sqvd-dcf-chip.is-est { color:var(--dcf-est); }
.sqvd-dcf-chip.is-auto{ color:var(--dcf-auto); }
.sqvd-dcf-chip.is-user{ color:var(--dcf-user); }
.sqvd-dcf-chip.is-ok  { color:var(--green); }
.sqvd-dcf-chip.is-warn{ color:var(--dcf-wacc); }
.sqvd-dcf-chip.is-fail{ color:var(--red); }

/* ---------- kartyak ---------- */

.sqvd-dcf-card{
  background:var(--surface);
  border:1px solid var(--dcf-line-soft);
  border-radius:6px;
  padding:14px;
  min-width:0;
}
.sqvd-dcf-cardhead{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:10px;
  margin-bottom:10px;
}
.sqvd-dcf-cardhead h2{
  font-size:13px;
  margin:0;
  font-weight:700;
}
.sqvd-dcf-cardhead p{
  margin:0;
  color:var(--muted);
  font-family:var(--dcf-sans);
  font-size:12px;
}

.sqvd-dcf-formulagrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.sqvd-dcf-formulagrid > div{
  background:var(--dcf-inset);
  border:1px solid var(--dcf-line-soft);
  border-radius:4px;
  padding:10px;
  min-width:0;
}
.sqvd-dcf-formulagrid h3{
  margin:0 0 7px;
  color:var(--dcf-ink-2);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.sqvd-dcf-formulagrid code{
  display:block;
  color:var(--text);
  font-family:var(--mono, monospace);
  font-size:11px;
  line-height:1.55;
  white-space:normal;
}
.sqvd-dcf-symbols{
  display:grid;
  grid-template-columns:auto 1fr auto 1fr;
  gap:4px 8px;
  margin:10px 0 0;
  color:var(--dcf-ink-2);
  font-family:var(--dcf-sans);
  font-size:11px;
}
.sqvd-dcf-symbols dt{ font-weight:700; color:var(--text); }
.sqvd-dcf-symbols dd{ margin:0; }
.sqvd-dcf-methodnote{
  margin:9px 0 0;
  color:var(--muted);
  font-family:var(--dcf-sans);
  font-size:11px;
}
.sqvd-dcf-checks.sqvd-dcf-checks-main{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 18px;
}

/* ---------- felso osszesito ---------- */

.sqvd-dcf-summary{ display:flex; flex-wrap:wrap; gap:16px 26px; align-items:center; }
.sqvd-dcf-big{ display:flex; flex-direction:column; gap:2px; }
.sqvd-dcf-big small{
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.07em;
  font-size:10px;
}
.sqvd-dcf-big b{ font-size:26px; font-weight:700; }
.sqvd-dcf-big .sqvd-dcf-delta{ font-size:12px; }
.sqvd-dcf-up{ color:var(--green); }
.sqvd-dcf-down{ color:var(--red); }

.sqvd-dcf-evbar{ display:flex; flex-direction:column; gap:6px; flex:1 1 260px; }
.sqvd-dcf-evbar small{
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.07em;
  font-size:10px;
}
.sqvd-dcf-track{ display:flex; height:14px; gap:2px; }
.sqvd-dcf-track > i{ display:block; }
.sqvd-dcf-track .s1{ background:var(--dcf-roic); border-radius:3px 0 0 3px; }
.sqvd-dcf-track .s2{ background:var(--dcf-wacc); }
.sqvd-dcf-track .tv{ background:var(--dcf-est); border-radius:0 3px 3px 0; }
.sqvd-dcf-evlegend{ display:flex; flex-wrap:wrap; gap:12px; color:var(--dcf-ink-2); font-size:11px; }
.sqvd-dcf-sw{
  display:inline-block;
  width:9px; height:9px;
  border-radius:2px;
  margin-right:5px;
  vertical-align:-1px;
}
.sqvd-dcf-pills{ display:flex; flex-direction:column; gap:6px; align-items:flex-start; }

/* ---------- grafikon ---------- */

.sqvd-dcf-charttabs{ display:flex; gap:6px; flex-wrap:wrap; margin-left:auto; }
.sqvd-dcf-charttabs button{
  background:var(--dcf-inset);
  border:1px solid var(--border);
  border-radius:4px;
  padding:3px 9px;
  cursor:pointer;
  color:var(--dcf-ink-2);
  font-family:var(--font);
  font-size:11px;
}
.sqvd-dcf-charttabs button.is-on{
  border-color:var(--accent);
  color:var(--text);
  background:rgba(25,118,210,.18);
}
/* overflow-y:hidden - az overflow-x:auto egyedul fuggoleges gorgetest is nyit,
   es a lebego cimke miatt a savtol ugralt a grafikon merete */
.sqvd-dcf-chartwrap{ position:relative; overflow-x:auto; overflow-y:hidden; }
.sqvd-dcf-chartwrap svg{ display:block; width:100%; min-width:720px; height:auto; }
.sqvd-dcf-legendrow{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  color:var(--dcf-ink-2);
  font-size:11px;
  margin-top:8px;
}
.sqvd-dcf-tip{
  position:absolute;
  pointer-events:none;
  background:var(--dcf-raised);
  border:1px solid var(--border);
  border-radius:4px;
  padding:6px 8px;
  font-size:11px;
  white-space:nowrap;
  display:none;
  z-index:3;
}

/* ---------- Stage 1 tabla ---------- */

.sqvd-dcf-tablewrap{ overflow-x:auto; }
.sqvd-dcf-table{
  border-collapse:collapse;
  width:100%;
  min-width:860px;
  font-size:var(--sqvd-analysis-font,11px);
}
.sqvd-dcf-table th,
.sqvd-dcf-table td{ padding:4px 8px; text-align:right; white-space:nowrap; }
.sqvd-dcf-table thead th{
  color:var(--muted);
  font-weight:500;
  border-bottom:1px solid var(--border);
}
.sqvd-dcf-table tbody td:first-child,
.sqvd-dcf-table thead th:first-child{
  text-align:left;
  position:sticky;
  left:0;
  background:var(--surface);
}
.sqvd-dcf-table tr.is-sec td{
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.07em;
  font-size:10px;
  padding-top:12px;
  text-align:left;
}
.sqvd-dcf-table tr.is-em td{ font-weight:700; }
.sqvd-dcf-table td.is-fc{ background:rgba(63,142,224,.05); }
.sqvd-dcf-table th.is-fc{ color:var(--accent); }
.sqvd-dcf-table th.is-seam,
.sqvd-dcf-table td.is-seam{ border-left:2px solid var(--dcf-active); }
.sqvd-dcf-table td.is-est{
  text-decoration:underline dotted var(--dcf-est);
  text-underline-offset:3px;
}
.sqvd-dcf-table td.is-user{ color:var(--dcf-user); }
/* Potolt cella: a SZAGGATOTT keret a nem-szin jel (szintevesztonek is latszik),
   a piros hatter csak masodlagos. A sor-hover a hatteret felulirja, a keretet nem. */
.sqvd-dcf-table td.is-gap{
  outline:1px dashed var(--dcf-gap);
  outline-offset:-3px;
  background:rgba(248,81,73,.10);
  cursor:help;
}
.sqvd-dcf-gapnote{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 8px;
  font-family:var(--dcf-sans);
  font-size:11.5px;
  color:var(--dcf-gap);
}
.sqvd-dcf-gapkey{
  flex:none;
  width:14px;
  height:10px;
  border:1px dashed var(--dcf-gap);
  background:rgba(248,81,73,.10);
}
/* Konszenzusra korlatozott cella: ugyanaz a szaggatott keret-jel, turkiz szinnel */
.sqvd-dcf-table td.is-capped{
  outline:1px dashed var(--dcf-capped);
  outline-offset:-3px;
  background:rgba(43,181,168,.10);
  cursor:help;
}
.sqvd-dcf-capnote{ color:var(--dcf-capped); }
.sqvd-dcf-capkey{
  border-color:var(--dcf-capped);
  background:rgba(43,181,168,.10);
}
.sqvd-dcf-captag{ color:var(--dcf-capped); }
.sqvd-dcf-table td.is-flag{ color:var(--red); font-weight:700; }
.sqvd-dcf-table td.is-src{ text-align:left; padding-left:14px; }
.sqvd-dcf-table tbody tr:hover td{ background:var(--dcf-raised); }
/* Moat-tenyek a keskeny beallitas-savban: nincs 860 px-es minimum, szuk cellak */
.sqvd-dcf-table.sqvd-dcf-moattbl{ min-width:0; width:100%; }
.sqvd-dcf-table.sqvd-dcf-moattbl th,
.sqvd-dcf-table.sqvd-dcf-moattbl td{ padding:3px 4px; }
.sqvd-dcf-table.sqvd-dcf-moattbl thead th{ white-space:normal; line-height:1.2; vertical-align:bottom; }

/* ---------- a harom also abra ---------- */

.sqvd-dcf-trio{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:14px;
}
.sqvd-dcf-trio svg{ display:block; width:100%; height:auto; }
.sqvd-dcf-note{
  font-family:var(--dcf-sans);
  font-size:11.5px;
  color:var(--muted);
  margin:8px 0 0;
}

.sqvd-dcf-rev{ display:flex; flex-direction:column; gap:0; }
.sqvd-dcf-revrow{
  display:grid;
  grid-template-columns:1fr auto auto;
  gap:8px;
  align-items:center;
  padding:8px 0;
  border-top:1px dashed var(--dcf-line-soft);
}
.sqvd-dcf-revrow:first-child{ border-top:0; }
.sqvd-dcf-revrow .q{ font-family:var(--dcf-sans); color:var(--dcf-ink-2); font-size:12px; }
.sqvd-dcf-revrow .v{ font-weight:700; font-size:14px; text-align:right; }
.sqvd-dcf-revrow .base{ color:var(--muted); font-size:11px; grid-column:1/-1; }

/* ---------- ellenorzesek, figyelmeztetesek ---------- */

.sqvd-dcf-checks{ display:flex; flex-direction:column; gap:6px; margin:0; padding:0; list-style:none; }
.sqvd-dcf-checks li{ display:grid; grid-template-columns:auto 1fr; gap:8px; align-items:start; }
.sqvd-dcf-checks li > span:last-child{ font-family:var(--dcf-sans); color:var(--dcf-ink-2); }

.sqvd-dcf-warnings{
  margin:0;
  padding-left:18px;
  font-family:var(--dcf-sans);
  font-size:11.5px;
  color:var(--muted);
}
.sqvd-dcf-warnings li{ margin:3px 0; }

/* Essentials nezet: a reszletek eltunnek (spec 16.2) */
.sqvd-dcf.is-essentials .sqvd-dcf-adv{ display:none !important; }
