/* ── Shinobi Tools brand stylesheet — "Gereedschapsgeel" ─────────────────
   Shared by all subpages (tool pages, guides, site pages). The hub index
   carries its own inline copy of these tokens for its one-off hero.
   blade-yellow letterhead · ink black · steel neutrals · hanko-red seal only
   type: Archivo variable (wdth 62–125) · 忍 seal in Yuji Syuku            */
:root{
  --blade:oklch(84% 0.165 92);
  --blade-press:oklch(76% 0.158 90);
  --ink:oklch(22% 0.018 95);
  --ink-2:oklch(28% 0.016 95);
  --ink-line:oklch(44% 0.022 95);
  --paper:oklch(98% 0.005 95);
  --steel:oklch(94% 0.007 95);
  --steel-line:oklch(85% 0.01 95);
  --txt:oklch(24% 0.015 95);
  --mut:oklch(44% 0.018 95);
  --txt-on-ink:oklch(95% 0.01 95);
  --mut-on-ink:oklch(76% 0.02 95);
  --seal:oklch(56% 0.19 32);
  --jade-deep:oklch(46% 0.11 165);
  --sans:"Archivo",system-ui,sans-serif;
  --on-accent:oklch(22% 0.018 95);  /* tekst op geel/accent — constant in beide modes */
  --card:oklch(100% 0 0);
  --drop-line:oklch(62% 0.03 95);
  --ac:var(--blade); /* per-page accent override via inline style */
}
html{color-scheme:light}
html[data-theme="dark"]{color-scheme:dark}
:root[data-theme="dark"]{
    --paper:color-mix(in oklab, oklch(84% 0.165 92) 7%, oklch(27% 0.012 95));
    --steel:color-mix(in oklab, oklch(84% 0.165 92) 9%, oklch(32% 0.012 95));
    --steel-line:oklch(44% 0.02 95);
    --ink:oklch(92% 0.012 95);
    --txt:oklch(92% 0.01 95);
    --mut:oklch(75% 0.015 95);
    --jade-deep:oklch(70% 0.12 165);
    --card:oklch(31% 0.012 95);
    --drop-line:oklch(55% 0.02 95);
}
[data-theme="dark"] .warnbox{color:oklch(85% 0.1 85)}
[data-theme="dark"] .err{color:oklch(72% 0.16 28)}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--txt);font-family:var(--sans);
  font-size:1.0625rem;line-height:1.65;font-kerning:normal}
.wrap{max-width:860px;margin:0 auto;padding:0 clamp(18px,4vw,32px) 60px}
a{color:var(--txt);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{text-decoration-color:var(--seal)}
b,strong{color:var(--txt)}
:focus-visible{outline:3px solid var(--ink);outline-offset:2px}

/* display voice */
.disp{font-stretch:118%;font-weight:840;text-transform:uppercase;letter-spacing:-.01em;line-height:1.02;text-wrap:balance}

/* snap-off blade rule — the brand divider */
.blade-rule{height:9px;border:0;margin:0;
  background:repeating-linear-gradient(115deg,currentColor 0 30px,transparent 30px 36px)}

/* ── letterhead: paper masthead, brand line in yellow (geel = accent) ── */
.mast{background:var(--paper);color:var(--ink)}
.mast .mast-row{max-width:860px;margin:0 auto;padding:16px clamp(18px,4vw,32px);
  display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand svg{display:block}
.brand .word{font-stretch:118%;font-weight:860;font-size:1.12rem;letter-spacing:.02em;line-height:1}
.brand .word small{display:block;font-stretch:82%;font-weight:640;font-size:.55rem;letter-spacing:.22em;margin-top:2px;color:var(--mut)}
.mast a.tool{font-weight:700;font-size:.9rem;text-decoration:none;border:1.5px solid var(--ink);padding:8px 13px}
.mast a.tool:hover{background:var(--ink);color:var(--blade)}
.mast .blade-rule{color:var(--blade)}

/* page header block */
.kick{display:inline-block;border:2px solid var(--ink);padding:6px 12px;margin:34px 0 0;
  font-stretch:86%;font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:var(--txt)}
.kick .chip{display:inline-block;width:12px;height:12px;background:var(--ac);border:1.5px solid var(--ink);vertical-align:-1px;margin-right:8px}
h1{font-size:clamp(1.9rem,4.6vw,2.7rem);line-height:1.08;margin:16px 0 14px;
  font-stretch:112%;font-weight:820;letter-spacing:-.01em;text-wrap:balance}
h1 span{background:var(--blade);color:var(--on-accent);padding:0 .12em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
h2{font-size:clamp(1.2rem,2.4vw,1.45rem);margin:42px 0 12px;font-stretch:112%;font-weight:800;text-transform:uppercase;letter-spacing:0}
h3{font-size:1.08rem;font-weight:760;margin:22px 0 8px}
p,li{color:var(--mut);font-size:1rem;max-width:72ch}
ul,ol{padding-left:22px}
li{margin:6px 0}
li::marker{color:var(--ink);font-weight:700}

/* CTA — blade yellow block */
.cta{display:inline-block;background:var(--blade);color:var(--on-accent);border:none;
  font-stretch:100%;font-weight:780;font-size:1rem;text-transform:uppercase;letter-spacing:.02em;
  padding:15px 28px;text-decoration:none;margin:14px 0 4px;border:2px solid var(--ink);
  box-shadow:4px 4px 0 var(--ink);transition:box-shadow .12s,transform .12s}
.cta:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
@media (prefers-reduced-motion:reduce){.cta:hover{transform:none;box-shadow:4px 4px 0 var(--ink)}}
.ctasub{font-size:.82rem;color:var(--mut);display:block;margin-top:10px;font-weight:560}

/* steps — instruction strip (real sequences only) */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));border-top:2.5px solid var(--ink);border-bottom:1px solid var(--steel-line);margin:18px 0}
.step{padding:20px 18px 20px 0;background:none;border:0;border-radius:0}
.step+.step{border-left:1px solid var(--steel-line);padding-left:18px}
@media (max-width:640px){.step+.step{border-left:0;padding-left:0;border-top:1px solid var(--steel-line)}.step{padding-right:0}}
.step h3{margin:0 0 6px;font-size:1rem;font-weight:760}
.step h3 em{font-style:normal;font-stretch:120%;font-weight:860;font-size:1.5rem;display:block;margin:0 0 6px;color:var(--ink)}
.step p{margin:0;font-size:.94rem}

