/* ===== Kanaries / Artikelen — Distill-style standalone article ===== */
:root{
  --art-bg:#fffefb; --art-fg:#1d1d1f; --art-muted:#6b6b70; --art-border:#e7e4dc;
  --art-accent:#c0392b; --art-blue:#2c7fb8; --art-gold:#e0a800; --art-green:#16a085; --art-purple:#8e44ad;
  --art-panel:#f6f3ec; --art-link:#b23a2e; --art-maxw:720px; --art-wide:1080px;
}
html.dark{
  --art-bg:#16161a; --art-fg:#e8e8ea; --art-muted:#9a9aa2; --art-border:#2c2c33;
  --art-accent:#e8604f; --art-blue:#4ba3e0; --art-gold:#f0c040; --art-green:#2ec9aa; --art-purple:#b07cd6;
  --art-panel:#1f1f25; --art-link:#e8604f;
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  background:var(--art-bg); color:var(--art-fg);
  font-family:'EB Garamond',Georgia,serif; font-size:20px; line-height:1.65;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
/* top bar */
.art-topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;
  padding:.6rem 1.2rem;background:color-mix(in srgb,var(--art-bg) 88%,transparent);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--art-border);font-size:.85rem}
.art-topbar a{color:var(--art-fg);text-decoration:none;font-family:'Source Code Pro',monospace;font-size:.8rem}
.art-topbar-right{display:flex;gap:1.1rem;align-items:center}
#theme-toggle{background:none;border:none;color:var(--art-fg);font-size:1.1rem;cursor:pointer;line-height:1}
/* hero */
.art-hero{max-width:var(--art-maxw);margin:3.2rem auto 1.4rem;padding:0 1.2rem}
.art-hero h1{font-size:2.7rem;line-height:1.12;margin:0 0 .5rem;font-weight:600;letter-spacing:-.01em}
.art-sub{font-size:1.25rem;color:var(--art-muted);margin:.2rem 0 1rem;font-style:italic}
.art-meta{font-family:'Source Code Pro',monospace;font-size:.78rem;color:var(--art-muted);text-transform:uppercase;letter-spacing:.05em}
/* body column */
.art-body{max-width:var(--art-maxw);margin:0 auto;padding:0 1.2rem}
.art-body p{margin:1.1rem 0}
.art-body h2{font-size:1.7rem;margin:2.6rem 0 .6rem;font-weight:600;letter-spacing:-.01em}
.art-body h3{font-size:1.3rem;margin:1.8rem 0 .4rem;font-weight:600}
/* tight gap between a heading and what follows it (p top margin would otherwise win) */
.art-body h2+p,.art-body h3+p,.art-body h4+p,
.art-body h2+ul,.art-body h3+ul,.art-body h4+ul,
.art-body h2+ol,.art-body h3+ol,.art-body h4+ol{margin-top:0}
.art-body a{color:var(--art-link);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--art-link) 35%,transparent)}
.art-body a:hover{border-bottom-color:var(--art-link)}
.art-body strong{font-weight:600}
.art-body code{font-family:'Source Code Pro',monospace;font-size:.82em;background:var(--art-panel);padding:.1em .35em;border-radius:5px}
.art-body pre{background:var(--art-panel);padding:1rem 1.1rem;border-radius:10px;overflow-x:auto;font-size:.8rem;line-height:1.5}
.art-body blockquote{margin:1.4rem 0;padding:.4rem 0 .4rem 1.2rem;border-left:3px solid var(--art-accent);color:var(--art-muted);font-style:italic}
.art-body ul,.art-body ol{padding-left:1.3rem}
.art-body li{margin:.35rem 0}
.lead{font-size:1.18rem}
/* key takeaway / aside panels */
.art-body .panel{background:var(--art-panel);border:1px solid var(--art-border);border-radius:12px;padding:1rem 1.2rem;margin:1.6rem 0;font-size:.95rem}
/* figures / charts */
.chart-fig{margin:2rem auto;max-width:var(--art-maxw)}
.chart-fig.wide{max-width:var(--art-wide)}
.chart-mount{width:100%}
.chart-fig figcaption{font-size:.85rem;color:var(--art-muted);margin-top:.6rem;line-height:1.45;font-style:italic}
/* margin notes */
.marginnote{font-size:.82rem;color:var(--art-muted);line-height:1.5;border-left:2px solid var(--art-border);padding-left:.7rem;margin:1.1rem 0}
.mn-num{font-family:'Source Code Pro',monospace;color:var(--art-accent);margin-right:.35em}
@media(min-width:1180px){
  .marginnote{position:absolute;left:calc(50% + var(--art-maxw)/2 + 28px);width:230px;margin-top:-.2rem;border-left:none;padding-left:0}
  .art-body{position:relative}
}
/* footer */
.art-footer{max-width:var(--art-maxw);margin:3rem auto 5rem;padding:1.4rem 1.2rem 0;border-top:1px solid var(--art-border);
  font-size:.85rem;color:var(--art-muted)}
