/* Extra stijl voor de module finance. Alleen deze module schrijft hier.
   Gebruik eerst de klassen uit base.css; hier staat alleen wat echt mist.
   Kleuren komen uitsluitend uit de tokens van base.css — geen eigen hex. */

/* ─── Weekstaafjes (flex-marge) — gewoon divs, geen grafiekbibliotheek ─── */
.fin-bars{display:flex;align-items:flex-end;gap:6px;height:130px;padding-top:6px}
.fin-bars .fb{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}
.fin-bars .fb i{display:block;width:100%;max-width:34px;background:var(--olive-l);border-radius:4px 4px 0 0}
.fin-bars .fb:last-child i{background:var(--olive)}
.fin-bars .fb span{font-size:9.5px;color:var(--muted);white-space:nowrap;font-weight:500}

/* ─── Uitgeklapte termijnregel onder een plaatsing ─── */
.fin-plsub > td{background:var(--card-2);padding:14px 16px 12px}
.fin-termijnen{background:var(--card);border:1px solid var(--line);border-radius:var(--r-s);overflow:hidden}
.fin-termijnen th{position:static}
.fin-termijnen td{padding:8px 14px}

/* ─── Regel met label links en bedrag rechts (potjes, risico's, GPS) ─── */
.fin-pot{display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  padding:8px 0;border-bottom:1px dashed var(--line)}
.fin-pot:last-child{border-bottom:none}
.fin-pot > span{font-size:13px;color:var(--txt-2);min-width:0}
.fin-pot > b{font-size:13.5px;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}

/* ─── CFO-briefing bovenaan Vandaag ─── */
.fin-brief{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--olive);
  border-radius:var(--r-l);padding:16px 20px}
.fin-brief-h{font-weight:700;font-size:15px;color:var(--ink);margin-bottom:10px}
.fin-brief-r{display:flex;gap:9px;align-items:flex-start;margin:6px 0;font-size:13.5px;
  color:var(--txt-2);line-height:1.55}
.fin-brief-r > span:first-child{flex:0 0 auto}

/* ─── Advieskaarten (gevaar / kans / sterkte) ─── */
.fin-advlijst{display:flex;flex-direction:column;gap:10px}
.fin-adv{display:flex;gap:12px;align-items:flex-start;padding:13px 15px;
  background:var(--card-2);border:1px solid var(--line);border-radius:var(--r);
  border-left:3px solid var(--line-2)}
.fin-adv.u3{border-left-color:var(--red);background:var(--red-bg)}
.fin-adv.u2{border-left-color:var(--amber);background:var(--amber-bg)}
.fin-adv-i{flex:0 0 auto;font-size:15px;line-height:1.4}
.fin-adv-b{min-width:0;flex:1}
.fin-adv-t{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;margin-bottom:5px}
.fin-adv-t b{font-size:13.5px;color:var(--ink)}
.fin-adv-b p{margin:0;font-size:13px;line-height:1.55;color:var(--txt-2)}
.fin-adv-a{margin-top:6px !important;color:var(--ink) !important;font-weight:500}

/* ─── Los blokje binnen een kaart (belasting, GPS, netto-calculator) ─── */
.fin-blok{border:1px solid var(--line);border-radius:var(--r);padding:13px 15px;background:var(--card)}
.fin-blok.accent{border-left:3px solid var(--olive)}
.fin-blok.amber{border-left:3px solid var(--amber)}
.fin-blok > .label{margin-bottom:6px}
.fin-blok > .big{font-size:24px}
.fin-blok p{margin:6px 0 0;line-height:1.55}
.fin-blok label.meta{display:block;font-size:12px}
.fin-blok label.meta input{margin-top:4px}

/* ─── Winst-brug: totaalregels zwaarder ─── */
table.tbl tr.fin-sum td{border-top:1px solid var(--line-2);font-weight:700;color:var(--ink)}

/* ─── Conversie-keten ─── */
.fin-keten{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap}
.fin-stap{flex:1 1 110px;min-width:96px;background:var(--card-2);border:1px solid var(--line);
  border-radius:var(--r);padding:12px 10px;cursor:pointer;font-family:var(--body);
  display:flex;flex-direction:column;gap:3px;align-items:center;text-align:center}
.fin-stap:hover{border-color:var(--olive-l)}
.fin-stap.on{background:var(--card);border-color:var(--olive);box-shadow:inset 0 -2px 0 var(--olive)}
.fin-stap-n{font-family:var(--disp);font-size:22px;line-height:1;color:var(--ink);letter-spacing:.5px}
.fin-stap-l{font-size:11px;color:var(--txt-2);line-height:1.3}
.fin-pijl{display:flex;align-items:center;font-size:11.5px;color:var(--muted);
  font-variant-numeric:tabular-nums;white-space:nowrap}

/* ─── Saldo-projectie (SVG) ─── */
.fin-chart{overflow-x:auto}
.fin-chart svg{width:100%;min-width:520px;height:auto;display:block}
.fin-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px}
.fin-lg{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--txt-2)}
.fin-lg i{width:11px;height:3px;border-radius:2px;display:inline-block}