/* steel plate for callouts / notes */
.plate-note{background:var(--steel);padding:18px 20px;margin:16px 0}
.plate-note p{margin:0}

/* tables (guides) */
table{border-collapse:collapse;width:100%;font-size:.95rem}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--steel-line);color:var(--mut)}
th{color:var(--txt);font-stretch:86%;font-weight:700;text-transform:uppercase;font-size:.75rem;letter-spacing:.07em;border-bottom:2.5px solid var(--ink)}

/* footer */
.foot{margin-top:56px;border-top:2.5px solid var(--ink);padding-top:16px;
  font-size:.88rem;display:flex;gap:8px 18px;flex-wrap:wrap;align-items:center}
.foot a{color:var(--mut);text-decoration:none;font-weight:600}
.foot a:hover{color:var(--txt);text-decoration:underline;text-decoration-thickness:2px}
.foot .seal{margin-left:auto;width:30px;aspect-ratio:1;background:var(--seal);color:oklch(97% 0.02 60);
  display:grid;place-items:center;font-family:"Yuji Syuku",serif;font-size:17px;transform:rotate(-4deg)}

/* faq blocks reused on some pages */
.faq{border-top:2.5px solid var(--ink)}
.faq details{border-bottom:1px solid var(--steel-line)}
.faq summary{cursor:pointer;padding:15px 4px;font-weight:740;font-size:1rem;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px;color:var(--txt)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"＋";font-weight:640}
.faq details[open] summary::after{content:"−"}
.faq p{margin:0 4px 16px}

ins.adsbygoogle[data-ad-status="unfilled"]{display:none!important}

/* ── suite-lockup "Part of Shinobi Tools" — KLAAR VOOR ZUSTERSITE-UITROL, nog nergens actief ──
   Gebruik op zustersites (header of footer, één plek):
   <a class="suite-badge" href="https://shinobitools.com" rel="noopener">
     <svg width="14" height="14" viewBox="0 0 32 32" fill="none" aria-hidden="true"><path d="M16 1 L20.2 11.8 L31 16 L20.2 20.2 L16 31 L11.8 20.2 L1 16 L11.8 11.8 Z" fill="currentColor"/></svg>
     Part of Shinobi Tools
   </a>
   Voegt herkenning toe zonder de eigen merkidentiteit van de zustersite te vervangen. */
.suite-badge{display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);font-stretch:86%;font-weight:680;
  font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);text-decoration:none;
  border:1.5px solid var(--steel-line);padding:5px 10px;transition:border-color .15s,color .15s}
.suite-badge:hover{border-color:var(--ink);color:var(--txt)}
.suite-badge svg{display:block}

