:root{color-scheme:light;--brand-50:#F1F1FE;--brand-100:#E4E2FD;--brand-200:#D4CEFB;--brand-400:#9582EF;--brand-500:#7B59E6;--brand-600:#6316DB;--brand-700:#4C0FAD;--brand-800:#35087C;--brand-900:#1A0244;--accent-500:#FF6490;--accent-600:#FB2576;--accent-50:#FFF3F6;--ink:#1D1D1F;--ink-2:#524977;--ink-3:#837C9F;--line:#EDEAF1;--line-2:#E2E2E5;--bg:#F7F3F8;--surface:#FFFFFF;--surface-2:#FBFAFD;--tint:#F5F3FE;--ok:#2A9156;--ok-bg:#E0EFE6;--warn:#9A6B00;--warn-bg:#FBF1D8;--crit:#BE352F;--crit-bg:#FFE6E1;--info:#0176B8;--info-bg:#E2F1FB;--shadow-sm:0 1px 2px #1d1d1f0a,0 2px 4px #1d1d1f0d;--shadow-md:0 4px 8px #1a024414,0 8px 16px #1a02441a;--shadow-lg:0 20px 55px rgba(26,2,68,.18);--mono:"JetBrains Mono",ui-monospace,Menlo,monospace;--sans:"Gellix","Plus Jakarta Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--r:8px;--r-sm:8px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--brand-50:#221A3D;--brand-100:#2C2352;--brand-200:#382C63;--brand-400:#9582EF;--brand-500:#9A80F0;--brand-600:#A78BFF;--brand-700:#BCA6FF;--brand-800:#D3C4FF;--brand-900:#EDE7FF;--accent-500:#FF7BA3;--accent-600:#FF6490;--accent-50:#3A1526;--ink:#F3EFFA;--ink-2:#B7AFD0;--ink-3:#8A82A6;--line:#2A2444;--line-2:#332C50;--bg:#120C24;--surface:#1A1233;--surface-2:#20183C;--tint:#221A3D;--ok:#5FD08C;--ok-bg:#16311F;--warn:#E7BE4A;--warn-bg:#332A12;--crit:#F0857D;--crit-bg:#3A1714;--info:#5CB8F0;--info-bg:#122A3A;--shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow-md:0 6px 18px rgba(0,0,0,.5);--shadow-lg:0 22px 60px rgba(0,0,0,.65)}}:root[data-theme=dark]{color-scheme:dark;--brand-50:#221A3D;--brand-100:#2C2352;--brand-200:#382C63;--brand-400:#9582EF;--brand-500:#9A80F0;--brand-600:#A78BFF;--brand-700:#BCA6FF;--brand-800:#D3C4FF;--brand-900:#EDE7FF;--accent-500:#FF7BA3;--accent-600:#FF6490;--accent-50:#3A1526;--ink:#F3EFFA;--ink-2:#B7AFD0;--ink-3:#8A82A6;--line:#2A2444;--line-2:#332C50;--bg:#120C24;--surface:#1A1233;--surface-2:#20183C;--tint:#221A3D;--ok:#5FD08C;--ok-bg:#16311F;--warn:#E7BE4A;--warn-bg:#332A12;--crit:#F0857D;--crit-bg:#3A1714;--info:#5CB8F0;--info-bg:#122A3A;--shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow-md:0 6px 18px rgba(0,0,0,.5);--shadow-lg:0 22px 60px rgba(0,0,0,.65)}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:13.5px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;letter-spacing:-.01em;text-wrap:balance}p{margin:0}button{font-family:inherit;cursor:pointer;color:inherit}input,select,textarea{font-family:inherit}.mono{font-family:var(--mono)}[hidden]{display:none!important}.app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{position:sticky;top:env(safe-area-inset-top,0px);align-self:start;height:100vh;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:40}.brand{display:flex;align-items:center;gap:10px;padding:16px 16px 12px}.logo{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--brand-600),var(--accent-600));display:grid;place-items:center;color:#fff;font-weight:800;font-size:18px;flex:none;box-shadow:var(--shadow-sm)}.brand b{font-size:14px;font-weight:800;letter-spacing:-.02em;display:block;line-height:1.15}.logo-img{height:30px;width:auto;border-radius:7px;box-shadow:var(--shadow-sm);flex:none}.brand-txt{border-left:1px solid var(--line);padding-left:10px}.brand small{font:600 10px/1.2 var(--mono);color:var(--ink-3)}.nav{padding:4px 10px;overflow-y:auto;flex:1}.nav-group{font:700 9.5px/1 var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);padding:14px 10px 5px;display:flex;align-items:center;gap:6px}.nav-group .gcount{margin-left:auto;color:var(--brand-500)}.nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--ink-2);font-weight:600;font-size:13px;margin-bottom:1px;text-decoration:none;transition:background .12s,color .12s}.nav a:hover{text-decoration:none}.nav a .ic{width:16px;text-align:center;flex:none;opacity:.9;font-size:14px}.nav a:hover{background:var(--tint)}.nav a.active{background:var(--brand-50);color:var(--brand-700)}.nav a .badge{margin-left:auto;font:700 10px/1 var(--mono);color:var(--ink-3);background:var(--surface-2);border:1px solid var(--line);border-radius:20px;padding:2px 6px;min-width:20px;text-align:center}.nav a.active .badge{color:var(--brand-700);background:var(--brand-100);border-color:transparent}.nav a .live{margin-left:auto;width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-bg)}.sb-foot{padding:10px 14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:9px}.persona{display:flex;align-items:center;gap:9px}.persona .av{width:28px;height:28px;border-radius:8px;background:var(--brand-600);color:#fff;display:grid;place-items:center;font-weight:800;font-size:11px;flex:none}.persona select{border:none;background:transparent;font-weight:700;font-size:12.5px;color:var(--ink);width:100%;padding:0}.persona small{font:600 10px/1 var(--mono);color:var(--ink-3)}.sb-row{display:flex;align-items:center;gap:8px}.health{display:flex;align-items:center;gap:7px;font:600 10.5px/1 var(--mono);color:var(--ink-2)}.dot{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-bg);flex:none}.tbtn{margin-left:auto;width:28px;height:28px;border-radius:7px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);display:grid;place-items:center}.tbtn:hover{color:var(--brand-600)}.main{min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:color-mix(in srgb,var(--bg) 84%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:10px 22px}.crumb{font:600 12px/1 var(--mono);color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.crumb b{color:var(--ink)}.topbar .env,.topbar .ctl,.topbar button{white-space:nowrap;flex-shrink:0}.env{font:700 9.5px/1 var(--mono);letter-spacing:.06em;padding:4px 8px;border-radius:6px;background:var(--crit-bg);color:var(--crit)}.spacer{margin-left:auto}.ctl{display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:5px 8px}.ctl label{font:700 9px/1 var(--mono);letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase}.ctl select{border:none;background:transparent;color:var(--ink);font-weight:700;font-size:12.5px;padding:1px}.flags-btn{display:inline-flex;align-items:center;gap:8px;background:var(--brand-600);color:#fff;border:none;border-radius:9px;padding:8px 13px;font-weight:700;font-size:12.5px;box-shadow:var(--shadow-sm)}.flags-btn:hover{background:var(--brand-700)}.flags-btn .cnt{background:rgba(255,255,255,.22);border-radius:20px;padding:2px 7px;font:700 10.5px/1 var(--mono)}.menu-btn{display:none;width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);place-items:center}.content{padding:22px 22px 70px;max-width:1220px;width:100%;margin:0 auto;flex:1}.page-head{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:18px}.page-head h1{font-size:23px;font-weight:800;letter-spacing:-.025em}.page-head p{color:var(--ink-2);font-size:13.5px;margin-top:4px;max-width:70ch}.page-head .ph-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.btn{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:8px 13px;font-weight:700;font-size:12.5px;color:var(--ink-2);display:inline-flex;align-items:center;gap:7px;transition:.12s}.btn:hover{border-color:var(--brand-400);color:var(--brand-600)}.btn.prim{background:var(--brand-600);color:#fff;border-color:var(--brand-600)}.btn.prim:hover{background:var(--brand-700);color:#fff}.btn.danger{color:var(--crit);border-color:var(--crit-bg)}.btn.danger:hover{background:var(--crit-bg);border-color:var(--crit)}.btn.sm{padding:5px 9px;font-size:11.5px;border-radius:7px}.btn:disabled{opacity:.45;cursor:not-allowed}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font:700 10px/1.4 var(--mono);letter-spacing:.02em}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.crit{background:var(--crit-bg);color:var(--crit)}.pill.mut{background:var(--surface-2);color:var(--ink-3);border:1px solid var(--line)}.pill.brand{background:var(--brand-50);color:var(--brand-600)}.pill.info{background:var(--info-bg);color:var(--info)}.tag{display:inline-flex;align-items:center;font-weight:600;font-size:11.5px;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:7px;padding:3px 8px}.tag.role{background:var(--brand-50);color:var(--brand-700);border-color:transparent}.dtag{display:inline-flex;align-items:center;gap:4px;font:700 9.5px/1.2 var(--mono);letter-spacing:.02em;color:var(--accent-600);background:var(--accent-50);border:1px solid var(--accent-500);border-radius:5px;padding:3px 7px;white-space:nowrap;vertical-align:middle}.otag{display:inline-flex;align-items:center;gap:4px;font:700 9.5px/1.2 var(--mono);letter-spacing:.02em;color:var(--info);background:var(--info-bg);border:1px dashed var(--info);border-radius:5px;padding:3px 7px;white-space:nowrap;vertical-align:middle}.decide{border:1px solid var(--accent-500);background:var(--accent-50);border-radius:var(--r);padding:12px 15px;margin-bottom:14px;font-size:12.5px;color:var(--ink-2);line-height:1.55}.decide b.t{color:var(--accent-600)}.sbadge{display:inline-flex;align-items:center;font:700 9.5px/1 var(--mono);letter-spacing:.03em;border-radius:5px;padding:3px 6px;white-space:nowrap;vertical-align:middle;margin-left:6px}.sbadge.s1{background:#FCE7EF;color:#9f1747}.sbadge.s2{background:#EFEAFD;color:#4c0fad}.sbadge.s3{background:#E3F0F8;color:#084f7c}.sbadge.s4{background:#ECEAF1;color:#3a3456}.stage-ctl select{font-weight:700}.stagenote{border:1px dashed var(--line-2);border-radius:var(--r);padding:12px 15px;margin-top:6px;font-size:12px;color:var(--ink-3);line-height:1.5}.gap{display:inline-flex;align-items:center;gap:4px;font:700 9px/1 var(--mono);letter-spacing:.03em;color:var(--warn);background:var(--warn-bg);border-radius:5px;padding:3px 6px;white-space:nowrap}.method{font:700 9.5px/1 var(--mono);padding:3px 5px;border-radius:5px;flex:none}.m-GET{background:var(--info-bg);color:var(--info)}.m-POST{background:var(--ok-bg);color:var(--ok)}.m-PATCH{background:var(--warn-bg);color:var(--warn)}.m-PUT{background:var(--brand-50);color:var(--brand-600)}.m-DELETE{background:var(--crit-bg);color:var(--crit)}.ep{font:500 11px/1.5 var(--mono);color:var(--ink-2)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm)}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:13px 15px;box-shadow:var(--shadow-sm)}.stat .n{font-size:23px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.stat .l{color:var(--ink-3);font-size:11.5px;font-weight:600;margin-top:1px}.stat .n.brand{color:var(--brand-600)}.stat .n.accent{color:var(--accent-600)}.filters{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.search{flex:1;min-width:190px;display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:8px 12px}.search input{border:none;background:transparent;outline:none;color:var(--ink);font-size:13px;width:100%}.search .mag{color:var(--ink-3)}.seg{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:3px;gap:2px}.seg button{border:none;background:transparent;color:var(--ink-2);font-weight:700;font-size:11.5px;padding:6px 11px;border-radius:6px;white-space:nowrap}.seg button.on{background:var(--brand-600);color:#fff;box-shadow:var(--shadow-sm)}.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-sm)}table.tbl{border-collapse:collapse;width:100%;min-width:720px;font-size:13px}table.tbl thead th{position:sticky;top:0;background:var(--surface-2);text-align:left;font:700 10px/1 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);padding:11px 14px;border-bottom:1px solid var(--line);white-space:nowrap;z-index:1}table.tbl tbody td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:middle}table.tbl tbody tr:last-child td{border-bottom:none}table.tbl tbody tr.clk{cursor:pointer}table.tbl tbody tr.clk:hover{background:var(--tint)}table.tbl tbody tr.sel{background:var(--brand-50)}.who{display:flex;align-items:center;gap:10px}.ava{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-weight:800;font-size:11px;color:#fff;flex:none}.who .nm{font-weight:700}.who .em{font:500 11px/1.3 var(--mono);color:var(--ink-3)}.rolecell{display:flex;flex-wrap:wrap;gap:4px}.chkbox{width:17px;height:17px;border-radius:5px;border:1.5px solid var(--line-2);background:var(--surface);display:inline-grid;place-items:center;color:transparent;flex:none}.chkbox.on{background:var(--brand-600);border-color:var(--brand-600);color:#fff}.tbl-foot{display:flex;align-items:center;gap:10px;padding:10px 14px;color:var(--ink-3);font-size:12px;border-top:1px solid var(--line);flex-wrap:wrap}.tbl-foot .ep{margin-left:auto}.flag-note{background:var(--surface-2);border:1px dashed var(--line-2);border-radius:var(--r);padding:22px;text-align:center;color:var(--ink-3);font-size:13px}.bulk{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--brand-900);color:#fff;border-radius:10px;padding:8px 12px;margin-bottom:12px}.bulk .bc{font-weight:700;font-size:12.5px;margin-right:4px}.bulk button{border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;border-radius:7px;padding:5px 10px;font-weight:700;font-size:11.5px}.bulk button:hover{background:rgba(255,255,255,.18)}.bulk .x{margin-left:auto;background:transparent;border:none}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(26,2,68,.42);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .22s;z-index:60}.scrim.open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;right:0;height:100%;width:min(460px,94vw);background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-lg);transform:translate(100%);transition:transform .26s cubic-bezier(.4,0,.2,1);z-index:70;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px)}.drawer.open{transform:none}.dhead{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:12px}.dhead .x{margin-left:auto;width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);display:grid;place-items:center;flex:none}.dbody{overflow-y:auto;flex:1;padding:16px 18px;display:flex;flex-direction:column;gap:16px}.dsec h4{font:700 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:9px}.kv{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--line);font-size:12.5px}.kv:last-child{border-bottom:none}.kv .k{color:var(--ink-3)}.kv .v{font-weight:600;text-align:right}.dfoot{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:8px;flex-wrap:wrap}.modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;z-index:70;opacity:0;pointer-events:none;transition:opacity .2s;padding:16px}.modal-wrap.open{opacity:1;pointer-events:auto}.modal{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);width:min(500px,96vw);max-height:90vh;overflow-y:auto}.modal.wide{width:min(720px,96vw)}.modal.xwide{width:min(1000px,96vw)}.pt-portals{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.pt-portals .chip{font-weight:700}.pt-quick{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:9px 12px;border:1px dashed var(--line);border-radius:10px;margin-bottom:10px;font-size:12px;color:var(--ink-2)}.pt-quick button{border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:4px 10px;font-size:11.5px;font-weight:700;cursor:pointer;color:var(--ink)}.pt-quick button:hover{border-color:var(--brand-500)}.pt-sec{font:700 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:14px 0 7px}.pt-page{border:1px solid var(--line);border-radius:11px;margin-bottom:8px;background:var(--surface);overflow:hidden}.pt-page.on{border-color:var(--brand-100)}.pt-ph{display:flex;align-items:center;gap:10px;padding:9px 12px}.pt-page.on .pt-ph{background:var(--brand-50)}.pt-chk{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--line);background:var(--surface);color:transparent;font-weight:900;font-size:12px;line-height:1;cursor:pointer;flex:none;display:grid;place-items:center}.pt-chk.on{background:var(--brand-600);border-color:var(--brand-600);color:#fff}.pt-pn{flex:1;min-width:0;font-weight:800;font-size:13px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.pt-pn small{font:500 11px/1.3 var(--mono);color:var(--ink-3)}.pt-cnt{font:600 11px/1 var(--mono);color:var(--ink-3)}.pt-all{display:flex;gap:4px}.pt-all button{border:none;background:transparent;color:var(--brand-600);font-weight:700;font-size:11.5px;cursor:pointer;padding:2px 4px}.pt-btns{display:flex;gap:6px;flex-wrap:wrap;padding:8px 12px 11px 42px}.pt-b{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 11px;font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer;display:inline-flex;align-items:center;gap:5px}.pt-b .bx{width:13px;height:13px;border-radius:4px;border:1.5px solid var(--line);display:inline-grid;place-items:center;font-size:9px;color:transparent}.pt-b.on{border-color:var(--brand-500);background:var(--brand-50);color:var(--ink)}.pt-b.on .bx{background:var(--brand-600);border-color:var(--brand-600);color:#fff}.pt-b.risky.on{border-color:var(--crit);background:var(--crit-bg)}.pt-b.risky.on .bx{background:var(--crit);border-color:var(--crit)}.pt-b .rk{color:var(--crit);font-size:10.5px}.pcode{display:block;font:600 9px/1.2 var(--mono);color:var(--ink-3);letter-spacing:.02em}.pt-b{flex-wrap:wrap}.zone{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin-bottom:12px}.zone.ro{background:var(--surface-2)}.zone h4{display:flex;align-items:center;gap:7px}.zone .lock{font:700 9px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);border:1px solid var(--line);border-radius:999px;padding:3px 7px;margin-left:auto}.ghost-btn{border:1px dashed var(--line);background:transparent;color:var(--ink-3);border-radius:9px;padding:7px 12px;font-weight:700;font-size:12.5px;cursor:not-allowed}.code{font:600 11.5px/1.3 var(--mono);color:var(--ink)}.catbar{display:flex;height:8px;border-radius:999px;overflow:hidden;background:var(--surface-2);margin:8px 0}.catbar span{display:block;height:100%}.pt-page:not(.on) .pt-b{opacity:.55}.pt-none{font-size:12px;color:var(--ink-3);padding:0 12px 10px 42px}.pt-wrap [disabled]{cursor:not-allowed}.pu{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:4px 8px;font-size:12px;cursor:pointer;text-align:left;color:var(--ink);max-width:340px}.pu:hover{border-color:var(--brand-500);background:var(--brand-50)}.pu b{font-weight:700;white-space:nowrap}.pu .ep{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wz-steps{display:flex;gap:6px;padding:4px 20px 2px;flex-wrap:wrap}.wz-step{display:flex;align-items:center;gap:7px;flex:1;min-width:120px;padding:8px 10px;border-radius:10px;background:var(--bg,#f5f4f8);border:1px solid var(--line);font-size:12px;font-weight:700;color:var(--ink-3)}.wz-step .n{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font:800 11px/1 var(--mono);background:var(--surface);border:1px solid var(--line)}.wz-step.on{border-color:var(--brand-500);color:var(--ink);background:var(--brand-50)}.wz-step.on .n{background:var(--brand-600);color:#fff;border-color:transparent}.wz-step.done{color:var(--ok)}.wz-step.done .n{background:var(--ok-bg);color:var(--ok);border-color:transparent}.rl-acts{display:flex;gap:6px;justify-content:flex-end;flex-wrap:nowrap}.rl-acts .btn[disabled]{opacity:.45;cursor:not-allowed}.btn.sm.lock{color:var(--ink-3)}.wz-prow{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.wz-prow select{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:6px 9px;font-size:12.5px;font-weight:700;color:var(--ink);min-width:150px}.modal .mh{padding:18px 20px 6px}.modal .mh h3{font-size:17px;font-weight:800}.modal .mh p{color:var(--ink-2);font-size:13px;margin-top:5px}.modal .mb{padding:14px 20px;display:flex;flex-direction:column;gap:13px}.modal .mf{padding:14px 20px;border-top:1px solid var(--line);display:flex;gap:9px;justify-content:flex-end}.field label{display:block;font:700 10.5px/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px}.field input,.field select{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:9px 11px;font-size:13px;color:var(--ink);outline:none}.field input:focus,.field select:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-50)}.field .hint{color:var(--ink-3);font-size:11px;margin-top:4px}.reveal{background:var(--brand-900);color:#fff;border-radius:9px;padding:11px 13px;font-family:var(--mono);font-size:12.5px;display:flex;align-items:center;gap:10px;word-break:break-all}.reveal button{margin-left:auto;background:rgba(255,255,255,.16);border:none;color:#fff;border-radius:6px;padding:5px 9px;font-weight:700;font-size:11px;flex:none}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%) translateY(120%);z-index:90;background:var(--brand-900);color:#fff;border-radius:11px;padding:11px 16px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:2px;max-width:min(540px,92vw);transition:transform .3s cubic-bezier(.2,.8,.2,1)}.toast.show{transform:translate(-50%)}.toast .tt{font-weight:700;font-size:13px}.toast .ts{font:500 11px/1.4 var(--mono);color:#c9c2e0}.flags{position:fixed;top:0;right:0;height:100%;width:min(420px,94vw);background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-lg);transform:translate(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);z-index:80;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px)}.flags.open{transform:none}.fhd{padding:17px 18px 13px;border-bottom:1px solid var(--line)}.fhd h3{font-size:16px;font-weight:800;display:flex;align-items:center;gap:8px}.fhd p{color:var(--ink-2);font-size:12px;margin-top:5px;line-height:1.5}.fbody{overflow-y:auto;flex:1;padding:6px 14px 16px}.fg{margin-top:12px}.fg-h{display:flex;align-items:center;gap:8px;padding:8px 6px 5px}.fg-h .t{font:700 10px/1 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}.fg-h .c{margin-left:auto;font:700 10.5px/1 var(--mono);color:var(--ink-3)}.fg-h button{border:1px solid var(--line);background:var(--surface);border-radius:6px;color:var(--ink-2);font:700 9.5px/1 var(--mono);padding:5px 7px}.fg-h button:hover{border-color:var(--brand-400);color:var(--brand-600)}.frow{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:9px}.frow:hover{background:var(--tint)}.frow .fname{font-weight:600;font-size:12.5px;display:flex;align-items:center;gap:6px}.frow .fdesc{color:var(--ink-3);font-size:11px;margin-top:1px}.mini{font:700 8px/1 var(--mono);letter-spacing:.02em;padding:2px 5px;border-radius:4px;flex:none}.mini.core{background:var(--ok-bg);color:var(--ok)}.mini.portal{background:var(--info-bg);color:var(--info)}.mini.view{background:var(--brand-50);color:var(--brand-600)}.sw{margin-left:auto;flex:none;width:37px;height:21px;border-radius:20px;background:var(--line-2);position:relative;transition:background .18s;border:none}.sw:after{content:"";position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:#fff;transition:transform .18s;box-shadow:var(--shadow-sm)}.sw.on{background:var(--brand-600)}.sw.on:after{transform:translate(16px)}.ffoot{padding:12px 16px;border-top:1px solid var(--line);display:flex;gap:8px}.ffoot button{flex:1;border-radius:9px;padding:9px;font-weight:700;font-size:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2)}.ffoot button.prim{background:var(--brand-600);color:#fff;border-color:var(--brand-600)}.roles-grid{display:grid;grid-template-columns:250px 1fr;gap:16px;align-items:start}.rl{display:flex;flex-direction:column;gap:6px}.rl .seg{width:100%;flex-wrap:wrap;margin-bottom:6px}.rl .seg button{flex:1 1 40%;padding:6px 8px}.ritem{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:10px 11px;display:flex;flex-direction:column;gap:2px}.ritem:hover{border-color:var(--brand-400)}.ritem.on{border-color:var(--brand-600);box-shadow:0 0 0 3px var(--brand-50)}.ritem .rn{font-weight:700;font-size:13px;display:flex;align-items:center;gap:6px}.ritem .rd{font:500 10.5px/1.3 var(--mono);color:var(--ink-3)}.rpanel{display:flex;flex-direction:column;gap:15px;min-width:0}.svc-tabs{display:flex;gap:7px;flex-wrap:wrap}.svc-tab{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:8px 11px;font-weight:700;font-size:12px;color:var(--ink-2);display:flex;align-items:center;gap:7px}.svc-tab.on{background:var(--brand-600);color:#fff;border-color:var(--brand-600)}.svc-tab .lv{font:700 9px/1 var(--mono);opacity:.8}.svc-tab .cnt2{font:700 9.5px/1 var(--mono);background:var(--surface-2);color:var(--ink-3);border-radius:20px;padding:2px 6px}.svc-tab.on .cnt2{background:rgba(255,255,255,.2);color:#fff}.presets{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.presets .lbl{font:700 10px/1 var(--mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;margin-right:2px}.preset{border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:6px 11px;font-weight:700;font-size:11.5px;color:var(--ink-2)}.preset.on{background:var(--brand-600);color:#fff;border-color:var(--brand-600)}.modrow{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}.modrow+.modrow{margin-top:9px}.modgrp{font:700 9.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding:9px 13px 3px}.modhdr{display:flex;align-items:center;gap:10px;padding:10px 13px;background:var(--surface-2);border-bottom:1px solid var(--line)}.modhdr .mn{font-weight:700;font-size:12.5px}.modhdr .cnt2{margin-left:auto;font:700 10px/1 var(--mono);color:var(--ink-3)}.leaf{display:flex;align-items:center;gap:11px;padding:9px 13px;border-top:1px solid var(--line)}.leaf:first-of-type{border-top:none}.leaf .li{min-width:0;flex:1}.leaf .ll{font-weight:600;font-size:12.5px}.leaf .lm{display:flex;align-items:center;gap:7px;margin-top:2px}.leaf .tier{font:700 8.5px/1 var(--mono);padding:2px 5px;border-radius:4px}.tier.v{background:var(--info-bg);color:var(--info)}.tier.o{background:var(--ok-bg);color:var(--ok)}.tier.a{background:var(--warn-bg);color:var(--warn)}.tier.s{background:var(--crit-bg);color:var(--crit)}.markets-row,.scope-row{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.chip{border:1px solid var(--line);background:var(--surface);border-radius:20px;padding:6px 12px;font-weight:600;font-size:12px;color:var(--ink-2);display:inline-flex;align-items:center;gap:6px}.chip.on{background:var(--brand-600);color:#fff;border-color:var(--brand-600)}.chip.on.acc{background:var(--accent-600);border-color:var(--accent-600)}.dirtybar{position:sticky;bottom:0;background:var(--surface);border:1px solid var(--brand-200);border-radius:11px;box-shadow:var(--shadow-md);padding:11px 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;z-index:5}.dirtybar .dt{font-weight:700;font-size:12.5px;color:var(--brand-700)}.approval-bands{display:grid;gap:0}.band{display:grid;grid-template-columns:1fr auto auto;gap:10px;padding:10px 13px;border-bottom:1px solid var(--line);align-items:center;font-size:12.5px}.band:last-child{border-bottom:none}.band .bl b{color:var(--ink)}.band .bl{color:var(--ink-2)}.band .aw{font:700 10.5px/1 var(--mono);color:var(--brand-700);background:var(--brand-50);padding:5px 8px;border-radius:6px;white-space:nowrap}.band.urgent .aw{color:var(--crit);background:var(--crit-bg)}.limit-in{width:104px;border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:6px 8px;font:600 12px var(--mono);color:var(--ink);outline:none;font-variant-numeric:tabular-nums}.limit-in:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-50)}.matrix-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-sm)}table.rgrid{border-collapse:collapse;width:100%;min-width:660px}table.rgrid thead th{position:sticky;top:0;background:var(--surface-2);z-index:1;padding:11px 6px;font:700 10px/1.2 var(--mono);letter-spacing:.03em;color:var(--ink-2);border-bottom:1px solid var(--line);text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}table.rgrid thead th.modh{text-align:left;padding-left:14px;width:230px;cursor:default}table.rgrid thead th.risky{color:var(--crit)}table.rgrid thead th:not(.modh):hover{background:var(--brand-50);color:var(--brand-700)}table.rgrid td{border-bottom:1px solid var(--line);text-align:center;padding:0}table.rgrid tbody tr:last-child td{border-bottom:none}table.rgrid tr.grp td{background:var(--surface-2);text-align:left;padding:7px 14px;font:700 9.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}table.rgrid td.modh{text-align:left;padding:8px 10px 8px 6px;display:flex;align-items:center;gap:4px}table.rgrid td.modh .mn{font-weight:700;font-size:12.5px}.mexp{border:none;background:transparent;color:var(--ink-3);font-size:12px;width:20px;height:24px;cursor:pointer;flex:none}.mexp:hover{color:var(--brand-600)}table.rgrid tr.leafrow td{background:var(--surface-2)}table.rgrid td.leafc{text-align:left;padding:6px 14px 6px 32px;color:var(--ink-2);font-size:11.5px}.cellbtn{width:30px;height:30px;border-radius:7px;border:1.5px solid var(--line-2);background:var(--surface);display:inline-grid;place-items:center;color:transparent;transition:.12s;margin:6px auto;font-weight:800;font-size:14px}.cellbtn:hover{border-color:var(--brand-400)}.cellbtn.on{background:var(--brand-600);border-color:var(--brand-600);color:#fff}.cellbtn.on.risky{background:var(--crit);border-color:var(--crit)}.cellbtn.partial{border-color:var(--brand-500);color:var(--brand-600)}.cellbtn.na{background:repeating-linear-gradient(-45deg,var(--surface-2),var(--surface-2) 4px,var(--surface) 4px,var(--surface) 8px);border-style:dashed;cursor:default;opacity:.45}.cellbtn.sm{width:26px;height:26px;margin:4px auto;font-size:12px}.appr-item{border:1px solid var(--line);border-radius:11px;padding:13px 15px;background:var(--surface);margin-bottom:10px}.appr-item .ai-h{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:8px}.appr-item .ai-t{font:700 10px/1 var(--mono);letter-spacing:.04em;color:var(--brand-700);background:var(--brand-50);padding:4px 8px;border-radius:6px}.appr-item .ai-o{font-weight:700;font-size:13.5px}.diff{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:9px 0}.diff .d{border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:12px}.diff .dl{font:700 9px/1 var(--mono);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}.diff .before .dl{color:var(--crit)}.diff .after .dl{color:var(--ok)}.diff .before{background:var(--crit-bg)}.diff .after{background:var(--ok-bg)}.appr-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}.appr-meta{font:500 11px/1.4 var(--mono);color:var(--ink-3)}.mod-hero{background:linear-gradient(135deg,var(--brand-50),var(--surface));border:1px solid var(--brand-100);border-radius:14px;padding:18px 20px;margin-bottom:16px;display:flex;gap:14px;align-items:center}.mod-hero .mi{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-size:24px;flex:none;background:var(--surface);box-shadow:var(--shadow-sm)}.mod-hero h2{font-size:18px;font-weight:800}.mod-hero p{color:var(--ink-2);font-size:13px;margin-top:3px}.endpoint-list{display:flex;flex-direction:column;gap:9px}.eg-title{font:700 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:6px 0 2px}.erow{display:flex;align-items:center;gap:11px;padding:10px 13px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.erow .el{font-weight:600;font-size:12.5px;flex:1;min-width:0}.erow .tier{font:700 8.5px/1 var(--mono);padding:2px 5px;border-radius:4px}@media (max-width:940px){.app{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;height:100%;width:270px;transform:translate(-100%);transition:transform .26s;box-shadow:var(--shadow-lg)}.sidebar.open{transform:none}.menu-btn{display:grid}.roles-grid{grid-template-columns:1fr}.stat-row{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.content{padding:16px 14px 60px}.topbar{padding:9px 14px}.ctl.market-ctl{display:none}.diff{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.login{min-height:100vh;display:grid;place-items:center;padding:32px 16px;background:radial-gradient(900px 480px at 85% -10%,var(--brand-100),transparent 60%),radial-gradient(700px 420px at -10% 110%,var(--accent-50),transparent 60%),var(--bg)}.login-theme{position:fixed;top:16px;right:16px}.login-card{width:min(440px,100%);background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lg);padding:28px 28px 22px}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:22px}.login-brand .logo-img{height:36px;width:auto;border-radius:8px}.login-card h1{font-size:22px;font-weight:800;letter-spacing:-.01em;margin:0 0 6px}.login-sub{color:var(--ink-2);font-size:13px;line-height:1.55;margin:0 0 12px}.login-card form{margin-top:18px;display:flex;flex-direction:column;gap:12px}.field.has-error input{border-color:var(--crit)}.login-error{color:var(--crit);font-size:12px;font-weight:600;margin-top:6px;line-height:1.4}.login-google{justify-content:center;padding:11px 14px;font-size:13.5px;width:100%}.login-google:disabled{opacity:.55;cursor:not-allowed}.login-demo{margin-top:20px;border-top:1px dashed var(--line-2);padding-top:14px}.login-demo-h{font-size:12px;color:var(--ink-2);line-height:1.5;margin-bottom:8px}.login-demo-list{display:flex;flex-direction:column;gap:6px}.login-demo-item{display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface-2);border-radius:9px;padding:7px 10px;font-size:11.5px;color:var(--ink);text-align:left}.login-demo-item:hover{border-color:var(--brand-400);background:var(--tint)}.login-demo-item .mono{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.login-foot{margin-top:16px;font:500 10.5px/1.4 var(--mono);color:var(--ink-3);text-align:center}.persona-name{font-weight:700;font-size:12.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.login-brand b{font-size:14px;font-weight:800;letter-spacing:-.02em;display:block;line-height:1.15}.login-brand small{font:600 10px/1.2 var(--mono);color:var(--ink-3)}.toast:not(.show){visibility:hidden;transition:transform .25s,visibility 0s .25s}.stat .n.brand{display:block;padding:0}@media (max-width: 900px){.rb-grid{grid-template-columns:1fr!important}}
