/* ==========================================================================
   TradeNomad — Kapitaal activeren
   Ontwerpsysteem. Donker als standaard, licht als optie.
   Alle klassen die de rekenmodules gebruiken blijven bestaan.
   ========================================================================== */

/* ---------- 1. tokens ---------- */

:root{
  color-scheme:dark;

  /* Donker thema op basis van groen #3D4A42 i.p.v. zwart */
  --bg:#2A332E;
  --bg-2:#313C36;
  --surface:#3D4A42;
  --surface-2:#4A5850;
  --surface-3:#55645C;
  --edge:rgba(239,234,224,.12);
  --edge-2:rgba(239,234,224,.06);
  --edge-3:rgba(239,234,224,.18);

  --text:#F2EDE4;
  --text-2:#B8C0B9;
  --text-3:#8A948C;

  --gold:#D3A34F;
  --gold-2:#B8873A;
  --gold-dim:rgba(211,163,79,.16);
  --mint:#6BC9A0;
  --mint-dim:rgba(107,201,160,.14);
  --clay:#DE6D56;
  --clay-dim:rgba(222,109,86,.13);
  --slate:#8AA3C0;

  --on-gold:#2A332E;

  /* grafiekkleuren — core.js zet de oude hexcodes hiernaar om */
  --c-ink:#F2EDE4;
  --c-gold:#D3A34F;
  --c-mute:#8A948C;
  --p-1:#6BC9A0; --p-2:#8AA3C0; --p-3:#DE6D56; --p-4:#B98BC9;
  --p-5:#E0C070; --p-6:#5FA8AD; --p-7:#C98A5E; --p-8:#8892A0;

  --shadow-1:0 1px 2px rgba(20,30,25,.35);
  --shadow-2:0 4px 24px -6px rgba(20,30,25,.45), 0 1px 2px rgba(20,30,25,.3);
  --shadow-3:0 18px 50px -14px rgba(20,30,25,.55);
  --glow:0 0 0 1px rgba(211,163,79,.24), 0 12px 40px -14px rgba(211,163,79,.35);

  --r-xs:8px;
  --r-sm:12px;
  --r:16px;
  --r-lg:22px;
  --r-pill:999px;

  --display:"Instrument Serif","Iowan Old Style",Georgia,serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --serif:var(--display);
  --mono:"JetBrains Mono","SFMono-Regular",Menlo,Consolas,monospace;

  --rail:262px;
  --wrap:1080px;
  --bar-h:calc(62px + env(safe-area-inset-bottom));
  --top-h:56px;

  --ease:cubic-bezier(.22,.8,.32,1);
  --spring:cubic-bezier(.34,1.4,.5,1);

  /* oude namen, zodat losse fragmenten in tools.js blijven kloppen */
  --line:var(--edge);
  --line-soft:var(--edge-2);
  --ink:var(--text);
  --ivory:var(--bg);
  --paper:var(--surface);
  --bronze:var(--gold);
  --gain:var(--mint);
  --loss:var(--clay);
}

html[data-theme="light"]{
  color-scheme:light;
  --bg:#F4F0E7;
  --bg-2:#FAF7F0;
  --surface:#FFFFFF;
  --surface-2:#F3EEE4;
  --surface-3:#EAE3D5;
  --edge:rgba(20,22,26,.13);
  --edge-2:rgba(20,22,26,.07);
  --edge-3:rgba(20,22,26,.2);

  --text:#14161A;
  --text-2:#5A6069;
  --text-3:#868D96;

  --gold:#A8763A;
  --gold-2:#8A5F2B;
  --gold-dim:rgba(168,118,58,.11);
  --mint:#2E6A4C;
  --mint-dim:rgba(46,106,76,.1);
  --clay:#A6432F;
  --clay-dim:rgba(166,67,47,.1);
  --slate:#4C6480;

  --on-gold:#FFFFFF;

  --c-ink:#14161A;
  --c-gold:#A8763A;
  --c-mute:#8A7A63;
  --p-1:#2E6A4C; --p-2:#4C6480; --p-3:#A6432F; --p-4:#7C5E92;
  --p-5:#B08A2E; --p-6:#3D7F84; --p-7:#9A6438; --p-8:#6E7681;

  --shadow-1:0 1px 2px rgba(20,22,26,.05);
  --shadow-2:0 2px 4px rgba(20,22,26,.04), 0 10px 30px -12px rgba(20,22,26,.16);
  --shadow-3:0 20px 50px -18px rgba(20,22,26,.25);
  --glow:0 0 0 1px rgba(168,118,58,.28), 0 12px 34px -16px rgba(168,118,58,.4);
}

/* ---------- 2. basis ---------- */

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--sans);
  font-size:15px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -webkit-tap-highlight-color:transparent;
  overscroll-behavior-y:auto;
}

/* fijne korrel over het hele scherm — geeft diepte aan de vlakken */
body:before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.035'/%3E%3C/svg%3E");
}
html[data-theme="light"] body:before{opacity:.7}