/* ── tool-console (licht werkbank-paneel) — gedeeld door taakpagina's ── */
:root{--amber:oklch(80% 0.14 80);--jade:oklch(64% 0.13 165)}
.dojo{background:var(--steel);color:var(--txt);margin:18px 0 8px;border-top:2.5px solid var(--ink);padding:clamp(18px,2.8vw,26px)}
.dojo .ttl{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.dojo .ttl h2{margin:0;font-size:1.15rem;font-stretch:112%;font-weight:800;text-transform:uppercase}
.dojo .ttl h2::after{display:none}
.dojo .ttl .sub{font-stretch:84%;font-weight:600;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:var(--mut)}
.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;
  border:2px dashed var(--drop-line);background:var(--paper);padding:clamp(28px,4vw,40px) 20px;
  cursor:pointer;text-align:center;transition:border-color .15s,background .15s}
.drop:hover,.drop.hover{border-color:var(--ink);background:color-mix(in oklab,var(--blade) 10%,var(--paper))}
.drop .big{font-size:1.15rem;font-weight:760}
.drop .small{font-size:.88rem;color:var(--mut)}
.drop .browse{color:var(--txt);font-weight:700;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--blade);text-decoration-thickness:3px}
.drop input{display:none}
.prog{display:none;margin:16px 4px 2px;font-size:.95rem;color:var(--mut)}
.prog .spin{display:inline-block;width:12px;height:12px;border:2px solid var(--steel-line);border-top-color:var(--ink);border-radius:50%;animation:sp 1s linear infinite;margin-right:9px;vertical-align:-1px}
@keyframes sp{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.prog .spin{animation:none;border-color:var(--ink)}}
.err{color:oklch(48% 0.18 28);font-size:.95rem;margin:14px 4px 0;font-weight:600}
.out{display:none;margin-top:16px}
.warnbox{background:color-mix(in oklab,var(--amber) 22%,var(--paper));border:1px solid oklch(62% 0.12 80);padding:11px 14px;margin:4px 0 14px;color:oklch(38% 0.09 70);font-size:.92rem}
.foundlist{border:1px solid var(--steel-line);background:var(--paper);margin:6px 0 16px}
.found{display:flex;gap:12px;padding:10px 14px;border-top:1px solid var(--steel-line);font-size:.93rem;align-items:baseline}
.found:first-child{border-top:0}
.found .ic{flex:0 0 auto}
.found .lb{font-stretch:84%;font-weight:700;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--txt);flex:0 0 150px}
.found .vl{color:var(--mut);word-break:break-word}
.found.gone .vl{text-decoration:line-through;text-decoration-color:var(--jade-deep);text-decoration-thickness:2px}
.sumline{font-size:.95rem;font-weight:660;color:var(--jade-deep);margin:2px 4px 14px;display:flex;align-items:center;gap:10px}
.sumline::before{content:"済";font-family:"Yuji Syuku",serif;font-size:1.05rem;line-height:1;color:oklch(97% 0.02 60);
  background:var(--seal);padding:5px 6px;transform:rotate(-4deg);animation:stamp .26s cubic-bezier(.22,1,.36,1) both}
@keyframes stamp{from{transform:scale(1.7) rotate(-11deg);opacity:0}to{transform:scale(1) rotate(-4deg);opacity:1}}
@media (prefers-reduced-motion:reduce){.sumline::before{animation:none}}
.bar-actions{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:4px 0}
.dlb{font-stretch:92%;font-weight:700;font-size:.87rem;color:var(--txt);background:var(--paper);border:1.5px solid var(--steel-line);
  padding:10px 15px;text-decoration:none;cursor:pointer;text-transform:uppercase;letter-spacing:.03em}
.dlb:hover{border-color:var(--ink)}
.dlb.main{background:var(--blade);color:var(--on-accent);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}
.dlb.main:hover{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
@media (prefers-reduced-motion:reduce){.dlb.main:hover{transform:none;box-shadow:3px 3px 0 var(--ink)}}
.privacy-note{font-size:.8rem;color:var(--mut)}
.privacy-note .dlnow{color:var(--mut);text-decoration:underline;text-underline-offset:2px}
.privacy-note .dlnow:hover{color:var(--txt)}
.next{margin-top:16px;padding:14px 16px;border:1px dashed var(--drop-line);display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:.9rem;color:var(--mut)}
.next b{color:var(--txt)}

/* thema-toggle (licht = default; keuze in localStorage) */
.theme-toggle{font:inherit;background:none;border:1.5px solid var(--steel-line);color:var(--mut);
  padding:6px 11px;cursor:pointer;font-size:1rem;line-height:1;transition:border-color .15s,color .15s}
.theme-toggle:hover{border-color:var(--ink);color:var(--txt)}

/* tabellen mogen zijwaarts scrollen i.p.v. de pagina meesleuren */
.tblwrap{overflow-x:auto}
