:root{--bg:#f8fafd;--surface:#ffffff;--surface-warm:#ece6f6;--fg:#202124;--fg-2:#3c4043;--muted:#5f6368;--meta:#6750a4;--border:#dadce0;--border-soft:#edf0f2;--accent:#6750a4;--accent-on:#ffffff;--accent-hover:color-mix(in oklab,var(--accent),black 8%);--accent-active:color-mix(in oklab,var(--accent),black 14%);--success:#188038;--warn:#966000;--danger:#d93025;--font-display:"Google Sans",Roboto,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",Arial,sans-serif;--font-body:Roboto,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",Arial,sans-serif;--font-mono:"Roboto Mono",ui-monospace,Menlo,monospace;--text-xs:12px;--text-sm:14px;--text-base:14px;--text-section:16px;--text-table:13px;--text-lg:18px;--text-xl:24px;--text-2xl:28px;--text-3xl:48px;--text-4xl:64px;--leading-body:1.5;--leading-tight:1.25;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-12:48px;--radius-sm:8px;--radius-md:10px;--radius-lg:12px;--radius-pill:9999px;--elev-ring:0 0 0 1px var(--border);--elev-raised:0 3px 8px rgba(60,64,67,0.18);--focus-ring:0 0 0 4px rgba(103,80,164,0.28);--motion-fast:150ms;--motion-base:250ms;--ease-standard:cubic-bezier(0.2,0,0,1);--rail:248px;--rail-collapsed:72px;--topbar-h:60px;--rail-bg:var(--surface);--danger-soft:color-mix(in oklab,var(--danger) 12%,var(--surface));--warn-soft:color-mix(in oklab,var(--warn) 16%,var(--surface));--success-soft:color-mix(in oklab,var(--success) 12%,var(--surface));--accent-soft:color-mix(in oklab,var(--accent) 10%,var(--surface));--surface-1:color-mix(in oklab,var(--surface),var(--accent) 3%);--surface-2:color-mix(in oklab,var(--surface),var(--accent) 6%);--surface-3:color-mix(in oklab,var(--surface),var(--accent) 9%);--sec-container:color-mix(in oklab,var(--accent) 18%,var(--surface));--on-sec-container:color-mix(in oklab,var(--accent),black 34%);--pri-container:color-mix(in oklab,var(--accent) 14%,var(--surface));--state-hover:color-mix(in oklab,var(--fg) 8%,transparent);--state-press:color-mix(in oklab,var(--fg) 12%,transparent);--radius-card:12px;--control-height:36px;--control-form:40px;--control-icon:36px;--table-padding-y:12px;--table-padding-x:16px;--empty-padding:32px 16px;--width-form:640px;--width-report:1080px;--elev-panel:none;--elev-1:0 1px 2px rgba(60,64,67,0.10),0 1px 3px 1px rgba(60,64,67,0.06);--elev-2:0 1px 2px rgba(60,64,67,0.12),0 2px 6px 2px rgba(60,64,67,0.08);--scrim:rgba(0,0,0,0.45);color-scheme:light}[data-theme=dark]{--bg:#121016;--rail-bg:#1a181f;--surface:#232027;--surface-warm:#322e3b;--fg:#e6e1e9;--fg-2:#cac4d0;--muted:#9a949e;--border:#49454f;--border-soft:#322f37;--accent:#d0bcff;--accent-on:#381e72;--meta:#d0bcff;--success:#81c995;--warn:#fdd663;--danger:#f2b8b5;--sec-container:#4a4458;--on-sec-container:#e8def8;--pri-container:#4f378b;--elev-1:0 1px 2px rgba(0,0,0,0.42),0 1px 3px 1px rgba(0,0,0,0.26);--elev-2:0 1px 3px rgba(0,0,0,0.5),0 4px 8px 3px rgba(0,0,0,0.3);--scrim:rgba(0,0,0,0.62);color-scheme:dark}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;transition:background var(--motion-base) var(--ease-standard),color var(--motion-base) var(--ease-standard)}h1,h2,h3,h4{font-family:var(--font-display);margin:0;line-height:var(--leading-tight);font-weight:500}button{font:inherit;cursor:pointer}a,button{color:inherit}a{text-decoration:none}svg{display:block}.num{font-family:var(--font-body);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ccy{font-size:max(12px,.62em);font-weight:500;color:var(--muted);letter-spacing:.02em}.ccy,.mono{font-family:var(--font-body)}.mono{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.muted{color:var(--muted)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px;border:3px solid var(--bg)}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}.app{display:block;min-height:100vh}.rail{position:fixed;left:0;top:0;height:100vh;width:var(--rail-collapsed);background:var(--rail-bg);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:40;overflow:hidden;--label-op:0;transition:width var(--motion-base) var(--ease-standard),box-shadow var(--motion-base) var(--ease-standard),transform var(--motion-base) var(--ease-standard)}.app:not(.is-pinned) .rail.is-peek{width:var(--rail);box-shadow:var(--elev-2);--label-op:1}.app.is-pinned .rail{width:var(--rail);--label-op:1}.rail-brand{display:flex;align-items:center;gap:var(--space-3);height:var(--topbar-h);padding:0 var(--space-5);border-bottom:1px solid var(--border-soft);white-space:nowrap;color:inherit;text-decoration:none}.rail-brand:hover .brand-name{color:var(--accent)}.brand-mark{width:30px;height:30px;border-radius:9px;flex:none;background:linear-gradient(135deg,var(--accent),color-mix(in oklab,var(--accent),var(--success) 55%));display:grid;place-items:center;color:var(--accent-on);font-size:16px;box-shadow:var(--elev-raised)}.brand-mark,.brand-name{font-family:var(--font-display);font-weight:700}.brand-name{font-size:var(--text-lg);letter-spacing:-.01em}.brand-name b{color:var(--accent);font-weight:700}.nav{padding:var(--space-4) var(--space-3);display:flex;flex-direction:column;gap:2px;overflow-y:auto;flex:1 1}.nav-label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:var(--space-4) var(--space-3) var(--space-2);white-space:nowrap}.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:12px var(--space-4);border-radius:var(--radius-sm);color:var(--fg-2);font-size:var(--text-sm);font-weight:500;border:none;background:none;width:100%;text-align:left;white-space:nowrap;position:relative;transition:background var(--motion-fast) var(--ease-standard),color var(--motion-fast)}.nav-item:hover{background:var(--state-hover)}.nav-item.active{color:var(--on-sec-container);font-weight:600}.nav-item.active,.nav-item.active:hover{background:var(--sec-container)}.nav-item.active .ico{color:var(--on-sec-container)}.nav-item.is-soon{color:color-mix(in oklab,var(--muted) 70%,var(--surface));cursor:default}.nav-item.is-soon:hover{background:none}.ico{width:20px;height:20px;flex:none;color:var(--muted)}.nav-item .label{flex:1 1;overflow:hidden}.nav-badge{font-weight:600;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--danger);color:var(--accent-on);display:grid;place-items:center}.nav-badge,.soon-tag{font-family:var(--font-mono);font-size:var(--text-xs)}.soon-tag{letter-spacing:.04em;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:1px 7px}.rail-foot{border-top:1px solid var(--border-soft);padding:var(--space-3)}.brand-name,.nav-item .label,.nav-item .nav-badge,.nav-label,.soon-tag{opacity:var(--label-op);transition:opacity var(--motion-fast) var(--ease-standard)}.nav-item.has-dot:after{content:"";position:absolute;top:9px;left:30px;width:7px;height:7px;border-radius:50%;background:var(--danger);opacity:calc(1 - var(--label-op));transition:opacity var(--motion-fast) var(--ease-standard);pointer-events:none}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;height:var(--topbar-h);background:color-mix(in oklab,var(--surface) 86%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-6)}.icon-btn{width:var(--control-icon);height:var(--control-icon);border-radius:var(--radius-md);border:none;background:none;display:grid;place-items:center;color:var(--fg-2);position:relative;flex:none;transition:background var(--motion-fast)}.icon-btn:hover{background:var(--state-hover)}.icon-btn:active{background:var(--state-press)}.icon-btn .ico{color:inherit}.hamburger{display:none}.spacer{flex:1 1}.menu{position:absolute;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--elev-2);padding:var(--space-2);min-width:280px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity var(--motion-fast),transform var(--motion-fast),visibility var(--motion-fast);z-index:50}.pop.open .menu{opacity:1;visibility:visible;transform:translateY(0)}.menu.from-left{left:0;top:calc(100% + 8px)}.menu.from-right{right:0;top:calc(100% + 8px)}.menu-head{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:var(--space-3) var(--space-3) var(--space-2)}.lang-list{display:flex;flex-direction:column}.lang-opt{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border:none;background:none;width:100%;text-align:left;border-radius:var(--radius-sm);font-size:var(--text-sm)}.lang-opt:hover{background:var(--state-hover)}.lang-opt[aria-checked=true]{color:var(--accent);font-weight:500}.lang-opt .code{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted);margin-left:auto}.lang-opt[aria-checked=true] .code{color:var(--accent)}.pop{position:relative}.badge-dot{position:absolute;top:7px;right:8px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--danger);color:var(--accent-on);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;display:grid;place-items:center;border:2px solid var(--surface)}.peek{width:320px;padding:0}.peek-row{display:flex;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);align-items:flex-start}.peek-row:hover{background:var(--state-hover)}.peek-ico{width:30px;height:30px;border-radius:9px;flex:none;display:grid;place-items:center;font-family:var(--font-mono)}.peek-ico.d{background:var(--danger-soft);color:var(--danger)}.peek-ico.w{background:var(--warn-soft);color:var(--warn)}.peek-row .t{font-size:var(--text-sm);font-weight:500}.peek-row .s{font-size:var(--text-xs);color:var(--muted);margin-top:2px}.peek-main{flex:1 1;min-width:0}.peek-prod{font-size:var(--text-xs);color:var(--fg-2);margin-top:2px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.peek-foot{border-top:1px solid var(--border-soft);padding:var(--space-2)}.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--muted),var(--fg));color:var(--accent-on);display:grid;place-items:center;font-family:var(--font-display);font-weight:600;font-size:var(--text-sm);flex:none}.user-card{padding:var(--space-4);display:flex;gap:var(--space-3);align-items:center;border-bottom:1px solid var(--border-soft)}.user-card .un{font-weight:500;font-size:var(--text-sm)}.user-card .ue{font-size:var(--text-xs);color:var(--muted)}.menu-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border:none;background:none;width:100%;text-align:left;border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--fg-2)}.menu-item:hover{background:var(--state-hover)}.menu-item.danger{color:var(--danger)}.theme-ico .sun,[data-theme=dark] .theme-ico .moon{display:none}[data-theme=dark] .theme-ico .sun{display:block}.main{min-width:0;display:flex;flex-direction:column;overflow-x:clip;margin-left:var(--rail-collapsed);transition:margin-left var(--motion-base) var(--ease-standard)}.app.is-pinned .main{margin-left:var(--rail)}.content{padding:var(--space-6) clamp(var(--space-4),3.2vw,var(--space-12));max-width:1360px;width:100%;margin:0 auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-5)}.page-title{font-size:var(--text-2xl);font-weight:600;letter-spacing:-.01em}.page-sub{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-2);font-size:var(--text-sm)}.page-sub,.scope-chip{align-items:center;color:var(--muted)}.scope-chip{display:inline-flex;gap:8px;font-family:var(--font-body);font-size:12px;padding:4px 8px;border-radius:var(--radius-sm);background:var(--surface-1)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--elev-panel)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-soft)}.panel-title{font-size:var(--text-section);font-weight:500}.panel-body{padding:var(--space-5)}.link-btn{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-sm);color:var(--accent);font-weight:500;background:none;border:none;padding:4px 6px;border-radius:var(--radius-sm)}.link-btn:hover{background:var(--accent-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-form);padding:0 var(--space-4);border-radius:var(--radius-sm);border:1px solid transparent;font-size:var(--text-sm);font-weight:500;transition:background var(--motion-fast),box-shadow var(--motion-fast),border-color var(--motion-fast)}.btn-primary{background:var(--accent);color:var(--accent-on)}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:active{background:var(--accent-active)}.btn-tonal{background:var(--sec-container);color:var(--on-sec-container)}.btn-tonal:hover{background:var(--pri-container)}.btn-outline{background:transparent;border-color:var(--border);color:var(--accent)}.btn-outline:hover{background:var(--accent-soft);border-color:var(--accent)}.btn-text{background:transparent;color:var(--accent);padding:0 var(--space-3)}.btn-text:hover{background:var(--accent-soft)}.btn:disabled{opacity:.5;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:6px}.field>label{font-size:var(--text-sm);color:var(--fg-2);font-weight:500}.input{width:100%;height:var(--control-form);padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--fg);font:inherit;font-size:var(--text-base);transition:border-color var(--motion-fast),box-shadow var(--motion-fast)}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input::placeholder{color:var(--muted)}.field.has-error .input{border-color:var(--danger)}.field .err{color:var(--danger);min-height:14px}.field .err,.status{font-size:var(--text-xs)}.status{font-family:var(--font-body);font-weight:600;padding:4px 8px;border-radius:var(--radius-sm);white-space:nowrap;height:-moz-fit-content;height:fit-content;display:inline-flex;align-items:center;gap:5px}.status.open{background:var(--danger-soft);color:var(--danger)}.status.done{background:var(--surface-1);color:var(--muted)}.status.warn{background:var(--warn-soft);color:var(--warn)}.rs-lv,.status.neutral{background:var(--surface-2);color:var(--muted)}.rs-lv{display:inline-flex;align-items:center;font-size:var(--text-xs);font-weight:600;padding:2px 8px;border-radius:var(--radius-pill);white-space:nowrap}.rs-lv.out{background:var(--danger-soft);color:var(--danger)}.rs-lv.crit{background:var(--warn-soft);color:var(--warn)}.rs-lv.soon{background:var(--surface-3);color:var(--fg-2)}.rs-lv.top{background:var(--surface-1);color:var(--muted)}.rs-lv.surge{background:var(--accent-soft);color:var(--accent)}.chip{display:inline-flex;align-items:center;gap:6px;height:var(--control-height);padding:0 var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--fg-2);font-size:var(--text-sm);transition:background var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast)}.chip:hover{background:var(--state-hover)}.chip.on{background:var(--sec-container);border-color:transparent;color:var(--on-sec-container);font-weight:600}.seg{display:inline-flex;flex-wrap:wrap;max-width:100%;align-items:center;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0;gap:0}.seg button{border:none;background:none;padding:0 12px;min-height:calc(var(--control-height) - 2px);border-radius:6px;font-size:var(--text-sm);font-weight:500;color:var(--muted);transition:all var(--motion-fast)}.seg button.on{background:var(--sec-container);color:var(--on-sec-container);box-shadow:inset 0 -2px var(--accent)}.ds-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-sm);border:1px solid var(--border-soft);border-radius:var(--radius-card);overflow:hidden}.ds-table td,.ds-table th{padding:var(--table-padding-y) var(--table-padding-x);text-align:left;border-bottom:1px solid var(--border-soft)}.ds-table th{color:var(--muted);font-weight:600;font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;background:var(--surface-1)}.ds-table tbody tr:last-child td{border-bottom:none}.ds-table tbody tr:hover{background:var(--state-hover)}.ds-table .num-col{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fab{position:fixed;right:clamp(16px,3vw,32px);bottom:clamp(16px,3vw,32px);width:52px;height:52px;border-radius:18px;border:none;background:var(--accent);color:var(--accent-on);display:grid;place-items:center;box-shadow:var(--elev-2);z-index:60;opacity:0;visibility:hidden;transform:translateY(14px) scale(.92);transition:opacity var(--motion-base) var(--ease-standard),transform var(--motion-base) var(--ease-standard),background var(--motion-fast)}.fab.show{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.fab:hover{background:var(--accent-hover)}.fab:active{background:var(--accent-active);transform:translateY(0) scale(.96)}.scrim{inset:0;background:var(--scrim);transition:opacity var(--motion-base);z-index:35}.scrim,.toast{position:fixed;opacity:0;visibility:hidden}.toast{left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);background:var(--fg);color:var(--bg);font-size:var(--text-sm);padding:11px 18px;border-radius:var(--radius-pill);box-shadow:var(--elev-2);transition:opacity var(--motion-base),transform var(--motion-base);z-index:80}.toast.show{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}@media (max-width:900px){.app.is-pinned .rail,.app:not(.is-pinned) .rail.is-peek,.rail{width:min(82vw,300px);transform:translateX(-100%);box-shadow:none;--label-op:1}.app.drawer-open .rail{transform:translateX(0);box-shadow:var(--elev-2)}.app.is-pinned .main,.main{margin-left:0}.nav-item.has-dot:after{opacity:0}.hamburger{display:grid}.collapse-toggle{display:none}.app.drawer-open .scrim{opacity:1;visibility:visible}}@media (max-width:720px){.content{padding:var(--space-4)}.topbar{padding:0 var(--space-4)}.lang-text{display:none}}@media (max-width:420px){.topbar{gap:var(--space-2);padding:0 var(--space-3)}.icon-btn{width:var(--control-icon);height:var(--control-icon)}}.data-freshness{margin:8px 0 16px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:12px;color:var(--muted)}.data-freshness summary{cursor:pointer;color:var(--fg)}.data-freshness.needs-attention{border-left:3px solid var(--warn)}.data-freshness ul{padding-left:18px}.data-freshness li{margin:10px 0;overflow-wrap:anywhere}.data-freshness p{margin:8px 0 0}.filter-bar,.page-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.filter-bar{margin-bottom:var(--space-4)}.filter-bar :is(input:not([type=checkbox]),select,.btn),.page-actions :is(input,select,.btn){height:var(--control-height);border-radius:var(--radius-sm);font-size:var(--text-sm);padding-block:0}.empty-state{padding:var(--empty-padding);color:var(--muted);text-align:center;font-size:var(--text-sm);line-height:var(--leading-body)}.empty-state-title{margin-bottom:var(--space-2);font-size:var(--text-section);font-weight:500;color:var(--fg)}.pager{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4);font-size:var(--text-sm);color:var(--muted)}.pager-btns{display:flex;gap:var(--space-2)}.data-table{font-size:var(--text-table);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.data-table th{font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;background:var(--surface-1)}.detail-dialog{border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--elev-2)}.form-panel{max-width:var(--width-form)}:where(.content) :is(input,select,textarea){max-width:100%}@media (max-width:720px),(pointer:coarse){:root{--control-height:44px;--control-form:44px;--control-icon:44px}.seg button{min-height:var(--control-height)}.data-freshness summary,.link-btn{min-height:44px;align-content:center}.content :is(input:not([type=checkbox]),select,textarea){font-size:16px}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}}