:root{--color-ink:#0e1b24;--color-ink-soft:#1b2a36;--color-canvas:#fff;--color-paper:#f2f7fb;--color-bone:#e8f1f8;--color-slate:#6e7f8c;--color-slate-light:#b8c7d2;--color-accent:#2aa4e5;--color-accent-deep:#1880bd;--color-accent-soft:#7cc6ef;--color-accent-wash:#e3f3fc;--color-accent-ink:#0d5d8f;--color-success:#16a34a;--color-success-wash:#e7f7ee;--color-warning:#c77d10;--color-warning-wash:#fbf0db;--color-danger:#d8453f;--color-danger-wash:#fbe7e6;--color-info:#1880bd;--color-info-wash:#e3f3fc;--color-rule:rgba(14,27,36,.1);--color-rule-strong:rgba(14,27,36,.18);--font-display:"Plus Jakarta Sans",system-ui,sans-serif;--font-sans:"Plus Jakarta Sans",system-ui,sans-serif;--font-mono:"Plus Jakarta Sans",system-ui,sans-serif;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:9999px;--shadow-card:0 1px 2px rgba(14,27,36,.05),0 1px 1px rgba(14,27,36,.03);--shadow-pop:0 8px 24px rgba(14,27,36,.08),0 2px 6px rgba(14,27,36,.04);--shadow-focus:0 0 0 3px rgba(42,164,229,.28)}[data-theme=dark]{--color-ink:#eaf2f8;--color-ink-soft:#cddbe6;--color-canvas:#0f1b24;--color-paper:#0a1219;--color-bone:#16242f;--color-slate:#8aa0ad;--color-slate-light:#3a4c59;--color-accent:#3fb0ee;--color-accent-deep:#7cc6ef;--color-accent-wash:rgba(63,176,238,.12);--color-rule:hsla(0,0%,100%,.1);--color-rule-strong:hsla(0,0%,100%,.18);--shadow-card:0 1px 2px rgba(0,0,0,.4);--shadow-pop:0 8px 24px rgba(0,0,0,.55);--shadow-focus:0 0 0 3px rgba(63,176,238,.36)}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--color-paper)}body{font-family:var(--font-sans);color:var(--color-ink);font-size:14px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}::selection{background:var(--color-accent-wash)}.shell{display:flex;min-height:100vh}.sidebar{width:240px;flex-shrink:0;background:var(--color-canvas);border-right:1px solid var(--color-rule);padding:22px 14px;position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.sidebar .logo{height:28px;margin:2px 8px;align-self:flex-start}.sidebar .tagline{letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent-deep);margin:8px 8px 22px}.sidebar .foot,.sidebar .tagline{font-family:var(--font-mono);font-size:10px}.sidebar .foot{margin-top:auto;letter-spacing:.1em;padding:14px 8px 0;border-top:1px solid var(--color-rule)}.nav a,.sidebar .foot{color:var(--color-slate)}.nav a{position:relative;display:flex;align-items:center;gap:10px;padding:9px 14px;border-radius:var(--radius-md);font-weight:600;font-size:13px;margin-bottom:2px;transition:background .15s,color .15s}.nav a.active,.nav a:hover{background:var(--color-bone);color:var(--color-ink)}.nav-ico{flex-shrink:0}.nav a .nav-ico{color:var(--color-slate);transition:color .15s}.nav a.active .nav-ico,.nav a:hover .nav-ico{color:var(--color-accent)}.nav a.active:before{content:"";position:absolute;left:2px;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:9999px;background:var(--color-accent)}.main{flex:1 1;min-width:0}.topbar{height:60px;border-bottom:1px solid var(--color-rule);background:color-mix(in srgb,var(--color-paper) 85%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:0 36px}.content{padding:32px 36px 64px;max-width:1180px}.eyebrow{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--color-accent-deep);margin-bottom:10px}.text-page-title,h1{font-family:var(--font-display);font-weight:800;font-size:28px;letter-spacing:-.02em;color:var(--color-ink);margin-bottom:6px}.sub{color:var(--color-slate);margin-bottom:26px;font-size:14px;line-height:1.55;max-width:72ch}.text-section,h2{font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:-.01em;color:var(--color-ink);margin:30px 0 14px}.mono{font-family:var(--font-mono);font-size:12px;font-feature-settings:"tnum"}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));grid-gap:14px;gap:14px}.card{background:var(--color-canvas);border:1px solid var(--color-rule);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:18px 20px}.card.quiet{background:var(--color-bone);box-shadow:none}.card .label{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-slate);margin-bottom:10px}.card .value{font-family:var(--font-display);font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1;color:var(--color-ink)}.card .value.green{color:var(--color-success)}.card .value.amber{color:var(--color-warning)}.card .value.red{color:var(--color-danger)}.card .value.blue{color:var(--color-accent-deep)}.panel{background:var(--color-canvas);border:1px solid var(--color-rule);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}table{width:100%;border-collapse:collapse}th{text-align:left;font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--color-slate);background:var(--color-bone)}td,th{padding:12px 16px;border-bottom:1px solid var(--color-rule)}td{color:var(--color-ink-soft);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--color-bone)}.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 10px;border-radius:var(--radius-pill);font-size:12px;font-weight:600;letter-spacing:.01em}.badge.active,.badge.allowed,.badge.clean{background:var(--color-success-wash);color:var(--color-success)}.badge.flag,.badge.review{background:var(--color-warning-wash);color:var(--color-warning)}.badge.blocked,.badge.suspended{background:var(--color-danger-wash);color:var(--color-danger)}.badge.hit,.badge.redacted,.badge.shadow{background:var(--color-accent-wash);color:var(--color-accent-ink)}.badge.enforce,.btn,button{background:var(--color-ink);color:var(--color-canvas)}.btn,button{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:var(--font-display);font-weight:700;font-size:14px;height:36px;padding:0 18px;border:none;border-radius:var(--radius-pill);cursor:pointer;transition:filter .15s,background .15s,border-color .15s}button:hover{filter:brightness(1.08)}button.accent{background:var(--color-accent)}button.ghost{background:transparent;border:1px solid var(--color-rule-strong);color:var(--color-ink);border-radius:var(--radius-md);height:34px}button.ghost:hover{background:var(--color-bone);filter:none}button.ghost.on{border-color:var(--color-accent);color:var(--color-accent-deep);background:var(--color-accent-wash)}button.danger{background:var(--color-danger)}button:disabled{opacity:.5;cursor:not-allowed}a:focus-visible,button:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.mode-switch{display:inline-flex;border:1px solid var(--color-rule);border-radius:var(--radius-pill);overflow:hidden;background:var(--color-canvas)}.mode-switch button{border-radius:0;background:transparent;color:var(--color-slate);font-family:var(--font-mono);font-size:12px;font-weight:600;height:32px;padding:0 14px;letter-spacing:.04em}.mode-switch button.active.shadow{background:var(--color-accent);color:#fff}.mode-switch button.active.enforce{background:var(--color-ink);color:#fff}input,select,textarea{font-family:var(--font-sans);background:var(--color-canvas);border:1px solid var(--color-rule);color:var(--color-ink);border-radius:var(--radius-sm);padding:9px 12px;font-size:14px;width:100%;transition:box-shadow .15s,border-color .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}textarea{min-height:96px;resize:vertical;font-family:var(--font-mono);font-size:13px}.field{margin-bottom:12px}.field label{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--color-slate);margin-bottom:6px}.row{gap:12px;align-items:flex-end}.chips,.row{display:flex;flex-wrap:wrap}.chips{gap:6px}.expand{cursor:pointer;color:var(--color-accent-deep);font-size:11px;font-weight:600}.detail,.expand{font-family:var(--font-mono)}.detail{background:var(--color-ink);color:#cfe0ec;border-radius:var(--radius-md);padding:16px;margin-top:8px;white-space:pre-wrap;font-size:12px;line-height:1.5;overflow-x:auto}[data-theme=dark] .detail{background:#06101a}.empty{color:var(--color-slate);padding:18px 0}.keybox{background:var(--color-success-wash);border:1px solid var(--color-success);border-radius:var(--radius-md);padding:14px 16px;margin-top:14px}.keybox .k{font-family:var(--font-mono);font-size:13px;color:var(--color-ink);font-weight:600;word-break:break-all}.notice{background:var(--color-accent-wash);border-left:3px solid var(--color-accent);border-radius:var(--radius-sm);padding:12px 16px;color:var(--color-accent-ink);margin-top:16px;font-size:13px}@keyframes lf-dash{to{stroke-dashoffset:-20}}@keyframes lf-pulse{0%,to{box-shadow:0 0 0 0 rgba(42,164,229,.45)}50%{box-shadow:0 0 0 9px rgba(42,164,229,0)}}.pipe{display:flex;align-items:stretch;gap:0;flex-wrap:wrap;row-gap:18px}.pipe-node{background:var(--color-canvas);border:1.5px solid var(--color-rule);border-radius:var(--radius-lg);padding:14px 16px;min-width:130px;transition:border-color .2s,opacity .2s;opacity:.55}.pipe-node.active,.pipe-node.done{opacity:1;border-color:var(--color-accent)}.pipe-node.active{animation:lf-pulse 1.2s infinite}.pipe-node.blocked{border-color:var(--color-danger);opacity:1}.pipe-node .pn-label{font-family:var(--font-display);font-weight:700;font-size:14px}.pipe-node .pn-sub{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-slate);margin-top:3px}.pipe-conn{width:34px;display:flex;align-items:center;flex-shrink:0}.pipe-conn svg line{stroke:var(--color-rule-strong);stroke-width:2}.pipe-conn.flow svg line{stroke:var(--color-accent);stroke-dasharray:6 4;animation:lf-dash .55s linear infinite}@media (prefers-reduced-motion:reduce){.pipe-conn.flow svg line,.pipe-node.active{animation:none}}.kb{max-width:860px}.kb h2{font-size:20px;margin:40px 0 10px;padding-top:18px;border-top:1px solid var(--color-rule)}.kb h2:first-of-type{border-top:none;padding-top:0}.kb h3{font-family:var(--font-display);font-weight:700;font-size:15px;margin:18px 0 6px}.kb p{margin-bottom:10px}.kb p,.kb ul{color:var(--color-ink-soft);line-height:1.7}.kb ul{margin:8px 0 14px 20px}.kb li{margin-bottom:5px}.kb code{background:var(--color-bone);padding:2px 6px;border-radius:var(--radius-xs);color:var(--color-accent-ink)}.kb code,.kb pre{font-family:var(--font-mono);font-size:12px}.kb pre{background:var(--color-ink);color:#cfe0ec;border-radius:var(--radius-md);padding:16px 18px;line-height:1.6;overflow-x:auto;margin:10px 0 16px}.kb pre code{background:none;color:inherit;padding:0}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:14px;gap:14px;margin:14px 0}.feature{background:var(--color-canvas);border:1px solid var(--color-rule);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:18px 20px}.feature .ft{font-family:var(--font-display);font-weight:700;font-size:15px;margin-bottom:6px;display:flex;align-items:center;gap:8px}.feature p{font-size:13px;margin:0;color:var(--color-ink-soft)}.kb-toc{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.kb-toc a{font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;padding:6px 12px;border:1px solid var(--color-rule);border-radius:var(--radius-pill);color:var(--color-slate)}.kb-toc a:hover{border-color:var(--color-accent);color:var(--color-accent-deep);background:var(--color-accent-wash)}