h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.08;margin:0 0 .42em;letter-spacing:-.012em}
h1{font-size:clamp(2.1rem,7vw,3.3rem)}
h2{font-size:clamp(1.6rem,4.4vw,2.2rem)}
h3{font-size:1.32rem;letter-spacing:-.005em}
h4{font-family:var(--sans);font-size:.94rem;font-weight:620;letter-spacing:-.012em;margin:0 0 .5em;line-height:1.35}
p{margin:0 0 1em}
a{color:var(--gold);text-decoration:none}
a:hover{text-decoration:underline}
strong{font-weight:600}
hr{border:0;border-top:1px solid var(--edge-2)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
::selection{background:var(--gold);color:var(--on-gold)}

.eyebrow{
  display:block;font-family:var(--mono);font-size:.63rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold);margin:0 0 1em;font-weight:500;
}
.lede{font-size:1.02rem;color:var(--text-2);max-width:62ch;line-height:1.62}
.muted{color:var(--text-2)}
.small{font-size:.855rem}
.tiny{font-size:.76rem;line-height:1.5}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
/* KPI-raster in de rekentools (werd in tools.js gebruikt maar was nooit gedefinieerd) */
.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media(min-width:900px){.kpis{grid-template-columns:repeat(4,1fr)}}

/* Gevoeligheidsraster: welke combinatie van aannames laat wie winnen */
table.t.sens td,table.t.sens th{padding:6px 8px;text-align:center;font-size:.78rem}
table.t.sens td.n{font-family:var(--mono);font-weight:600}
table.t.sens td.pos{background:rgba(107,201,160,.14)}
table.t.sens td.neg{background:rgba(200,110,80,.14)}
html[data-theme="light"] table.t.sens td.pos{background:rgba(46,106,76,.12)}
html[data-theme="light"] table.t.sens td.neg{background:rgba(166,67,47,.12)}

.pos{color:var(--mint)}
.neg{color:var(--clay)}

/* ---------- 3. schil ---------- */

.app{position:relative;z-index:1;min-height:100dvh}

/* zijbalk — enkel op groot scherm */
.rail{
  display:none;position:fixed;inset:0 auto 0 0;width:var(--rail);z-index:40;
  background:var(--bg-2);border-right:1px solid var(--edge-2);
  padding:22px 14px 18px;flex-direction:column;gap:4px;overflow-y:auto;
}
.rail .brand{margin:0 8px 26px}

.brand{display:flex;align-items:center;gap:11px;color:var(--text)}
.brand:hover{text-decoration:none}
.mark{
  width:32px;height:32px;flex:0 0 auto;color:var(--gold);
}
.brand b{font-family:var(--display);font-weight:400;font-size:1.12rem;letter-spacing:-.01em;line-height:1}
.brand i{display:block;font-style:normal;font-family:var(--mono);font-size:.58rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--text-3);margin-top:3px}

.rail-lbl{
  font-family:var(--mono);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--text-3);padding:16px 10px 7px;
}
.rail a.item{
  display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:var(--r-sm);
  color:var(--text-2);font-size:.885rem;font-weight:500;letter-spacing:-.005em;
  transition:background .16s var(--ease),color .16s var(--ease);
}
.rail a.item:hover{background:var(--surface);color:var(--text);text-decoration:none}
.rail a.item.on{background:var(--surface-2);color:var(--text)}
.rail a.item.on svg{color:var(--gold)}
.rail a.item svg{width:17px;height:17px;flex:0 0 auto;color:var(--text-3);transition:color .16s}
.rail a.item .n{margin-left:auto;font-family:var(--mono);font-size:.62rem;color:var(--text-3)}
.rail .foot{margin-top:auto;padding:14px 11px 0;border-top:1px solid var(--edge-2);
  font-size:.72rem;color:var(--text-3);line-height:1.5}

/* bovenbalk — enkel op klein scherm */
.topbar{
  position:sticky;top:0;z-index:45;height:var(--top-h);display:flex;align-items:center;gap:10px;
  padding:0 14px;background:color-mix(in srgb,var(--bg) 82%,transparent);
  backdrop-filter:saturate(1.6) blur(16px);-webkit-backdrop-filter:saturate(1.6) blur(16px);
  border-bottom:1px solid var(--edge-2);
}
.topbar .t-title{font-family:var(--display);font-size:1.15rem;font-weight:400;letter-spacing:-.01em;
  flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar .t-title.hide{opacity:0}
.iconbtn{
  width:36px;height:36px;flex:0 0 auto;border-radius:var(--r-sm);border:1px solid var(--edge-2);
  background:var(--surface);color:var(--text-2);display:grid;place-items:center;cursor:pointer;
  transition:transform .14s var(--spring),color .16s,background .16s;
}
.iconbtn:active{transform:scale(.92)}
.iconbtn:hover{color:var(--text);background:var(--surface-2)}
.iconbtn svg{width:17px;height:17px}
.backbtn{display:none}
.backbtn.show{display:grid}

/* inhoud */
.main{padding:0 0 calc(var(--bar-h) + 22px)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 16px}
.view{display:none}
.view.on{display:block}
.pane{padding:22px 0 8px}

/* onderbalk — enkel op klein scherm */
.tabbar{
  position:fixed;left:0;right:0;bottom:0;z-index:50;height:var(--bar-h);
  padding-bottom:env(safe-area-inset-bottom);
  display:grid;grid-template-columns:repeat(4,1fr);
  background:color-mix(in srgb,var(--bg) 84%,transparent);
  backdrop-filter:saturate(1.6) blur(18px);-webkit-backdrop-filter:saturate(1.6) blur(18px);
  border-top:1px solid var(--edge-2);
}
.tabbar a{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  color:var(--text-3);font-size:.63rem;font-weight:550;letter-spacing:.01em;
  text-decoration:none;position:relative;
}
.tabbar a:hover{text-decoration:none}
.tabbar a svg{width:21px;height:21px;transition:transform .3s var(--spring)}
.tabbar a.on{color:var(--gold)}
.tabbar a.on svg{transform:translateY(-1px) scale(1.06)}
.tabbar a:active svg{transform:scale(.86)}
.tabbar a.on:before{
  content:"";position:absolute;top:0;left:50%;width:22px;height:2px;border-radius:0 0 3px 3px;
  background:var(--gold);transform:translateX(-50%);
}

/* ---------- 4. bewegen ---------- */

.view.on .pane > *{animation:rise .5s var(--ease) backwards}
.view.on .pane > *:nth-child(1){animation-delay:.02s}
.view.on .pane > *:nth-child(2){animation-delay:.07s}
.view.on .pane > *:nth-child(3){animation-delay:.12s}
.view.on .pane > *:nth-child(4){animation-delay:.16s}
.view.on .pane > *:nth-child(5){animation-delay:.2s}
.view.on .pane > *:nth-child(n+6){animation-delay:.23s}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}

