.auth-lock-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;background:radial-gradient(circle at 50% 30%,rgba(13,18,31,.95),var(--bg) 80%);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);display:flex;align-items:center;justify-content:center;padding:20px}.auth-lock-card{width:100%;max-width:420px;background:#0d121fd9;border:1px solid var(--border-light);border-radius:8px;padding:36px 32px;box-shadow:0 24px 64px #000000b3,0 0 0 1px #38bdf81a;position:relative;overflow:hidden;transition:transform .2s cubic-bezier(.16,1,.3,1)}.auth-lock-card.shake{animation:auth-shake .45s cubic-bezier(.36,.07,.19,.97) both}@keyframes auth-shake{10%,90%{transform:translate3d(-2px,0,0)}20%,80%{transform:translate3d(4px,0,0)}30%,50%,70%{transform:translate3d(-6px,0,0)}40%,60%{transform:translate3d(6px,0,0)}}.auth-lock-header{text-align:center;margin-bottom:28px}.auth-lock-shield{width:52px;height:52px;margin:0 auto 16px;background:var(--primary-bg);border:1px solid rgba(56,189,248,.25);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--primary)}.auth-lock-shield svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.auth-lock-title{font-size:var(--fs-head);font-weight:700;color:var(--text);letter-spacing:.5px;margin-bottom:6px}.auth-lock-sub{font-size:var(--fs-label);color:var(--text-dim);line-height:1.5}.auth-lock-form{display:flex;flex-direction:column;gap:18px}.auth-input-group{position:relative;display:flex;align-items:center}.auth-input-icon{position:absolute;left:14px;width:16px;height:16px;color:var(--text-dim);pointer-events:none}.auth-input-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8}.auth-input{width:100%;height:44px;background:var(--panel-raised);border:1px solid var(--border-light);border-radius:6px;padding:0 42px 0 38px;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-body);letter-spacing:1px;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}.auth-input:focus{border-color:var(--primary);background:#172138f2;box-shadow:0 0 0 3px #38bdf826}.auth-input.error{border-color:var(--red);box-shadow:0 0 0 3px #f8717126}.auth-toggle-pwd{position:absolute;right:12px;background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:color .15s}.auth-toggle-pwd:hover{color:var(--text)}.auth-toggle-pwd svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}.auth-error-msg{display:flex;align-items:center;gap:6px;font-size:var(--fs-label);color:var(--red);margin-top:-8px;padding-left:2px}.auth-error-msg svg{width:14px;height:14px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2}.auth-submit-btn{height:44px;background:var(--primary);color:#040914;border:none;border-radius:6px;font-size:var(--fs-caption);font-weight:600;letter-spacing:.5px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .15s,transform .1s,box-shadow .15s}.auth-submit-btn:hover{background:var(--primary-hover);box-shadow:0 4px 16px #38bdf859}.auth-submit-btn:active{transform:scale(.98)}.auth-submit-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}.auth-lock-footer{margin-top:24px;padding-top:16px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-label);color:var(--text-faint)}.auth-footer-tag{display:flex;align-items:center;gap:5px}.auth-footer-dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green)}.app-header{position:sticky;top:0;z-index:100;background:var(--bg-surface);border-bottom:1px solid rgba(148,163,184,.18)}.header-main{height:64px;padding:0 18px;display:flex;align-items:center;gap:16px}.hd-brand{display:flex;align-items:center;gap:11px;flex-shrink:0;min-width:0}.logo-icon{width:40px;height:40px;background:var(--primary-bg);border:1px solid var(--border-focus);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.logo-icon svg{width:21px;height:21px;stroke:var(--primary);fill:none;stroke-width:2.1}.hd-brand-txt{min-width:0}.logo-title{font-size:var(--fs-title);font-weight:800;color:#fff;letter-spacing:.4px;white-space:nowrap;line-height:1.2}.logo-sub{font-size:var(--fs-caption);color:var(--text-dim);display:flex;align-items:center;gap:6px;margin-top:3px;white-space:nowrap}.sub-divider{opacity:.4}.live-dot{width:6px;height:6px;border-radius:50%;background:#34d399;flex:none;animation:dot-pulse 2s infinite ease-in-out}.header-telemetry-strip{display:flex;align-items:center;gap:8px;flex:1;justify-content:flex-end;overflow:hidden;padding:0 4px}.hdr-tel-chip{display:flex;align-items:center;gap:6px;padding:6px 11px;background:var(--bg-raised);border:1px solid rgba(148,163,184,.16);border-radius:var(--radius-sm);font-size:var(--fs-caption);white-space:nowrap;text-decoration:none;color:inherit;transition:border-color .15s ease,background .15s ease;flex-shrink:0}.hdr-tel-chip:hover{border-color:var(--primary);background:#172138}.hdr-tel-chip.chip-usertoken.state-warn{background:#fbbf241a;border-color:#fbbf2466}.hdr-tel-chip.chip-usertoken.state-expired{background:#f871711f;border-color:#f8717180}.chip-reeauth{margin-left:4px;padding:2px 8px;border-radius:var(--radius-sm);background:#f87171;color:#1a0608;font-weight:700;font-size:var(--fs-label);text-decoration:none;white-space:nowrap}.chip-reeauth:hover{background:#fca5a5}.chip-icon{width:14px;height:14px;stroke:var(--primary);fill:none;stroke-width:2.2;flex-shrink:0}.chip-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.pulse-green{background:#34d399;animation:dot-pulse 2s infinite ease-in-out}.pulse-amber{background:#fbbf24;animation:dot-pulse 2s infinite ease-in-out}.pulse-coral{background:#f87171;animation:dot-pulse 1.2s infinite ease-in-out}@keyframes dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.chip-label{color:var(--text-dim);font-size:var(--fs-caption);font-weight:600}.chip-val{color:#fff;font-weight:800;font-size:var(--fs-body)}.chip-sub{color:var(--text-muted);font-size:var(--fs-label);padding-left:6px;border-left:1px solid rgba(148,163,184,.22)}.color-primary{color:#38bdf8!important}.color-green{color:#34d399!important}.color-amber{color:#fbbf24!important}.color-coral{color:#f87171!important}.font-bold{font-weight:700!important}.hd-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.hdr-clock{display:flex;align-items:baseline;gap:8px;padding:6px 12px;border:1px solid rgba(56,189,248,.28);background:var(--primary-bg);border-radius:var(--radius-sm);white-space:nowrap}.hdr-clock-date{font-size:var(--fs-caption);font-weight:600;color:var(--text-dim)}.hdr-clock-time{font-size:var(--fs-head);font-weight:800;color:#fff;letter-spacing:.6px}.hdr-clock-week{font-size:var(--fs-caption);font-weight:700;color:var(--primary)}.hdr-bell{position:relative;width:38px;height:38px;border-radius:var(--radius-sm);background:var(--bg-raised);border:1px solid rgba(148,163,184,.16);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s ease,background .15s ease}.hdr-bell:hover{border-color:var(--primary);background:#172138}.hdr-bell svg{width:19px;height:19px;stroke:var(--text-muted);fill:none;stroke-width:1.9}.hdr-bell:hover svg{stroke:#fff}.hdr-bell-badge{position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#f87171;color:#1a0608;font-family:var(--font-mono);font-size:var(--fs-label);font-weight:800;line-height:19px;text-align:center}.hdr-user{display:flex;align-items:center;gap:9px;padding:5px 10px 5px 5px;border-radius:var(--radius-sm);border:1px solid rgba(148,163,184,.16);background:var(--bg-raised);text-decoration:none;cursor:pointer;font-family:inherit;transition:border-color .15s ease,background .15s ease}.hdr-user:hover,.hdr-user.is-open{border-color:var(--primary);background:#172138}.hdr-user-wrap{position:relative}.hdr-user-caret{width:14px;height:14px;stroke:var(--text-faint);fill:none;stroke-width:2;transition:transform .15s ease}.hdr-user.is-open .hdr-user-caret{transform:rotate(180deg);stroke:var(--primary)}.hdr-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:200;min-width:260px;padding:6px;border-radius:var(--radius-md);border:1px solid rgba(148,163,184,.22);background:var(--bg-raised);box-shadow:0 12px 32px #00000073}.hdr-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-dim);text-decoration:none;cursor:pointer;font-family:inherit;text-align:left;transition:background .12s ease,color .12s ease}.hdr-menu-item:hover{background:var(--primary-bg);color:#fff}.hdr-menu-ico{width:26px;height:26px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:var(--primary-bg);border:1px solid var(--border-focus)}.hdr-menu-ico svg{width:14px;height:14px;stroke:var(--primary);fill:none;stroke-width:2}.hdr-menu-txt{display:flex;flex-direction:column;line-height:1.3;min-width:0;flex:1}.hdr-menu-txt b{font-size:var(--fs-body);font-weight:700;color:#fff;white-space:nowrap}.hdr-menu-txt small{font-size:var(--fs-label);color:var(--text-faint);white-space:nowrap}.hdr-menu-sep{height:1px;margin:5px 8px;background:#94a3b829}.hdr-switch{width:34px;height:19px;flex-shrink:0;border-radius:999px;background:#94a3b838;border:1px solid rgba(148,163,184,.28);position:relative;transition:background .15s ease,border-color .15s ease}.hdr-switch i{position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:var(--text-dim);transition:transform .15s ease,background .15s ease}.hdr-switch.is-on{background:#fbbf2429;border-color:#fbbf2473}.hdr-switch.is-on i{transform:translate(15px);background:#fbbf24}.hdr-menu-danger:hover{background:var(--red-bg);color:var(--red)}.hdr-menu-danger:hover .hdr-menu-txt b{color:var(--red)}.hdr-menu-ico-danger{background:transparent;border-color:#94a3b838}.hdr-menu-ico-danger svg{stroke:var(--text-dim)}.hdr-menu-danger:hover .hdr-menu-ico-danger{background:var(--red-bg);border-color:#f8717166}.hdr-menu-danger:hover .hdr-menu-ico-danger svg{stroke:var(--red)}.hdr-avatar{width:30px;height:30px;border-radius:50%;background:var(--primary-bg);border:1px solid var(--border-focus);display:flex;align-items:center;justify-content:center;flex-shrink:0}.hdr-avatar svg{width:16px;height:16px;stroke:var(--primary);fill:none;stroke-width:2}.hdr-user-txt{display:flex;flex-direction:column;line-height:1.25}.hdr-user-txt b{font-size:var(--fs-body);font-weight:700;color:#fff;white-space:nowrap}.hdr-user-txt small{font-size:var(--fs-label);color:var(--text-faint);white-space:nowrap}.header-tabs{height:48px;padding:0 18px;display:flex;align-items:center;gap:6px;border-top:1px solid var(--border-light);overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.header-tabs::-webkit-scrollbar{height:0}.switch-btn{display:flex;align-items:center;gap:7px;padding:0 15px;height:34px;border-radius:var(--radius-sm);font-size:var(--fs-body);font-weight:600;color:var(--text-dim);text-decoration:none;border:1px solid transparent;white-space:nowrap;flex-shrink:0;transition:color .14s ease,background .14s ease,border-color .14s ease}.switch-btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0}.switch-btn:hover{color:#fff;background:var(--bg-raised)}.switch-btn.btn-wall{background:var(--primary-bg);border-color:#38bdf859;color:var(--primary);font-weight:700}.switch-btn.active{color:var(--primary);background:var(--primary-bg);border-color:#38bdf859;font-weight:800}.switch-btn.active svg{stroke:var(--primary)}.switch-badge{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#f87171;color:#1a0608;font-family:var(--font-mono);font-style:normal;font-size:var(--fs-label);font-weight:800;line-height:18px;text-align:center}@media (max-width: 1500px){.hdr-tel-chip .chip-sub{display:none}}@media (max-width: 1360px){.hdr-tel-chip.chip-usertoken,.hdr-clock-date,.hdr-user-txt small{display:none}}@media (max-width: 1180px){.logo-sub,.hdr-tel-chip{display:none}}@media (max-width: 960px){.header-main{height:auto;padding:10px 14px;flex-wrap:wrap;gap:10px}.header-tabs{padding:0 14px}.hdr-clock{padding:4px 9px}.hdr-clock-time{font-size:var(--fs-lead)}}@media (max-width: 640px){.logo-title{font-size:var(--fs-subhead)}.hdr-user-txt{display:none}.hdr-user{padding:5px}.switch-btn{font-size:var(--fs-caption);padding:0 11px}}.perm-wall{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 140px);padding:48px 20px}.perm-wall-card{width:min(560px,100%);padding:30px 32px 26px;background:var(--bg-surface, #11151b);border:1px solid var(--border, rgba(148, 163, 184, .14));border-radius:10px}.perm-wall-head{display:flex;align-items:center;gap:8px;font-size:var(--fs-caption);color:var(--text-faint, #7c8ba1);letter-spacing:.3px}.perm-wall-dot{width:6px;height:6px;border-radius:50%;background:var(--warn, #fbbf24);flex:0 0 auto}.perm-wall-title{margin-top:14px;font-size:var(--fs-title);font-weight:700;color:var(--text, #e6edf7);line-height:1.4}.perm-wall-desc{margin-top:10px;font-size:var(--fs-body);line-height:1.75;color:var(--text-dim, #94a3b8)}.perm-wall-meta{margin-top:16px;padding:10px 12px;border-radius:6px;background:var(--bg-sunken, #080b11);border:1px solid var(--border-light, rgba(148, 163, 184, .08));font-size:var(--fs-label);line-height:1.9;color:var(--text-faint, #7c8ba1);font-family:var(--font-mono, ui-monospace, monospace)}.perm-wall-meta b{color:var(--text-dim, #94a3b8);font-weight:600}.perm-wall-actions{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap}.perm-wall-btn{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 16px;border-radius:6px;font-size:var(--fs-caption);font-weight:600;text-decoration:none;border:1px solid var(--border, rgba(148, 163, 184, .18));color:var(--text-dim, #94a3b8);background:transparent;transition:color .15s,border-color .15s}.perm-wall-btn:hover{color:var(--text, #e6edf7);border-color:#94a3b857}.perm-wall-btn.is-primary{background:var(--primary, #38bdf8);border-color:var(--primary, #38bdf8);color:#0a0d13}.perm-wall-btn.is-primary:hover{background:var(--primary-hover, #7dd3fc);border-color:var(--primary-hover, #7dd3fc);color:#0a0d13}.newcomer-guide-mask{position:fixed;top:0;left:0;right:0;bottom:0;background:#0a0d13d1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}.newcomer-guide-card{width:100%;max-width:520px;background:#0d121f;border:1px solid rgba(56,189,248,.3);border-radius:8px;padding:24px;box-shadow:0 12px 32px #0009;display:flex;flex-direction:column;gap:16px;animation:guideFadeIn .2s ease-out}@keyframes guideFadeIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.guide-header{display:flex;align-items:center;justify-content:space-between}.guide-tag-group{display:flex;align-items:center;gap:8px}.guide-dot{width:6px;height:6px;border-radius:50%;background:#38bdf8}.guide-badge{font-size:var(--fs-label);color:#38bdf8;background:#38bdf81f;padding:2px 8px;border-radius:4px;font-family:JetBrains Mono,monospace}.guide-progress{font-size:var(--fs-label);color:#64748b;font-family:JetBrains Mono,monospace}.guide-close-btn{background:transparent;border:none;color:#64748b;font-size:var(--fs-label);cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .15s ease}.guide-close-btn:hover{color:#f43f5e;background:#f43f5e1a}.guide-title{font-size:var(--fs-subhead);font-weight:600;color:#f8fafc;margin:0}.guide-desc{font-size:var(--fs-caption);color:#94a3b8;line-height:1.6;margin:0}.guide-action-box{background:#06090e;border:1px solid rgba(255,255,255,.06);border-radius:6px;padding:12px;font-size:var(--fs-label);display:flex;flex-direction:column;gap:4px}.guide-action-label{color:#64748b;font-weight:500}.guide-action-text{color:#38bdf8;font-family:JetBrains Mono,monospace}.guide-footer{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding-top:16px;border-top:1px solid rgba(255,255,255,.06)}.guide-dots-indicator{display:flex;gap:6px}.guide-indicator-dot{width:6px;height:6px;border-radius:50%;background:#fff3;cursor:pointer;transition:all .15s ease}.guide-indicator-dot.active{background:#38bdf8;width:16px;border-radius:3px}.guide-btn{padding:6px 16px;border-radius:6px;font-size:var(--fs-label);font-weight:500;cursor:pointer;transition:all .15s ease}.guide-btn.primary{background:#38bdf8;color:#0a0d13;border:none}.guide-btn.primary:hover{background:#0284c7;color:#fff}.guide-btn.secondary{background:transparent;color:#94a3b8;border:1px solid rgba(255,255,255,.1)}.guide-btn.secondary:hover:not(:disabled){border-color:#fff3;color:#f8fafc}.guide-btn:disabled{opacity:.4;cursor:not-allowed}:root,.theme-dark{--bg-sunken: #080b11;--bg-base: #0a0d13;--bg-surface: #11151b;--bg-raised: #161b22;--bg-overlay: #1b212a;--border: rgba(148, 163, 184, .1);--border-strong: rgba(148, 163, 184, .2);--border-focus: rgba(56, 189, 248, .45);--text: #f1f5f9;--text-muted: #b6c2d1;--text-dim: #8696aa;--text-faint: #5f6e82;--primary: #38bdf8;--primary-hover: #7dd3fc;--primary-active: #0ea5e9;--primary-bg: rgba(56, 189, 248, .08);--on-primary: #04141f;--ok: #34d399;--warn: #fbbf24;--danger: #f87171;--ok-bg: rgba(52, 211, 153, .08);--warn-bg: rgba(251, 191, 36, .08);--danger-bg: rgba(248, 113, 113, .08);--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-pill: 999px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--fs-2xs: 11px;--fs-xs: 12px;--fs-sm: 13px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 20px;--fs-2xl: 24px;--fs-3xl: 32px;--fs-hero: 56px;--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fs-label: 12px;--fs-caption: 13px;--fs-body: 14px;--fs-lead: 15px;--fs-subhead: 16px;--fs-head: 18px;--fs-title: 20px;--fs-title-lg: 24px;--fs-metric: 28px;--fs-metric-lg: 34px;--fs-display: 44px;--fs-mega: 56px;--lh-tight: 1.2;--lh-snug: 1.35;--lh-normal: 1.5;--lh-relaxed: 1.6;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .28);--shadow-md: 0 6px 16px rgba(0, 0, 0, .34);--shadow-lg: 0 14px 32px rgba(0, 0, 0, .44);--font-display: "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", Consolas, monospace;--sidebar-bg: #090c11;--sidebar-border: rgba(148, 163, 184, .08);--sidebar-text: #8696aa;--sidebar-text-hover: #f1f5f9;--sidebar-item-hover: rgba(148, 163, 184, .07);--sidebar-active-bg: rgba(148, 163, 184, .1);--sidebar-active-text: #f1f5f9;--bg: var(--bg-base);--bg-alt: var(--bg-surface);--panel: var(--bg-surface);--panel-alt: var(--bg-raised);--panel-raised: var(--bg-raised);--panel-hover: var(--bg-overlay);--surface: var(--bg-surface);--surface-2: var(--bg-raised);--card-bg: var(--bg-surface);--border-light: var(--border);--border-neutral: var(--border);--border-hover: var(--border-strong);--primary-flat: var(--primary);--primary-dim: var(--primary-bg);--brand: var(--primary);--brand-hover: var(--primary-hover);--brand-active: var(--primary-active);--brand-light: var(--primary-bg);--brand-soft: var(--primary-bg);--info: var(--primary);--info-soft: var(--primary-bg);--green: var(--ok);--green-bg: var(--ok-bg);--amber: var(--warn);--amber-bg: var(--warn-bg);--red: var(--danger);--red-bg: var(--danger-bg);--success: var(--ok);--success-soft: var(--ok-bg);--warning: var(--warn);--warning-soft: var(--warn-bg);--danger-soft: var(--danger-bg);--status-sage: var(--ok);--status-amber: var(--warn);--status-coral: var(--danger);--cyan: var(--primary);--cyan-bg: var(--primary-bg);--purple: var(--text-dim);--purple-bg: var(--bg-raised);--purple-soft: var(--bg-raised);--text-1: var(--text);--text-2: var(--text-muted);--text-3: var(--text-dim);--text-on-brand: var(--on-primary);--shadow-flat-sm: var(--shadow-sm);--shadow-flat-md: var(--shadow-md);--radius-sm: var(--r-sm);--radius-md: var(--r-md);--radius-lg: var(--r-md);--radius-xl: var(--r-md);--fs-base: var(--fs-sm);color-scheme:dark}.theme-light{--bg-sunken: #eef1f6;--bg-base: #f5f7fa;--bg-surface: #ffffff;--bg-raised: #f8fafc;--bg-overlay: #ffffff;--border: rgba(100, 116, 139, .16);--border-strong: rgba(100, 116, 139, .28);--border-focus: rgba(2, 132, 199, .45);--text: #0f172a;--text-muted: #334155;--text-dim: #5b6b80;--text-faint: #8a97a8;--primary: #0284c7;--primary-hover: #0369a1;--primary-active: #075985;--primary-bg: rgba(2, 132, 199, .07);--on-primary: #ffffff;--ok: #059669;--warn: #b45309;--danger: #dc2626;--ok-bg: rgba(5, 150, 105, .08);--warn-bg: rgba(180, 83, 9, .08);--danger-bg: rgba(220, 38, 38, .08);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 6px 16px rgba(15, 23, 42, .08);--shadow-lg: 0 14px 32px rgba(15, 23, 42, .12);--sidebar-bg: #ffffff;--sidebar-border: rgba(100, 116, 139, .14);--sidebar-text: #5b6b80;--sidebar-text-hover: #0f172a;--sidebar-item-hover: #f1f5f9;--sidebar-active-bg: rgba(2, 132, 199, .08);--sidebar-active-text: #0f172a;color-scheme:light}:root{--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--text-faint);flex:none;vertical-align:middle}.dot.ok{background:var(--ok)}.dot.warn{background:var(--warn)}.dot.danger{background:var(--danger)}.dot.primary{background:var(--primary)}.status{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--text-muted);line-height:1.4}.status:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--text-faint);flex:none}.status.ok:before{background:var(--ok)}.status.warn:before{background:var(--warn)}.status.danger:before{background:var(--danger)}.status.primary:before{background:var(--primary)}.num,.tabular{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}:root,.theme-dark{--bg: var(--bg-base);--bg-alt: var(--bg-surface);--panel: var(--bg-surface);--panel-alt: var(--bg-raised);--panel-raised: var(--bg-raised);--panel-hover: var(--bg-overlay);--border: rgba(148, 163, 184, .1);--border-light: rgba(148, 163, 184, .08);--border-focus: var(--border-focus);--bg-base: #0a0d13;--bg-surface: #11151b;--bg-raised: #161b22;--border-neutral: rgba(148, 163, 184, .1);--border-hover: rgba(148, 163, 184, .2);--primary-flat: #38bdf8;--primary-dim: rgba(56, 189, 248, .08);--ok: #34d399;--warn: #fbbf24;--danger: #f87171;--shadow-flat-sm: var(--shadow-sm);--shadow-flat-md: var(--shadow-md);--primary: #38bdf8;--primary-hover: #7dd3fc;--primary-bg: rgba(56, 189, 248, .08);--green: #34d399;--green-bg: rgba(52, 211, 153, .08);--amber: #fbbf24;--amber-bg: rgba(251, 191, 36, .08);--red: #f87171;--red-bg: rgba(248, 113, 113, .08);--status-sage: #34d399;--status-amber: #fbbf24;--status-coral: #f87171;--text: #f1f5f9;--text-muted: #bcc8d6;--text-dim: #93a2b5;--text-faint: #6b7a8e;--font-display: "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif;--font-mono: "JetBrains Mono", Consolas, monospace;--radius-sm: 6px;--radius-md: 8px;color-scheme:dark}.theme-light{--bg: #f4f6fa;--bg-alt: #ffffff;--panel: #ffffff;--panel-alt: #f1f5f9;--panel-raised: #f8fafc;--panel-hover: #e2e8f0;--border: rgba(148, 163, 184, .25);--border-light: rgba(148, 163, 184, .18);--border-focus: rgba(2, 132, 199, .45);--bg-base: #f4f6fa;--bg-surface: #ffffff;--bg-raised: #f8fafc;--border-neutral: rgba(148, 163, 184, .22);--border-hover: rgba(148, 163, 184, .35);--primary-flat: #0284c7;--primary-dim: rgba(2, 132, 199, .1);--ok: #059669;--warn: #d97706;--danger: #dc2626;--shadow-flat-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-flat-md: 0 4px 12px rgba(0, 0, 0, .08);--primary: #0284c7;--primary-hover: #0369a1;--primary-bg: rgba(2, 132, 199, .08);--green: #059669;--green-bg: rgba(5, 150, 105, .08);--amber: #d97706;--amber-bg: rgba(217, 119, 6, .08);--red: #dc2626;--red-bg: rgba(220, 38, 38, .08);--status-sage: #059669;--status-amber: #d97706;--status-coral: #dc2626;--text: #0f172a;--text-muted: #334155;--text-dim: #64748b;--text-faint: #94a3b8;color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font-display);font-size:var(--fs-body);line-height:1.5;transition:background-color .15s ease,color .15s ease}html.theme-dark,body.theme-dark{color-scheme:dark}html.theme-light,body.theme-light{color-scheme:light}html.theme-light body .hud-corner-box,html.theme-light body .card,html.theme-light body .panel,html.theme-light body .modal,html.theme-light body .dialog,html.theme-light body .config-card,html.theme-light body .vsm-card,html.theme-light body .vsm-modal,html.theme-light body .biz-card,html.theme-light body .roi-panel,html.theme-light body .roi-audit-card,html.theme-light body .pk-chart-box,html.theme-light body .pk-store-card,html.theme-light body .ns-roi-card{background-color:var(--bg-surface)!important;background:var(--bg-surface)!important;border-color:var(--border)!important;box-shadow:var(--shadow-sm)!important;color:var(--text)!important}html.theme-light body .header,html.theme-light body .hdr-top,html.theme-light body .um-item,html.theme-light body .vsm-header,html.theme-light body .aqm-header,html.theme-light body .pk-sc-head{background-color:var(--bg-raised)!important;background:var(--bg-raised)!important;border-color:var(--border-light)!important;color:var(--text)!important}html.theme-light body .bg-sunken,html.theme-light body .vsm-viewport,html.theme-light body .aqm-viewport,html.theme-light body .pw-placeholder{background-color:var(--bg-sunken)!important;background:var(--bg-sunken)!important}html.theme-light body .text-dim,html.theme-light body .text-muted,html.theme-light body .label,html.theme-light body .vsm-range-lbl{color:var(--text-dim)!important}html.theme-light body .vsm-overlay,html.theme-light body .aqm-overlay,html.theme-light body .mask,html.theme-light body .sop-lightbox-mask{background-color:#f1f5f9d9!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}html.theme-light body input,html.theme-light body select,html.theme-light body textarea{background-color:var(--bg-surface)!important;border-color:var(--border-neutral)!important;color:var(--text)!important}html.theme-light body .btn-secondary,html.theme-light body .ctl-btn,html.theme-light body .vsm-count-btn,html.theme-light body .vsm-range-btn{background-color:var(--bg-raised)!important;border-color:var(--border-neutral)!important;color:var(--text-muted)!important}html.theme-light body .btn-secondary:hover,html.theme-light body .ctl-btn:hover{background-color:var(--panel-hover)!important;border-color:var(--border-hover)!important;color:var(--text)!important}#root{min-height:100vh;position:relative}a{color:inherit}button,input,select,textarea{font-family:inherit;color:inherit}.mono{font-family:var(--font-mono)}.spinner{width:28px;height:28px;border:3px solid rgba(56,189,248,.2);border-top-color:var(--primary);border-radius:50%;animation:otter-spin .8s linear infinite}@keyframes otter-spin{to{transform:rotate(360deg)}}.fullscreen-loading{height:calc(100vh - 112px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--primary);font-size:var(--fs-caption);font-weight:600}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#94a3b82e;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b852}.hud-corner-box{position:relative}.hud-corner-box:before,.hud-corner-box:after{content:"";position:absolute;width:6px;height:6px;border-color:var(--primary);opacity:.5;pointer-events:none}.hud-corner-box:before{top:-1px;left:-1px;border-top:1px solid;border-left:1px solid}.hud-corner-box:after{bottom:-1px;right:-1px;border-bottom:1px solid;border-right:1px solid}@media (max-width: 768px){html,body{font-size:var(--fs-label)}button:not([class*=icon]),.btn,.nav-item,.chip,[role=button]{min-height:36px;padding-top:8px!important;padding-bottom:8px!important}.fullscreen-loading{height:calc(100vh - 48px)}.app-container,.mon-shell,.screen-faults .app-container,.screen-dashboard .main-container,.screen-clean .main-container,.screen-config .config-container,.screen-business .app-container,.screen-alerts .app-container{padding-left:12px!important;padding-right:12px!important}}@media (max-width: 480px){html,body{font-size:var(--fs-label)}button:not([class*=icon]),.btn,[role=button]{min-height:32px}}