.art-footer a{color:var(--art-link);text-decoration:none}
/* chart UI controls */
.chart-controls{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.6rem;font-family:'Source Code Pro',monospace;font-size:.78rem}
.chart-controls select{font-family:inherit;font-size:.8rem;padding:.25rem .5rem;border-radius:7px;border:1px solid var(--art-border);background:var(--art-bg);color:var(--art-fg)}
.seg{display:inline-flex;border:1px solid var(--art-border);border-radius:8px;overflow:hidden}
.seg button{font-family:inherit;font-size:.75rem;padding:.3rem .7rem;background:var(--art-bg);color:var(--art-muted);border:none;cursor:pointer}
.seg button.on{background:var(--art-accent);color:#fff}
.chart-tip{position:fixed;pointer-events:none;background:var(--art-fg);color:var(--art-bg);font-family:'Source Code Pro',monospace;
  font-size:.72rem;padding:.4rem .55rem;border-radius:7px;opacity:0;transition:opacity .1s;z-index:50;white-space:nowrap;line-height:1.4}
.legend{display:flex;gap:1.1rem;flex-wrap:wrap;font-family:'Source Code Pro',monospace;font-size:.74rem;color:var(--art-muted);margin-top:.4rem}
.legend span{display:inline-flex;align-items:center;gap:.35rem}
.legend i{width:14px;height:3px;border-radius:2px;display:inline-block}

/* ===== "van 427 naar 12" funnel ===== */
.funnel{margin:1rem 0}
.funnel-steps{display:flex;align-items:stretch;gap:.6rem;justify-content:center;flex-wrap:wrap}
.fstep{flex:1;min-width:120px;background:var(--art-panel);border:1px solid var(--art-border);border-radius:12px;padding:.9rem 1rem;text-align:center}
.fstep.on{border-color:var(--art-accent);background:color-mix(in srgb,var(--art-accent) 10%,var(--art-bg))}
.fstep b{display:block;font-family:'Source Code Pro',monospace;font-size:1.9rem;font-weight:600;color:var(--art-fg)}
.fstep span{font-size:.78rem;color:var(--art-muted)}
.farrow{display:flex;align-items:center;color:var(--art-muted);font-size:1.4rem}
.funnel-hint{font-size:.85rem;color:var(--art-muted);font-style:italic;margin:.9rem 0 .4rem}
.twelve-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.55rem}
.tcard{border:1px solid var(--art-border);border-radius:10px;overflow:hidden;background:var(--art-bg)}
.tcard-head{padding:.6rem .8rem;cursor:pointer;font-size:.92rem;display:flex;align-items:center;gap:.45rem;user-select:none}
.tcard-head:hover{background:var(--art-panel)}
.tcode{font-family:'Source Code Pro',monospace;font-size:.72rem;color:#fff;background:var(--art-accent);border-radius:5px;padding:.05em .4em}
.tcaret{margin-left:auto;color:var(--art-muted);transition:transform .15s}
.tcard.open .tcaret{transform:rotate(90deg)}
.tcard-iscos{max-height:0;overflow:hidden;transition:max-height .25s ease;font-size:.8rem;line-height:1.5;color:var(--art-muted)}
.tcard.open .tcard-iscos{max-height:1200px;padding:.2rem .8rem .7rem}
.tcard-iscos code{font-family:'Source Code Pro',monospace;font-size:.85em;color:var(--art-fg)}
.tcard-iscos .tg{font-family:'Source Code Pro',monospace;font-size:.7em;color:var(--art-accent)}
.vb-sub{font-family:'Source Code Pro',monospace;font-size:.64rem;text-transform:uppercase;letter-spacing:.04em;color:var(--art-muted);margin:.6rem 0 .35rem}
.vb-sub:first-child{margin-top:.1rem}
.vb-pills{display:flex;flex-wrap:wrap;gap:.3rem}
.vb-pill{font-size:.74rem;background:var(--art-panel);border:1px solid var(--art-border);border-radius:999px;padding:.1rem .5rem;color:var(--art-fg)}
.vb-extra{display:none}
.tcard.vb-open .vb-extra{display:inline-block}
.vb-more{font-size:.72rem;color:var(--art-muted);background:none;border:1px dashed var(--art-border);border-radius:999px;padding:.1rem .55rem;cursor:pointer;font-family:'Source Code Pro',monospace}
.vb-more:hover{color:var(--art-fg);border-color:var(--art-muted)}

/* ===== data explorer / tables ===== */
.dt-tabs{margin-bottom:.8rem}
.dt{font-family:'Source Code Pro',monospace}
.dt-bar{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-bottom:.5rem}
.dt-search{flex:1;min-width:180px;font-family:inherit;font-size:.82rem;padding:.4rem .6rem;border:1px solid var(--art-border);border-radius:8px;background:var(--art-bg);color:var(--art-fg)}
.dt-count{font-size:.72rem;color:var(--art-muted)}
.dt-filter{font-size:.74rem;color:var(--art-muted);display:inline-flex;align-items:center;gap:.3rem;cursor:pointer}
.dt-scroll{max-height:460px;overflow:auto;border:1px solid var(--art-border);border-radius:10px}
.dt-table{border-collapse:collapse;width:100%;font-size:.8rem}
.dt-table th{position:sticky;top:0;background:var(--art-panel);text-align:left;padding:.5rem .7rem;white-space:nowrap;border-bottom:1px solid var(--art-border);font-weight:600;color:var(--art-fg);user-select:none}
.dt-table th.num{text-align:right}
.dt-table th.asc::after{content:' ▲';color:var(--art-accent);font-size:.7em}
.dt-table th.desc::after{content:' ▼';color:var(--art-accent);font-size:.7em}
.dt-table td{padding:.4rem .7rem;border-bottom:1px solid var(--art-border);color:var(--art-fg);vertical-align:top}
.dt-table td.num{text-align:right;font-variant-numeric:tabular-nums}
.dt-table tbody tr:hover{background:var(--art-panel)}
.grad-tag{display:inline-block;min-width:1.6em;text-align:center;border-radius:5px;padding:.02em .35em;font-size:.72em;color:#fff}
.grad-tag.g4{background:var(--art-accent)} .grad-tag.g3{background:var(--art-gold);color:#3a2d00}
.grad-tag.g2{background:var(--art-blue)} .grad-tag.g1{background:var(--art-green)}
.grad-tag.g0{background:var(--art-muted)}
.grad-tag.g-1{background:transparent;color:var(--art-muted);border:1px solid var(--art-border)}

/* sub-subheading (e.g. inline question) */
.art-body h4{font-size:1.08rem;margin:1.7rem 0 .3rem;font-weight:600;color:var(--art-fg)}

/* example task list (Accountants) */
.tasklist{border:1px solid var(--art-border);border-radius:12px;padding:.9rem 1.1rem;background:var(--art-bg)}
.tl-head{font-family:'Source Code Pro',monospace;font-size:.8rem;color:var(--art-muted);margin-bottom:.7rem}
.tl-head b{color:var(--art-fg)}
.tl-row{display:grid;grid-template-columns:1fr 168px;gap:.7rem;align-items:center;padding:.32rem 0;border-top:1px solid var(--art-border)}
.tl-task{font-size:.92rem;line-height:1.35}
.tl-track{position:relative;height:18px;background:var(--art-panel);border-radius:5px;overflow:hidden}
.tl-track::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--art-border);z-index:2}
.tl-fill{position:absolute;left:0;top:0;bottom:0;background:var(--art-accent);opacity:.78;border-radius:5px}
.tl-score{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-family:'Source Code Pro',monospace;font-size:.72rem;color:var(--art-fg);z-index:3}
@media(max-width:560px){.tl-row{grid-template-columns:1fr;gap:.2rem}.tl-track{width:100%}}

/* accountants voorbeeld — eenvoudige tabel (leeftijd × kwartaal) */
.acc-scroll{overflow-x:auto;border:1px solid var(--art-border);border-radius:10px}
.acc-table{border-collapse:collapse;font-family:'Source Code Pro',monospace;font-size:.78rem;white-space:nowrap}
.acc-table th,.acc-table td{padding:.4rem .6rem;border-bottom:1px solid var(--art-border);text-align:right;font-variant-numeric:tabular-nums}
.acc-table thead th{background:var(--art-panel);color:var(--art-fg);font-weight:600}
.acc-table .acc-rowhead{position:sticky;left:0;background:var(--art-bg);color:var(--art-fg);text-align:left;font-weight:600;z-index:1}
.acc-table thead .acc-rowhead{background:var(--art-panel);z-index:2}
.acc-table tbody tr:hover td{background:var(--art-panel)}