/* ---------- 5. kaarten ---------- */

.card{
  background:var(--surface);border:1px solid var(--edge-2);border-radius:var(--r);
  padding:20px;box-shadow:var(--shadow-1);
}
.card.tight{padding:15px}
.card.flat{background:transparent;border:0;padding:0;box-shadow:none}

.grid{display:grid;gap:12px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.split{display:grid;gap:16px;align-items:start}

.head{max-width:64ch;margin-bottom:22px}
.head h2{margin-bottom:.3em}

/* ---------- 6. startscherm ---------- */

.greet{margin-bottom:16px}
.greet .g-day{font-family:var(--mono);font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-3)}
.greet h1{font-size:clamp(1.75rem,6.5vw,2.5rem);margin:5px 0 0}
.greet h1 em{font-style:italic;color:var(--gold)}

/* het signatuurelement: de erosiemeter */
.melt{
  position:relative;overflow:hidden;border-radius:var(--r-lg);
  background:
    radial-gradient(120% 130% at 82% -20%,var(--gold-dim),transparent 62%),
    linear-gradient(168deg,var(--surface-2),var(--surface));
  border:1px solid var(--edge);padding:24px 22px 20px;box-shadow:var(--shadow-2);
}
.melt:after{
  content:"";position:absolute;width:340px;height:340px;right:-130px;top:-190px;border-radius:50%;
  background:radial-gradient(circle,rgba(211,163,79,.3),transparent 66%);
  filter:blur(14px);animation:breathe 9s ease-in-out infinite;pointer-events:none;
}
html[data-theme="light"] .melt:after{background:radial-gradient(circle,rgba(168,118,58,.24),transparent 66%)}
@keyframes breathe{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.14)}}
.melt > *{position:relative;z-index:2}

.melt .m-top{display:flex;align-items:center;gap:8px;margin-bottom:16px}
.melt .m-live{
  display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.6rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--gold);
}
.melt .m-live b{width:6px;height:6px;border-radius:50%;background:var(--gold);animation:pulse 1.8s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(211,163,79,.55)}50%{opacity:.55;box-shadow:0 0 0 6px rgba(211,163,79,0)}}

.melt .m-fig{
  font-family:var(--mono);font-weight:500;letter-spacing:-.045em;line-height:.94;color:var(--text);
  font-size:clamp(2.6rem,12.5vw,4.4rem);font-variant-numeric:tabular-nums;display:flex;
  align-items:baseline;gap:2px;
}
.melt .m-fig .dec{font-size:.42em;color:var(--gold);letter-spacing:-.02em}
.melt .m-lbl{font-size:.83rem;color:var(--text-2);max-width:40ch;margin:12px 0 0;line-height:1.5}

.melt .m-scale{margin-top:20px;padding-top:16px;border-top:1px solid var(--edge-2);
  display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.melt .m-scale div span{display:block;font-family:var(--mono);font-size:.58rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--text-3);margin-bottom:5px}
.melt .m-scale div b{font-family:var(--mono);font-size:clamp(.85rem,3.4vw,1.05rem);font-weight:500;
  letter-spacing:-.03em;color:var(--text);font-variant-numeric:tabular-nums}

/* toolkaarten */
.tiles{display:grid;gap:11px;grid-template-columns:repeat(2,1fr)}
.tile{
  position:relative;display:flex;flex-direction:column;gap:9px;text-align:left;
  background:var(--surface);border:1px solid var(--edge-2);border-radius:var(--r);
  padding:16px 15px;color:var(--text);cursor:pointer;overflow:hidden;
  transition:transform .18s var(--spring),border-color .2s,box-shadow .2s;
}
.tile:hover{text-decoration:none;border-color:var(--edge-3);box-shadow:var(--shadow-2)}
.tile:active{transform:scale(.975)}
.tile .t-ic{
  width:34px;height:34px;border-radius:11px;display:grid;place-items:center;
  background:var(--gold-dim);color:var(--gold);
}
.tile .t-ic svg{width:17px;height:17px}
.tile .t-step{position:absolute;top:14px;right:15px;font-family:var(--mono);font-size:.6rem;
  letter-spacing:.1em;color:var(--text-3)}
