:root{color-scheme:light dark;--bg:#fff;--fg:#111827;--muted:#6b7280;--line:#e5e7eb;--accent:#1d4ed8;--warn:#b45309}
@media (prefers-color-scheme:dark){:root{--bg:#0b1220;--fg:#e5e7eb;--muted:#9ca3af;--line:#1f2937;--accent:#60a5fa;--warn:#f59e0b}}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--fg);background:var(--bg);line-height:1.5}
.widget-body{padding:12px}
.widget{border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--bg);max-width:520px}
.widget-title{font-size:1rem;margin:0 0 8px}
.widget--fail-closed{border-color:var(--warn)}
.widget-intro{margin:0 0 12px;color:var(--muted)}
.widget-facts{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0 0 12px}
.widget-facts dt{color:var(--muted)}
.widget-facts dd{margin:0;font-weight:600}
.widget-subhead{font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:12px 0 4px}
.widget-list{margin:0 0 8px;padding-left:18px}
.widget-state{color:var(--warn)}
.widget-state--frozen{font-weight:600}
.widget-fineprint,.widget-hint{font-size:.8rem;color:var(--muted)}
.widget-cta{display:inline-block;margin-top:8px;padding:8px 14px;border-radius:8px;background:var(--accent);color:#fff;text-decoration:none;border:0;cursor:pointer;font:inherit}
.widget-form{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.widget-input{padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg)}
.widget-success{border:1px solid var(--accent);border-radius:8px;padding:12px}
.widget-footer{margin-top:12px;color:var(--muted)}
[data-disposition="PROHIBITED"]{color:var(--warn)}
.demo-body{padding:24px;max-width:1100px;margin:0 auto}
.demo-title{margin:0 0 8px}
.demo-intro,.demo-boundary{color:var(--muted);margin:0 0 8px}
.demo-session-panel,.demo-widgets{margin-top:24px}
.demo-session--missing{color:var(--warn)}
.demo-facts{display:grid;grid-template-columns:auto 1fr;gap:4px 12px}
.demo-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.demo-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--bg)}
.demo-card-title{margin:0 0 8px;font-size:.95rem}
.demo-frame{width:100%;min-height:260px;border:0;border-radius:8px;background:var(--bg)}
.demo-footer{margin-top:24px;color:var(--muted)}
