:root{color:#213042;background:#f5f7f9;font-family:Inter,Microsoft YaHei,PingFang SC,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--canvas: #f5f7f9;--surface: #ffffff;--surface-soft: #f1f5f8;--panel: #e8f1f8;--panel-strong: #dcebf7;--ink: #213042;--ink-strong: #182535;--muted: #718091;--muted-strong: #536477;--border: #d9e2e9;--border-strong: #c8d5df;--primary: #1468d4;--primary-strong: #0d56b5;--primary-soft: #e7f0ff;--success: #48c982;--success-soft: #e7f8ef;--warning: #b97819;--warning-soft: #fff5df;--danger: #c74f5d;--danger-soft: #fff0f1;--shadow-panel: 0 18px 44px rgba(45, 67, 90, .12);--shadow-card: 0 8px 24px rgba(45, 67, 90, .08);--login-showcase: #07121c;--login-showcase-deep: #0a212e;--login-showcase-ink: #f8fafc;--login-showcase-muted: #94a3b8;--login-showcase-line: rgba(125, 211, 252, .38);--login-showcase-accent: #38bdf8;--login-showcase-danger: #ef4444;--login-form-accent: #0284c7;--login-form-accent-strong: #0369a1;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--sidebar: #263f58;--sidebar-ink: #ffffff;--sidebar-muted: #c9d7e3;--sidebar-active: #345c7e}:root[data-theme=dim]{color:#dce5ee;background:#243241;--canvas: #243241;--surface: #2c3b4b;--surface-soft: #344657;--panel: #31485c;--panel-strong: #3b556c;--ink: #dce5ee;--ink-strong: #ffffff;--muted: #aab8c5;--muted-strong: #c3d0db;--border: #536678;--border-strong: #6b8193;--primary: #6ea8ff;--primary-strong: #8cbcff;--primary-soft: #314e72;--success: #6cdda0;--success-soft: #2e5542;--warning: #edbb68;--warning-soft: #5a4728;--danger: #f07c87;--danger-soft: #5d343b;--shadow-panel: 0 18px 44px rgba(7, 15, 24, .28);--shadow-card: 0 8px 24px rgba(7, 15, 24, .18);--sidebar: #1f2d3a;--sidebar-ink: #f5f8fb;--sidebar-muted: #bdcad4;--sidebar-active: #314b62}*{box-sizing:border-box}html,body,#app{min-width:320px;height:100%;min-height:100%;margin:0}body{min-height:100vh;background:var(--canvas)}button,input{font:inherit}button{cursor:pointer}button:disabled,input:disabled{cursor:not-allowed;opacity:.64}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid rgba(20,104,212,.24);outline-offset:2px}.login-page{display:grid;grid-template-columns:minmax(520px,1.4fr) minmax(440px,.92fr);min-height:100vh;color:var(--ink);background:var(--canvas)}.login-visual{display:flex;align-items:center;min-width:0;padding:28px 32px 28px 40px;background:var(--panel);border-right:1px solid var(--border)}.login-visual__surface{width:min(100%,780px);margin:0 auto;padding:34px 36px 28px;background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.login-visual__topline,.login-brand,.auth-panel__header,.auth-form__options,.platform-header,.page-heading,.settings-item,.platform-header__account{display:flex;align-items:center}.login-visual__topline{justify-content:space-between;gap:var(--space-4)}.eyebrow-chip{display:inline-flex;align-items:center;min-height:30px;padding:0 13px;color:var(--primary);font-size:12px;font-weight:700;background:var(--primary-soft);border:1px solid #c9ddfb;border-radius:999px}.visual-code,.auth-panel__eyebrow,.brand-kicker,.platform-header__eyebrow{color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.visual-code{color:var(--muted-strong);font-weight:700}.login-brand{gap:20px;margin-top:28px}.brand-logo-frame{display:grid;flex:0 0 86px;place-items:center;width:86px;height:86px;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.brand-logo{width:70px;height:70px;object-fit:contain}.brand-kicker{margin:0 0 6px;font-weight:700}.login-brand h1{max-width:520px;margin:0;color:var(--ink-strong);font-size:clamp(26px,3vw,40px);line-height:1.18;letter-spacing:0}.brand-tagline{max-width:560px;margin:10px 0 0;color:var(--muted-strong);font-size:14px;line-height:1.7}.login-visual__description{max-width:680px;margin:28px 0 0;color:var(--muted-strong);font-size:14px;line-height:1.8}.capability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px}.capability-card,.module-card,.summary-item,.settings-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.capability-card{display:grid;gap:7px;min-height:116px;padding:17px}.capability-card__mark{display:inline-grid;place-items:center;width:24px;height:24px;color:var(--primary);font-size:17px;font-weight:700;background:var(--primary-soft);border-radius:50%}.capability-card--green .capability-card__mark{color:var(--success);background:var(--success-soft)}.capability-card--slate .capability-card__mark{color:var(--muted-strong);background:var(--surface-soft)}.capability-card strong,.module-card strong{color:var(--ink-strong);font-size:15px}.capability-card span:last-child{color:var(--muted);font-size:12px;line-height:1.55}.module-heading{display:flex;align-items:center;gap:12px;margin-top:30px;color:var(--ink-strong);font-size:14px;font-weight:700}.module-heading__line{flex:1;height:1px;background:var(--border)}.module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.module-card{min-height:126px;padding:17px}.module-card p{margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.65}.login-visual__footer{padding-top:20px;margin:24px 0 0;color:var(--muted-strong);font-size:12px;line-height:1.7;border-top:1px solid var(--border)}.login-stage{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;padding:76px 40px 64px;background:var(--surface)}.login-toolbar{position:absolute;top:22px;right:24px;display:flex;gap:6px;padding:4px;background:var(--surface-soft);border:1px solid var(--border);border-radius:999px}.icon-button,.input-action,.design-switch button,.social-button,.secondary-button,.text-button{border:0;background:transparent}.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:34px;min-height:30px;padding:0 7px;color:var(--muted-strong);border-radius:999px}.icon-button:hover{color:var(--primary);background:var(--surface)}.icon-button small{font-size:10px;font-weight:700}.auth-panel{width:min(100%,430px);padding:30px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel)}.auth-panel--focus{width:min(100%,482px);padding:34px 36px;box-shadow:0 20px 54px #2d435a26}.auth-panel__header{align-items:flex-start;justify-content:space-between;gap:18px}.auth-panel__eyebrow{color:var(--primary);font-weight:700}.auth-panel h2{margin:9px 0 7px;color:var(--ink-strong);font-size:28px;line-height:1.2}.auth-panel__header p{max-width:310px;margin:0;color:var(--muted);font-size:12px;line-height:1.6}.design-switch{display:inline-flex;flex:0 0 auto;padding:3px;background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius-sm)}.design-switch button{min-width:28px;min-height:25px;color:var(--muted);font-size:11px;font-weight:700;border-radius:2px}.design-switch button.active{color:var(--primary);background:var(--surface);box-shadow:0 1px 3px #2d435a1f}.auth-mode-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-top:26px;padding:4px;background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--radius-sm)}.auth-mode-tabs button{min-height:34px;padding:0 4px;color:var(--muted-strong);font-size:12px;white-space:nowrap;background:transparent;border:0;border-radius:3px}.auth-mode-tabs button.active{color:var(--primary);font-weight:700;background:var(--surface);box-shadow:0 1px 3px #2d435a1a}.auth-form{display:grid;gap:9px;margin-top:24px}.field-label{display:flex;gap:4px;color:var(--muted-strong);font-size:12px;font-weight:700}.field-label__required{color:var(--danger)}.input-shell{display:flex;align-items:center;min-height:44px;margin-bottom:9px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color .16s ease,box-shadow .16s ease}.input-shell:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #1468d41f}.input-prefix{display:inline-grid;flex:0 0 40px;place-items:center;color:var(--muted);font-size:14px}.input-shell input{min-width:0;flex:1;height:42px;padding:0 8px 0 0;color:var(--ink);background:transparent;border:0;outline:0}.input-shell input::placeholder{color:#a0adba}.input-action{display:inline-flex;align-items:center;justify-content:center;flex:0 0 40px;min-height:42px;color:var(--muted);font-size:14px}.input-action:hover{color:var(--primary)}.input-action--text{flex:0 0 auto;padding:0 12px;color:var(--primary);font-size:12px;font-weight:700;white-space:nowrap}.auth-form__options{justify-content:space-between;gap:12px;margin:4px 0 2px}.check-control{display:inline-flex;align-items:center;gap:8px;color:var(--muted-strong);font-size:12px}.check-control input{width:15px;height:15px;accent-color:var(--primary)}.text-button{padding:2px 0;color:var(--primary);font-size:12px}.text-button:hover{text-decoration:underline}.auth-hint,.method-description{margin:4px 0 8px;color:var(--muted);font-size:11px;line-height:1.6}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;border-radius:var(--radius-sm);transition:background-color .16s ease,border-color .16s ease,transform .16s ease}.primary-button{width:100%;margin-top:4px;padding:0 18px;color:#fff;font-size:14px;font-weight:700;background:var(--primary);border:1px solid var(--primary)}.primary-button:hover:not(:disabled){background:var(--primary-strong);border-color:var(--primary-strong);transform:translateY(-1px)}.reserved-panel{display:grid;justify-items:center;gap:12px;padding:24px 0 6px;text-align:center}.reserved-panel h3{margin:2px 0 0;color:var(--ink-strong);font-size:18px}.reserved-panel p{max-width:300px;margin:0;color:var(--muted);font-size:12px;line-height:1.7}.qr-frame{position:relative;display:grid;grid-template-columns:repeat(9,14px);grid-auto-rows:14px;gap:3px;padding:15px;background:#fff;border:1px solid var(--border-strong);box-shadow:var(--shadow-card)}.qr-cell{background:#eef2f5}.qr-cell.filled{background:#213042}.qr-frame__stamp{position:absolute;right:50%;bottom:50%;display:grid;place-items:center;width:44px;height:22px;color:var(--primary);font-size:9px;font-weight:800;background:#fff;border:1px solid var(--primary);transform:translate(50%,50%)}.wechat-mark{display:grid;place-items:center;width:64px;height:64px;color:#fff;font-size:28px;font-weight:800;background:var(--success);border-radius:50%}.reserved-badge{display:inline-flex;align-items:center;gap:6px;min-height:27px;padding:0 10px;color:var(--warning);font-size:11px;background:var(--warning-soft);border:1px solid rgba(185,120,25,.24);border-radius:999px}.secondary-button{min-width:150px;padding:0 16px;color:var(--primary);font-size:12px;font-weight:700;background:var(--surface);border:1px solid var(--border-strong)}.secondary-button:hover{background:var(--primary-soft);border-color:var(--primary)}.auth-divider{display:flex;align-items:center;gap:12px;margin-top:20px;color:var(--muted);font-size:11px}.auth-divider:before,.auth-divider:after{flex:1;height:1px;content:"";background:var(--border)}.auth-socials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.social-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;color:var(--muted-strong);font-size:12px;border:1px solid var(--border);border-radius:var(--radius-sm)}.social-button:hover{color:var(--primary);border-color:var(--primary)}.social-button__mark{display:inline-grid;place-items:center;width:20px;height:20px;color:var(--primary);font-size:14px;font-weight:800}.social-button__mark--wechat{color:var(--success)}.auth-footer-note{margin:20px 0 0;color:var(--muted);font-size:11px;text-align:center}.auth-footer-note span{color:var(--primary);font-weight:700}.login-copyright{position:absolute;right:28px;bottom:20px;left:28px;color:var(--muted);font-size:11px;text-align:center}.platform-shell{display:flex;min-height:100vh;color:var(--ink);background:var(--canvas)}.platform-sidebar{width:224px;flex:0 0 224px;padding:24px 16px;color:var(--sidebar-ink);background:var(--sidebar)}.brand-mark{display:flex;align-items:center;gap:10px;padding:4px 8px 28px}.brand-mark__logo{width:34px;height:34px;object-fit:contain;background:#fff;border-radius:4px}.brand-mark__label{font-size:16px;font-weight:700}.brand-mark__sub{color:var(--sidebar-muted);font-size:11px}.platform-nav{display:grid;gap:4px}.platform-nav__item{padding:10px 12px;color:var(--sidebar-muted);border-radius:4px;text-decoration:none}.platform-nav__item.router-link-active,.platform-nav__item:hover{color:#fff;background:var(--sidebar-active)}.platform-content{min-width:0;flex:1}.platform-header{justify-content:space-between;min-height:72px;padding:12px 32px;background:var(--surface);border-bottom:1px solid var(--border)}.platform-header__eyebrow{display:block;margin-bottom:4px}.platform-header__name{color:var(--ink-strong)}.platform-header__account{justify-content:flex-end;gap:14px}.platform-header__account-text{display:grid;gap:3px;text-align:right}.platform-header__tenant{color:var(--muted);font-size:12px}.platform-header__actions{display:flex;align-items:center;gap:5px}.platform-main{max-width:1440px;margin:0 auto;padding:32px}.page-section{display:grid;gap:24px}.page-heading{align-items:flex-end;justify-content:space-between}.page-heading h1{margin:0;color:var(--ink-strong);font-size:24px;font-weight:700}.status-label{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;color:var(--primary);font-size:12px;background:var(--primary-soft);border:1px solid rgba(20,104,212,.14);border-radius:4px}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.summary-item{display:grid;gap:12px;min-height:180px;padding:20px}.summary-item__label{color:var(--muted);font-size:13px}.summary-item__value{color:var(--primary);font-size:22px}.summary-item p,.settings-item p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.settings-list{display:grid;gap:12px;max-width:760px}.settings-item{justify-content:space-between;gap:24px;padding:20px}.settings-item strong{display:block;margin-bottom:6px;color:var(--ink-strong)}.brand-mark__content{display:grid;min-width:0;gap:4px}.brand-mark__label,.brand-mark__sub{display:block}.brand-mark__sub{overflow:hidden;color:var(--sidebar-muted);line-height:1.45;text-overflow:ellipsis;white-space:nowrap}.platform-nav__item{display:flex;align-items:center;gap:10px}.platform-nav__icon{display:inline-grid;flex:0 0 20px;place-items:center;width:20px;color:currentColor;font-size:16px}.platform-header__title{min-width:0}.platform-header__name{display:block;overflow:hidden;color:var(--ink-strong);text-overflow:ellipsis;white-space:nowrap}.platform-header__account,.platform-header__account-text{min-width:0}.platform-header__account-text strong{display:block;overflow:hidden;color:var(--ink-strong);text-overflow:ellipsis;white-space:nowrap}.platform-alert{display:flex;align-items:center;gap:9px;min-height:42px;padding:8px 32px;color:var(--danger);font-size:12px;background:var(--danger-soft);border-bottom:1px solid rgba(199,79,93,.24)}.platform-alert__mark,.page-note__mark{display:inline-grid;flex:0 0 18px;place-items:center;width:18px;height:18px;color:#fff;font-size:11px;font-weight:800;background:var(--danger);border-radius:50%}.platform-alert .text-button{margin-left:auto}.status-label__dot{width:6px;height:6px;margin-right:6px;background:currentColor;border-radius:50%}.status-label--success{color:#23744b;background:var(--success-soft);border-color:#48c9824d}.account-overview{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:28px;align-items:center;padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.account-overview__identity{display:flex;align-items:center;gap:16px;min-width:0}.account-avatar{display:inline-grid;flex:0 0 56px;place-items:center;width:56px;height:56px;color:#fff;font-size:21px;font-weight:800;background:var(--primary);border-radius:50%}.account-overview__eyebrow{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.account-overview h2{overflow:hidden;margin:5px 0 3px;color:var(--ink-strong);font-size:20px;text-overflow:ellipsis;white-space:nowrap}.account-overview p{margin:0;color:var(--muted);font-size:12px}.account-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0}.account-details div{min-width:0;padding:12px 16px;border-left:1px solid var(--border)}.account-details dt{color:var(--muted);font-size:11px}.account-details dd{overflow:hidden;margin:6px 0 0;color:var(--ink-strong);font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.page-note{display:flex;align-items:center;gap:9px;max-width:760px;margin:0;color:var(--muted);font-size:12px;line-height:1.6}.page-note__mark{flex-basis:18px;color:var(--primary);background:var(--primary-soft)}@media(max-width:1120px){.login-page{grid-template-columns:minmax(460px,1.1fr) minmax(420px,.9fr)}.login-visual{padding-left:24px;padding-right:24px}.login-visual__surface{padding:28px 26px 24px}.capability-card,.module-card{padding:14px}}@media(max-width:900px){.login-page{display:block}.login-visual{min-height:auto;padding:24px;border-right:0;border-bottom:1px solid var(--border)}.login-visual__surface{max-width:760px}.login-stage{min-height:720px;padding:84px 24px 64px}.platform-sidebar{width:184px;flex-basis:184px}.summary-grid{grid-template-columns:1fr}}@media(max-width:640px){.login-visual{padding:14px}.login-visual__surface{padding:22px 18px 20px}.login-brand{align-items:flex-start;gap:13px;margin-top:22px}.brand-logo-frame{flex-basis:58px;width:58px;height:58px}.brand-logo{width:48px;height:48px}.login-brand h1{font-size:25px}.brand-tagline,.login-visual__description{font-size:12px}.capability-grid,.module-grid{grid-template-columns:1fr}.capability-card{min-height:auto}.login-stage{min-height:700px;padding:78px 14px 58px}.login-toolbar{top:14px;right:14px}.auth-panel,.auth-panel--focus{width:100%;padding:24px 18px}.auth-panel h2{font-size:24px}.auth-mode-tabs button{font-size:10px}.platform-shell{display:block}.platform-sidebar{width:auto;padding:16px}.brand-mark{padding-bottom:16px}.platform-nav{display:flex;overflow-x:auto}.platform-header,.platform-main{padding:20px}.platform-header{align-items:flex-start;gap:14px}.platform-header__account-text{display:none}}@media(max-width:640px){.platform-alert{padding-right:20px;padding-left:20px}.account-overview,.account-details{grid-template-columns:1fr}.account-details div{padding-right:0;padding-left:0;border-top:1px solid var(--border);border-left:0}}.login-page{grid-template-columns:minmax(0,1.5fr) minmax(420px,.95fr);min-height:100vh;min-height:100dvh;overflow-x:hidden}.login-visual{position:relative;align-items:center;overflow:hidden;padding:0;color:var(--login-showcase-ink);background:var(--login-showcase);border-right:1px solid rgba(125,211,252,.2)}.login-visual:before{position:absolute;top:0;right:0;bottom:0;left:0;content:"";pointer-events:none;opacity:.45;background-image:linear-gradient(rgba(148,163,184,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.07) 1px,transparent 1px);background-size:40px 40px}.login-visual:after{position:absolute;top:0;right:9%;bottom:0;width:1px;content:"";pointer-events:none;background:var(--login-showcase-line)}.login-visual__surface{position:relative;z-index:1;align-self:stretch;width:100%;min-height:100vh;min-height:100dvh;margin:0;padding:48px 56px 38px;background:transparent;border:0;border-radius:0;box-shadow:none}.eyebrow-chip{color:var(--login-showcase-accent);background:#38bdf814;border-color:#38bdf838}.visual-code,.brand-kicker{color:var(--login-showcase-muted)}.login-brand{gap:18px;margin-top:22px}.brand-logo-frame{background:#0f2532;border-color:#7dd3fc61}.login-brand h1{color:var(--login-showcase-ink);font-size:40px}.brand-tagline,.login-visual__description{color:var(--login-showcase-muted)}.login-visual .capability-card,.login-visual .module-card{background:var(--login-showcase-deep);border-color:#94a3b833;border-radius:var(--radius-sm);box-shadow:none}.login-visual .capability-card{min-height:104px;padding:15px}.login-visual .capability-card__mark{color:var(--login-showcase-accent);background:#0f2532;border:1px solid rgba(56,189,248,.22)}.login-visual .capability-card--green .capability-card__mark{color:#4ade80;background:#102b26;border-color:#4ade8047}.login-visual .capability-card--slate .capability-card__mark{color:#cbd5e1;background:#172b37;border-color:#cbd5e12e}.login-visual .capability-card strong,.login-visual .module-card strong,.module-heading{color:var(--login-showcase-ink)}.login-visual .capability-card span:last-child,.login-visual .module-card p,.login-visual__footer{color:var(--login-showcase-muted)}.module-heading__line{background:#94a3b838}.login-visual .module-card{min-height:112px;padding:15px}.login-visual__footer{border-top-color:#94a3b833}.login-stage{min-height:100vh;min-height:100dvh;padding:76px 40px 64px;background:var(--surface);border-left:1px solid rgba(14,116,144,.18)}.login-stage:before{position:absolute;top:0;right:0;bottom:0;left:0;content:"";pointer-events:none;opacity:.35;background-image:linear-gradient(rgba(14,116,144,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(14,116,144,.04) 1px,transparent 1px);background-size:40px 40px}.login-toolbar{top:16px;right:16px}.auth-panel,.auth-panel--focus{position:relative;z-index:1;width:min(100%,440px);padding:30px 0 22px;background:transparent;border:0;border-top:2px solid rgba(2,132,199,.82);border-radius:0;box-shadow:none}.auth-panel--focus{padding:30px 0 22px;border-top-color:#0284c7d1}.auth-panel__eyebrow{color:var(--login-form-accent)}.primary-button{background:var(--login-form-accent);border-color:var(--login-form-accent)}.primary-button:hover:not(:disabled){background:var(--login-form-accent-strong);border-color:var(--login-form-accent-strong)}@media(max-width:1120px){.login-page{grid-template-columns:minmax(0,1.35fr) minmax(400px,.95fr)}.login-visual__surface{padding-right:36px;padding-left:36px}.login-stage{padding-right:32px;padding-left:32px}}@media(max-width:1023px){.login-page{display:block;min-height:100vh;min-height:100dvh}.login-visual{display:none}.login-stage{min-height:100vh;min-height:100dvh;padding:72px 24px 48px;border-left:0}.auth-panel,.auth-panel--focus{width:min(100%,440px);padding:24px 0 20px}.design-switch{display:none}.login-copyright{position:static;margin-top:32px}}@media(max-width:768px){.login-stage{padding:48px 16px 36px}.login-toolbar{display:none}}@media(max-width:640px){.auth-panel h2{font-size:24px}.auth-mode-tabs button{font-size:11px}}.login-viewport{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}.login-screen{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:320px;min-height:0;overflow:hidden;transform-origin:top left;color:#334155;background:radial-gradient(circle at 18% 28%,rgba(37,99,235,.08) 0%,transparent 45%) fixed,radial-gradient(circle at 82% 35%,rgba(14,165,233,.07) 0%,transparent 40%),radial-gradient(circle at 50% 85%,rgba(16,185,129,.05) 0%,transparent 50%),linear-gradient(#f0f5fc,#f6f9fe 40%,#eef4fb)}.login-screen button,.login-screen input{font-family:inherit}.login-header{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;min-height:67px;padding:14px 32px;background:#fff;border-bottom:1px solid rgba(226,232,240,.8);box-shadow:0 1px 4px #4755691a}.login-header__brand{display:flex;align-items:center;gap:12px;min-width:0}.login-header__mark{display:grid;flex:0 0 36px;place-items:center;width:36px;height:36px;overflow:hidden}.login-header__logo{display:block;width:100%;height:100%;object-fit:contain}.login-header__copy{min-width:0}.login-header__copy h1,.login-header__copy p{margin:0}.login-header__copy h1{overflow:hidden;color:#0f172a;font-size:16px;font-weight:700;line-height:1.2;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}.login-header__copy p{margin-top:3px;overflow:hidden;color:#64748b;font-size:11px;font-weight:500;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.login-header__actions,.login-controls,.login-system-status,.login-control{display:flex;align-items:center}.login-header__actions{flex:0 0 auto;gap:20px;color:#475569;font-size:12px}.login-system-status{gap:8px;min-height:32px;padding:0 14px;color:#047857;font-size:12px;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:999px}.login-system-status__dot,.showcase-chip__dot,.auth-channel__dot{display:inline-block;flex:0 0 7px;width:7px;height:7px;background:currentColor;border-radius:50%}.login-system-status__dot{color:#6ee7b7}.login-header__divider{width:1px;height:16px;background:#e2e8f0}.login-controls{gap:8px}.login-control{justify-content:center;gap:6px;min-height:36px;color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:8px;transition:color .16s ease,background-color .16s ease,border-color .16s ease}.login-control:hover{color:#0f172a;background:#f8fafc;border-color:#cbd5e1}.login-control--icon{width:36px;padding:0}.login-control--language{padding:0 11px;font-size:12px;font-weight:500;white-space:nowrap}.login-control svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.login-workspace{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:32px;width:100%;max-width:1720px;min-height:0;margin:0 auto;padding:32px}.login-workspace__background{position:absolute;top:0;bottom:0;left:50%;width:100vw;overflow:hidden;pointer-events:none;transform:translate(-50%)}.login-workspace__background:before{position:absolute;top:-18%;right:-18%;bottom:-18%;left:-18%;content:"";background:radial-gradient(circle at 8% 12%,rgba(96,165,250,.14) 0,transparent 24%),radial-gradient(circle at 48% 38%,rgba(34,211,238,.09) 0,transparent 30%),radial-gradient(circle at 94% 88%,rgba(99,102,241,.11) 0,transparent 34%),radial-gradient(circle at 72% 4%,rgba(52,211,153,.07) 0,transparent 24%);filter:blur(24px)}.login-workspace__grid{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.5;background-size:32px 32px;background-image:linear-gradient(to right,rgba(37,99,235,.05) 1px,transparent 1px),linear-gradient(to bottom,rgba(37,99,235,.05) 1px,transparent 1px)}.showcase-panel,.auth-card{position:relative;z-index:1;min-width:0;overflow:hidden;border:1px solid rgba(147,197,253,.7);border-radius:16px}.showcase-panel{display:flex;min-height:0;background:linear-gradient(145deg,#f0f7fff2,#e8f1fde6 45%,#dfeafdd9);border-color:#93c5fdb3;box-shadow:0 20px 40px -15px #2563eb1f,0 0 0 1px #bfdbfe80,0 1px 2px #ffffffe6 inset}.showcase-panel__inner{display:flex;flex:1;flex-direction:column;min-width:0;min-height:0;padding:48px}.showcase-heading{min-width:0}.showcase-chip,.auth-channel{display:inline-flex;align-items:center;gap:8px;min-height:26px;padding:0 11px;color:#2563eb;font-size:12px;font-weight:600;background:#eff6ffb8;border:1px solid #bfdbfe;border-radius:999px}.showcase-chip__dot,.auth-channel__dot{color:#93b4ef}.showcase-heading h2{max-width:720px;margin:12px 0 0;color:#0f172a;font-size:30px;font-weight:800;line-height:1.2;letter-spacing:0}.showcase-heading p{max-width:720px;margin:12px 0 0;color:#64748b;font-size:14px;line-height:1.5}.flow-visual{display:flex;flex:1;align-items:center;justify-content:center;min-height:0;padding:32px 0}.flow-visual__frame{width:min(100%,728px);aspect-ratio:16 / 9}.flow-diagram{display:block;width:100%;height:100%;overflow:visible}.flow-line{stroke-dasharray:6;animation:login-flow-dash 20s linear infinite}.flow-caption{fill:#64748b;font-family:inherit;font-size:9px;font-weight:500;letter-spacing:.5px}.flow-center__title,.flow-center__subtitle{fill:#334155;font-family:inherit;text-anchor:middle}.flow-center__title{font-size:10px;font-weight:800;letter-spacing:.6px}.flow-center__subtitle{fill:#64748b;font-size:8px;font-weight:600;letter-spacing:.4px}.flow-node__title{fill:#334155;font-family:inherit;font-size:11px;font-weight:700}.flow-node__stage,.flow-node__badge{font-family:inherit;font-size:8.5px;font-weight:700}.flow-node__stage--blue,.flow-node__badge--blue{fill:#2563eb}.flow-node__stage--green,.flow-node__badge--green{fill:#059669}.flow-node__stage--cyan,.flow-node__badge--cyan{fill:#0284c7}.flow-node__stage--amber,.flow-node__badge--amber{fill:#d97706}.flow-node__stage--indigo,.flow-node__badge--indigo{fill:#4f46e5}.flow-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding-top:16px;border-top:1px solid rgba(255,255,255,.8)}.flow-metric{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:74px;padding:12px 8px;color:#475569;text-align:center;background:linear-gradient(#fff,#edf4fe);border:1px solid rgba(191,219,254,.85);border-radius:12px;box-shadow:0 2px 8px #2563eb0f}.flow-metric svg{width:20px;height:20px;fill:currentColor}.flow-metric span{max-width:100%;overflow-wrap:anywhere;font-size:11px;font-weight:600}.flow-metric--blue{color:#2563eb}.flow-metric--green{color:#059669}.flow-metric--cyan{color:#0284c7}.flow-metric--amber{color:#d97706}.flow-metric--indigo{color:#4f46e5}.auth-column{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;min-width:0;min-height:0}.auth-card{display:flex;flex:0 0 auto;flex-direction:column;width:100%;min-height:0;padding:32px;color:#334155;background:linear-gradient(150deg,#fff,#f4f8fe,#e9f2fd);border-color:#93c5fdbf;box-shadow:0 25px 50px -12px #2563eb29,0 0 0 1px #bfdbfe99,0 1px 3px #ffffffe6 inset}.auth-card__header{min-width:0;margin-bottom:24px}.auth-card__intro{display:flex;align-items:center;justify-content:space-between;gap:12px}.auth-channel{min-height:28px;padding:0 10px;font-size:11px;font-weight:600}.auth-card h2{margin:24px 0 0;color:#0f172a;font-size:24px;font-weight:700;line-height:1.2;letter-spacing:0}.auth-card__header p{margin:6px 0 0;color:#64748b;font-size:12px;line-height:1.5}.auth-card .auth-mode-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0 0 24px;padding:0;background:transparent;border:0;border-bottom:1px solid #e2e8f0;border-radius:0}.auth-card .auth-mode-tabs button{min-height:34px;padding:0 8px 10px;color:#64748b;font-size:12px;font-weight:500;white-space:nowrap;background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0}.auth-card .auth-mode-tabs button:hover:not(:disabled){color:#1d4ed8}.auth-card .auth-mode-tabs button:disabled{color:#94a3b8;opacity:1}.auth-card .auth-mode-tabs button.active{color:#2563eb;font-weight:700;background:transparent;border-bottom-color:#2563eb;box-shadow:none}.auth-card .auth-form{display:grid;gap:0;margin-top:0}.auth-card .form-label{display:flex;align-items:center;gap:4px;margin:0 0 8px;color:#334155;font-size:12px;font-weight:600}.auth-card .form-label:not(:first-child){margin-top:16px}.required-mark{color:#2563eb}.auth-card .input-shell{display:flex;align-items:center;min-height:38px;margin:0;background:#f8fafcb8;border:1px solid #e2e8f0;border-radius:8px;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.auth-card .input-shell:focus-within{background:#fff;border-color:#2563eb;box-shadow:0 0 0 1px #2563eb2e}.auth-card .input-icon{display:inline-block;flex:0 0 36px;width:18px;height:18px;color:#94a3b8;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.auth-card .input-shell input{min-width:0;flex:1;height:36px;padding:0 8px 0 0;color:#1e293b;font-size:12px;background:transparent;border:0;outline:0}.auth-card .input-shell input::placeholder{color:#94a3b8}.auth-card .input-visibility{display:inline-flex;flex:0 0 36px;align-items:center;justify-content:center;min-height:36px;padding:0;color:#94a3b8;background:transparent;border:0}.auth-card .input-visibility:hover{color:#2563eb}.auth-card .input-visibility svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.auth-card .input-action--text{flex:0 0 auto;min-height:36px;padding:0 10px;color:#2563eb;font-size:11px;font-weight:600;white-space:nowrap;background:transparent;border:0}.auth-card .auth-form__options{justify-content:space-between;gap:12px;margin:20px 0 0}.auth-card .check-control{display:inline-flex;align-items:center;gap:8px;color:#64748b;font-size:12px}.auth-card .check-control input{width:16px;height:16px;accent-color:#2563eb}.auth-card .text-button{padding:2px 0;color:#2563eb;font-size:12px;background:transparent;border:0}.auth-card .text-button:hover{text-decoration:underline}.auth-card .auth-hint,.auth-card .method-description{margin:20px 0 0;padding:10px;color:#94a3b8;font-size:11px;line-height:1.55;background:#f8fafcb8;border:1px solid rgba(226,232,240,.65);border-radius:8px}.auth-card .primary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:41px;margin-top:20px;padding:0 16px;color:#fff;font-size:12px;font-weight:700;background:linear-gradient(90deg,#2563eb,#4f46e5);border:0;border-radius:8px;box-shadow:0 8px 14px #2563eb40;transition:filter .16s ease,transform .16s ease}.auth-card .primary-button:hover:not(:disabled){filter:brightness(.96);transform:translateY(-1px)}.auth-card .primary-button svg,.auth-card .secondary-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.auth-card .reserved-panel{display:grid;flex:1;align-content:center;justify-items:center;gap:12px;min-height:280px;padding:16px 0;text-align:center}.auth-card .reserved-panel h3{margin:0;color:#0f172a;font-size:18px}.auth-card .reserved-panel p{max-width:300px;margin:0;color:#64748b;font-size:12px;line-height:1.6}.auth-card .qr-frame{background:#fff;border-color:#cbd5e1;box-shadow:0 8px 24px #2d435a14}.auth-card .wechat-mark{background:#07c160}.auth-card .secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:0 14px;color:#2563eb;font-size:12px;font-weight:600;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.auth-card .secondary-button:hover{background:#eff6ff;border-color:#93c5fd}.auth-card .auth-divider{display:flex;align-items:center;gap:10px;margin-top:24px;color:#94a3b8;font-size:11px}.auth-card .auth-divider:before,.auth-card .auth-divider:after{flex:1;height:1px;content:"";background:#e2e8f0}.auth-card .auth-divider span{flex:0 0 auto;padding:0 4px}.auth-card .auth-socials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.auth-card .social-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:0 10px;color:#475569;font-size:12px;font-weight:500;background:#f8fafcb8;border:1px solid #e2e8f0;border-radius:8px}.auth-card .social-button:hover:not(:disabled){color:#2563eb;background:#fff;border-color:#93c5fd}.auth-card .social-button:disabled{color:#94a3b8;background:#f1f5f9;border-color:#e2e8f0;opacity:1}.auth-card .social-button:disabled .social-button__mark{color:inherit}.auth-card .social-button__mark{display:inline-grid;flex:0 0 18px;place-items:center;width:18px;height:18px;color:#475569}.auth-card .social-button__mark svg{width:18px;height:18px;fill:currentColor}.auth-card .social-button__mark--wechat{color:#07c160}.auth-card .auth-footer-note{margin:16px 0 0;color:#94a3b8;font-size:11px;text-align:center}.auth-card .auth-footer-note span{color:#94a3b8;font-weight:400}.login-footer{position:relative;z-index:2;width:100%;background:#fff;border-top:1px solid #e2e8f0}.login-footer__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;max-width:1720px;min-height:56px;margin:0 auto;padding:14px 32px;color:#64748b;font-size:11px;text-align:center}.login-footer__inner p{margin:0}.login-footer__status{display:flex;align-items:center;justify-content:flex-end;gap:12px;color:#94a3b8;text-align:right}.login-footer__status a{color:#2563eb;text-decoration:none}.login-footer__status a:hover{text-decoration:underline}@keyframes login-flow-dash{to{stroke-dashoffset:-100}}.login-screen--dim{color:#dbe5ee;background:radial-gradient(circle at 18% 28%,rgba(59,130,246,.13) 0%,transparent 45%) fixed,radial-gradient(circle at 82% 35%,rgba(14,165,233,.1) 0%,transparent 40%),linear-gradient(#1d2a38,#233442 45%,#1b2835)}.login-screen--dim .login-header,.login-screen--dim .login-footer{color:#dbe5ee;background:#273746;border-color:#455d70}.login-screen--dim .login-header__copy h1,.login-screen--dim .auth-card h2,.login-screen--dim .showcase-heading h2,.login-screen--dim .flow-node__title,.login-screen--dim .auth-card .reserved-panel h3{color:#f3f7fa}.login-screen--dim .login-header__copy p,.login-screen--dim .showcase-heading p,.login-screen--dim .auth-card__header p,.login-screen--dim .flow-caption,.login-screen--dim .auth-card .reserved-panel p,.login-screen--dim .login-footer__inner,.login-screen--dim .login-footer__status{color:#aebdca}.login-screen--dim .login-control,.login-screen--dim .auth-card .social-button,.login-screen--dim .auth-card .secondary-button{color:#dbe5ee;background:#2e4151;border-color:#536b7d}.login-screen--dim .auth-card .auth-mode-tabs button:disabled,.login-screen--dim .auth-card .social-button:disabled{color:#91a0ad}.login-screen--dim .auth-card .social-button:disabled{background:#344655;border-color:#4a5b69}.login-screen--dim .showcase-panel{background:linear-gradient(145deg,#2b4559fa,#2a4051f5,#223645f5);border-color:#6689a7}.login-screen--dim .auth-card{background:linear-gradient(150deg,#324858,#2c414f 52%,#263946);border-color:#6689a7}.login-screen--dim .flow-metric,.login-screen--dim .auth-card .input-shell,.login-screen--dim .auth-card .auth-hint,.login-screen--dim .auth-card .method-description{color:#dbe5ee;background:#334a5b;border-color:#536b7d}.login-screen--dim .auth-card .form-label,.login-screen--dim .auth-card .check-control,.login-screen--dim .auth-card .auth-footer-note,.login-screen--dim .auth-card .auth-footer-note span{color:#c4d1dc}.login-screen--dim .auth-card .input-shell input{color:#f3f7fa}.login-screen--dim .auth-card .auth-divider:before,.login-screen--dim .auth-card .auth-divider:after,.login-screen--dim .login-header__divider{background:#536b7d}@media(max-width:1279px){.login-workspace{gap:24px;padding-right:24px;padding-left:24px}.showcase-panel__inner{padding-right:36px;padding-left:36px}}@media(max-width:1023px){.login-workspace{display:flex;align-items:center;justify-content:center;padding:24px}.login-workspace__background,.showcase-panel{display:none}.auth-column{align-items:center;justify-content:center;min-height:0}.auth-card{width:min(100%,420px);min-height:0}}@media(max-width:760px){.login-header{min-height:60px;padding:12px 16px}.login-header__brand{gap:10px}.login-header__mark{flex-basis:34px;width:34px;height:34px}.login-header__copy h1{font-size:14px}.login-header__copy p,.login-system-status,.login-header__divider{display:none}.login-header__actions{gap:8px}.login-control--icon,.login-control--language{width:34px;min-height:34px;padding:0}.login-control--language span{display:none}.login-workspace{padding:16px}.auth-card{width:100%;padding:24px;border-radius:12px}.auth-card h2{font-size:24px}.login-footer__inner{min-height:48px;padding:10px 16px}.login-footer__status{display:none}}@media(max-width:480px){.login-header__copy h1{max-width:190px;overflow:visible;white-space:normal}.auth-card{padding:22px 18px}.auth-card__intro{align-items:flex-start}.auth-card .auth-socials{grid-template-columns:1fr}}.workspace-shell{display:flex;flex-direction:column;height:100vh;min-height:0;overflow:hidden;color:#334155;background:#f2f4f8;font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif;font-size:13px}.workspace-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:0 0 50px;height:50px;padding:0 12px;background:#fff;border-bottom:1px solid #e5e7eb;z-index:30}.workspace-header__left,.workspace-header__right,.workspace-brand,.workspace-breadcrumb,.workspace-role,.workspace-scope,.workspace-user,.workspace-search,.workspace-tabs-row,.workspace-tab,.workspace-menu__group-header,.workspace-menu__group-title,.workspace-menu__item,.workspace-sidebar__collapse,.dashboard-page-title,.dashboard-page-title__main,.dashboard-filter-bar,.dashboard-filter-group,.dashboard-date-range,.dashboard-stat-panel__header,.dashboard-stat-panel__header h2,.dashboard-metric,.dashboard-section-header,.dashboard-section-header h2,.dashboard-badge,.dashboard-density-legend div,.dashboard-map-legend strong,.workspace-placeholder__header,.workspace-placeholder__title,.workspace-empty-state,.dashboard-primary-button,.dashboard-light-button{display:flex;align-items:center}.workspace-header__left,.workspace-header__right{min-width:0}.workspace-header__left{gap:8px;flex:1 1 auto}.workspace-header__right{flex:0 1 auto;justify-content:flex-end;gap:8px}.workspace-brand{flex:0 0 auto;gap:8px;margin-right:8px;color:#1f2937;font-size:14px;font-weight:700;white-space:nowrap}.workspace-brand__logo{width:25px;height:25px;object-fit:contain;border-radius:50%}.workspace-icon-button,.workspace-tab-scroll,.workspace-user,.workspace-menu__group-header,.workspace-menu__item,.workspace-sidebar__collapse,.workspace-tab button,.dashboard-light-button,.dashboard-primary-button,.dashboard-map-actions button{border:0;cursor:pointer}.workspace-icon-button{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;padding:0;color:#64748b;background:transparent;border-radius:4px}.workspace-icon-button:hover:not(:disabled),.workspace-tab-scroll:hover:not(:disabled),.workspace-user:hover:not(:disabled){color:#2563eb;background:#f3f4f6}.workspace-icon-button svg,.workspace-role svg,.workspace-user svg,.workspace-search svg,.workspace-breadcrumb svg,.workspace-menu__group-header svg,.workspace-menu__item svg,.workspace-sidebar__collapse svg,.workspace-tab svg,.workspace-tab-scroll svg,.dashboard-page-title svg,.dashboard-filter-bar svg,.dashboard-stat-panel svg,.dashboard-section-header svg,.dashboard-light-button svg,.dashboard-primary-button svg,.dashboard-map-actions svg,.workspace-placeholder svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.workspace-icon-button--notice:after{position:absolute;top:4px;right:4px;width:5px;height:5px;content:"";background:#ef4444;border:1px solid #fff;border-radius:50%}.workspace-icon-button--logout{color:#64748b}.workspace-icon-button--language{flex-basis:34px;width:34px;font-size:10px;font-weight:700}.workspace-breadcrumb{min-width:0;gap:6px;margin-left:4px;padding-left:8px;color:#475569;font-size:12px;font-weight:500;border-left:1px solid #e5e7eb}.workspace-breadcrumb svg{color:#64748b}.workspace-breadcrumb__icon{flex:0 0 14px;width:14px!important;height:14px!important}.workspace-breadcrumb__separator{flex:0 0 11px;width:11px!important;height:11px!important;color:#94a3b8!important}.workspace-breadcrumb span,.workspace-breadcrumb strong{overflow:hidden;color:#475569;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.workspace-search{position:relative;width:145px;height:28px;color:#94a3b8;background:#f3f4f6;border-radius:4px}.workspace-search svg{position:absolute;top:7px;left:8px;width:14px;height:14px}.workspace-search input{width:100%;height:100%;padding:0 10px 0 28px;color:#334155;font-size:12px;background:transparent;border:0;outline:0}.workspace-search input::placeholder{color:#9ca3af}.workspace-role,.workspace-scope{min-width:0;height:28px;font-size:11px;white-space:nowrap}.workspace-role{gap:4px;padding:0 8px;color:#2563eb;background:#eff6ff;border:1px solid #dbeafe;border-radius:4px}.workspace-role svg{width:13px;height:13px}.workspace-scope{justify-content:flex-start;gap:6px;max-width:260px;padding:0 8px;overflow:hidden;color:#475569;background:#f8fafc;border:1px solid #e5e7eb;border-radius:4px;cursor:default}.workspace-scope__label{flex:0 0 auto;color:#64748b;font-weight:600}.workspace-scope__value{min-width:0;overflow:hidden;color:#334155;text-overflow:ellipsis}.workspace-user-menu{position:relative;display:inline-flex;flex:0 0 auto;align-items:center}.workspace-user{gap:6px;height:28px;padding:0 2px 0 5px;color:#475569;background:transparent;border-radius:4px}.workspace-user span:nth-child(2){max-width:90px;overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.workspace-user__avatar{display:inline-grid;flex:0 0 23px;place-items:center;width:23px;height:23px;color:#fff;font-size:11px;font-weight:700;background:#2563eb;border-radius:50%}.workspace-user svg{width:12px;height:12px;color:#94a3b8;transform:rotate(90deg)}.workspace-user-menu--open .workspace-user>svg{transform:rotate(270deg)}.workspace-user-menu__panel{position:absolute;top:calc(100% + 8px);right:0;z-index:60;width:178px;padding:6px;background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 10px 24px #0f172a1f}.workspace-user-menu__item{display:flex;align-items:center;width:100%;min-height:34px;gap:8px;padding:0 8px;color:#334155;font-size:12px;text-align:left;background:transparent;border:0;border-radius:4px;cursor:pointer}.workspace-user-menu__item:hover{color:#2563eb;background:#f1f5f9}.workspace-user-menu__item svg{flex:0 0 15px;width:15px;height:15px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.workspace-user-menu__item span{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-user-menu__item em{flex:0 0 auto;color:#94a3b8;font-size:11px;font-style:normal}.workspace-body{display:flex;flex:1 1 auto;min-height:0;overflow:hidden}.workspace-sidebar{display:flex;flex:0 0 180px;flex-direction:column;justify-content:flex-start;width:180px;height:100%;min-height:0;padding:8px;overflow:hidden;background:#fff;border-right:1px solid #e5e7eb;transition:width .18s ease,flex-basis .18s ease}.workspace-sidebar--collapsed{flex-basis:60px;width:60px}.workspace-sidebar--collapsed .workspace-menu__group-header,.workspace-sidebar--collapsed .workspace-menu__item,.workspace-sidebar--collapsed .workspace-sidebar__collapse{justify-content:center;padding-right:8px;padding-left:8px}.workspace-sidebar--collapsed .workspace-menu__group-header{justify-content:center}.workspace-sidebar--collapsed .workspace-menu__group-header .workspace-menu__chevron,.workspace-sidebar--collapsed .workspace-sidebar__collapse span,.workspace-sidebar--collapsed .workspace-sidebar__text{display:none}.workspace-sidebar--collapsed .workspace-menu__items{padding-left:0}.workspace-menu{display:flex;flex:1 1 auto;flex-direction:column;justify-content:flex-start;gap:3px;min-width:0;min-height:0;overflow-y:auto}.workspace-menu__group{min-width:0}.workspace-menu__group-header,.workspace-menu__item,.workspace-sidebar__collapse{width:100%;min-height:30px;padding:0 10px;color:#64748b;font-size:12px;text-align:left;background:transparent;border-radius:5px}.workspace-menu__group-header{justify-content:space-between;font-weight:600}.workspace-menu__group-header:hover,.workspace-menu__item:hover,.workspace-sidebar__collapse:hover{background:#f8fafc}.workspace-menu__group-title,.workspace-menu__item{gap:8px}.workspace-menu__group-title{min-width:0}.workspace-menu__group-title svg,.workspace-menu__item svg{flex:0 0 15px;width:15px;height:15px;color:#64748b}.workspace-menu__items{display:grid;gap:2px;padding:1px 0 3px 8px}.workspace-menu__item{color:#64748b;font-size:12px;font-weight:400}.workspace-menu__item--active{color:#2563eb;font-weight:600;background:#eff6ff}.workspace-menu__item--active svg{color:#2563eb}.workspace-menu__chevron{width:13px!important;height:13px!important;color:#94a3b8;transform:rotate(0);transition:transform .16s ease}.workspace-menu__chevron--expanded{transform:rotate(90deg)}.workspace-sidebar__collapse{justify-content:flex-start;gap:8px;margin-top:8px;color:#94a3b8;border-top:1px solid #f1f5f9;border-radius:0}.workspace-sidebar__collapse svg{width:15px;height:15px}.workspace-sidebar--collapsed .workspace-sidebar__collapse svg{transform:rotate(180deg)}.workspace-content{display:flex;flex:1 1 auto;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.workspace-tabs-row{position:relative;z-index:20;flex:0 0 36px;gap:4px;padding:0 8px;background:#fff;border-bottom:1px solid #e5e7eb}.workspace-tabs{display:flex;align-items:stretch;flex:1 1 auto;min-width:0;height:36px;overflow-x:auto;scrollbar-width:thin}.workspace-tabs--empty{align-items:center;padding-left:8px;color:#9ca3af;font-size:12px;font-style:italic}.workspace-tab-scroll{display:inline-grid;flex:0 0 22px;place-items:center;width:22px;height:26px;padding:0;color:#94a3b8;background:transparent;border-radius:3px}.workspace-tab-scroll svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.workspace-tab{display:inline-flex;align-items:center;flex:0 0 auto;gap:6px;min-width:96px;height:36px;padding:0 10px;color:#475569;font-size:12px;cursor:pointer;border-bottom:2px solid transparent}.workspace-tab:hover{background:#f8fafc}.workspace-tab--active{color:#2563eb;background:#e8f3ff;border-bottom-color:#3b82f6}.workspace-tab>svg{flex:0 0 14px;width:14px;height:14px}.workspace-tab button{display:inline-grid;place-items:center;width:16px;height:16px;padding:0;color:#94a3b8;background:transparent;border-radius:50%}.workspace-tab button:hover{color:#475569;background:#dbeafe}.workspace-tab button svg{width:10px;height:10px}.workspace-empty-state,.workspace-placeholder,.dashboard-view{flex:1 1 auto;min-width:0;min-height:0;overflow:auto}.workspace-empty-state{flex:1 1 auto;flex-direction:column;justify-content:center;padding:48px 24px;text-align:center}.workspace-empty-state__icon,.workspace-placeholder__empty-icon{display:inline-grid;place-items:center;color:#3b82f6;background:#eff6ff;border:1px solid #dbeafe;border-radius:50%}.workspace-empty-state__icon{width:64px;height:64px;margin-bottom:12px}.workspace-empty-state__icon svg{width:30px;height:30px}.workspace-empty-state h2,.workspace-empty-state p,.workspace-placeholder h1,.workspace-placeholder h2,.workspace-placeholder p{margin:0}.workspace-empty-state h2{color:#374151;font-size:14px}.workspace-empty-state p{max-width:320px;margin:6px 0 16px;color:#9ca3af;font-size:12px;line-height:1.6}.workspace-placeholder{flex:1 1 auto;padding:12px 12px 80px}.workspace-placeholder__header,.workspace-placeholder__body{background:#fff;border:1px solid #e5e7eb;box-shadow:0 1px 2px #00000008}.workspace-placeholder__header{justify-content:space-between;gap:16px;min-height:58px;padding:10px 16px;border-radius:6px}.workspace-placeholder__title{gap:10px;min-width:0}.workspace-placeholder__icon{display:inline-grid;flex:0 0 32px;place-items:center;width:32px;height:32px;color:#2563eb;background:#eff6ff;border-radius:7px}.workspace-placeholder h1{color:#374151;font-size:16px;line-height:1.2}.workspace-placeholder__title span:last-child{display:block;margin-top:3px;color:#9ca3af;font-size:11px}.workspace-placeholder__body{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:500px;margin-top:10px;padding:48px 20px;text-align:center;border-radius:12px}.workspace-placeholder__empty-icon{width:64px;height:64px;margin-bottom:16px;color:#94a3b8;background:#f8fafc;border-color:#f1f5f9}.workspace-placeholder__empty-icon svg{width:30px;height:30px}.workspace-placeholder h2{color:#374151;font-size:16px}.workspace-placeholder p{max-width:420px;margin:8px 0 22px;color:#9ca3af;font-size:12px;line-height:1.7}.dashboard-view{flex:1 1 auto;padding:12px 12px 80px}.dashboard-view>*+*{margin-top:10px}.dashboard-page-title,.dashboard-filter-bar,.dashboard-stat-panel,.dashboard-distribution-panel{background:#fff;border:1px solid #e5e7eb;box-shadow:0 1px 2px #00000008}.dashboard-page-title{justify-content:space-between;gap:16px;min-height:58px;padding:10px 16px;border-radius:6px}.dashboard-page-title__main{gap:10px;min-width:0}.dashboard-page-title__icon{display:inline-grid;flex:0 0 32px;place-items:center;width:32px;height:32px;color:#fff;background:#2563eb;border-radius:7px}.dashboard-page-title__icon svg{width:18px;height:18px}.dashboard-page-title h1{margin:0;color:#374151;font-size:16px;line-height:1.2}.dashboard-page-title__meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:3px;color:#9ca3af;font-size:11px}.dashboard-page-title__meta strong{color:#4b5563;font-weight:600}.dashboard-page-title__updated{color:#2563eb;font-weight:600}.dashboard-light-button,.dashboard-primary-button{justify-content:center;gap:6px;min-height:28px;padding:0 10px;font-size:12px;border-radius:4px}.dashboard-light-button{flex:0 0 auto;color:#475569;background:#fff;border:1px solid #e5e7eb}.dashboard-light-button:hover{background:#f8fafc}.dashboard-primary-button{color:#fff;background:#2563eb;border:1px solid #2563eb;box-shadow:0 2px 4px #2563eb26}.dashboard-primary-button:hover{background:#1d4ed8}.dashboard-filter-bar{justify-content:space-between;flex-wrap:wrap;gap:10px 18px;padding:8px 16px;border-radius:6px}.dashboard-filter-group{gap:8px;color:#6b7280;font-size:12px}.dashboard-filter-group--right{justify-content:flex-end}.dashboard-segmented-control,.dashboard-preset-control{display:flex;align-items:center;padding:2px;background:#f3f4f6;border-radius:4px}.dashboard-segmented-control button,.dashboard-preset-control button{min-height:24px;padding:0 9px;color:#64748b;font-size:11px;background:transparent;border:0;border-radius:3px;cursor:pointer}.dashboard-segmented-control button.active,.dashboard-preset-control button.active{color:#2563eb;font-weight:600;background:#fff;box-shadow:0 1px 2px #0f172a14}.dashboard-date-range{gap:6px;min-height:26px;padding:0 8px;color:#475569;background:#fff;border:1px solid #e5e7eb;border-radius:4px}.dashboard-date-range b{color:#9ca3af;font-weight:400}.dashboard-date-range svg{width:14px;height:14px;color:#94a3b8}.dashboard-preset-control{background:#fff;border:1px solid #e5e7eb}.dashboard-stat-panel{position:relative;padding:12px 14px;border-left-width:4px;border-radius:6px}.dashboard-stat-panel--green{border-left-color:#10b981}.dashboard-stat-panel--blue{border-left-color:#3b82f6}.dashboard-stat-panel--neutral{border-left-color:#64748b}.dashboard-stat-panel__header{justify-content:space-between;gap:12px;margin-bottom:12px}.dashboard-stat-panel__header h2,.dashboard-section-header h2{gap:6px;margin:0;color:#374151;font-size:14px;font-weight:700}.dashboard-stat-panel__header span{color:#9ca3af;font-size:11px}.dashboard-stat-panel--green .dashboard-stat-panel__header h2{color:#374151}.dashboard-stat-panel--green .dashboard-stat-panel__header svg{color:#10b981}.dashboard-stat-panel--blue .dashboard-stat-panel__header svg{color:#3b82f6}.dashboard-metric-grid{display:grid;gap:14px}.dashboard-metric-grid--four{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-metric{gap:10px;min-width:0;padding:0 10px;border-left:1px solid #f1f5f9}.dashboard-metric:first-child{padding-left:0;border-left:0}.dashboard-metric__icon,.dashboard-cumulative-card__icon{display:inline-grid;flex:0 0 32px;place-items:center;width:32px;height:32px;border-radius:50%}.dashboard-stat-panel--green .dashboard-metric__icon{color:#059669;background:#ecfdf5}.dashboard-stat-panel--blue .dashboard-metric__icon{color:#3b82f6;background:#eff6ff}.dashboard-metric small,.dashboard-cumulative-card small{display:block;overflow:hidden;color:#9ca3af;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.dashboard-metric strong,.dashboard-cumulative-card strong{display:block;color:#374151;font-size:18px;line-height:1.3}.dashboard-metric em,.dashboard-cumulative-card em{color:#6b7280;font-size:11px;font-style:normal;font-weight:400}.dashboard-cumulative-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:8px}.dashboard-cumulative-card{display:flex;align-items:center;gap:7px;min-width:0;min-height:60px;padding:8px;border:1px solid #dbeafe;border-left-width:4px;border-radius:5px}.dashboard-cumulative-card__icon{flex-basis:28px;width:28px;height:28px}.dashboard-cumulative-card--blue{border-color:#dbeafe;border-left-color:#3b82f6}.dashboard-cumulative-card--blue .dashboard-cumulative-card__icon{color:#3b82f6;background:#eff6ff}.dashboard-cumulative-card--green{border-color:#d1fae5;border-left-color:#10b981}.dashboard-cumulative-card--green .dashboard-cumulative-card__icon{color:#10b981;background:#ecfdf5}.dashboard-cumulative-card--cyan{border-color:#cffafe;border-left-color:#06b6d4}.dashboard-cumulative-card--cyan .dashboard-cumulative-card__icon{color:#06b6d4;background:#ecfeff}.dashboard-cumulative-card--amber{border-color:#fef3c7;border-left-color:#f59e0b}.dashboard-cumulative-card--amber .dashboard-cumulative-card__icon{color:#f59e0b;background:#fffbeb}.dashboard-cumulative-card--indigo{border-color:#e0e7ff;border-left-color:#6366f1}.dashboard-cumulative-card--indigo .dashboard-cumulative-card__icon{color:#6366f1;background:#eef2ff}.dashboard-cumulative-card--teal{border-color:#ccfbf1;border-left-color:#14b8a6}.dashboard-cumulative-card--teal .dashboard-cumulative-card__icon{color:#14b8a6;background:#f0fdfa}.dashboard-cumulative-card--rose{border-color:#ffe4e6;border-left-color:#ef4444}.dashboard-cumulative-card--rose .dashboard-cumulative-card__icon{color:#ef4444;background:#fff1f2}.dashboard-cumulative-card strong{font-size:14px}.dashboard-cumulative-card i{display:block;overflow:hidden;color:#9ca3af;font-size:9px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.dashboard-distribution-panel{padding:14px 14px 24px;border-radius:12px}.dashboard-section-header{justify-content:space-between;gap:16px;margin-bottom:10px}.dashboard-section-header>div:first-child{min-width:0}.dashboard-section-header h2 svg{color:#3b82f6}.dashboard-section-header p{margin:4px 0 0 21px;color:#9ca3af;font-size:11px}.dashboard-badges{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px}.dashboard-map-mode-switch{display:inline-flex;align-items:center;min-height:22px;gap:5px;padding:0 7px;color:#64748b;font-size:11px;background:#fff;border:1px solid #dbeafe;border-radius:999px;cursor:pointer}.dashboard-map-mode-switch:hover{color:#2563eb;background:#f8fafc}.dashboard-map-mode-switch span{line-height:1;white-space:nowrap}.dashboard-map-mode-switch span.active{color:#2563eb;font-weight:700}.dashboard-map-mode-switch i{position:relative;display:inline-block;width:32px;height:16px;background:#bfdbfe;border-radius:999px;transition:background .16s ease}.dashboard-map-mode-switch i:after{position:absolute;top:2px;left:2px;width:12px;height:12px;content:"";background:#fff;border-radius:50%;box-shadow:0 1px 2px #0f172a33;transition:transform .16s ease}.dashboard-map-mode-switch[aria-checked=true] i{background:#2563eb}.dashboard-map-mode-switch[aria-checked=true] i:after{transform:translate(16px)}.dashboard-badge{min-height:22px;padding:0 9px;font-size:11px;border:1px solid;border-radius:999px}.dashboard-badge--blue{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.dashboard-badge--amber{color:#d97706;background:#fffbeb;border-color:#fde68a}.dashboard-map-frame{position:relative;display:flex;min-height:430px;overflow:hidden;background:#edf6ff;border:1px solid #dbeafe;border-radius:8px}.dashboard-map-frame:fullscreen{width:100vw;height:100vh;background:#edf6ff;border:0;border-radius:0}.dashboard-province-table{position:relative;z-index:3;display:flex;flex:0 0 170px;flex-direction:column;align-self:stretch;margin:10px;overflow:hidden;background:#fffffff5;border:1px solid rgba(191,219,254,.8);border-radius:6px;box-shadow:0 1px 2px #1e40af14}.dashboard-province-table__head,.dashboard-province-table__row{display:grid;grid-template-columns:1fr 44px;gap:8px;padding:7px 10px}.dashboard-province-table__head{color:#64748b;font-size:11px;font-weight:600;background:#f8fafc;border-bottom:1px solid #e5e7eb}.dashboard-province-table__head span:last-child,.dashboard-province-table__row strong{text-align:right}.dashboard-province-table__row{color:#475569;font-size:12px;border-bottom:1px solid #f1f5f9}.dashboard-province-table__row:hover{background:#eff6ff}.dashboard-province-table__row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-province-table__row strong{color:#374151;font-weight:600}.dashboard-echarts-map{position:absolute;top:0;right:0;bottom:0;left:170px;z-index:1}.dashboard-echarts-map--loading{display:grid;place-items:center;color:#64748b;font-size:12px;background-image:linear-gradient(to right,rgba(147,197,253,.25) 1px,transparent 1px),linear-gradient(to bottom,rgba(147,197,253,.25) 1px,transparent 1px);background-size:24px 24px}.dashboard-echarts-map--error{color:#b91c1c;background-color:#fff7ed}.dashboard-echarts-map--error span{padding:8px 12px;background:#ffffffeb;border:1px solid #fed7aa;border-radius:4px}.dashboard-map-actions{position:absolute;top:10px;right:10px;z-index:5;display:flex;flex-direction:column;gap:2px;padding:3px;background:#fffffff5;border:1px solid #e5e7eb;border-radius:5px;box-shadow:0 1px 2px #0f172a14}.dashboard-map-actions button{display:grid;place-items:center;width:28px;height:28px;padding:0;color:#64748b;font-size:16px;font-weight:700;background:transparent;border-radius:3px}.dashboard-map-actions button:hover{color:#2563eb;background:#eff6ff}.dashboard-map-actions i{height:1px;margin:1px 0;background:#e5e7eb}.dashboard-map-actions svg{width:14px;height:14px}.dashboard-density-legend,.dashboard-map-legend{position:absolute;z-index:5;padding:8px 10px;color:#64748b;font-size:11px;background:#fffffff0;border:1px solid rgba(226,232,240,.9);border-radius:5px;box-shadow:0 1px 2px #0f172a0f}.dashboard-density-legend{bottom:10px;left:12px}.dashboard-density-legend strong{display:block;margin-bottom:5px;color:#475569;font-weight:600}.dashboard-density-legend div{gap:6px}.dashboard-density-legend span{line-height:1;white-space:nowrap}.dashboard-density-legend i{display:block;width:72px;height:8px;background:linear-gradient(to right,#dbeafe,#93c5fd,#3b82f6,#1d4ed8);border-radius:999px}.dashboard-map-legend{right:10px;bottom:10px;display:grid;gap:6px;width:160px}.dashboard-map-legend strong{justify-content:space-between;gap:8px;padding-bottom:5px;color:#475569;border-bottom:1px solid #f1f5f9}.dashboard-map-legend strong small{color:#9ca3af;font-size:10px;font-weight:400}.dashboard-map-legend>span{display:flex;align-items:center;gap:7px;color:#64748b;font-size:11px}.dashboard-map-legend>span b{margin-left:auto;color:#374151;font-weight:600}.dashboard-map-legend i{display:inline-block;width:10px;height:10px;border-radius:2px}.tone-blue{background:#3b82f6}.tone-green{background:#10b981}.tone-amber{background:#fbbf24}.tone-pink{background:#f472b6}.tone-cyan{background:#22d3ee}@media(max-width:1280px){.workspace-search,.workspace-role{display:none}.dashboard-cumulative-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-width:1000px){.workspace-header__right{gap:3px}.workspace-scope{max-width:150px}.dashboard-filter-group--right{flex-wrap:wrap}.dashboard-cumulative-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.workspace-brand span,.workspace-scope,.workspace-user span:nth-child(2),.workspace-user svg,.workspace-icon-button--notice,.workspace-icon-button--language{display:none}.workspace-header__right{margin-left:auto}.workspace-sidebar{flex-basis:60px;width:60px}.workspace-sidebar .workspace-sidebar__text,.workspace-sidebar .workspace-menu__group-header .workspace-menu__chevron,.workspace-sidebar .workspace-sidebar__collapse span{display:none}.workspace-menu__group-header,.workspace-menu__item,.workspace-sidebar__collapse{justify-content:center;padding-right:8px;padding-left:8px}.workspace-menu__items{padding-left:0}.workspace-breadcrumb span,.workspace-breadcrumb__separator,.workspace-breadcrumb__icon--group{display:none}.workspace-breadcrumb{padding-left:5px}.dashboard-page-title,.dashboard-section-header,.dashboard-filter-bar,.dashboard-filter-group,.dashboard-filter-group--right{align-items:flex-start;flex-direction:column}.dashboard-segmented-control{width:100%;overflow-x:auto}.dashboard-metric-grid--four{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-metric:nth-child(3){padding-left:0;border-left:0}.dashboard-cumulative-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-map-frame{min-height:520px}.dashboard-province-table{flex-basis:130px}.dashboard-echarts-map{top:0;right:0;bottom:0;left:130px}.dashboard-map-legend{right:8px;bottom:8px;width:142px}}@media(max-width:520px){.workspace-header{padding:0 8px}.workspace-header__left{gap:3px}.workspace-header__right{gap:0}.workspace-icon-button{flex-basis:26px;width:26px}.workspace-role,.workspace-user{display:none}.workspace-content{overflow:hidden}.workspace-tabs-row{min-width:0}.dashboard-view,.workspace-placeholder{padding-right:8px;padding-left:8px}.dashboard-metric-grid--four,.dashboard-cumulative-grid{grid-template-columns:1fr}.dashboard-metric,.dashboard-metric:nth-child(3){padding:8px 0;border-top:1px solid #f1f5f9;border-left:0}.dashboard-metric:first-child{padding-top:0;border-top:0}.dashboard-map-frame{min-height:560px}.dashboard-province-table{position:absolute;top:8px;left:8px;right:8px;bottom:auto;height:126px;margin:0}.dashboard-echarts-map{top:126px;right:0;bottom:0;left:0}.dashboard-density-legend{bottom:8px;left:8px}.dashboard-section-header p{margin-left:0}}