.tile b{font-size:.95rem;font-weight:600;letter-spacing:-.012em;line-height:1.25;display:block}
.tile p{font-size:.775rem;color:var(--text-2);margin:0;line-height:1.45}
.tile.wide{grid-column:1 / -1;flex-direction:row;align-items:center;gap:14px}
.tile.wide .t-txt{flex:1;min-width:0}
.tile.wide .t-arrow{color:var(--text-3);flex:0 0 auto}

/* rij met statistiek */
.strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--edge-2);
  border:1px solid var(--edge-2);border-radius:var(--r);overflow:hidden}
.strip div{background:var(--surface);padding:14px 13px}
.strip span{display:block;font-family:var(--mono);font-size:.57rem;letter-spacing:.15em;
  text-transform:uppercase;color:var(--text-3);margin-bottom:5px}
.strip b{font-family:var(--mono);font-size:1.22rem;font-weight:500;letter-spacing:-.03em;line-height:1}

/* sectiekop op het startscherm */
.sec-h{display:flex;align-items:baseline;gap:10px;margin:26px 0 11px}
.sec-h h3{font-family:var(--sans);font-size:.78rem;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--text-3);margin:0}
.sec-h a{margin-left:auto;font-size:.78rem;color:var(--gold);font-weight:500}

/* installatiekaart */
.install{
  display:none;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--gold);
  border-radius:var(--r);padding:15px;box-shadow:var(--glow);
}
.install.show{display:flex;animation:pop .4s var(--spring)}
.install .i-txt{flex:1;min-width:0}
.install .i-txt b{display:block;font-size:.9rem;font-weight:600}
.install .i-txt p{margin:2px 0 0;font-size:.78rem;color:var(--text-2)}

/* CTA-balk (startscherm) */
.cta-bar{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  background:var(--gold-2);color:#F7F1E6;border-radius:var(--r-lg);
  padding:16px 18px;margin:18px 0 8px;
}
.cta-bar .cta-txt{flex:1;min-width:200px;font-size:.88rem;line-height:1.5}
.cta-bar .cta-txt strong{color:#fff;font-weight:600}
.cta-bar .cta-btn{
  flex:0 0 auto;display:inline-flex;align-items:center;
  background:#F7F1E6;color:var(--gold-2);border-radius:var(--r-pill);
  padding:10px 16px;font-size:.82rem;font-weight:600;text-decoration:none;
  transition:transform .14s var(--spring),filter .18s;
}
.cta-bar .cta-btn:hover{text-decoration:none;filter:brightness(1.05);color:var(--gold-2)}
html[data-theme="light"] .cta-bar{background:var(--gold);color:var(--on-gold)}
html[data-theme="light"] .cta-bar .cta-txt strong{color:var(--on-gold)}
html[data-theme="light"] .cta-bar .cta-btn{background:#fff;color:var(--gold)}

/* ---------- 7. bedieningselementen ---------- */

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--gold);color:var(--on-gold);border:1px solid var(--gold);
  padding:11px 18px;border-radius:var(--r-pill);font-size:.86rem;font-weight:600;
  font-family:var(--sans);cursor:pointer;letter-spacing:-.005em;
  transition:transform .14s var(--spring),filter .18s,background .18s;
}
.btn:hover{text-decoration:none;color:var(--on-gold);filter:brightness(1.08)}
.btn:active{transform:scale(.965)}
.btn.ghost{background:transparent;color:var(--text);border-color:var(--edge-3)}
.btn.ghost:hover{background:var(--surface-2);color:var(--text);filter:none}
.btn.sm{padding:8px 14px;font-size:.79rem}
.btn.block{width:100%}

label.f{display:flex;flex-direction:column;margin-bottom:13px}
label.f > span{display:block;font-size:.78rem;font-weight:600;margin-bottom:6px;letter-spacing:-.005em;color:var(--text)}
label.f .hint{display:block;font-weight:400;color:var(--text-3);font-size:.72rem;margin-top:2px;line-height:1.4}
label.f input,label.f select,label.f textarea{margin-top:auto}
.f-lbl-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.f-lbl-row .jtip{margin-top:1px}

input[type=number],input[type=text],select,textarea{
  width:100%;padding:11px 13px;border:1px solid var(--edge);border-radius:var(--r-sm);
  background:var(--bg-2);font-family:var(--mono);font-size:.87rem;color:var(--text);
  transition:border-color .16s,box-shadow .16s,background .16s;-webkit-appearance:none;appearance:none;
}
input[type=number]{-moz-appearance:textfield}
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}
html[data-theme="light"] input,html[data-theme="light"] select,html[data-theme="light"] textarea{background:var(--surface)}
textarea{font-family:var(--sans);line-height:1.55;resize:vertical}
select{
  font-family:var(--sans);cursor:pointer;padding-right:36px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%239AA1AB' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;
}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-dim);
}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 12px}

