/* /workbench/ — "Your rules, visibly enforced" (on the site tokens; no new colours) */
.wb-top{padding-bottom:var(--sp-6)} .wb-top h1{max-width:16ch;margin-bottom:var(--sp-4)} .wb-top .lead{max-width:33em;margin-bottom:var(--sp-6)}
.wb-scene{position:relative;width:100%;aspect-ratio:16/8;min-height:280px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:radial-gradient(900px 500px at 50% 45%,#141A2B 0%,#0E1220 45%,#07090E 100%);isolation:isolate}
@media (max-width:700px){.wb-scene{aspect-ratio:4/3}}
.wb-scene canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.wb-scene[data-backend="none"] canvas{display:none}
.wb-svg{position:absolute;inset:0;width:100%;height:100%;display:none}
.wb-scene[data-backend="none"] .wb-svg{display:block}
.wb-svg text{fill:var(--muted);font:600 13px/1 var(--font-body);letter-spacing:.04em}
.wb-svg .wb-svg-agent{fill:#5EE1D6;opacity:.95} .wb-svg .wb-svg-agent-label{fill:#5EE1D6;font-size:12px}
.wb-svg .wb-svg-node{fill:#D4AF37;opacity:.55} .wb-svg .wb-svg-link{stroke:#5EE1D6;stroke-width:2;opacity:.12} .wb-svg .wb-svg-gate{fill:none;stroke:#D4AF37;stroke-width:2;opacity:.25}
.wb-svg .is-granted .wb-svg-link{opacity:.85} .wb-svg .is-granted .wb-svg-node{opacity:1}
.wb-svg .is-refused .wb-svg-gate{opacity:1;stroke-width:4;stroke:#F2F4F8} .wb-svg .is-refused .wb-svg-link{opacity:.35;stroke-dasharray:6 6}
.wb-svg .is-revoked .wb-svg-link{opacity:.12;stroke:#C98A2E}
.wb-label{position:absolute;transform:translate(-50%,-50%);padding:.2rem .55rem;border-radius:var(--radius-pill);background:rgba(7,9,14,.72);border:1px solid var(--line);color:var(--muted);font:600 .78rem/1.2 var(--font-body);letter-spacing:.04em;white-space:nowrap;pointer-events:none;transition:color var(--dur-fast),border-color var(--dur-fast)}
.wb-label.is-granted{color:var(--text);border-color:rgba(94,225,214,.6)} .wb-label.is-refused{color:#F2F4F8;border-color:#D4AF37} .wb-label.is-agent{color:#5EE1D6;border-color:rgba(94,225,214,.5)}
.wb-motion-row{display:flex;gap:var(--sp-4);align-items:center;margin-top:var(--sp-3)} .wb-scene-state{font-size:.7rem;color:var(--dim)}
.wb-h2{font-size:var(--fs-xl);margin-bottom:var(--sp-5)}
.wb-steps{list-style:none;margin:0 0 var(--sp-8);padding:0;display:grid;gap:var(--sp-3)}
.wb-steps li{display:grid;grid-template-columns:2.2rem 1fr auto;gap:var(--sp-4);align-items:center;padding:var(--sp-4) var(--sp-5);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-height:72px}
.wb-steps li[aria-current="step"]{border-color:rgba(212,175,55,.6);box-shadow:var(--glow-gold)}
.wb-steps li b{display:block;color:var(--text)} .wb-steps li span:not(.wb-step-n){display:block;color:var(--muted);font-size:var(--fs-sm);max-width:60ch}
.wb-step-n{display:inline-grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:50%;border:1px solid var(--line);font-family:var(--font-display);font-size:1.15rem;color:var(--gold)}
.wb-steps li[aria-current="step"] .wb-step-n{background:var(--gold);color:#0b0c10;border-color:var(--gold)}
@media (max-width:700px){.wb-steps li{grid-template-columns:2.2rem 1fr}.wb-steps li .btn{grid-column:2}}
.wb-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5);margin-bottom:var(--sp-8)}
@media (max-width:900px){.wb-grid{grid-template-columns:1fr}} .wb-grid > *{min-width:0}   /* NL build 2026-09-23: a grid item defaults to min-width:auto, so the verifier table (nowrap cells, longer Dutch headers) stretched the card past a 390 px phone instead of scrolling inside .wv-tablewrap */
.wb-card h3{font-size:var(--fs-lg);margin-bottom:var(--sp-3)} .wb-card-trace{grid-column:1 / -1}
.wb-fn{border:0;padding:0;margin:0 0 var(--sp-4)} .wb-fn legend{font-size:var(--fs-sm);color:var(--muted);margin-bottom:var(--sp-2)}
.wb-perm-hint{font-size:var(--fs-sm);margin-bottom:var(--sp-3)}
.wb-perms{list-style:none;margin:0 0 var(--sp-4);padding:0;display:grid;gap:var(--sp-2)}
.wb-perm{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:48px;padding:.6rem .9rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:#05070b;color:var(--text);font:inherit;cursor:pointer;text-align:left}
.wb-perm[aria-pressed="true"]{border-color:rgba(94,225,214,.7);background:var(--nexus-soft)} .wb-perm:disabled{opacity:.5;cursor:default}
.wb-perm-state{font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)} .wb-perm[aria-pressed="true"] .wb-perm-state{color:var(--nexus)}
.wb-run-row{margin:0}
.wb-result{min-height:9rem;color:var(--text)} .wb-result-actor{color:var(--muted);font-size:var(--fs-sm);margin-bottom:var(--sp-3)}
.wb-slots{margin:0 0 var(--sp-3);padding-left:1.2rem} .wb-slots li{padding:.15rem 0} .wb-slots li::marker{color:var(--nexus)}
.wb-refused{color:#F2F4F8;border-left:3px solid var(--gold);padding-left:var(--sp-3)} .wb-refused-list{color:var(--muted);font-size:var(--fs-sm)}
.wb-brief{font-family:var(--font-display);font-style:italic;font-size:var(--fs-lg);margin-bottom:var(--sp-3)}
.wb-trace{list-style:none;margin:0 0 var(--sp-4);padding:0;display:grid;gap:var(--sp-3);max-height:34rem;overflow:auto}
.wb-entry{border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--sp-3) var(--sp-4);background:#05070b}
.wb-entry.is-refused{border-left:3px solid var(--gold)} .wb-entry.is-allowed{border-left:3px solid var(--nexus)}
.wb-entry-head{margin:0 0 var(--sp-2);font-weight:600} .wb-entry-head .mono{color:var(--dim);margin-right:.4rem}
.wb-dl{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem var(--sp-4);margin:0;font-size:var(--fs-sm)}
@media (max-width:700px){.wb-dl{grid-template-columns:1fr}}
.wb-dl dt{color:var(--dim);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase} .wb-dl dd{margin:0;color:var(--text);overflow-wrap:anywhere}
.wb-export-row{display:flex;gap:var(--sp-4);align-items:center;flex-wrap:wrap} .wb-download{color:var(--gold)}
.wb-export-out{margin-top:var(--sp-3);max-height:22rem;overflow:auto;font-size:.78rem;background:#05070b;border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--sp-3);white-space:pre-wrap}
.wb-net{font-size:var(--fs-lg);margin-bottom:var(--sp-2)} .wb-net-n{font-size:2.4rem;color:var(--gold);margin-right:.4rem}
.wb-honesty{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)} @media (max-width:900px){.wb-honesty{grid-template-columns:1fr}}
.wb-honesty .col{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-5)} .wb-honesty .col.dna{border-color:rgba(94,225,214,.35)} .wb-honesty .col.today{border-color:rgba(212,175,55,.35)}
.wb-honesty h3{font-size:var(--fs-sm);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--sp-3)} .wb-honesty ul{margin:0;padding-left:1.2rem;color:var(--text)} .wb-honesty li{padding:.2rem 0;max-width:60ch}

/* P2 — export, verify, then tamper */
.wb-verify .lead{max-width:33em;margin-bottom:var(--sp-6)} .wb-verify .kicker{margin-bottom:var(--sp-2)}
.wv-ok{color:#9FE8DF} .wv-bad{color:#F2C46B} .wv-summary{margin:var(--sp-3) 0;color:var(--text)}
.wv-tablewrap{max-height:22rem;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-sm)} .wv-table{width:100%;border-collapse:collapse;font-size:var(--fs-xs)} .wv-table th,.wv-table td{text-align:left;padding:.35rem .55rem;border-bottom:1px solid var(--line);white-space:nowrap} .wv-table th{color:var(--dim);letter-spacing:.1em;text-transform:uppercase;font-weight:600} .wv-table td:first-child{width:1.5rem}
.wv-textarea{width:100%;background:#05070b;color:var(--text);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--sp-3);font-size:.78rem;line-height:1.4;margin:var(--sp-3) 0}
