:root,[data-theme=dark]{--bg:#0b1220;--panel:#111827;--surface:#111827;--elevated:#161e2e;--elev:#161e2e;--soft:#172033;--ink:#f8fafb;--text:#f8fafb;--text-secondary:#d1d5db;--secondary:#d1d5db;--muted:#9ca3af;--line:#1f2937;--border:#1f2937;--input:#0f172a;--hover:#161e2e;--primary:#14b8a6;--primary-hover:#5eead4;--action:#14b8a6;--action-ink:#04121b;--accent:#14b8a6;--accent-soft:#103c39;--blue:#1f6feb;--info:#3b82f6;--quantum:#7c3aed;--violet:#7c3aed;--success:#22c55e;--ok:#22c55e;--warn:#f59e0b;--danger:#ef4444;--critical:#b91c1c;--side:#111827;--side-ink:#f8fafb;--hairline:rgba(255,255,255,.06);--tint:rgba(20,184,166,.10);--grid:rgba(255,255,255,.04);--font-mono:'JetBrains Mono',ui-monospace,monospace;--shadow:0 20px 55px rgba(0,0,0,.32)}
[data-theme=light]{--bg:#f8fafc;--panel:#fff;--elevated:#f1f5f9;--soft:#eaf2ff;--ink:#0f172a;--text-secondary:#42526b;--muted:#64748b;--line:#e5e7eb;--input:#fff;--hover:#eaf2ff;--primary:#0f9488;--primary-hover:#0b756d;--accent:#0f9488;--accent-soft:#ddfbf6;--quantum:#7c3aed;--success:#16a34a;--warn:#d97706;--danger:#dc2626;--critical:#991b1b;--side:#0b1220;--side-ink:#f8fafb;--shadow:0 16px 40px rgba(15,23,42,.10)}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,select,textarea{font:inherit}
.app-skip-link{position:fixed;z-index:100;top:12px;left:12px;transform:translateY(-180%);border-radius:8px;padding:10px 14px;color:#04121b;background:#5eead4;font-weight:800;text-decoration:none}.app-skip-link:focus{transform:translateY(0)}
.app{min-height:100vh;display:grid;grid-template-columns:270px 1fr;background-color:var(--bg);background-image:radial-gradient(var(--line) .65px,transparent .65px);background-size:20px 20px;border-top:2px solid var(--accent)}
.sidebar{position:sticky;top:0;height:100vh;background:var(--side);color:var(--side-ink);padding:25px 15px 14px;display:flex;flex-direction:column;border-right:1px solid #1f2937}
.brand{display:flex;gap:13px;align-items:center;padding:0 10px 22px;border-bottom:1px solid #1f2937}.brand .mark{width:44px;height:44px;min-width:44px;display:block;object-fit:contain}.brand b{font:800 20px ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;letter-spacing:.035em}.brand small{display:block;margin-top:3px;font:700 9px var(--font-mono);color:#9ca3af;letter-spacing:.13em}
.nav{overflow:auto;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.group-title{margin:0;width:100%;color:#7c8ca3;padding:12px 11px 5px;text-transform:uppercase;font-size:9px;font-weight:700;letter-spacing:.14em}.nav-item{width:100%;height:38px;border:0;background:none;color:#b7c4d6;border-radius:9px;padding:0 11px;display:flex;align-items:center;gap:10px;text-align:left;margin:1px 0;cursor:pointer;font-size:12px;text-decoration:none;transition:.18s}.nav-item:hover{background:var(--hover);color:var(--ink);transform:translateX(2px)}.sidebar .nav-item:hover{color:#fff}.nav-item.active{background:color-mix(in srgb,var(--accent) 15%,var(--side));color:#fff;box-shadow:inset 3px 0 var(--accent)}.nav-item svg{width:16px;height:16px;min-width:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.count{margin-left:auto;background:color-mix(in srgb,var(--accent) 22%,var(--side));color:#dffbf7;padding:1px 6px;border-radius:9px;font-size:9px}.operator{margin-top:auto;display:flex;gap:9px;align-items:center;border:1px solid #243146;background:#0f1828;border-radius:12px;padding:9px}.avatar{width:31px;height:31px;border-radius:8px;background:var(--accent);color:#062c29;display:grid;place-items:center;font-weight:700}.operator small{display:block;color:#7c8ca3}
.main{min-width:0}.topbar{height:82px;display:flex;align-items:center;gap:18px;padding:0 30px;background:color-mix(in srgb,var(--bg) 94%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(16px);position:sticky;top:0;z-index:5}.portal-context{display:grid;min-width:170px}.portal-context span{color:var(--accent);font:750 9px var(--font-mono);letter-spacing:.13em;text-transform:uppercase}.portal-context strong{margin-top:3px;font-size:14px}.search{height:41px;max-width:470px;flex:1;border:1px solid var(--line);background:var(--input);border-radius:10px;display:flex;align-items:center;gap:8px;padding:0 11px;color:var(--muted)}.search svg,.iconbtn svg{width:17px;height:17px;min-width:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.search input{border:0;outline:0;background:none;color:var(--ink);width:100%}.search:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}.key{border:1px solid var(--line);border-radius:5px;padding:2px 5px;background:var(--elevated);font-family:var(--font-mono);font-size:9px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:7px}.public-site-link{border:1px solid var(--line);border-radius:9px;padding:9px 12px;color:var(--text-secondary);font-size:11px;font-weight:700;text-decoration:none}.public-site-link:hover,.public-site-link:focus-visible{border-color:var(--accent);color:var(--accent)}.iconbtn{width:39px;height:39px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:10px;display:grid;place-items:center;cursor:pointer;transition:.2s}.iconbtn:hover{background:var(--hover);border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow)}
.content{padding:30px;max-width:1480px;width:100%;margin:auto}.stage{animation:page .36s cubic-bezier(.2,.8,.2,1)}@keyframes page{from{opacity:0;transform:translateY(9px) scale(.996)}to{opacity:1;transform:none}}

/* Existing HIP routes rendered inside the replacement shell. */
.stage .admin-rule-page{min-height:0;padding:0;background:transparent;display:grid;gap:13px}.stage .admin-rule-header{max-width:none;margin:0 0 22px;padding:0;border:0;background:transparent;display:flex;justify-content:space-between;align-items:end}.stage .admin-rule-header .eyebrow{color:var(--accent);font-size:9px;text-transform:uppercase;letter-spacing:.15em;font-weight:700}.stage .admin-rule-header h1{font:700 clamp(27px,3vw,40px)/1.08 ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;margin:6px 0}.stage .admin-rule-header p{color:var(--text-secondary);margin:0;max-width:650px}.stage .hip-build-version{display:none}.stage .dashboard-refresh-controls{display:flex;gap:8px;align-items:center}.stage .primary-button,.stage .dashboard-refresh-button{height:39px;border:1px solid var(--primary);background:var(--primary);color:#fff;border-radius:10px;padding:0 14px;font-weight:700;transition:.2s}.stage :is(.primary-button,.dashboard-refresh-button):hover{background:var(--primary-hover);border-color:var(--primary-hover);transform:translateY(-1px)}.stage .dashboard-refresh-status{color:var(--muted);font-family:var(--font-mono);font-size:11px}
.stage .dashboard-grid,.stage .hip-card-row{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;max-width:none;margin:0 0 13px}.stage .score-card,.stage .hip-metric-card{margin:0;padding:17px;position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:15px}.stage .score-card:before,.stage .hip-metric-card:before{content:"";position:absolute;left:0;top:17px;bottom:17px;width:3px;background:var(--primary)}.stage .score-card>span,.stage .hip-metric-card span{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.09em;font-weight:700}.stage .score-card>strong,.stage .hip-metric-card strong{display:block;font:700 26px ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;margin:7px 0 2px}.stage .score-card h3{margin:0;font-size:12px}.stage .score-card p{display:none}
.stage .lookup-result,.stage .hip-panel,.stage .rule-builder-panel,.stage .hip-alert-row,.stage .hip-platform-row,.stage .hip-action-card,.stage .hip-privacy-callout{max-width:none;margin:0 0 13px;padding:19px;background:var(--panel);border:1px solid var(--line);border-radius:15px;color:var(--ink)}.stage .result-header,.stage .hip-panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.stage :is(.lookup-result,.hip-panel,.rule-builder-panel) h2{font:700 15px ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;margin:0}.stage :is(.lookup-result,.hip-panel,.rule-builder-panel) p{color:var(--text-secondary)}.stage .hip-two-column,.stage .rule-builder-grid,.stage .self-healing-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:13px;max-width:none;margin:0}.stage .hip-data-table,.stage .table-wrap table,.stage .admin-rule-table{width:100%;border-collapse:collapse}.stage :is(.hip-data-table,.table-wrap table,.admin-rule-table) th{text-align:left;padding:9px;color:var(--muted);font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.09em}.stage :is(.hip-data-table,.table-wrap table,.admin-rule-table) td{padding:12px 9px;border-top:1px solid var(--line)}.stage :is(.hip-data-table,.table-wrap table,.admin-rule-table) tbody tr:hover{background:var(--hover)}.stage .hip-pill{display:inline-flex;padding:3px 7px;border-radius:6px;font-size:9px;font-weight:700;background:var(--soft)}.stage .hip-pill.good{color:var(--success);background:color-mix(in srgb,var(--success) 13%,transparent)}.stage .hip-pill.danger{color:var(--danger);background:color-mix(in srgb,var(--danger) 13%,transparent)}.stage .hip-pill.critical{color:var(--critical);background:color-mix(in srgb,var(--critical) 14%,transparent)}.stage .hip-pill.caution,.stage .hip-pill.suspicious{color:var(--warn);background:color-mix(in srgb,var(--warn) 13%,transparent)}.stage :is(input,select,textarea){border:1px solid var(--line);border-radius:9px;background:var(--input);color:var(--ink)}.stage :is(input,select,textarea):focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}

@media(max-width:1050px){.app{grid-template-columns:78px 1fr}.sidebar{width:78px}.brand div,.operator div,.nav-item span,.group-title,.count,.portal-context,.public-site-link{display:none}.brand,.nav-item,.operator{justify-content:center}.stage .dashboard-grid,.stage .hip-card-row{grid-template-columns:1fr 1fr}.stage .hip-two-column,.stage .rule-builder-grid,.stage .self-healing-grid{grid-template-columns:1fr}.content{padding:23px}}
@media(max-width:680px){.app{display:block}.sidebar{display:none}.topbar{padding:0 14px}.content{padding:19px 13px}.stage .admin-rule-header{display:block}.stage .dashboard-refresh-controls{margin-top:15px}.stage .dashboard-grid,.stage .hip-card-row{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.stage{animation:none}.nav-item,.iconbtn{transition:none}}

/* Admin shell follows the standalone dashboard's Tokens & Notes specification. */
body:has(.admin-portal) .app{grid-template-columns:232px minmax(0,1fr);border-top:0;background-color:var(--bg);background-image:none}
body:has(.admin-portal) .sidebar{width:auto;padding:18px 12px;overflow-y:auto;background:var(--surface);border-right:1px solid var(--border)}
body:has(.admin-portal) .brand{gap:10px;margin-bottom:4px;padding:0 6px 16px;border-bottom:0}
body:has(.admin-portal) .brand .mark{width:auto;height:28px;min-width:28px}
body:has(.admin-portal) .brand b{font-size:15px;letter-spacing:-.01em}
body:has(.admin-portal) .brand small{margin-top:5px;font-size:8.5px;letter-spacing:.14em}
body:has(.admin-portal) .nav{padding:0;overflow:visible}
body:has(.admin-portal) .group-title{padding:15px 10px 5px;color:var(--muted);font:800 9px var(--font-mono);letter-spacing:.15em}
body:has(.admin-portal) .nav-item{min-height:38px;height:auto;margin:1px 0;padding:9px 10px;gap:11px;border-radius:9px;color:var(--muted);font-size:13.5px}
body:has(.admin-portal) .nav-item:hover{transform:none;background:var(--elev);color:var(--text)}
body:has(.admin-portal) .nav-item.active{background:var(--tint);box-shadow:none;color:var(--action);font-weight:700}
body:has(.admin-portal) .nav-item svg{width:16px;height:16px}
body:has(.admin-portal) .operator{margin-top:18px;padding:8px;border-color:var(--border);border-radius:10px;background:var(--elev)}
body:has(.admin-portal) .main{background:var(--bg)}
body:has(.admin-portal) .topbar{display:flex;min-height:61px;height:auto;padding:12px clamp(14px,2vw,26px);gap:12px;background:color-mix(in srgb,var(--bg) 90%,transparent);border-bottom:1px solid var(--border);backdrop-filter:blur(16px)}
body:has(.admin-portal) .mobile-portal-brand{display:none}
.environment-chip{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;padding:5px 11px;border:1px solid color-mix(in srgb,var(--action) 35%,var(--border));border-radius:8px;background:var(--tint)}
.environment-chip i,.environment-chip strong{color:var(--action);font:800 10.5px var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.environment-chip i{font-size:9.5px;font-style:normal}
body:has(.admin-portal) .search{height:37px;max-width:380px;padding:0 12px;border-color:var(--border);border-radius:10px;background:var(--surface)}
body:has(.admin-portal) .search input{font-size:13.5px}
body:has(.admin-portal) .key{padding:2px 6px;border-color:var(--border);background:transparent;font-size:10px}
body:has(.admin-portal) .top-actions{gap:8px}
body:has(.admin-portal) .public-site-link{padding:8px 11px;border-color:var(--border);background:var(--surface);font-size:12px}
body:has(.admin-portal) .iconbtn{position:relative;width:36px;height:36px;border-color:var(--border);border-radius:10px;background:var(--surface)}
body:has(.admin-portal) .iconbtn:hover{transform:none;box-shadow:none;border-color:var(--action);color:var(--action)}
.notification-button>i{position:absolute;top:6px;right:7px;width:7px;height:7px;border:1.5px solid var(--surface);border-radius:50%;background:var(--warn)}
.account-button{display:flex;align-items:center;gap:9px;min-height:36px;padding:4px 11px 4px 4px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);cursor:pointer}.account-button:hover{border-color:var(--action)}.account-button>span{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:var(--tint);color:var(--action);font-size:10px;font-weight:800}.account-button>strong{font-size:12.5px;font-weight:600}.account-button svg{width:13px;height:13px;fill:none;stroke:var(--muted);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
body:has(.admin-portal) .content{max-width:none;padding:0;margin:0}
body:has(.admin-portal) .stage{animation:none}
body:has(.admin-portal) :is(a,button,input,select,textarea):focus-visible{outline:2px solid var(--action);outline-offset:2px}
@media(max-width:1050px){body:has(.admin-portal) .app{grid-template-columns:72px minmax(0,1fr)}body:has(.admin-portal) .sidebar{width:72px;padding:18px 8px}body:has(.admin-portal) .brand{justify-content:center}body:has(.admin-portal) .brand div,body:has(.admin-portal) .operator div,body:has(.admin-portal) .operator form,body:has(.admin-portal) .nav-item span,body:has(.admin-portal) .group-title{display:none}body:has(.admin-portal) .nav-item,body:has(.admin-portal) .operator{justify-content:center}body:has(.admin-portal) .account-button strong{display:none}}
@media(max-width:680px){body:has(.admin-portal) .app{grid-template-columns:1fr}body:has(.admin-portal) .sidebar{display:none}body:has(.admin-portal) .mobile-portal-brand{display:flex;align-items:center;gap:7px;color:var(--text);text-decoration:none}body:has(.admin-portal) .environment-chip{display:none}body:has(.admin-portal) .search{max-width:none}body:has(.admin-portal) .public-site-link,body:has(.admin-portal) .account-button{display:none}}