/* De krapste week in de 13-weken tabel licht op. */
table.tbl tr.fin-laagst td{background:var(--well)}

/* ─── Betaald aan Meta ─────────────────────────────────────────
   Het blok leunt volledig op .card/.tbl/.chip/.note uit base.css;
   hier staat alleen wat daar niet in zit. */

/* De actieve zoektermen als rij chips achter een label. */
.fin-meta-termen{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.fin-meta-termen > .label{margin:0 4px 0 0}

/* Uitleg over btw en timing: twee korte alinea's, rustig uitgelijnd. */
.fin-meta-uitleg{margin-top:8px}
.fin-meta-uitleg p{margin:0 0 8px;line-height:1.55}
.fin-meta-uitleg p:last-child{margin-bottom:0}

/* Een uitgezette transactie blijft leesbaar maar telt zichtbaar niet mee. */
table.tbl tr.fin-meta-uit td{opacity:.5}
table.tbl tr.fin-meta-uit td:first-child{position:relative}

/* Het vinkje "meetellen": label en tekst op één regel, niet uit elkaar
   getrokken door de rechts uitgelijnde getalkolom. */
.fin-meta-vink{display:inline-flex;align-items:center;gap:6px;cursor:pointer;
  font-size:12px;color:var(--txt-2);white-space:nowrap}
.fin-meta-vink input{margin:0}

/* ─── Brede schermen: meer naast elkaar, niets uitgerekt ──────────
   Finance heeft geen eigen leesbreedte-rem (de .grid-klassen uit base.css
   zetten al kolommen bij), dus hier gaat het puur om de blokken die vast
   één kolom waren. Op het teamscherm (±2000px) scheelt dat scrollen:
   je ziet gevaren, kansen en sterktes in één blik.                      */
@media (min-width:1500px){
  /* Advieskaarten: twee kolommen, kaarten blijven heel. */
  .fin-advlijst{display:block;column-count:2;column-gap:14px}
  .fin-adv{break-inside:avoid;margin-bottom:10px}
  /* De losse blokken in de belasting- en GPS-kaart naast elkaar. */
  .fin-keten{flex-wrap:nowrap}
}
@media (min-width:1900px){
  .fin-advlijst{column-count:3}
  /* Weekstaafjes krijgen lucht in plaats van dat ze uitrekken. */
  .fin-bars{height:160px;gap:10px}
  .fin-bars .fb i{max-width:44px}
  .fin-bars .fb span{font-size:10.5px}
}

/* ─── Mobiel: kaarten en tabellen mogen krimpen, nooit de pagina ─── */
@media (max-width:640px){
  .fin-keten{gap:6px}
  .fin-stap{flex:1 1 72px;min-width:72px;padding:10px 6px}
  .fin-stap-n{font-size:18px}
  .fin-pijl{display:none}
  .fin-pot{flex-wrap:wrap;gap:2px}
  .fin-pot > b{text-align:left}
  .fin-bars{height:100px;gap:3px}
  .fin-bars .fb span{font-size:8.5px}
  .fin-adv{padding:11px 12px;gap:9px}
  .fin-brief{padding:14px 15px}
  .fin-chart svg{min-width:460px}
  /* De Meta-tabellen hebben zes kolommen; op een telefoon scrollen ze
     binnen hun eigen .tblwrap in plaats van de pagina mee te trekken. */
  .fin-meta-vink span{display:none}
}

/* ── Compacte opzet (27 okt 2026) ──────────────────────────────────
   Eén smalle cijferbalk per scherm in plaats van grote KPI-tegels, en
   een takenlijst met een knop per regel. "Zo overzichtelijk mogelijk,
   niet te groot." */
.fin-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);margin-bottom:16px;overflow:hidden}
.fin-strip > div{padding:12px 16px;border-left:1px solid var(--line);min-width:0}
.fin-strip > div:first-child{border-left:none}
.fin-strip .l{font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.fin-strip .v{font-size:19px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;margin-top:3px;white-space:nowrap}
.fin-strip .s{font-size:12px;color:var(--txt-2);margin-top:2px}
#fin_body button.lnk{background:none;border:none;padding:0;font:inherit;color:var(--olive);text-decoration:underline;cursor:pointer}

.fin-todo{display:flex;align-items:center;gap:14px;padding:11px 18px;border-bottom:1px solid var(--line);font-size:13.5px}
.fin-todo:last-child{border-bottom:none}
.fin-todo .t{flex:1;min-width:0;color:var(--ink)}
.fin-todo .w{font-size:12px;color:var(--txt-2);margin-top:2px}
.fin-todo .bd{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.fin-todo.urg .t::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;
  background:var(--amber);margin-right:8px;vertical-align:1px}
.fin-todo > .btn{flex:0 0 auto}

.fin-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}

