.command-overlay[data-v-adbae97b]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:start center;padding-top:min(20vh,160px)}.command-palette[data-v-adbae97b]{width:min(580px,92vw);max-height:min(480px,70vh);background:#fff;border:1px solid #e3ebf6;border-radius:16px;box-shadow:0 24px 80px #0003,0 4px 16px #00000014;overflow:hidden;display:flex;flex-direction:column}.app-shell.is-dark{background:#111827;border-color:#334155;box-shadow:0 24px 80px #00000080}.command-input-wrap[data-v-adbae97b]{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid #e3ebf6}.app-shell.is-dark{border-bottom-color:#273244}.command-search-icon[data-v-adbae97b]{flex:0 0 18px;color:#6b7280}.command-input[data-v-adbae97b]{flex:1;border:none;outline:none;background:transparent;font-size:16px;color:#1f2937;line-height:1.5}.command-input[data-v-adbae97b]::placeholder{color:#94a3b8}.command-esc[data-v-adbae97b]{flex:0 0 auto;padding:2px 8px;border:1px solid #d8e2ef;border-radius:6px;background:#f8fafc;color:#6b7280;font-size:11px;font-family:inherit;line-height:1.6}.app-shell.is-dark{background:#1f2937;border-color:#334155;color:#94a3b8}.command-results[data-v-adbae97b]{flex:1;overflow-y:auto;padding:8px}.command-group-title[data-v-adbae97b]{padding:6px 12px 4px;color:#6b7280;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.app-shell.is-dark{color:#94a3b8}.command-item[data-v-adbae97b]{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:none;border-radius:10px;background:transparent;cursor:pointer;text-align:left;transition:background .1s}.command-item.is-active[data-v-adbae97b]{background:#1677ff14}.app-shell.is-dark{background:#3b82f626}.command-item-icon[data-v-adbae97b]{width:28px;height:28px;flex:0 0 28px;border-radius:8px;background:#1677ff14;position:relative}.app-shell.is-dark{background:#ffffff14}.command-item-icon[data-v-adbae97b]:before{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;background:currentColor;color:#1677ff;mask:var(--nav-icon-url) center / contain no-repeat;-webkit-mask:var(--nav-icon-url) center / contain no-repeat}.app-shell.is-dark{color:#93c5fd}.command-item-text[data-v-adbae97b]{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.command-item-name[data-v-adbae97b]{color:#1f2937;font-size:14px;font-weight:600}.app-shell.is-dark{color:#e5e7eb}.command-item-group[data-v-adbae97b]{color:#94a3b8;font-size:12px}.command-item-shortcut kbd[data-v-adbae97b]{padding:2px 6px;border:1px solid #e3ebf6;border-radius:5px;background:#f8fafc;color:#94a3b8;font-size:11px;font-family:inherit}.app-shell.is-dark{background:#1f2937;border-color:#334155;color:#64748b}.command-empty[data-v-adbae97b]{padding:40px 20px;text-align:center;color:#94a3b8;font-size:14px}.command-footer[data-v-adbae97b]{display:flex;align-items:center;gap:16px;padding:8px 18px;border-top:1px solid #e3ebf6;color:#94a3b8;font-size:11px}.app-shell.is-dark{border-top-color:#273244;color:#64748b}.command-footer kbd[data-v-adbae97b]{padding:1px 5px;border:1px solid #d8e2ef;border-radius:4px;background:#f8fafc;font-size:10px;font-family:inherit;margin-right:3px}.app-shell.is-dark{background:#1f2937;border-color:#334155}.palette-fade-enter-active[data-v-adbae97b]{transition:opacity .14s ease}.palette-fade-enter-active .command-palette[data-v-adbae97b]{transition:transform .14s ease,opacity .14s ease}.palette-fade-leave-active[data-v-adbae97b]{transition:opacity .1s ease}.palette-fade-leave-active .command-palette[data-v-adbae97b]{transition:transform .1s ease,opacity .1s ease}.palette-fade-enter-from[data-v-adbae97b]{opacity:0}.palette-fade-enter-from .command-palette[data-v-adbae97b]{opacity:0;transform:translateY(-8px) scale(.98)}.palette-fade-leave-to[data-v-adbae97b]{opacity:0}.palette-fade-leave-to .command-palette[data-v-adbae97b]{opacity:0;transform:translateY(-4px) scale(.99)}:root{--color-bg: #edf4ff;--color-bg-strong: #dbeafe;--color-surface: #ffffff;--color-surface-soft: #f3f7fd;--color-border: #d8e2ef;--color-border-soft: #e3ebf6;--color-text: #1f2937;--color-muted: #6b7280;--color-primary: #1677ff;--color-primary-dark: #0f172a;--color-primary-soft: #e8f2ff;--color-danger: #c2412d;--color-warning-soft: #fff7e6;--shadow-panel: 0 12px 30px rgba(22, 53, 96, .08);--shadow-sidebar: 8px 0 28px rgba(22, 53, 96, .12);--radius-sm: 8px;--radius: 12px;--sidebar-width: 240px;--sidebar-collapsed-width: 76px;--topbar-height: 56px;--space-1: 6px;--space-2: 10px;--space-3: 14px;--space-4: 18px;--space-5: 24px;--font-display: 28px;--font-login-title: 24px;--font-page-title: 22px;--font-top-title: 20px;--font-section-title: 18px;--font-panel-title: 17px;--font-body: 15px;--font-control: 14px;--font-meta: 13px;--font-tag: 12px}*{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;font-size:var(--font-body);line-height:1.5;transition:background-color .18s ease,color .18s ease}a{color:inherit;text-decoration:none}button,input,textarea{font-family:inherit}.app-shell{min-height:100vh;display:block;background:radial-gradient(circle at 18% 0%,rgba(22,119,255,.14),transparent 28%),linear-gradient(180deg,#f4f8ff 0%,var(--color-bg) 240px,#f7faff 100%);color-scheme:light;overflow:hidden;transition:background .18s ease,color .18s ease}.app-shell.is-dark{--color-bg: #0f172a;--color-bg-strong: #111827;--color-surface: #111827;--color-surface-soft: #1f2937;--color-border: #334155;--color-border-soft: #273244;--color-text: #e5e7eb;--color-muted: #94a3b8;--color-primary-soft: rgba(22, 119, 255, .16);--shadow-panel: 0 14px 32px rgba(0, 0, 0, .24);color-scheme:dark}.sidebar{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;padding:18px 14px;background:#fff;color:var(--color-text);border-right:1px solid var(--color-border-soft);display:flex;flex-direction:column;box-shadow:6px 0 18px #16356014;z-index:10;transition:width .2s ease,padding .2s ease}.app-shell.is-collapsed .sidebar{width:var(--sidebar-collapsed-width);padding:18px 10px}.brand{min-height:64px;margin-bottom:18px;padding:10px 8px;border-radius:var(--radius);display:flex;align-items:center;gap:12px;background:transparent}.app-shell.is-collapsed .brand{justify-content:center;padding:10px 0}.brand-mark{width:38px;height:38px;flex:0 0 38px;border-radius:13px;background:#efffff;color:#020617;display:grid;place-items:center;font-size:var(--font-top-title);font-weight:900;box-shadow:0 10px 24px #0e74901f;overflow:hidden}.brand-mark img{width:100%;height:100%;object-fit:cover;display:block}.brand-title{color:#071f4d;font-size:var(--font-section-title);font-weight:800;line-height:1.25}.brand-subtitle{margin-top:4px;color:var(--color-muted);font-size:var(--font-meta);line-height:1.35}.app-shell.is-collapsed .brand-text,.app-shell.is-collapsed .nav-group-title,.app-shell.is-collapsed .nav-label{display:none}.nav-groups{display:flex;flex-direction:column;gap:12px;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:2px 4px 10px 0;contain:layout paint}.nav-groups::-webkit-scrollbar{width:6px}.nav-groups::-webkit-scrollbar-thumb{border-radius:999px;background:#94a3b852}.nav-group-title{margin:4px 10px 5px;color:var(--color-muted);font-size:var(--font-meta);font-weight:600;line-height:18px}.sidebar a{min-height:38px;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-sm);color:var(--color-muted);font-size:var(--font-body);font-weight:500;line-height:1.35;transition:color .12s ease}.app-shell.is-collapsed .sidebar a{justify-content:center;padding:10px 0}.sidebar a:hover{background:var(--color-primary-soft);color:var(--color-primary)}.sidebar a.router-link-exact-active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:650;box-shadow:none}.nav-label{line-height:20px}.nav-icon{width:22px;height:22px;flex:0 0 22px;border-radius:7px;background:#1677ff14;color:currentColor;opacity:.92;pointer-events:none;position:relative;display:inline-flex;align-items:center;justify-content:center}.nav-icon img{width:14px;height:14px;display:block;filter:brightness(0) saturate(100%) invert(39%) sepia(80%) saturate(2000%) hue-rotate(200deg) brightness(95%) contrast(103%)}.sidebar a.router-link-exact-active .nav-icon{background:#1677ff24;opacity:1}.sidebar a.router-link-exact-active .nav-icon img{filter:brightness(0) saturate(100%) invert(39%) sepia(80%) saturate(2500%) hue-rotate(200deg) brightness(100%) contrast(110%)}.workspace{min-width:0;min-height:100vh;margin-left:var(--sidebar-width);display:flex;flex-direction:column;overflow:hidden;background:var(--color-bg);transition:margin-left .2s ease,background .18s ease}.app-shell.is-collapsed .workspace{margin-left:var(--sidebar-collapsed-width)}.topbar{position:sticky;top:0;min-height:var(--topbar-height);padding:12px 28px;background:#f4f8ffe6;border-bottom:1px solid var(--color-border-soft);display:flex;align-items:center;justify-content:space-between;gap:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:8;transition:background .18s ease,border-color .18s ease,color .18s ease}.topbar-actions{display:flex;align-items:center;gap:12px}.quick-nav{display:flex;align-items:center;gap:6px;padding:4px;border:1px solid var(--color-border-soft);border-radius:var(--radius);background:var(--color-surface-soft)}.quick-nav a{height:30px;padding:0 12px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;color:var(--color-muted);font-size:var(--font-control);font-weight:700}.quick-nav a:hover,.quick-nav a.router-link-exact-active{background:var(--color-surface);color:var(--color-primary)}.icon-button{width:36px;height:36px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);display:inline-grid;place-items:center;cursor:pointer;font-size:var(--font-section-title)}.icon-button:hover{border-color:var(--color-primary);color:var(--color-primary)}.theme-button{height:36px;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;font-size:var(--font-control);font-weight:700;white-space:nowrap}.theme-button .el-icon{font-size:16px}.theme-button:hover{border-color:var(--color-primary);color:var(--color-primary)}.admin-card{min-width:170px;display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--color-border-soft);border-radius:var(--radius);background:var(--color-surface)}.account-trigger{max-width:230px;min-height:52px;cursor:pointer;text-align:left}.account-trigger:hover{border-color:var(--color-primary)}.admin-avatar{width:34px;height:34px;flex:0 0 34px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--color-primary-soft);color:var(--color-primary);font-weight:900}.admin-avatar img,.profile-avatar-preview img{width:100%;height:100%;display:block;object-fit:cover}.admin-summary{min-width:0;flex:1}.admin-name{color:var(--color-text);font-size:var(--font-control);font-weight:800;line-height:1.25}.admin-role{margin-top:3px;color:var(--color-muted);font-size:var(--font-meta);line-height:1.25}.account-arrow{flex:0 0 auto;color:var(--color-muted);font-size:14px}.account-dropdown-menu{min-width:224px;padding:10px 0;border-radius:12px}.account-menu-head{padding:8px 16px 12px}.account-menu-name{color:var(--color-text);font-size:var(--font-body);font-weight:800;line-height:1.35}.account-menu-sub{margin-top:2px;color:var(--color-muted);font-size:var(--font-meta);line-height:1.35}.account-menu-role{display:inline-flex;margin-top:10px;padding:3px 8px;border-radius:999px;background:var(--color-primary-soft);color:var(--color-primary);font-size:var(--font-tag);font-weight:700}.account-dropdown-menu .el-dropdown-menu__item{gap:8px;padding:10px 16px;font-size:var(--font-control)}.account-dropdown-menu .danger-item,.account-dropdown-menu .danger-item .el-icon{color:#ef4444}.account-dropdown-menu .danger-item:hover{background:#ef444414;color:#dc2626}.avatar-editor{display:flex;align-items:center;gap:16px}.profile-avatar-preview{width:72px;height:72px;flex:0 0 72px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--color-primary-soft);color:var(--color-primary);font-size:24px;font-weight:900}.avatar-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.logout-button{height:36px;padding:0 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);display:inline-flex;align-items:center;gap:6px;cursor:pointer}.logout-button:hover{border-color:var(--color-primary);color:var(--color-primary)}.main{min-width:0;flex:1;margin-left:0;padding:22px 28px 34px;background:radial-gradient(circle at 18% 0%,rgba(22,119,255,.12),transparent 28%),linear-gradient(180deg,#f4f8ff 0%,var(--color-bg) 240px,#f7faff 100%);border-top-left-radius:18px;overflow:auto;transition:background .18s ease,border-radius .18s ease}.page-fade-enter-active,.page-fade-leave-active{transition:opacity .16s ease,transform .16s ease}.page-fade-enter-from{opacity:0;transform:translateY(6px)}.page-fade-leave-to{opacity:0;transform:translateY(-3px)}.main>section{min-width:0}.login-page{position:relative;min-height:100vh;display:grid;place-items:center;padding:32px;overflow:hidden;background:radial-gradient(circle at 18% 10%,rgba(22,119,255,.22),transparent 30%),radial-gradient(circle at 86% 74%,rgba(56,189,248,.16),transparent 28%),linear-gradient(180deg,#f4f8ff,#edf4ff 54%,#f7faff)}.login-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(rgba(22,119,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(22,119,255,.06) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.7),transparent 82%);mask-image:linear-gradient(to bottom,rgba(0,0,0,.7),transparent 82%)}.login-panel{position:relative;z-index:1;width:min(440px,100%);padding:34px;border-radius:var(--radius);border:1px solid rgba(216,226,239,.92);background:#ffffffe6;box-shadow:0 24px 64px #16356024;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.login-brand{display:flex;align-items:center;gap:16px;margin-bottom:28px}.login-logo{width:58px;height:58px;border-radius:var(--radius);background:linear-gradient(135deg,#1677ff,#0958d9);color:#fff;display:grid;place-items:center;font-size:var(--font-display);font-weight:900;box-shadow:0 14px 30px #1677ff52;overflow:hidden}.login-logo img{width:100%;height:100%;object-fit:contain;display:block}.login-logo.has-image{background:transparent;box-shadow:none}.login-brand h1{margin:0;color:var(--color-text);font-size:var(--font-login-title)}.login-brand p{margin:6px 0 0;color:var(--color-muted);font-size:var(--font-meta)}.login-form{display:flex;flex-direction:column;gap:2px}.login-form .el-input__wrapper{min-height:42px;background:#ffffffeb}.captcha-row{display:grid;grid-template-columns:minmax(0,1fr) 128px;gap:10px;width:100%}.captcha-question{min-height:42px;border:1px solid rgba(22,119,255,.22);border-radius:12px;background:#1677ff14;color:var(--color-primary);font-size:var(--font-body);font-weight:700;cursor:pointer}.captcha-question:disabled{cursor:wait;opacity:.72}.login-submit{width:100%;min-height:42px;margin-top:4px}.login-tip{margin-top:16px;color:var(--color-muted);font-size:var(--font-tag);text-align:center}.page-title{margin:0 0 16px;color:var(--color-text);font-size:var(--font-page-title);font-weight:800;line-height:1.35}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.page-header .page-title{margin:0}.page-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px}.page-subtitle{margin-top:6px;color:var(--color-muted);line-height:1.6}.panel,.section-panel,.page-section{min-width:0;background:#ffffffe6;border:1px solid var(--color-border-soft);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-panel);overflow-x:auto;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease}.section-panel,.page-section{margin-top:16px}.section-panel h2,.page-section h2{margin:0 0 14px;color:var(--color-text);font-size:var(--font-panel-title);font-weight:800}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px}.metric{display:flex;flex-direction:column;gap:10px;background:#ffffffe6;border:1px solid var(--color-border-soft);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-panel);transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease}.metric strong{color:var(--color-primary);font-size:var(--font-display);line-height:1.1}.dashboard-hero{margin-bottom:16px;padding:22px 24px;border:1px solid var(--color-border-soft);border-radius:var(--radius);background:linear-gradient(135deg,#1677ff1a,#ffffffeb 48%),var(--color-surface);box-shadow:var(--shadow-panel);display:flex;align-items:center;justify-content:space-between;gap:18px;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease}.dashboard-hero>div>p,.dashboard-hero>div>h1,.dashboard-hero>div>span{margin:0}.dashboard-hero>div>p{color:var(--color-primary);font-size:var(--font-meta);font-weight:800}.dashboard-hero>div>h1{margin-top:6px;color:var(--color-text);font-size:var(--font-display);font-weight:900;line-height:1.25}.dashboard-hero>div>span{display:block;margin-top:8px;color:var(--color-muted)}.dashboard-metrics{align-items:stretch}.metric-card{position:relative;min-height:138px}.metric-icon{width:34px;height:34px;border-radius:var(--radius-sm);background:var(--color-primary-soft);color:var(--color-primary);display:grid;place-items:center;font-weight:900}.dashboard-panel{margin-top:0}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.panel-heading h2,.panel-heading p{margin:0}.panel-heading p{margin-top:6px;color:var(--color-muted);font-size:var(--font-meta)}.muted{color:var(--color-muted)}.toolbar,.filter-row,.action-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.toolbar,.filter-row{margin-bottom:16px}.filter-row{padding:14px;border:1px solid var(--color-border-soft);border-radius:var(--radius);background:var(--color-surface-soft)}.el-button{border-radius:var(--radius-sm);font-size:var(--font-control);font-weight:600;display:inline-flex;align-items:center;justify-content:center}.el-button>span{display:inline-flex;align-items:center;justify-content:center;min-height:100%;line-height:1.2}.dashboard-hero .el-button{min-width:88px;height:34px;padding:0 16px}.el-button--primary{--el-button-bg-color: var(--color-primary);--el-button-border-color: var(--color-primary);--el-button-text-color: #ffffff;--el-button-hover-bg-color: #4096ff;--el-button-hover-border-color: #4096ff;--el-button-hover-text-color: #ffffff;--el-button-active-bg-color: #0958d9;--el-button-active-border-color: #0958d9;--el-button-active-text-color: #ffffff}.app-shell.is-dark .el-button--primary{--el-button-text-color: #ffffff;--el-button-hover-text-color: #ffffff;--el-button-active-text-color: #ffffff}.el-button.el-button--primary:not(.is-link):not(.is-plain),.el-button.el-button--primary:not(.is-link):not(.is-plain)>span,.el-button.el-button--primary:not(.is-link):not(.is-plain) .el-icon,.app-shell.is-dark .el-button.el-button--primary:not(.is-link):not(.is-plain),.app-shell.is-dark .el-button.el-button--primary:not(.is-link):not(.is-plain)>span,.app-shell.is-dark .el-button.el-button--primary:not(.is-link):not(.is-plain) .el-icon{color:#fff}.el-button.el-button--primary:not(.is-link):not(.is-plain):hover,.el-button.el-button--primary:not(.is-link):not(.is-plain):hover>span,.el-button.el-button--primary:not(.is-link):not(.is-plain):focus,.el-button.el-button--primary:not(.is-link):not(.is-plain):focus>span,.el-button.el-button--primary:not(.is-link):not(.is-plain).is-loading,.el-button.el-button--primary:not(.is-link):not(.is-plain).is-loading>span,.app-shell.is-dark .el-button.el-button--primary:not(.is-link):not(.is-plain):hover,.app-shell.is-dark .el-button.el-button--primary:not(.is-link):not(.is-plain):hover>span,.app-shell.is-dark .el-button.el-button--primary:not(.is-link):not(.is-plain):focus,.app-shell.is-dark .el-button.el-button--primary:not(.is-link):not(.is-plain):focus>span,.app-shell.is-dark .el-button.el-button--primary:not(.is-link):not(.is-plain).is-loading,.app-shell.is-dark .el-button.el-button--primary:not(.is-link):not(.is-plain).is-loading>span{color:#fff}.el-input__wrapper,.el-select__wrapper,.el-textarea__inner{border-radius:var(--radius-sm);box-shadow:0 0 0 1px var(--color-border) inset}.el-input,.el-select,.el-textarea,.el-input__inner,.el-select__placeholder,.el-textarea__inner{font-size:var(--font-control)}.el-input__wrapper:hover,.el-select__wrapper:hover,.el-textarea__inner:hover{box-shadow:0 0 0 1px #cbd5e1 inset}.app-shell.is-dark .el-input__wrapper,.app-shell.is-dark .el-select__wrapper,.app-shell.is-dark .el-textarea__inner,html.admin-dark .el-dialog .el-input__wrapper,html.admin-dark .el-dialog .el-select__wrapper,html.admin-dark .el-dialog .el-textarea__inner{background:#111827;box-shadow:0 0 0 1px #334155 inset}.app-shell.is-dark .el-input__wrapper:hover,.app-shell.is-dark .el-select__wrapper:hover,.app-shell.is-dark .el-textarea__inner:hover,.app-shell.is-dark .el-input__wrapper.is-focus,.app-shell.is-dark .el-select__wrapper.is-focused,html.admin-dark .el-dialog .el-input__wrapper:hover,html.admin-dark .el-dialog .el-select__wrapper:hover,html.admin-dark .el-dialog .el-textarea__inner:hover,html.admin-dark .el-dialog .el-input__wrapper.is-focus,html.admin-dark .el-dialog .el-select__wrapper.is-focused{box-shadow:0 0 0 1px #3b82f6 inset}.app-shell.is-dark .el-input__inner,.app-shell.is-dark .el-select__placeholder,.app-shell.is-dark .el-range-input,.app-shell.is-dark .el-textarea__inner,html.admin-dark .el-dialog .el-input__inner,html.admin-dark .el-dialog .el-select__placeholder,html.admin-dark .el-dialog .el-range-input,html.admin-dark .el-dialog .el-textarea__inner{color:#dbeafe}.app-shell.is-dark .el-input__inner::placeholder,.app-shell.is-dark .el-range-input::placeholder,.app-shell.is-dark .el-textarea__inner::placeholder,html.admin-dark .el-dialog .el-input__inner::placeholder,html.admin-dark .el-dialog .el-range-input::placeholder,html.admin-dark .el-dialog .el-textarea__inner::placeholder{color:#94a3b8}.app-shell.is-dark .el-range-separator,.app-shell.is-dark .el-input__prefix,.app-shell.is-dark .el-input__suffix,.app-shell.is-dark .el-select__suffix,html.admin-dark .el-dialog .el-range-separator,html.admin-dark .el-dialog .el-input__prefix,html.admin-dark .el-dialog .el-input__suffix,html.admin-dark .el-dialog .el-select__suffix{color:#bfdbfe}.el-table{--el-table-header-bg-color: #f8fafc;--el-table-header-text-color: #374151;--el-table-row-hover-bg-color: #eef6ff;width:100%;border-radius:var(--radius);font-size:var(--font-body);overflow:hidden;transition:background-color .18s ease,color .18s ease}.app-shell.is-dark .el-table{--el-table-bg-color: var(--color-surface);--el-table-tr-bg-color: var(--color-surface);--el-table-expanded-cell-bg-color: var(--color-surface);--el-table-header-bg-color: #1f2937;--el-table-header-text-color: #e5e7eb;--el-table-row-hover-bg-color: #1e293b;--el-table-border-color: #273244;--el-table-text-color: #dbeafe;--el-text-color-regular: #dbeafe;--el-text-color-secondary: #bfdbfe}.app-shell.is-dark .el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:#162033}.app-shell.is-dark .el-table__body tr,.app-shell.is-dark .el-table td.el-table__cell,.app-shell.is-dark .el-table td.el-table__cell .cell{color:#dbeafe}.app-shell.is-dark .el-table th.el-table__cell,.app-shell.is-dark .el-table th.el-table__cell .cell{color:#fff}.app-shell.is-dark .el-table th.el-table__cell,.app-shell.is-dark .el-table td.el-table__cell{background-clip:padding-box}.app-shell.is-dark .el-table .el-table__fixed-right,.app-shell.is-dark .el-table .el-table__fixed,.app-shell.is-dark .el-table .el-table-fixed-column--right,.app-shell.is-dark .el-table .el-table-fixed-column--left{background:var(--color-surface)}.app-shell.is-dark .el-table th.el-table-fixed-column--right,.app-shell.is-dark .el-table th.el-table-fixed-column--left{background:#1f2937}.app-shell.is-dark .el-table td.el-table-fixed-column--right,.app-shell.is-dark .el-table td.el-table-fixed-column--left{background:var(--color-surface)}.app-shell.is-dark .el-table--striped .el-table__body tr.el-table__row--striped td.el-table-fixed-column--right,.app-shell.is-dark .el-table--striped .el-table__body tr.el-table__row--striped td.el-table-fixed-column--left{background:#162033}.app-shell.is-dark .el-table__body tr:hover>td.el-table__cell,.app-shell.is-dark .el-table__body tr:hover>td.el-table-fixed-column--right,.app-shell.is-dark .el-table__body tr:hover>td.el-table-fixed-column--left,.app-shell.is-dark .el-table__body tr.hover-row>td.el-table__cell,.app-shell.is-dark .el-table__body tr.hover-row>td.el-table-fixed-column--right,.app-shell.is-dark .el-table__body tr.hover-row>td.el-table-fixed-column--left{background:#1e293b}.app-shell.is-dark .el-table .el-table__cell{border-color:#273244}.app-shell.is-dark .el-table .el-table__cell.is-hidden>*{visibility:hidden}.app-shell.is-dark .el-table .el-button.is-link{color:#93c5fd}.app-shell.is-dark .el-table .el-button.is-link.el-button--danger{color:#fca5a5}.app-shell.is-dark .el-table .el-button:not(.is-link):not(.el-button--primary):not(.el-button--success):not(.el-button--warning):not(.el-button--danger){--el-button-bg-color: #1e293b;--el-button-border-color: #334155;--el-button-text-color: #dbeafe;--el-button-hover-bg-color: #263449;--el-button-hover-border-color: #3b82f6;--el-button-hover-text-color: #ffffff}.el-table th.el-table__cell{height:44px;font-size:var(--font-body);font-weight:800}.el-table td.el-table__cell{padding:10px 0}.el-table .cell{line-height:1.45}.el-tabs__header{margin-bottom:16px}.el-tabs__nav-wrap:after{height:1px;background:var(--color-border-soft)}.el-dialog,.el-message-box,.el-card{border-radius:var(--radius)}.el-dialog .el-form-item{margin-bottom:18px}.el-dialog .el-form-item__label{color:#475569;font-size:var(--font-control);font-weight:600}.el-dialog__header{margin-right:0}.el-dialog__title{color:var(--color-text);font-size:var(--font-section-title);font-weight:800}html.admin-dark .el-dialog,html.admin-dark .el-drawer,html.admin-dark .el-message-box{background:#111827;border:1px solid #273244;box-shadow:0 24px 70px #00000073}html.admin-dark .el-dialog__title,html.admin-dark .el-drawer__title,html.admin-dark .el-message-box__title,html.admin-dark .el-form-item__label{color:#e5e7eb}html.admin-dark .el-dialog__body,html.admin-dark .el-drawer__body,html.admin-dark .el-message-box__content{color:#dbeafe}html.admin-dark .el-dialog__header,html.admin-dark .el-drawer__header,html.admin-dark .el-dialog__footer{border-color:#273244}html.admin-dark .el-dialog__headerbtn .el-dialog__close,html.admin-dark .el-drawer__close-btn{color:#bfdbfe}html.admin-dark .el-dialog__headerbtn:hover .el-dialog__close,html.admin-dark .el-drawer__close-btn:hover{color:#fff}.app-shell.is-dark .admin-card,.app-shell.is-dark .logout-button,.app-shell.is-dark .icon-button,.app-shell.is-dark .theme-button,.app-shell.is-dark .quick-nav,.app-shell.is-dark .panel,.app-shell.is-dark .section-panel,.app-shell.is-dark .page-section,.app-shell.is-dark .metric,.app-shell.is-dark .dashboard-hero,.app-shell.is-dark .summary-card{background:var(--color-surface);border-color:var(--color-border-soft)}html.admin-dark .account-dropdown-menu{background:#111827;border-color:#334155}html.admin-dark .account-menu-name{color:#f8fafc}html.admin-dark .account-menu-sub{color:#94a3b8}html.admin-dark .account-dropdown-menu .el-dropdown-menu__item{color:#dbeafe}html.admin-dark .account-dropdown-menu .el-dropdown-menu__item:not(.is-disabled):focus,html.admin-dark .account-dropdown-menu .el-dropdown-menu__item:not(.is-disabled):hover{background:#1e293b;color:#fff}html.admin-dark .account-dropdown-menu .danger-item,html.admin-dark .account-dropdown-menu .danger-item .el-icon{color:#f87171}.app-shell.is-dark .topbar{background:#111827eb}.app-shell.is-dark .workspace{background:#0f172a}.app-shell.is-dark .main{background:radial-gradient(circle at 18% 0%,rgba(22,119,255,.12),transparent 28%),linear-gradient(180deg,#111827,#0f172a 260px,#0f172a)}.app-shell.is-dark .sidebar{background:var(--color-primary-dark);color:#fff;border-right-color:#273244}.app-shell.is-dark .brand-mark{background:#0b1728;color:#020617;box-shadow:0 10px 22px #0003}.app-shell.is-dark .brand{background:transparent;box-shadow:none}.app-shell.is-dark .brand-title{color:#fff}.app-shell.is-dark .brand-subtitle{color:#ffffffc2}.app-shell.is-dark .nav-groups::-webkit-scrollbar-thumb{background:#ffffff29}.app-shell.is-dark .nav-group-title{color:#ffffff6b}.app-shell.is-dark .sidebar a{color:#ffffffc7}.app-shell.is-dark .sidebar a:hover{background:#ffffff14;color:#fff}.app-shell.is-dark .sidebar a.router-link-exact-active{background:#fff;color:var(--color-primary-dark);box-shadow:0 8px 18px #0000001f}.app-shell.is-dark .nav-icon{background:#ffffff1a}.app-shell.is-dark .nav-icon img{filter:brightness(0) invert(100%)}.app-shell.is-dark .sidebar a.router-link-exact-active .nav-icon{background:#1677ff24;color:var(--color-primary)}.app-shell.is-dark .sidebar a.router-link-exact-active .nav-icon img{filter:brightness(0) saturate(100%) invert(55%) sepia(80%) saturate(2000%) hue-rotate(200deg) brightness(100%) contrast(103%)}.app-shell.is-dark .page-title,.app-shell.is-dark .panel-heading h2,.app-shell.is-dark .section-panel h2,.app-shell.is-dark .page-section h2,.app-shell.is-dark .el-card__header,.app-shell.is-dark h1,.app-shell.is-dark h2,.app-shell.is-dark h3,.app-shell.is-dark h4{color:#f8fafc}.app-shell.is-dark .page-subtitle,.app-shell.is-dark .muted,.app-shell.is-dark .toolbar-tip,.app-shell.is-dark .empty,.app-shell.is-dark .hint,.app-shell.is-dark .desc,.app-shell.is-dark .sub,.app-shell.is-dark small{color:#a8bdd7}.app-shell.is-dark .filter-row,.app-shell.is-dark .toolbar,.app-shell.is-dark .action-row{color:#dbeafe}.app-shell.is-dark .el-tabs__header{border-radius:var(--radius);background:#0f172a}.app-shell.is-dark .el-tabs__nav-wrap:after{background:#334155}.app-shell.is-dark .el-tabs__item{color:#8fa7c4;font-weight:700}.app-shell.is-dark .el-tabs__item:hover{color:#dbeafe}.app-shell.is-dark .el-tabs__item.is-active{color:#69a7ff}.app-shell.is-dark .el-tabs__active-bar{background-color:#4096ff}.app-shell.is-dark .el-card,.app-shell.is-dark .el-card__body,.app-shell.is-dark .el-descriptions,.app-shell.is-dark .el-descriptions__body,.app-shell.is-dark .el-descriptions__label.el-descriptions__cell,.app-shell.is-dark .el-descriptions__content.el-descriptions__cell{background:var(--color-surface);color:#dbeafe;border-color:#273244}.app-shell.is-dark .el-tag:not(.el-tag--primary):not(.el-tag--success):not(.el-tag--warning):not(.el-tag--danger):not(.el-tag--info){background:#1e293b;border-color:#334155;color:#dbeafe}.app-shell.is-dark .el-pagination{color:#dbeafe}.app-shell.is-dark .el-pagination button,.app-shell.is-dark .el-pagination .el-pager li{background:#111827;color:#dbeafe;border-color:#334155}.app-shell.is-dark .el-pagination button:disabled{background:#0f172a;color:#64748b}.app-shell.is-dark .el-pagination .el-pager li.is-active{background:var(--color-primary);color:#fff}.app-shell.is-dark .el-empty__description,.app-shell.is-dark .el-form-item__label,.app-shell.is-dark .el-checkbox,.app-shell.is-dark .el-radio,.app-shell.is-dark .el-switch__label{color:#dbeafe}.app-shell.is-dark .el-select-dropdown,.app-shell.is-dark .el-popper,html.admin-dark .el-select-dropdown,html.admin-dark .el-popper{background:#111827;border-color:#334155;color:#dbeafe}.app-shell.is-dark .el-select-dropdown__item,html.admin-dark .el-select-dropdown__item{color:#dbeafe}.app-shell.is-dark .el-select-dropdown__item.is-hovering,.app-shell.is-dark .el-select-dropdown__item:hover,html.admin-dark .el-select-dropdown__item.is-hovering,html.admin-dark .el-select-dropdown__item:hover{background:#1e293b}.app-shell.is-dark .el-select-dropdown__item.is-selected,html.admin-dark .el-select-dropdown__item.is-selected{color:#69a7ff}.app-shell.is-dark .el-date-editor,.app-shell.is-dark .el-date-picker,.app-shell.is-dark .el-picker-panel,html.admin-dark .el-date-picker,html.admin-dark .el-picker-panel{background:#111827;border-color:#334155;color:#dbeafe}.app-shell.is-dark .el-picker-panel__body,.app-shell.is-dark .el-picker-panel__footer,html.admin-dark .el-picker-panel__body,html.admin-dark .el-picker-panel__footer{background:#111827;border-color:#273244}.app-shell.is-dark .el-date-table th,.app-shell.is-dark .el-date-table td,.app-shell.is-dark .el-picker-panel__icon-btn,.app-shell.is-dark .el-date-picker__header-label,html.admin-dark .el-date-table th,html.admin-dark .el-date-table td,html.admin-dark .el-picker-panel__icon-btn,html.admin-dark .el-date-picker__header-label{color:#dbeafe}.app-shell.is-dark .el-date-table td.prev-month,.app-shell.is-dark .el-date-table td.next-month,html.admin-dark .el-date-table td.prev-month,html.admin-dark .el-date-table td.next-month{color:#64748b}.app-shell.is-dark .summary-card,.app-shell.is-dark .stat-card,.app-shell.is-dark .info-card,.app-shell.is-dark .plan-card,.app-shell.is-dark .export-card{background:var(--color-surface);border-color:#273244;color:#dbeafe}.app-shell.is-dark .summary-card *,.app-shell.is-dark .stat-card *,.app-shell.is-dark .info-card *,.app-shell.is-dark .plan-card *,.app-shell.is-dark .export-card *{border-color:#273244}.el-dialog__header{padding-bottom:12px;border-bottom:1px solid var(--color-border-soft)}.el-dialog__footer{padding-top:12px;border-top:1px solid var(--color-border-soft)}.overview-card,.summary-card,.metric,.dashboard-hero{transition:transform .22s cubic-bezier(.2,.6,.2,1),box-shadow .22s ease,background .18s ease,border-color .22s ease,color .18s ease}.overview-card:hover,.summary-card:hover,.metric:hover{transform:translateY(-3px);box-shadow:0 16px 36px #1635601f,0 2px 8px #1635600f;border-color:var(--color-primary)}.app-shell.is-dark .overview-card:hover,.app-shell.is-dark .summary-card:hover,.app-shell.is-dark .metric:hover{box-shadow:0 16px 36px #00000052,0 2px 8px #00000029;border-color:#3b82f6}.panel,.section-panel,.page-section{transition:box-shadow .22s ease,background .18s ease,border-color .22s ease,color .18s ease}.panel:hover,.section-panel:hover,.page-section:hover{box-shadow:0 18px 40px #1635601a,0 4px 12px #1635600a}.app-shell.is-dark .panel:hover,.app-shell.is-dark .section-panel:hover,.app-shell.is-dark .page-section:hover{box-shadow:0 18px 40px #00000047,0 4px 12px #0000001f}.el-tag{border-radius:6px;font-weight:600;letter-spacing:.02em}.el-tag--warning.is-light:has(+.el-tag--warning.is-light),.el-tag.el-tag--warning.is-light{--el-tag-bg-color: #fffbeb;--el-tag-border-color: #fde68a;--el-tag-text-color: #b45309}.el-tag.el-tag--primary.is-light{--el-tag-bg-color: #eff6ff;--el-tag-border-color: #bfdbfe;--el-tag-text-color: #1d4ed8}.el-tag.el-tag--success.is-light{--el-tag-bg-color: #f0fdf4;--el-tag-border-color: #bbf7d0;--el-tag-text-color: #15803d}.el-tag.el-tag--danger.is-light{--el-tag-bg-color: #fef2f2;--el-tag-border-color: #fecaca;--el-tag-text-color: #dc2626}.el-tag.el-tag--info.is-light{--el-tag-bg-color: #f8fafc;--el-tag-border-color: #e2e8f0;--el-tag-text-color: #64748b}.app-shell.is-dark .el-tag.el-tag--warning.is-light{--el-tag-bg-color: rgba(180, 83, 9, .15);--el-tag-border-color: rgba(253, 230, 138, .2);--el-tag-text-color: #fbbf24}.app-shell.is-dark .el-tag.el-tag--primary.is-light{--el-tag-bg-color: rgba(29, 78, 216, .15);--el-tag-border-color: rgba(191, 219, 254, .2);--el-tag-text-color: #93c5fd}.app-shell.is-dark .el-tag.el-tag--success.is-light{--el-tag-bg-color: rgba(21, 128, 61, .15);--el-tag-border-color: rgba(187, 247, 208, .2);--el-tag-text-color: #86efac}.app-shell.is-dark .el-tag.el-tag--danger.is-light{--el-tag-bg-color: rgba(220, 38, 38, .12);--el-tag-border-color: rgba(254, 202, 202, .2);--el-tag-text-color: #fca5a5}.app-shell.is-dark .el-tag.el-tag--info.is-light{--el-tag-bg-color: rgba(100, 116, 139, .12);--el-tag-border-color: rgba(226, 232, 240, .15);--el-tag-text-color: #94a3b8}.status-dot{display:inline-flex;align-items:center;gap:6px;font-size:13px}.status-dot:before{content:"";width:7px;height:7px;border-radius:50%;flex:0 0 7px;background:currentColor;opacity:.85}.status-dot.is-success{color:#16a34a}.status-dot.is-warning{color:#eab308}.status-dot.is-danger{color:#dc2626}.status-dot.is-info{color:var(--color-primary)}.status-dot.is-muted{color:var(--color-muted)}.trend-up{color:#16a34a;font-weight:700}.trend-down{color:#dc2626;font-weight:700}.trend-flat{color:var(--color-muted);font-weight:600}.trend-up:after{content:" ↑"}.trend-down:after{content:" ↓"}.trend-flat:after{content:" –"}@keyframes skeleton-shimmer{0%{background-position:-200px 0}to{background-position:200px 0}}.skeleton{display:block;height:16px;border-radius:6px;background:linear-gradient(90deg,var(--color-surface-soft) 0%,var(--color-border-soft) 50%,var(--color-surface-soft) 100%);background-size:200px 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}.skeleton-sm{height:12px;width:60%}.skeleton-lg{height:28px;width:40%}.skeleton-full{height:100%;width:100%}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;text-align:center;color:var(--color-muted)}.empty-state-icon{width:72px;height:72px;border-radius:50%;background:var(--color-surface-soft);display:grid;place-items:center;font-size:28px;color:var(--color-muted);margin-bottom:8px}.empty-state-title{color:var(--color-text);font-size:16px;font-weight:700}.empty-state-desc{font-size:14px;max-width:320px;line-height:1.55}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--color-surface-soft);color:var(--color-muted);border:1px solid var(--color-border-soft)}.status-pill.is-success{background:#16a34a1a;color:#16a34a;border-color:#16a34a33}.status-pill.is-warning{background:#eab3081a;color:#a16207;border-color:#eab30833}.status-pill.is-danger{background:#dc262614;color:#dc2626;border-color:#dc262629}.status-pill.is-info{background:var(--color-primary-soft);color:var(--color-primary);border-color:#1677ff33}.action-row-cell{display:flex;align-items:center;flex-wrap:nowrap;gap:6px}.action-row-cell .el-button{min-width:0;padding:4px 10px;font-size:12px}.page-title-bar{display:flex;align-items:center;gap:12px}.page-title-bar:before{content:"";width:4px;height:28px;border-radius:4px;background:linear-gradient(180deg,var(--color-primary),#49be8d);flex:0 0 4px}.value-change{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:2px 6px;border-radius:6px}.value-change.positive{background:#16a34a1a;color:#16a34a}.value-change.negative{background:#dc262614;color:#dc2626}@media (max-width: 1100px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{padding:12px 20px}.main{padding:20px}}.search-trigger{height:36px;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-muted);display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:var(--font-control);font-weight:600;white-space:nowrap;transition:border-color .15s,color .15s,box-shadow .15s}.search-trigger:hover{border-color:var(--color-primary);color:var(--color-primary);box-shadow:0 0 0 3px #1677ff14}.search-trigger .el-icon{font-size:15px}.search-shortcut{padding:1px 5px;border:1px solid var(--color-border-soft);border-radius:4px;background:var(--color-surface-soft);color:var(--color-muted);font-size:10px;font-family:inherit;line-height:1.5;margin-left:2px}.notification-bell{position:relative;width:36px;height:36px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);display:inline-grid;place-items:center;cursor:pointer;font-size:18px;transition:border-color .15s,color .15s}.notification-bell:hover{border-color:var(--color-primary);color:var(--color-primary)}.notification-bell .el-icon{font-size:18px}.bell-badge{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;line-height:18px;text-align:center;box-shadow:0 2px 6px #ef444466;animation:bell-badge-pop .3s cubic-bezier(.34,1.56,.64,1)}@keyframes bell-badge-pop{0%{transform:scale(0)}to{transform:scale(1)}}.nav-badge{flex:0 0 auto;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;line-height:18px;text-align:center;margin-left:auto}.table-pagination{display:flex;justify-content:flex-end;margin-top:14px}