/* keuzelijst in de brokervragenlijst */
.q{margin-bottom:22px}
.q h4{margin-bottom:10px;font-size:.92rem}
.opts{display:grid;gap:7px}
.opt{
  position:relative;text-align:left;background:var(--bg-2);border:1px solid var(--edge-2);
  border-radius:var(--r-sm);padding:12px 40px 12px 14px;cursor:pointer;font-size:.865rem;
  font-family:var(--sans);color:var(--text);line-height:1.4;font-weight:500;
  transition:border-color .16s,background .16s,transform .14s var(--spring);
}
html[data-theme="light"] .opt{background:var(--surface)}
.opt:hover{border-color:var(--edge-3)}
.opt:active{transform:scale(.99)}
.opt:after{
  content:"";position:absolute;right:14px;top:50%;width:17px;height:17px;margin-top:-8.5px;
  border-radius:50%;border:1.5px solid var(--edge-3);transition:all .2s var(--spring);
}
.opt.sel{background:var(--gold-dim);border-color:var(--gold);color:var(--text)}
.opt.sel:after{
  border-color:var(--gold);background:var(--gold);
  box-shadow:inset 0 0 0 3.5px var(--surface);
}
.opt .o-sub{display:block;font-size:.755rem;font-weight:400;color:var(--text-2);margin-top:3px}
.opt.sel .o-sub{color:var(--text-2)}

.herbeleg-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.herbeleg-toggle .opt{padding:13px 16px 13px 14px;font-size:.88rem}
.herbeleg-toggle .opt:after{display:none}

.onboard{border:1px solid var(--edge-2);border-radius:var(--r-sm);background:var(--surface);padding:16px;margin-bottom:22px}
.onboard h4{margin-bottom:10px}
.onboard .opts{display:grid;gap:7px}
.onboard-done{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--edge-2);
  border-radius:var(--r-sm);background:var(--surface);padding:12px 14px;margin-bottom:22px;font-size:.83rem;color:var(--text-2)}
.onboard-done b{color:var(--text)}
.onboard-done button{margin-left:auto;background:none;border:0;color:var(--gold);font-size:.79rem;font-weight:500;cursor:pointer;padding:4px}

.progress-strip{border:1px solid var(--edge-2);border-radius:var(--r-sm);background:var(--surface);padding:14px 16px;margin-top:6px}
.progress-strip .p-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px;font-size:.79rem;color:var(--text-2)}
.progress-strip .p-top b{color:var(--text);font-family:var(--mono)}

.jtip{
  display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;
  border:1px solid var(--edge-3);background:var(--surface-2);color:var(--text-2);font-size:.62rem;font-family:var(--mono);
  cursor:pointer;margin-left:5px;vertical-align:middle;padding:0;line-height:1;flex:0 0 auto;
}
.jtip:hover{border-color:var(--gold);color:var(--gold)}
.jtip-pop{
  position:fixed;z-index:80;background:var(--surface-2);border:1px solid var(--edge-2);
  border-radius:var(--r-xs);padding:10px 12px;font-size:.76rem;color:var(--text-2);line-height:1.5;
  box-shadow:0 10px 28px -10px rgba(0,0,0,.4);
}

.next-step{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  border:1px solid var(--edge-2);border-radius:var(--r-sm);background:var(--surface);
  padding:12px 14px;margin-top:14px;font-size:.83rem;color:var(--text-2);
}
.next-step .btn{white-space:nowrap}

/* ---------- 8. gegevens ---------- */

table.t{width:100%;border-collapse:collapse;font-size:.84rem}
table.t th{
  text-align:left;font-family:var(--mono);font-size:.61rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--text-3);font-weight:500;padding:0 9px 9px;border-bottom:1px solid var(--edge);white-space:nowrap;
}
table.t td{padding:11px 9px;border-bottom:1px solid var(--edge-2);vertical-align:top}
table.t td.n,table.t th.n{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
table.t tr:last-child td{border-bottom:0}
table.t tr.hi td{background:var(--gold-dim)}
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:0 16px}

.kpi{
  border:1px solid var(--edge-2);border-radius:var(--r-sm);padding:14px 15px;background:var(--surface);
  display:flex;flex-direction:column;min-height:0;
}
.kpi .k-l{font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--text-3);margin-bottom:8px;line-height:1.35;min-height:1.7em}
.kpi .k-v{font-family:var(--mono);font-size:clamp(1.1rem,2.6vw,1.38rem);font-weight:500;letter-spacing:-.035em;line-height:1.2;
  font-variant-numeric:tabular-nums;word-break:break-word;hyphens:auto}
.kpi .k-s{font-size:.735rem;color:var(--text-2);margin-top:auto;padding-top:6px;line-height:1.4}
.kpi.win{background:var(--mint-dim);border-color:color-mix(in srgb,var(--mint) 40%,transparent)}
.kpi.win .k-v{color:var(--mint)}
.kpi.dark{background:var(--surface-2);border-color:var(--edge)}
.kpi.dark .k-v{color:var(--gold)}

.bar{height:6px;background:var(--surface-3);border-radius:var(--r-pill);overflow:hidden}
.bar > i{display:block;height:100%;background:var(--text);border-radius:var(--r-pill);
  transition:width .6s var(--ease)}
.bar.b2 > i{background:var(--gold)}
.blist{display:grid;gap:10px}
.blist .brow{display:grid;grid-template-columns:1fr 56px;gap:11px;align-items:center;font-size:.79rem}
.blist .brow .lb{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px;color:var(--text-2)}
.stack{display:flex;height:26px;border-radius:var(--r-xs);overflow:hidden}
.stack i{display:block;height:100%}
.legend{display:flex;flex-wrap:wrap;gap:6px 15px;margin-top:11px;font-size:.735rem;color:var(--text-2)}
.legend span{display:flex;align-items:center;gap:6px}
.legend b{width:9px;height:9px;border-radius:3px;display:block;flex:0 0 auto}