.fin-doelbar{display:flex;height:10px;border-radius:6px;background:var(--well);overflow:hidden;margin:2px 0 12px}
.fin-doelbar i{display:block;height:100%;background:var(--olive)}
.fin-doelbar i.b{background:var(--olive-l);opacity:.55}
.fin-doelbar i.c{background:var(--purple);opacity:.45}
.fin-dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:8px}
.fin-dot.a{background:var(--olive)}
.fin-dot.b{background:var(--olive-l);opacity:.55}
.fin-dot.c{background:var(--purple);opacity:.45}
.fin-werkelijk{padding:10px 18px;border-top:1px solid var(--line);font-size:12px}
.fin-geld{align-items:start}
@media (max-width:760px){ .fin-strip .v{font-size:17px} .fin-todo{flex-wrap:wrap} }

/* ── Facturatie "Op actie" (27 okt 2026) ─────────────────────────────
   Eén tabel, groepen naar wat er moet gebeuren. Schermbreed, maar alleen
   de klant/kandidaat-kolom groeit mee: datum, bedrag, status en knop
   hebben een vaste breedte en blijven dus bij elkaar staan. */
.fin-ac-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px;font-size:13px}
.fin-ac-top .searchbox{flex:0 1 300px}
.fin-ac-tbl{table-layout:fixed}
.fin-ac-tbl td{padding:8px 12px;vertical-align:middle}
.fin-ac-wie{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fin-ac-rij{cursor:pointer}
.fin-ac-rij.gedimd td{opacity:.55}
.fin-ac-rij.gedimd td:last-child{opacity:1}
tr.fin-ac-grp td{background:var(--card-2);font-size:13px;padding:9px 12px;cursor:pointer;border-top:1px solid var(--line)}
tr.fin-ac-grp.olijf td:first-child{box-shadow:inset 3px 0 0 var(--olive)}
tr.fin-ac-grp.rood td:first-child{box-shadow:inset 3px 0 0 var(--red)}
tr.fin-ac-grp.rood b{color:var(--red)}
tr.fin-ac-grp.olijf, tr.fin-ac-grp.rood{cursor:default}
.fin-ac-leeg{padding:9px 12px 11px 24px !important}
tr.fin-ac-keuze td{background:var(--card-2);font-size:12.5px;padding:8px 12px 10px 86px;color:var(--txt-2)}
tr.fin-ac-keuze .btn{margin:0 2px}
tr.fin-ac-keuze input[type=date]{width:150px;height:28px;font-size:12.5px;display:inline-block;margin:0 6px}

/* Aanklikbaar om in de regel aan te passen: datum en bedrag. */
.fin-ed{border-bottom:1px dotted var(--muted);cursor:text}
.fin-ed:hover{border-bottom-color:var(--olive);color:var(--olive)}
.fin-ed-in{height:28px;font-size:12.5px;padding:2px 6px;width:100%;max-width:150px}

/* Schema in één zin */
.fin-schema{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13.5px}
.fin-schema input[type=number]{width:64px;text-align:center}
.fin-schema input[type=date]{width:auto}
.fin-schema-vb{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:12.5px;color:var(--txt-2)}
.fin-schema-vb b{color:var(--ink)}
.fin-ac-tbl td:first-child{white-space:nowrap}

/* Per maand: zelfde idee — vaste kolommen, alleen "Kandidaat" groeit. */
.fin-pm .tbl{table-layout:fixed}
.fin-pm .tbl th:nth-child(1), .fin-pm .tbl td:nth-child(1){width:84px;white-space:nowrap}
.fin-pm .tbl th:nth-child(2), .fin-pm .tbl td:nth-child(2){width:100px}
.fin-pm .tbl th:nth-child(4), .fin-pm .tbl td:nth-child(4),
.fin-pm .tbl th:nth-child(5), .fin-pm .tbl td:nth-child(5){width:104px}
.fin-pm .tbl th:nth-child(6), .fin-pm .tbl td:nth-child(6){width:96px}
.fin-pm .tbl th:nth-child(7), .fin-pm .tbl td:nth-child(7){width:190px}
.fin-pm .tbl th:nth-child(8), .fin-pm .tbl td:nth-child(8){width:150px}
.fin-ac-tbl td .chip, .fin-pm .tbl td .chip{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:middle}

/* Maand voor maand: prognoseregels rustiger dan de werkelijke maanden. */
.tbl tr.fin-prog td{background:var(--card-2)}
.tbl tr.fin-prog td b{font-weight:600}
.tbl tr.fin-scheiding td{padding:0;height:6px;background:var(--line)}

/* Waardebalk (getekende waarde vs nodig, flex-uren vs overname) */
.fin-waardebar{height:6px;border-radius:4px;background:var(--well);overflow:hidden;min-width:60px}
.fin-waardebar i{display:block;height:100%;background:var(--olive-l);opacity:.7}
.fin-waardebar.ok i{background:var(--olive);opacity:1}
.tbl tr.fin-nu td{background:var(--card-2)}
.tbl tr.fin-nu td:first-child{box-shadow:inset 3px 0 0 var(--olive)}
.tbl tr.fin-onvolledig td{color:var(--muted)}
.tbl tr.fin-onvolledig td b{color:var(--txt-2)}
.tbl tr.fin-groep td{background:var(--bg-2,#f6f3ee);padding-top:8px;padding-bottom:8px;font-size:12px;text-transform:uppercase;letter-spacing:.04em}
