.icon-svg[data-v-8ad3162e]{display:inline-block;vertical-align:middle;flex-shrink:0}.brand[data-v-8581d61f]{flex-direction:column;align-items:flex-start}.brand-logo[data-v-8581d61f]{width:100%}.logo-text[data-v-8581d61f]{font-size:var(--fs-h3);letter-spacing:.02em}body.sidebar-collapsed .brand[data-v-8581d61f]{align-items:center}.operator-badge[data-v-d9b99733]{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;background:var(--primary-light);color:var(--role-ink);font-size:12px;font-weight:600;white-space:nowrap;border:1px solid var(--border)}.operator-dot[data-v-d9b99733]{width:6px;height:6px;border-radius:50%;background:var(--role-primary)}.header-notice[data-v-d9b99733]{position:absolute;top:calc(100% + 10px);right:20px;padding:10px 16px;border-radius:var(--radius);background:var(--bg-elevated);border:1px solid var(--border);border-left:3px solid var(--role-primary);box-shadow:var(--shadow-pop);font-size:var(--fs-caption);color:var(--text-primary);z-index:120;white-space:nowrap}.notice-fade-enter-active[data-v-d9b99733],.notice-fade-leave-active[data-v-d9b99733]{transition:opacity .22s var(--ease),transform .22s var(--ease)}.notice-fade-enter-from[data-v-d9b99733],.notice-fade-leave-to[data-v-d9b99733]{opacity:0;transform:translateY(-6px)}@media (max-width: 1280px){.header-user .meta[data-v-d9b99733]{display:none}.header-user[data-v-d9b99733]{padding:3px}}@media (max-width: 900px){.operator-badge[data-v-d9b99733]{display:none}}.tour-overlay[data-v-88fe86bd]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:#0208126b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity .28s var(--ease)}.tour-spotlight[data-v-88fe86bd]{position:fixed;pointer-events:none;border-radius:12px;box-shadow:0 0 0 9999px #02081273;border:2px solid var(--role-primary);transition:top .35s var(--ease),left .35s var(--ease),width .35s var(--ease),height .35s var(--ease),opacity .25s var(--ease);z-index:501}.tour-tooltip[data-v-88fe86bd]{width:min(420px,calc(100vw - 32px));max-width:420px;background:var(--bg-glass);-webkit-backdrop-filter:blur(22px) saturate(1.5);backdrop-filter:blur(22px) saturate(1.5);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);padding:18px 20px 16px;color:var(--text-primary);z-index:502;transition:top .35s var(--ease),left .35s var(--ease),right .35s var(--ease),bottom .35s var(--ease),opacity .25s var(--ease),transform .35s var(--ease)}.tour-tooltip-mobile[data-v-88fe86bd]{width:auto;max-width:none}.tour-header[data-v-88fe86bd]{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.tour-step-count[data-v-88fe86bd]{font-size:var(--fs-small);color:var(--text-tertiary);font-family:var(--font-mono)}.tour-close[data-v-88fe86bd]{width:28px;height:28px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;color:var(--text-tertiary);cursor:pointer;transition:background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease)}.tour-close[data-v-88fe86bd]:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border)}.tour-title[data-v-88fe86bd]{font-size:var(--fs-h3);font-weight:var(--fw-semibold);margin-bottom:8px;line-height:1.35;color:var(--text-primary)}.tour-content[data-v-88fe86bd]{font-size:var(--fs-body-sm);line-height:1.65;color:var(--text-secondary);margin-bottom:18px}.tour-actions[data-v-88fe86bd]{display:flex;align-items:center;justify-content:space-between;gap:12px}.tour-nav[data-v-88fe86bd]{display:flex;align-items:center;gap:10px;margin-left:auto}.tour-progress[data-v-88fe86bd]{display:flex;justify-content:center;gap:6px;margin-top:16px}.tour-dot[data-v-88fe86bd]{width:6px;height:6px;border-radius:50%;background:var(--border-strong);transition:background .2s var(--ease),transform .2s var(--ease)}.tour-dot.active[data-v-88fe86bd]{background:var(--role-primary);transform:scale(1.35)}.tour-fade-enter-active[data-v-88fe86bd],.tour-fade-leave-active[data-v-88fe86bd]{transition:opacity .28s var(--ease)}.tour-fade-enter-from[data-v-88fe86bd],.tour-fade-leave-to[data-v-88fe86bd]{opacity:0}@supports (padding-bottom: env(safe-area-inset-bottom)){.tour-tooltip-mobile[data-v-88fe86bd]{bottom:calc(16px + var(--mobile-nav-height) + env(safe-area-inset-bottom))}}:root{--bg-page: #070c17;--bg-page-accent: radial-gradient(1200px 600px at 12% -10%, rgba(0, 217, 255, .1) 0%, transparent 60%), radial-gradient(900px 600px at 100% 0%, rgba(99, 102, 241, .1) 0%, transparent 55%);--bg-primary: #0b1220;--bg-secondary: #101a2c;--bg-tertiary: #16223a;--bg-input: #0e1728;--bg-glass: rgba(16, 26, 44, .82);--bg-hover: rgba(148, 163, 184, .1);--bg-card: #101a2c;--bg-elevated: #14203a;--text-primary: #e8eef8;--text-secondary: #9aabc4;--text-tertiary: #74869f;--text-muted: #5b6b83;--text-sub: #9aabc4;--text-main: #e8eef8;--role-primary: #00d9ff;--role-secondary: #0080ff;--role-success: #34d399;--role-warning: #ff9f43;--role-danger: #ff4757;--role-purple: #8b5cf6;--role-gold: #ffd700;--accent-cyan: #00d9ff;--accent-cyan-dim: #06b6d4;--accent-purple: #6366f1;--accent-glow: rgba(0, 217, 255, .15);--accent-light: rgba(0, 217, 255, .08);--border: rgba(148, 178, 214, .16);--border-strong: rgba(148, 178, 214, .28);--border-default: rgba(148, 178, 214, .24);--border-focus: var(--role-primary);--divider: rgba(148, 178, 214, .12);--shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 8px 24px -12px rgba(0, 0, 0, .55);--shadow-soft: 0 4px 16px -6px rgba(0, 0, 0, .5);--shadow-hover: 0 2px 4px rgba(0, 0, 0, .3), 0 16px 36px -16px rgba(0, 0, 0, .65);--shadow-pop: 0 24px 60px -20px rgba(2, 8, 20, .8);--glow-intensity: .5;--ring: 0 0 0 3px rgba(0, 217, 255, .22);--success: #34d399;--success-glow: rgba(52, 211, 153, .25);--warning: #ff9f43;--error: #ff4757;--danger: #ff4757;--info: #3b82f6;--gold: #ffd700;--primary: var(--role-primary);--primary-light: rgba(0, 217, 255, .12);--secondary: var(--accent-purple);--secondary-light: rgba(99, 102, 241, .12);--accent: var(--accent-cyan-dim);--bg-card-alias: var(--bg-secondary);--font-scale: 1;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", "PingFang SC", "Noto Sans SC", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;--font-mono: "SF Mono", "JetBrains Mono", "Fira Code", ui-monospace, "Cascadia Mono", monospace;--fs-display: 2.25rem;--fs-h1: 2rem;--fs-h2: 1.625rem;--fs-h3: 1.375rem;--fs-body: calc(1.125rem * var(--font-scale));--fs-body-sm: calc(1rem * var(--font-scale));--fs-caption: calc(.875rem * var(--font-scale));--fs-small: calc(.75rem * var(--font-scale));--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--radius-sm: 6px;--radius: 8px;--radius-lg: 12px;--radius-xl: 16px;--sidebar-width: 218px;--sidebar-collapsed-width: 72px;--header-height: 60px;--mobile-nav-height: 60px;--content-max-width: 1520px;--section-gap: 1.25rem;--ease: cubic-bezier(.4, 0, .2, 1)}[data-theme=light]{--bg-page: #eef2f7;--bg-page-accent: radial-gradient(1100px 520px at 8% -12%, rgba(14, 165, 233, .1) 0%, transparent 60%), radial-gradient(900px 560px at 102% -6%, rgba(16, 185, 129, .1) 0%, transparent 58%);--bg-primary: #f4f7fb;--bg-secondary: #ffffff;--bg-tertiary: #f7f9fc;--bg-input: #ffffff;--bg-glass: rgba(255, 255, 255, .92);--bg-hover: rgba(15, 23, 42, .045);--bg-body: #f4f7fb;--bg-card: #ffffff;--bg-elevated: #ffffff;--text-primary: #0f1b2d;--text-secondary: #4c5b70;--text-tertiary: #7b8a9e;--text-muted: #93a1b3;--text-main: #0f1b2d;--text-sub: #4c5b70;--border: #e3e9f1;--border-strong: #cdd8e6;--border-default: #d8e1ec;--border-focus: var(--role-primary);--divider: #edf1f6;--shadow: 0 1px 2px rgba(15, 27, 45, .04), 0 10px 26px -14px rgba(15, 27, 45, .16);--shadow-soft: 0 2px 8px -2px rgba(15, 27, 45, .08);--shadow-hover: 0 2px 6px rgba(15, 27, 45, .06), 0 20px 40px -20px rgba(15, 27, 45, .24);--shadow-pop: 0 24px 56px -18px rgba(15, 27, 45, .28);--glow-intensity: 0;--ring: 0 0 0 3px rgba(14, 165, 233, .18);--accent-glow: rgba(0, 139, 255, .08);--accent-light: rgba(0, 139, 255, .06);--primary-light: rgba(0, 139, 255, .1);--accent-cyan: #0369a1;--accent-cyan-dim: #0e7490;--accent-purple: #5b52d6;--secondary: #5b52d6;--success: #0b7a58;--success-glow: rgba(16, 185, 129, .18);--warning: #b45309;--error: #c62b3a;--danger: #c62b3a;--info: #1d4ed8;--gold: #a16207}:root{--role-ink: var(--role-primary);--primary-ink: var(--role-primary)}[data-theme=light]{--role-ink: color-mix(in srgb, var(--role-primary) 62%, #0b1220);--primary-ink: color-mix(in srgb, var(--role-primary) 62%, #0b1220)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:18px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}html,body{height:100%;font-family:var(--font-family);color:var(--text-primary);background:var(--bg-primary);line-height:1.6;letter-spacing:.005em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background .35s var(--ease),color .25s var(--ease)}body{background:var(--bg-page);background-image:var(--bg-page-accent);background-attachment:fixed}a{text-decoration:none;color:inherit}ul,ol{list-style:none}img,video,iframe{max-width:100%;height:auto;display:block}button,input,select,textarea{font:inherit;color:inherit}::selection{background:var(--accent-glow)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--text-muted);background-clip:content-box}:focus-visible{outline:2px solid var(--role-primary);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.glass-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);transition:background .35s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease)}@keyframes data-pulse{0%,to{opacity:1}50%{opacity:.85}}.status-live{animation:data-pulse 2s infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.shimmer{background:linear-gradient(90deg,#94b2d61a 25%,#00d9ff29,#94b2d61a 75%);background-size:200% 100%;animation:shimmer 1.6s linear infinite}[data-theme=light] .shimmer{background:linear-gradient(90deg,#eef2f7 25%,#008bff1a,#eef2f7 75%)}@keyframes scan-move{0%{top:0;opacity:0}10%{opacity:1}90%{opacity:1}to{top:100%;opacity:0}}.scan-line{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--role-primary),transparent);animation:scan-move 2s linear infinite}@keyframes ripple-spread{0%{transform:scale(0);opacity:.6}to{transform:scale(4);opacity:0}}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";position:absolute;inset:50% auto auto 50%;width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;background:var(--role-primary);transform:scale(0);opacity:0}.ripple:active:after{animation:ripple-spread .5s ease-out}@keyframes underline-blink{0%,to{border-bottom-color:#00d9ff4d}50%{border-bottom-color:var(--role-primary)}}.blink-underline{border-bottom:2px solid rgba(0,217,255,.3);animation:underline-blink 1.2s infinite}[data-theme=light] .blink-underline{border-bottom-color:#008bff4d}@keyframes page-slide-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.page-slide-enter{animation:page-slide-in .32s var(--ease) both}@keyframes check-bounce{0%{transform:scale(0)}50%{transform:scale(1.3)}to{transform:scale(1)}}.check-bounce{animation:check-bounce .4s ease both}.number-glow-green{color:var(--success);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.number-glow-cyan{color:var(--accent-cyan);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.number-glow-gold{color:var(--gold);font-family:var(--font-mono);font-variant-numeric:tabular-nums}[data-theme=light] .number-glow-green,[data-theme=light] .number-glow-cyan,[data-theme=light] .number-glow-gold{text-shadow:none}[data-theme=light] .number-glow-green{color:#047857}[data-theme=light] .number-glow-cyan{color:#0369a1}[data-theme=light] .number-glow-gold{color:#a16207}.app-wrapper{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;z-index:100;transition:width .3s var(--ease),background .35s var(--ease),border-color .25s var(--ease)}.main-content{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;min-height:100vh;transition:margin-left .3s var(--ease)}body.sidebar-collapsed .sidebar{width:var(--sidebar-collapsed-width)}body.sidebar-collapsed .main-content{margin-left:var(--sidebar-collapsed-width)}.top-header{height:var(--header-height);background:var(--bg-glass);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 20px 0 24px;position:sticky;top:0;z-index:90;transition:background .35s var(--ease),border-color .25s var(--ease)}.page-container{flex:1;padding:24px 24px 64px;background:transparent;overflow-y:auto;transition:background .35s var(--ease)}.page-inner{max-width:var(--content-max-width);margin:0 auto;width:100%}.mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:var(--mobile-nav-height);background:var(--bg-glass);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:100;transition:background .35s var(--ease),border-color .25s var(--ease)}body.is-mobile .sidebar,body.is-mobile .top-header .desktop-only{display:none}body.is-mobile .main-content,body.sidebar-collapsed.is-mobile .main-content{margin-left:0}body.is-mobile .mobile-nav{display:flex;justify-content:space-around;align-items:center}body.is-mobile .page-container{padding-bottom:calc(var(--mobile-nav-height) + 32px)}@media (max-width: 1024px){.page-container{padding:20px 20px 48px}.top-header{padding:0 14px}}@media (max-width: 768px){body:not(.view-locked) .sidebar,body:not(.view-locked) .top-header .desktop-only{display:none}body:not(.view-locked) .main-content{margin-left:0}body:not(.view-locked) .mobile-nav{display:flex;justify-content:space-around;align-items:center}body:not(.view-locked) .page-container{padding:16px;padding-bottom:calc(var(--mobile-nav-height) + 32px)}}@media (max-width: 768px){body.sidebar-collapsed:not(.view-locked) .main-content{margin-left:0}}.brand{padding:18px 16px;border-bottom:1px solid var(--border);position:relative;display:flex;align-items:center;gap:12px;transition:padding .3s var(--ease)}.brand-logo{font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--text-primary);transition:color .25s var(--ease);display:flex;align-items:center;gap:10px;min-width:0}.brand-mark{width:34px;height:34px;flex-shrink:0;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(140deg,var(--role-primary),var(--role-secondary));box-shadow:0 6px 16px -6px var(--role-primary),inset 0 0 0 1px #ffffff38}[data-theme=light] .brand-mark{box-shadow:0 6px 16px -8px var(--role-primary)}.brand-text{display:flex;flex-direction:column;min-width:0}.brand-sub{font-size:var(--fs-small);color:var(--text-tertiary);margin-top:1px;line-height:1.3;white-space:nowrap}.brand-logo .logo-icon{display:none}.brand-logo .logo-text{display:inline}.nav-menu{flex:1;padding:12px 10px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.nav-group-label{font-size:var(--fs-small);color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;padding:12px 12px 6px}.nav-item{position:relative;display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:var(--radius);color:var(--text-secondary);font-size:var(--fs-body-sm);font-weight:var(--fw-medium);cursor:pointer;white-space:nowrap;transition:background .18s var(--ease),color .18s var(--ease)}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background:var(--primary-light);color:var(--role-ink);font-weight:var(--fw-semibold)}.nav-item.active:before{content:"";position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:3px;height:20px;border-radius:0 3px 3px 0;background:var(--role-primary)}.nav-item .nav-icon{flex-shrink:0;opacity:.9}.nav-item.active .nav-icon{opacity:1}.nav-label{overflow:hidden;text-overflow:ellipsis}.nav-badge{margin-left:auto;flex-shrink:0;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--error);color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono)}body.sidebar-collapsed .nav-badge{display:none}.sidebar-footer{padding:12px;border-top:1px solid var(--border);transition:opacity .25s var(--ease)}.sidebar-footer .user-info{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--radius);background:var(--bg-tertiary)}.user-avatar{width:34px;height:34px;flex-shrink:0;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;background:linear-gradient(140deg,var(--role-primary),var(--role-secondary))}.user-meta{min-width:0;display:flex;flex-direction:column}.user-name{font-size:var(--fs-caption);font-weight:600;color:var(--text-primary);line-height:1.3}.user-role{font-size:var(--fs-small);color:var(--text-tertiary);line-height:1.3}.user-logout{margin-left:auto;flex-shrink:0;width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);cursor:pointer;transition:background .18s var(--ease),color .18s var(--ease)}.user-logout:hover{background:#ff47571f;color:var(--error)}.mobile-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:var(--fs-small);color:var(--text-tertiary);cursor:pointer;padding:6px 0;transition:color .18s var(--ease)}.mobile-nav-item .icon{font-size:20px}.mobile-nav-item.active{color:var(--role-ink)}.nav-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot-primary{background:var(--role-primary)}[data-theme=light] .dot-primary{box-shadow:none}.dot-secondary{background:var(--accent-purple)}.dot-accent{background:var(--accent-cyan-dim)}.dot-success{background:var(--success)}.dot-warning{background:var(--warning)}.dot-danger{background:var(--error)}.nav-item .nav-dot{margin-right:8px}.mobile-nav-item .nav-dot{margin-bottom:4px;width:6px;height:6px}.sidebar-toggle{position:absolute;right:-13px;top:22px;width:26px;height:26px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:101;color:var(--text-secondary);transition:all .2s var(--ease);box-shadow:var(--shadow-soft)}.sidebar-toggle:hover{background:var(--role-primary);color:#fff;border-color:var(--role-primary)}body.sidebar-collapsed .sidebar-toggle{right:-13px}body.sidebar-collapsed .brand{padding:18px 0;justify-content:center}body.sidebar-collapsed .brand-logo .logo-text,body.sidebar-collapsed .brand-text{display:none}body.sidebar-collapsed .nav-item{justify-content:center;padding:11px 0;gap:0}body.sidebar-collapsed .nav-item .nav-label{display:none}body.sidebar-collapsed .nav-item.active:before{left:-10px}body.sidebar-collapsed .nav-group-label{opacity:0;height:0;padding:0;overflow:hidden}body.sidebar-collapsed .sidebar-footer{padding:12px 0}body.sidebar-collapsed .sidebar-footer .user-info{justify-content:center;background:transparent;padding:0}body.sidebar-collapsed .user-meta,body.sidebar-collapsed .user-logout{display:none}.card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow);margin-bottom:var(--section-gap);overflow:hidden;transition:background .35s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease)}[data-theme=light] .card{border-color:var(--border)}.card-title{padding:.9rem 1.25rem;font-weight:var(--fw-semibold);border-bottom:1px solid var(--divider);font-size:var(--fs-h3);color:var(--text-primary);display:flex;align-items:center;gap:10px;transition:border-color .25s var(--ease),color .25s var(--ease)}.card-title:before{content:"";width:3px;height:1.05em;border-radius:999px;background:var(--role-primary);flex-shrink:0}.card-body{padding:1.25rem}.card-actions{margin-left:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:.5rem 1rem;border-radius:var(--radius);border:1px solid transparent;font-size:var(--fs-body-sm);font-weight:var(--fw-medium);line-height:1.2;cursor:pointer;white-space:nowrap;transition:background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease),transform .12s var(--ease)}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{background:var(--role-primary);color:#06121f;font-weight:600;box-shadow:0 6px 16px -8px var(--role-primary)}[data-theme=light] .btn-primary{color:#fff}.btn-primary:hover{box-shadow:0 8px 20px -8px var(--role-primary);filter:brightness(1.04)}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-strong)}.btn-secondary:hover{border-color:var(--role-primary);color:var(--role-ink);background:var(--accent-light)}.btn-ghost,.btn-text{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-text:hover,.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-outline{background:transparent;color:var(--text-secondary);border-color:var(--border-strong)}.btn-outline:hover{border-color:var(--role-primary);color:var(--role-ink);background:var(--accent-light)}.btn-block{width:100%}.btn-sm{padding:.3rem .7rem;font-size:var(--fs-caption);border-radius:var(--radius-sm)}.btn-lg{padding:.7rem 1.4rem;font-size:var(--fs-body)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:var(--fs-small);font-weight:600;line-height:1.5;border:1px solid transparent}.badge-success{background:#34d39926;color:var(--success);border-color:#34d39942}.badge-warning{background:#ff9f4326;color:var(--warning);border-color:#ff9f4347}.badge-danger{background:#ff475724;color:var(--error);border-color:#ff47573d}.badge-info{background:#3b82f626;color:#60a5fa;border-color:#3b82f642}.badge-default{background:var(--bg-hover);color:var(--text-secondary);border-color:var(--border)}[data-theme=light] .badge-success{background:#10b9811a;color:#0b7a58;border-color:#10b9813d}[data-theme=light] .badge-warning{background:#f59e0b1a;color:#b45309;border-color:#f59e0b42}[data-theme=light] .badge-danger{background:#ef444417;color:#b91c1c;border-color:#ef444438}[data-theme=light] .badge-info{background:#2563eb17;color:#1d4ed8;border-color:#2563eb38}.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-body-sm)}.data-table th,.data-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--divider);transition:border-color .25s var(--ease)}.data-table thead th{background:var(--bg-tertiary);font-weight:600;color:var(--text-tertiary);font-size:var(--fs-caption);letter-spacing:.02em;text-transform:none;position:sticky;top:0;z-index:2;border-bottom:1px solid var(--border)}.data-table tbody tr{transition:background .16s var(--ease)}.data-table tbody tr:hover{background:var(--accent-light)}.data-table tbody tr:last-child td{border-bottom:none}.card-link{display:inline-flex;align-items:center;gap:2px;font-size:var(--fs-caption);font-weight:500;color:var(--text-secondary);cursor:pointer;transition:color .16s var(--ease)}.card-link:hover{color:var(--role-ink)}.stat-card{position:relative;background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow);padding:1.15rem 1.25rem;overflow:hidden;transition:background .35s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease),transform .2s var(--ease)}.stat-card:after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--stat-accent, var(--role-primary))}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover);border-color:var(--border-strong)}.stat-primary{--stat-accent: var(--role-primary);--stat-soft: var(--primary-light)}.stat-secondary{--stat-accent: var(--accent-purple);--stat-soft: var(--secondary-light)}.stat-accent{--stat-accent: var(--accent-cyan-dim);--stat-soft: rgba(6, 182, 212, .12)}.stat-danger{--stat-accent: var(--error);--stat-soft: rgba(255, 71, 87, .12)}.stat-success{--stat-accent: var(--success);--stat-soft: rgba(52, 211, 153, .14)}.stat-warning{--stat-accent: var(--warning);--stat-soft: rgba(255, 159, 67, .14)}.stat-head{display:flex;align-items:center;gap:8px;margin-bottom:.5rem}.stat-icon{display:flex;align-items:center;justify-content:center;color:var(--stat-accent, var(--role-primary));flex-shrink:0}[data-theme=light] .stat-primary{--stat-accent: var(--role-ink)}[data-theme=light] .stat-secondary{--stat-accent: #5b52d6}[data-theme=light] .stat-accent{--stat-accent: #0e7490}[data-theme=light] .stat-danger{--stat-accent: #c62b3a}[data-theme=light] .stat-success{--stat-accent: #0b7a58}[data-theme=light] .stat-warning{--stat-accent: #b45309}.stat-label{font-size:var(--fs-caption);color:var(--text-secondary);margin-bottom:.5rem}.stat-head .stat-label{margin-bottom:0}.stat-value{font-size:1.75rem;font-weight:700;color:var(--role-ink);font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.15;transition:color .25s var(--ease)}[data-theme=light] .stat-value{text-shadow:none}.stat-foot{display:flex;align-items:center;gap:6px;margin-top:.5rem;font-size:var(--fs-small);color:var(--text-tertiary)}.stat-trend{display:inline-flex;align-items:center;gap:3px;font-weight:600;font-family:var(--font-mono)}.stat-trend.up{color:#e0424f}.stat-trend.down{color:#0f9c6c}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:var(--fs-caption);font-weight:var(--fw-medium);margin-bottom:6px;color:var(--text-secondary);transition:color .25s var(--ease)}.input{width:100%;padding:10px 12px;border:1px solid var(--border-default);border-radius:var(--radius);font-size:var(--fs-body-sm);background:var(--bg-input);color:var(--text-primary);transition:background .35s var(--ease),border-color .2s var(--ease),color .2s var(--ease),box-shadow .2s var(--ease)}.input::placeholder{color:var(--text-muted)}.input:hover{border-color:var(--border-strong)}.input:focus{outline:none;border-color:var(--role-primary);box-shadow:var(--ring)}.todo-list li{padding:11px 0;border-bottom:1px dashed var(--divider);display:flex;align-items:center;gap:10px;transition:border-color .25s var(--ease)}.todo-list li:last-child{border-bottom:none}.todo-list li:before{content:"•";color:var(--role-primary);font-weight:700}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.tabs{display:flex;gap:6px;margin-bottom:16px;padding:4px;background:var(--bg-tertiary);border-radius:var(--radius);border:1px solid var(--border);width:fit-content;max-width:100%;overflow-x:auto}.tab{padding:7px 16px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-body-sm);color:var(--text-secondary);background:transparent;border:1px solid transparent;white-space:nowrap;transition:all .18s var(--ease)}.tab:hover{color:var(--text-primary);background:var(--bg-hover)}.tab.active{background:var(--bg-secondary);color:var(--role-ink);border-color:var(--border);font-weight:600;box-shadow:var(--shadow-soft)}.progress-bar{display:flex;align-items:center;gap:8px}.progress-bar>div{flex:1;height:8px;background:var(--bg-hover);border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-purple),var(--role-primary));border-radius:999px;transition:width .4s var(--ease)}.page-loading{padding:40px;text-align:center;color:var(--text-secondary)}.page-error{padding:40px;text-align:center;color:var(--error)}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--section-gap)}@media (min-width: 1400px){.card-grid{grid-template-columns:repeat(4,1fr)}}@media (min-width: 1024px) and (max-width: 1399px){.card-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 640px) and (max-width: 1023px){.card-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 639px){.card-grid{grid-template-columns:1fr}}.radio-group{display:flex;flex-wrap:wrap;gap:1rem;padding:8px 0}.radio-label{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-body-sm);cursor:pointer}.radio-label input[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border:2px solid var(--border-strong);border-radius:50%;background:var(--bg-input);cursor:pointer;position:relative;transition:all .2s var(--ease)}.radio-label input[type=radio]:checked{border-color:var(--role-primary);background:var(--role-primary)}[data-theme=light] .radio-label input[type=radio]:checked{box-shadow:none}.radio-label input[type=radio]:checked:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;background:#fff;border-radius:50%}.checkbox-group{display:flex;flex-wrap:wrap;gap:1rem;padding:8px 0}.checkbox-label{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-body-sm);cursor:pointer}.checkbox-label input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border:2px solid var(--border-strong);border-radius:5px;background:var(--bg-input);cursor:pointer;position:relative;transition:all .2s var(--ease)}.checkbox-label input[type=checkbox]:checked{border-color:var(--role-primary);background:var(--role-primary)}[data-theme=light] .checkbox-label input[type=checkbox]:checked{box-shadow:none}.checkbox-label input[type=checkbox]:checked:after{content:"✓";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:var(--fs-small);color:#fff;font-weight:var(--fw-bold)}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;background:var(--bg-hover);border-radius:3px;outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--role-primary);cursor:pointer;margin-top:-6px;box-shadow:var(--shadow-soft)}[data-theme=light] input[type=range]::-webkit-slider-thumb{box-shadow:var(--shadow-soft)}input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:3px}input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--role-primary);border:none;cursor:pointer}[data-theme=light] input[type=range]::-moz-range-thumb{box-shadow:var(--shadow-soft)}.timeline{display:flex;align-items:center;justify-content:space-between;position:relative;padding:16px 0}.timeline:before{content:"";position:absolute;top:50%;left:0;right:0;height:2px;background:var(--divider);z-index:0}.timeline-step{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px}.timeline-dot{width:14px;height:14px;border-radius:50%;background:var(--text-muted);border:2px solid var(--bg-primary)}.timeline-step.done .timeline-dot{background:var(--success)}[data-theme=light] .timeline-step.done .timeline-dot{box-shadow:none}.timeline-step.current .timeline-dot{background:var(--role-primary);animation:data-pulse 2s infinite}[data-theme=light] .timeline-step.current .timeline-dot{box-shadow:none;animation:none}.timeline-label{font-size:var(--fs-small);color:var(--text-secondary)}.timeline-step.done .timeline-label{color:var(--success)}.timeline-step.current .timeline-label{color:var(--role-ink);font-weight:600}.toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%) translateY(8px);background:var(--bg-elevated);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--border);border-left:3px solid var(--role-primary);color:var(--text-primary);padding:11px 18px;border-radius:var(--radius);font-size:var(--fs-body-sm);box-shadow:var(--shadow-pop);z-index:200;opacity:0;max-width:92vw;transition:opacity .28s var(--ease),bottom .28s var(--ease),transform .28s var(--ease)}[data-theme=light] .toast{box-shadow:var(--shadow-pop)}.toast.show{opacity:1;bottom:96px;transform:translate(-50%) translateY(0)}.login-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;background:transparent}.login-page{width:100%;max-width:400px;padding:0 20px}.login-box{background:var(--bg-card);padding:32px;border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow)}.login-box h2{text-align:center;margin-bottom:24px;font-size:20px;color:var(--role-ink)}[data-theme=light] .login-box h2{text-shadow:none}.form-hint{margin-top:12px;font-size:var(--fs-small);color:var(--text-tertiary);text-align:center}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--section-gap);margin-bottom:var(--section-gap)}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--section-gap)}.quick-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:var(--bg-tertiary);padding:1.25rem 1rem;border-radius:var(--radius);text-align:center;font-size:var(--fs-body-sm);cursor:pointer;color:var(--text-secondary);border:1px solid var(--border);transition:transform .2s var(--ease),background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease),box-shadow .2s var(--ease)}.quick-item:hover{transform:translateY(-3px);background:var(--bg-card);border-color:var(--border-strong);color:var(--text-primary);box-shadow:var(--shadow-hover)}.quick-icon{display:flex;align-items:center;justify-content:center;color:var(--role-ink);transition:color .2s var(--ease),transform .2s var(--ease)}.quick-item:hover .quick-icon{transform:scale(1.08)}@media (max-width: 1024px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.stats-grid,.quick-grid{grid-template-columns:1fr}}.page-risk .toolbar{display:flex;gap:10px;margin-bottom:16px}.page-risk .toolbar .input{max-width:260px}.page-approval .tabs,.page-header{margin-bottom:16px}.page-header h3{font-size:18px;margin-bottom:4px;color:var(--text-primary)}.page-header .sub{font-size:var(--fs-caption);color:var(--text-secondary)}.page-mobile-office .office-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--section-gap)}.page-mobile-office .date{font-size:var(--fs-body-sm);color:var(--text-secondary)}.page-mobile-office .checkin-status{font-size:var(--fs-body-sm);padding:.25rem .625rem;border-radius:999px;background:#ff9f4326;color:var(--warning);font-weight:var(--fw-semibold)}.office-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--section-gap);margin-bottom:var(--section-gap)}.action-item{background:var(--bg-secondary);border-radius:var(--radius);padding:1rem .5rem;text-align:center;border:1px solid var(--border);cursor:pointer;transition:all .2s var(--ease)}.action-item:hover{border-color:var(--border-strong);transform:translateY(-2px);box-shadow:var(--shadow-soft)}[data-theme=light] .action-item:hover{box-shadow:var(--shadow-soft)}.action-icon{font-size:1.625rem;margin-bottom:.375rem;color:var(--role-ink)}.action-label{font-size:var(--fs-caption);color:var(--text-secondary)}.summary-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--divider);color:var(--text-secondary)}.summary-row:last-child{border-bottom:none}@media (max-width: 640px){.office-actions{grid-template-columns:repeat(2,1fr)}}.theme-toggle{width:36px;height:36px;border-radius:var(--radius);background:transparent;border:1px solid transparent;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease)}.theme-toggle:hover{background:var(--bg-hover);color:var(--role-ink);border-color:var(--border)}.theme-toggle.floating{position:fixed;top:16px;right:16px;z-index:300;width:40px;height:40px;border-radius:50%;background:var(--bg-glass);border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-soft)}.theme-toggle.floating:hover{background:var(--bg-hover)}.header-left{display:flex;align-items:center;gap:12px;min-width:0}.header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.page-title{font-size:var(--fs-h3);font-weight:var(--fw-semibold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-subtitle{font-size:var(--fs-small);color:var(--text-tertiary);white-space:nowrap}.header-divider{width:1px;height:22px;background:var(--border);margin:0 4px}.icon-btn{width:36px;height:36px;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);background:transparent;border:1px solid transparent;cursor:pointer;position:relative;transition:background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease)}.icon-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border)}.icon-btn .dot-badge{position:absolute;top:5px;right:5px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--error);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center;font-family:var(--font-mono);box-shadow:0 0 0 2px var(--bg-secondary)}.header-user{display:flex;align-items:center;gap:9px;padding:4px 10px 4px 4px;border-radius:999px;border:1px solid var(--border);background:var(--bg-tertiary)}.header-user .avatar{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;background:linear-gradient(140deg,var(--role-primary),var(--role-secondary))}.header-user .meta{display:flex;flex-direction:column;line-height:1.15}.header-user .name{font-size:var(--fs-small);font-weight:600;color:var(--text-primary)}.header-user .role{font-size:11px;color:var(--text-tertiary)}.segmented{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:var(--radius);background:var(--bg-tertiary);border:1px solid var(--border)}.segmented button{min-width:30px;height:26px;padding:0 8px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;transition:background .18s var(--ease),color .18s var(--ease)}.segmented button:hover{color:var(--text-primary);background:var(--bg-hover)}.segmented button.active{background:var(--role-primary);color:#06121f}[data-theme=light] .segmented button.active{color:#fff}@media (max-width: 1320px){.top-header .page-subtitle{display:none}}@media (max-width: 1180px){.top-header .segmented{display:none}}@media (max-width: 1024px){.top-header .header-user{display:none}}.title-display{font-size:var(--fs-display);font-weight:var(--fw-bold);line-height:1.2;letter-spacing:.02em}.title-primary{font-size:var(--fs-h1);font-weight:var(--fw-bold);line-height:1.25;letter-spacing:.01em}.title-secondary{font-size:var(--fs-h2);font-weight:var(--fw-semibold);line-height:1.3}.title-tertiary{font-size:var(--fs-h3);font-weight:var(--fw-semibold);line-height:1.35}.text-body{font-size:var(--fs-body);font-weight:var(--fw-normal);line-height:1.65}.text-body-sm{font-size:var(--fs-body-sm);font-weight:var(--fw-normal);line-height:1.5}.text-caption{font-size:var(--fs-caption);font-weight:var(--fw-normal);line-height:1.4}.text-number{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.u-muted{color:var(--text-secondary)}.u-flex{display:flex;align-items:center}.u-gap-8{gap:8px}.u-gap-12{gap:12px}.u-mt-12{margin-top:12px}.u-mb-12{margin-bottom:12px}.u-spacer{flex:1}