.tag{
  display:inline-flex;align-items:center;font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;
  text-transform:uppercase;border:1px solid var(--edge);border-radius:var(--r-pill);
  padding:3px 9px;color:var(--text-2);white-space:nowrap;
}
.tag.dark{background:var(--gold);color:var(--on-gold);border-color:var(--gold);font-weight:500}
.tag.warn{background:var(--clay-dim);border-color:color-mix(in srgb,var(--clay) 40%,transparent);color:var(--clay)}
.tag.ok{background:var(--mint-dim);border-color:color-mix(in srgb,var(--mint) 40%,transparent);color:var(--mint)}

.note{
  border-left:2px solid var(--gold);background:var(--gold-dim);border-radius:0 var(--r-sm) var(--r-sm) 0;
  padding:13px 15px;font-size:.83rem;color:var(--text-2);margin:16px 0;line-height:1.55;
}
.note strong{color:var(--text)}
.warnbox{
  background:var(--clay-dim);border:1px solid color-mix(in srgb,var(--clay) 32%,transparent);
  border-radius:var(--r-sm);padding:13px 15px;font-size:.83rem;line-height:1.55;color:var(--text-2);
}
.warnbox strong{color:var(--text)}

.rank{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.rank .r-n{font-family:var(--mono);font-size:.72rem;color:var(--gold);letter-spacing:.08em}
.rank strong{font-size:.98rem;letter-spacing:-.01em}
.score-pill{font-family:var(--mono);font-size:.76rem;background:var(--surface-3);color:var(--text);
  padding:3px 10px;border-radius:var(--r-pill);font-variant-numeric:tabular-nums}

details.acc{border:1px solid var(--edge-2);border-radius:var(--r-sm);background:var(--surface);margin-bottom:9px;overflow:hidden}
details.acc summary{
  padding:14px 16px;cursor:pointer;font-weight:600;font-size:.885rem;list-style:none;
  display:flex;justify-content:space-between;gap:12px;align-items:center;
}
details.acc summary::-webkit-details-marker{display:none}
details.acc summary:after{
  content:"";width:9px;height:9px;flex:0 0 auto;border-right:1.6px solid var(--gold);
  border-bottom:1.6px solid var(--gold);transform:rotate(45deg) translateY(-2px);transition:transform .25s var(--ease);
}
details.acc[open] summary:after{transform:rotate(-135deg) translateY(-2px)}
details.acc .body{padding:0 16px 16px;font-size:.855rem;color:var(--text-2)}
details.acc .body strong{color:var(--text)}
details.acc .body ul{margin:0}

.pick{border:1px solid var(--edge-2);border-radius:var(--r);background:var(--surface);padding:19px;margin-bottom:11px}
.pick .p-top{display:flex;align-items:center;gap:9px;margin-bottom:12px;flex-wrap:wrap}
.pick .p-tk{font-family:var(--mono);font-size:.8rem;font-weight:500;background:var(--gold);color:var(--on-gold);
  padding:3px 9px;border-radius:var(--r-xs);letter-spacing:.02em}

.chain{list-style:none;padding:0;margin:0;counter-reset:c}
.chain li{counter-increment:c;padding:14px 0 14px 40px;border-bottom:1px solid var(--edge-2);position:relative;
  font-size:.87rem;color:var(--text-2);line-height:1.55}
.chain li strong{color:var(--text)}
.chain li:last-child{border-bottom:0}
.chain li:before{
  content:"0" counter(c);position:absolute;left:0;top:15px;font-family:var(--mono);
  font-size:.68rem;color:var(--gold);letter-spacing:.06em;
}

svg .axis{stroke:var(--edge);stroke-width:1}
svg .gl{stroke:var(--edge-2);stroke-width:1}
svg text{font-family:var(--mono);font-size:9px;fill:var(--text-3)}

/* ---------- 9. gereedschapsscherm ---------- */

.tool-hd{margin-bottom:18px}
/* Boven een tweekoloms tool mag de inleiding wat breder lopen dan de standaard 62ch,
   anders oogt ze smal naast het resultaatpaneel. */
.tool-hd .lede{max-width:80ch}
.tool-hd .eyebrow{margin-bottom:.7em}
.tool-hd h2{font-size:clamp(1.55rem,5.5vw,2.05rem)}

.panel{
  background:var(--surface);border:1px solid var(--edge-2);border-radius:var(--r);padding:18px;
}
.panel .p-hd{display:flex;align-items:center;gap:9px;margin-bottom:14px}
.panel .p-hd h4{margin:0;flex:1}

/* de rekenmodules vullen deze twee kolommen */
.split > .card:first-child,.split > .panel:first-child{position:relative}

/* voettekst met de disclaimer */
.legal{
  margin-top:30px;padding:16px 0 6px;border-top:1px solid var(--edge-2);
  font-size:.71rem;line-height:1.6;color:var(--text-3);max-width:80ch;
}

/* ---------- 10. groter scherm ---------- */

@media(min-width:520px){
  .tiles{gap:12px}
  .melt{padding:28px 26px 22px}
}

@media(min-width:900px){
  :root{--bar-h:0px}
  body{font-size:15.5px}
  .rail{display:flex}
  .topbar{display:none}
  .tabbar{display:none}
  .app{padding-left:var(--rail)}
  .main{padding-bottom:40px}
  .wrap{padding:0 32px}
  .pane{padding:34px 0 20px}
  .split{grid-template-columns:minmax(300px,360px) 1fr;gap:22px}
  /* Formulierkolom scrollt mee met de pagina — geen aparte sticky scroll */
  .split > .card:first-child{position:relative;max-height:none;overflow:visible}
  .tiles{grid-template-columns:repeat(4,1fr)}
  .tile.wide{grid-column:1 / -1}
  .scroll-x{margin:0;padding:0}
  .melt{padding:34px 32px 26px}
  .card{padding:22px}
  .mobile-only{display:none}
}

@media(max-width:899px){
  .g3,.g4{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:560px){
  .g2,.g3,.g4,.row2,.row3{grid-template-columns:1fr}
  .grid{gap:10px}
}

/* ---------- 11. respect ---------- */



/* Melt-tekst platter op desktop */
@media(min-width:900px){
  .melt .m-lbl{max-width:52ch;font-size:.8rem;line-height:1.45;margin-top:8px}
  .melt .m-fig{margin-bottom:0}
  .melt .m-scale{margin-top:14px;padding-top:12px}
  .melt{padding:26px 28px 18px}
}
@media(max-width:560px){
  .melt .m-scale div b{font-size:.78rem;white-space:nowrap}
  .melt .m-lbl{max-width:100%;font-size:.8rem}
}

/* ---------- layout fixes: symmetrische velden, geen page-wide horiz. scroll ---------- */
html,body{overflow-x:clip;overflow-y:auto}
.main,.wrap,.pane,.view,.split,.grid{max-width:100%;box-sizing:border-box}
.card,.panel,.melt,.cta-bar,.pick,.note,.warnbox{overflow-wrap:anywhere;word-break:break-word;max-width:100%}
svg{max-width:100%;height:auto}
.scroll-x{
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  margin:0;
  padding:0;
}
table.t{width:100%;max-width:100%}
/* Labels in een rij even hoog → kolommen blijven netjes. De labelkolom rekt
   mee met de rij (grid-stretch); het invulveld wordt met margin-top:auto
   naar de onderkant geduwd, ongeacht hoeveel hint-tekst ernaast staat. */
.row2,.row3{align-items:stretch}
@media(min-width:900px){
  .split > .card:first-child{width:100%;max-width:100%}
  .split > .card:first-child input,
  .split > .card:first-child select{max-width:100%}
}
@media(max-width:899px){
  .scroll-x{margin:0;padding:0}
  .g2,.g3,.g4{grid-template-columns:1fr 1fr}
  .kpi .k-v{font-size:1.15rem}
}
@media(max-width:560px){
  .g2,.g3,.g4,.row2,.row3{grid-template-columns:1fr}
  .wrap{padding:0 14px}
}

@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}

/* ==========================================================================
   Afdrukbaar rapport — huisstijl TradeNomad International
   Kleuren rechtstreeks uit het sjabloon (Sjabloon_Rapport_TradeNomad_International.docx),
   niet uit de thema-variabelen, zodat het rapport er altijd hetzelfde uitziet
   ongeacht donker/licht thema in de app zelf.
   ========================================================================== */
.tn-report{display:none}

@media print{
  .rail,.topbar,.tabbar,.btn,.install{display:none!important}
  .app{padding-left:0}
  body{background:#fff;color:#000}
  .main > .view{display:none!important}
  .main{padding:0}
  .tn-report{
    display:block !important;width:100%;max-width:100%;box-sizing:border-box;
    padding:12mm 14mm;
    background:#fff;color:#14161A;font-family:'Inter',-apple-system,sans-serif;font-size:10.3pt;line-height:1.6;
    -webkit-print-color-adjust:exact;print-color-adjust:exact;color-adjust:exact;
  }
  .tn-report *{-webkit-print-color-adjust:exact;print-color-adjust:exact;color-adjust:exact}
  .rp-topline{
    display:flex;justify-content:space-between;align-items:center;
    font-family:'JetBrains Mono',monospace;font-size:7.6pt;letter-spacing:.18em;text-transform:uppercase;
    color:#A8763A;padding-bottom:8pt;margin-bottom:14pt;border-bottom:0.75pt solid #D9CBAE;
  }
  .rp-cover{background:#2A332E;color:#FAF7F0;padding:26pt 22pt 22pt;margin-bottom:20pt;border-radius:3pt}
  .rp-cover-mark{display:flex;align-items:center;gap:8pt;color:#D3A34F;margin-bottom:16pt}
  .rp-cover-mark svg{color:#D3A34F}
  .rp-cover-mark span{font-family:'JetBrains Mono',monospace;font-size:8pt;letter-spacing:.16em;text-transform:uppercase}
  .rp-cover h1{font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:25pt;margin:0 0 8pt;line-height:1.1;color:#FAF7F0}
  .rp-cover .rp-sub{color:#D3A34F;font-size:10pt;margin:0 0 4pt}
  .rp-cover .rp-client{color:#B8C0B9;font-size:9pt;margin:0}
  table.rp-meta{width:100%;border-collapse:collapse;margin-bottom:22pt;font-size:9pt}
  table.rp-meta td{padding:7pt 0;border-bottom:0.75pt solid #EDE6D6;vertical-align:top}
  table.rp-meta td:first-child{width:34%;font-family:'JetBrains Mono',monospace;font-size:7.6pt;letter-spacing:.12em;
    text-transform:uppercase;color:#A8763A}
  .rp-sectie{margin-bottom:18pt;page-break-inside:auto;break-inside:auto}
  .rp-sectie .rp-nr{font-family:'JetBrains Mono',monospace;font-size:8pt;letter-spacing:.18em;color:#A8763A;display:block;margin-bottom:2pt;page-break-after:avoid}
  .rp-sectie h2{font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:16.5pt;margin:0 0 9pt;color:#14161A;page-break-after:avoid;break-after:avoid}
  .rp-sectie h3{font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:11.5pt;margin:12pt 0 5pt;color:#14161A;page-break-after:avoid}
  .rp-sectie p{margin:0 0 8pt}
  .rp-sectie hr{border:0;border-top:0.75pt solid #D9CBAE;margin:16pt 0;page-break-after:avoid}
  .rp-sectie table.rp-t,.rp-sectie .rp-note,.rp-sectie svg{page-break-inside:avoid;break-inside:avoid}
  table.rp-t{width:100%;border-collapse:collapse;font-size:8.6pt;margin:8pt 0}
  table.rp-t thead td{background:#2A332E;color:#FAF7F0;font-family:'JetBrains Mono',monospace;font-size:7.2pt;
    letter-spacing:.1em;text-transform:uppercase;padding:6pt 8pt}
  table.rp-t thead td.n{text-align:right}
  table.rp-t tbody td{padding:6pt 8pt;border-bottom:0.75pt solid #EDE6D6}
  table.rp-t td.n{text-align:right;font-variant-numeric:tabular-nums}
  table.rp-t tr.hi td{font-weight:600}
  .rp-cap{font-size:8pt;font-style:italic;color:#8A7A63;margin:-4pt 0 10pt}
  .rp-note{border-radius:2pt;padding:9pt 12pt;margin:10pt 0;font-size:9pt;line-height:1.5}
  .rp-note b{display:block;font-family:'Instrument Serif',Georgia,serif;font-weight:400;font-size:11pt;margin-bottom:3pt}
  .rp-note.mint{background:#EEF3EE;border-left:2.5pt solid #2E6A4C;color:#14161A}
  .rp-note.mint b{color:#2E6A4C}
  .rp-note.klei{background:#F5EDE9;border-left:2.5pt solid #A6432F;color:#14161A}
  .rp-note.klei b{color:#A6432F}
  .rp-note.donker{background:#2A332E;border-left:2.5pt solid #D3A34F;color:#FAF7F0}
  .rp-note.donker b{color:#D3A34F}
  .rp-diamonds{margin:0;padding:0;list-style:none}
  .rp-diamonds li{padding-left:16pt;position:relative;margin-bottom:6pt;font-size:9.3pt}
  .rp-diamonds li:before{content:"◇";position:absolute;left:0;color:#A8763A}
  .rp-slot{margin-top:24pt;padding-top:14pt;border-top:0.75pt solid #D9CBAE}
  .rp-slot-lbl{font-size:8.6pt;color:#8A7A63;margin:0 0 3pt}
  .rp-slot-naam{font-family:'Instrument Serif',Georgia,serif;font-size:13pt;margin:0 0 2pt}
  .rp-slot-lijn{font-style:italic;font-size:8.6pt;color:#A8763A;margin:0 0 2pt}
  .rp-slot-datum{font-family:'JetBrains Mono',monospace;font-size:8pt;color:#8A7A63;margin:0}
  .rp-footer{
    margin-top:20pt;padding-top:8pt;border-top:0.75pt solid #D9CBAE;
    font-family:'JetBrains Mono',monospace;font-size:6.8pt;letter-spacing:.12em;text-transform:uppercase;color:#8A7A63;
  }
  /* Grafieken en gevoeligheidsraster in het PDF-rapport */
  .rp-sectie svg{width:100%;height:auto;max-height:90mm;margin:6pt 0;overflow:visible}
  .rp-sectie svg text{font-size:7pt;fill:#8A7A63}
  .rp-sectie svg .gl{stroke:#EDE6D6;stroke-width:.5}
  .rp-sectie svg .axis{stroke:#D9CBAE;stroke-width:.75}
  .rp-sectie .legend{display:flex;flex-wrap:wrap;gap:10pt;font-size:8pt;color:#4A4A44;margin-top:2pt}
  .rp-sectie .legend span{display:flex;align-items:center;gap:4pt}
  .rp-sectie .legend b{width:8pt;height:2.5pt;border-radius:1pt;display:inline-block}
  .rp-sectie table.t{width:100%;border-collapse:collapse;font-size:8pt;margin:6pt 0}
  .rp-sectie table.t th{background:#2A332E;color:#FAF7F0;font-family:'JetBrains Mono',monospace;
    font-size:6.6pt;letter-spacing:.08em;text-transform:uppercase;padding:4pt 5pt;text-align:center}
  .rp-sectie table.t td{padding:4pt 5pt;border-bottom:.5pt solid #EDE6D6;text-align:center}
  .rp-sectie table.t td.pos{background:rgba(46,106,76,.13);color:#2E6A4C;font-weight:600}
  .rp-sectie table.t td.neg{background:rgba(166,67,47,.13);color:#A6432F;font-weight:600}
  .rp-sectie .scroll-x{overflow:visible}

  @page{size:A4;margin:10mm}
}
