:root,[data-theme=default]{--el-color-primary: #3b82f6;--el-color-primary-light-3: #60a5fa;--el-color-primary-light-5: #93c5fd;--el-color-primary-light-7: #bfdbfe;--el-color-primary-light-8: #dbeafe;--el-color-primary-light-9: #eff6ff;--el-color-success: #10b981;--el-color-warning: #f59e0b;--el-color-danger: #ef4444;--el-color-info: #64748b;--el-border-radius-base: 10px;--el-border-radius-small: 8px;--admin-font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Source Han Sans SC", "WenQuanYi Micro Hei", -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", sans-serif;--el-font-family: var(--admin-font-family);--el-text-color-primary: #0f172a;--el-text-color-regular: #475569;--el-text-color-secondary: #64748b;--el-text-color-placeholder: #94a3b8;--el-border-color: #e2e8f0;--el-border-color-light: #eef2f7;--el-border-color-lighter: #f1f5f9;--el-fill-color-blank: #ffffff;--el-bg-color: #f8faff;--el-bg-color-page: #f8faff;--admin-dialog-header-pt: 20px;--admin-dialog-header-pb: 18px;--admin-dialog-header-px: 22px;--admin-dialog-close-size: 36px;--admin-dialog-close-gap: 14px}:root{--admin-primary: #3b82f6;--admin-primary-dark: #2563eb;--admin-primary-light: #60a5fa;--admin-primary-subtle: #eff6ff;--admin-primary-ring: rgba(59, 130, 246, .22);--admin-accent: #0ea5e9;--admin-success: #10b981;--admin-warning: #f59e0b;--admin-danger: #ef4444;--admin-bg: #f8faff;--admin-bg-elevated: #ffffff;--admin-surface: rgba(255, 255, 255, .98);--admin-sidebar-bg: #ffffff;--admin-border: #dbeafe;--admin-border-soft: #e8f0fe;--admin-text: #0f172a;--admin-text-secondary: #334155;--admin-text-muted: #64748b;--admin-sidebar-hover: #f0f7ff;--admin-sidebar-active: #dbeafe;--admin-sidebar-text: #475569;--admin-sidebar-text-active: #2563eb;--admin-radius-sm: 8px;--admin-radius-md: 12px;--admin-radius-lg: 16px;--admin-shadow-sm: 0 1px 2px rgba(15, 23, 42, .04), 0 1px 3px rgba(59, 130, 246, .06);--admin-shadow-md: 0 4px 14px rgba(15, 23, 42, .06), 0 2px 6px rgba(59, 130, 246, .08);--admin-shadow-lg: 0 12px 28px rgba(15, 23, 42, .08), 0 4px 10px rgba(59, 130, 246, .1)}body{margin:0;font-family:var(--admin-font-family);font-size:14px;line-height:1.5715;font-synthesis:none;text-rendering:optimizeLegibility;background:radial-gradient(ellipse 100% 70% at 0% -10%,rgba(219,234,254,.85) 0%,transparent 55%),radial-gradient(ellipse 70% 50% at 100% 0%,rgba(186,230,253,.45) 0%,transparent 45%),var(--admin-bg);color:var(--admin-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{min-height:100vh;font-family:inherit}*{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:99px}*::-webkit-scrollbar-thumb:hover{background:#94a3b8}.el-button{font-weight:500;letter-spacing:0;line-height:1.5;border-radius:var(--admin-radius-sm);--el-button-hover-link-text-color: var(--admin-primary-dark)}.el-button--primary{--el-button-bg-color: var(--admin-primary);--el-button-border-color: var(--admin-primary);--el-button-hover-bg-color: var(--admin-primary-dark);--el-button-hover-border-color: var(--admin-primary-dark);--el-button-active-bg-color: #1e40af;--el-button-active-border-color: #1e40af}.el-button--primary.is-plain{--el-button-bg-color: var(--admin-primary-subtle);--el-button-border-color: #93c5fd;--el-button-text-color: var(--admin-primary-dark);--el-button-hover-bg-color: #dbeafe;--el-button-hover-border-color: #60a5fa;--el-button-hover-text-color: var(--admin-primary-dark)}.el-card{border:1px solid var(--admin-border-soft);border-radius:var(--admin-radius-lg);box-shadow:var(--admin-shadow-sm);background:var(--admin-bg-elevated);overflow:hidden}.el-card__header{padding:14px 18px;border-bottom:1px solid var(--admin-border-soft);background:var(--admin-bg-elevated)}.el-card__body{padding:18px}.el-input__wrapper,.el-textarea__inner,.el-select__wrapper{border-radius:var(--admin-radius-sm);box-shadow:none;background-color:#faf9f7;transition:box-shadow .2s ease,border-color .2s ease,background-color .2s ease}.el-input__wrapper:hover,.el-select__wrapper:hover{background-color:var(--admin-bg-elevated)}.el-input__wrapper.is-focus,.el-select__wrapper.is-focused{background-color:var(--admin-bg-elevated);box-shadow:0 0 0 3px var(--admin-primary-ring)}.el-table{--el-table-border-color: var(--admin-border-soft);--el-table-header-bg-color: #f8faff;--el-table-row-hover-bg-color: #f0f7ff;--el-table-current-row-bg-color: var(--admin-primary-subtle);border-radius:var(--admin-radius-md);overflow:hidden}.el-table th.el-table__cell{font-weight:600;font-size:13px;color:var(--admin-text-secondary);letter-spacing:0;line-height:1.5}.el-table td.el-table__cell,.el-table .cell{line-height:1.5715}.el-dialog{--el-bg-color: #ffffff;--el-bg-color-overlay: #ffffff;--el-fill-color-blank: #ffffff;--el-fill-color-light: #f5f6f7;--el-fill-color-lighter: #f7f8fa;--el-border-color: #dcdfe4;--el-border-color-light: #e5e7eb;display:flex;flex-direction:column;max-height:calc(100vh - 48px);margin-top:24px!important;margin-bottom:24px!important;border:1px solid #dcdfe4;border-radius:8px;background:#fff;overflow:hidden;box-shadow:0 12px 32px #1f23291f}.el-dialog__header{position:relative;margin-right:0;padding:var(--admin-dialog-header-pt, 20px) calc(var(--admin-dialog-close-size, 36px) + var(--admin-dialog-close-gap, 14px) * 2) var(--admin-dialog-header-pb, 18px) var(--admin-dialog-header-px, 22px);border-bottom:1px solid var(--admin-border-soft);flex:0 0 auto;background:#fff}.el-dialog__title{font-size:17px;font-weight:700;letter-spacing:0;line-height:1.45;color:var(--admin-text)}.el-dialog__headerbtn{top:var(--admin-dialog-header-pt, 20px);right:var(--admin-dialog-close-gap, 14px);width:var(--admin-dialog-close-size, 36px);height:var(--admin-dialog-close-size, 36px);margin-top:0;transform:none;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid rgba(226,232,240,.95);background:#fff;box-sizing:border-box;transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}.el-dialog__headerbtn .el-dialog__close{color:#64748b;font-size:17px;font-weight:600}.el-dialog__headerbtn:hover{background:#f8fafc;border-color:#cbd5e1;box-shadow:0 1px 2px #0f172a0f}.el-dialog__headerbtn:hover .el-dialog__close{color:#334155}.el-dialog__body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:20px 22px;background:#fff}.el-dialog__footer{flex:0 0 auto;padding:14px 22px 18px;border-top:1px solid var(--admin-border-soft);background:#f7f8fa}.admin-dialog.el-dialog,.el-dialog.admin-dialog{border-radius:8px;overflow:hidden;box-shadow:0 12px 32px #1f23291f}.admin-dialog .el-dialog__header{margin:0;padding:0;border-bottom:1px solid #e5e7eb;background:#fff}.admin-dialog .el-dialog__headerbtn{top:var(--admin-dialog-header-pt, 20px);right:var(--admin-dialog-close-gap, 14px)}.admin-dialog .el-dialog__body{padding:20px 24px;background:#fff}.admin-dialog .el-dialog__footer{padding:16px 24px 22px;border-top:1px solid #e5e7eb;background:#f7f8fa}.admin-dialog-header{display:flex;align-items:center;gap:14px;min-height:72px;padding:var(--admin-dialog-header-pt, 20px) calc(var(--admin-dialog-close-size, 36px) + var(--admin-dialog-close-gap, 14px) + 10px) var(--admin-dialog-header-pb, 18px) var(--admin-dialog-header-px, 22px);box-sizing:border-box}.admin-dialog-header-icon{flex-shrink:0;width:44px;height:44px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff}.admin-dialog-header-icon.tone-primary,.admin-dialog-header-icon.tone-success,.admin-dialog-header-icon.tone-warning,.admin-dialog-header-icon.tone-danger,.admin-dialog-header-icon.tone-neutral{background:#6b7280;box-shadow:none}.el-overlay-dialog{box-sizing:border-box;overflow:hidden}.el-message-box{display:flex;flex-direction:column;max-height:calc(100vh - 48px);border:1px solid #dcdfe4;border-radius:8px;background:#fff;box-shadow:0 12px 32px #1f23291f}.el-message-box__header,.el-message-box__btns{flex:0 0 auto;background:#fff}.el-message-box__content{flex:1 1 auto;min-height:0;overflow-y:auto}@media (max-width: 768px){.el-dialog{width:calc(100vw - 24px)!important;max-height:calc(100vh - 24px);margin-top:12px!important;margin-bottom:12px!important}}.admin-dialog-header-text{flex:1;min-width:0}.admin-dialog-title{margin:0;font-size:17px;font-weight:700;letter-spacing:0;line-height:1.45;color:#0f172a;word-break:break-word}.admin-dialog-subtitle{margin:4px 0 0;font-size:13px;font-weight:400;line-height:1.5;color:#64748b;word-break:break-word}.admin-dialog--flush-body .el-dialog__body{padding:0}.admin-form .el-form-item__label{font-weight:600;color:#475569}.el-tag{border-radius:999px}.el-tag.el-tag--success{--el-tag-bg-color: rgba(95, 133, 105, .1);--el-tag-border-color: rgba(95, 133, 105, .22);--el-tag-text-color: #4a7356}.el-tag.el-tag--warning{--el-tag-bg-color: rgba(184, 137, 74, .1);--el-tag-border-color: rgba(184, 137, 74, .22);--el-tag-text-color: #946b2e}.el-alert{border-radius:var(--admin-radius-md)}.el-drawer__header{margin-bottom:0;padding:18px 20px;border-bottom:1px solid var(--admin-border-soft)}.el-pagination.is-background .el-pager li.is-active{background-color:var(--admin-primary)}.el-switch.is-checked{--el-switch-on-color: var(--admin-primary)}.el-link.el-link--primary{--el-link-text-color: var(--admin-primary);--el-link-hover-text-color: var(--admin-primary-dark)}.page-shell,.page-wrap,.profile-page,.dashboard-page,.calibration-page{display:flex;flex-direction:column;gap:16px}.action-bar,.page-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:14px 18px;background:var(--admin-bg-elevated);border:1px solid var(--admin-border-soft);border-radius:var(--admin-radius-lg);box-shadow:var(--admin-shadow-sm)}.action-left,.action-right,.toolbar-left,.toolbar-right{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.table-card,.panel-card,.filter-card,.admin-panel{border-radius:var(--admin-radius-lg);border:1px solid var(--admin-border-soft);box-shadow:var(--admin-shadow-sm)}.table-card :deep(.el-card__header),.panel-card :deep(.el-card__header),.filter-card :deep(.el-card__header){padding:14px 18px}.card-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}.header-title{font-size:15px;font-weight:600;letter-spacing:0;line-height:1.5;color:var(--admin-text);display:inline-flex;align-items:center;gap:10px}.header-dot{width:8px;height:8px;border-radius:50%;background:var(--admin-primary);box-shadow:0 0 0 3px var(--admin-primary-ring)}.header-count{font-size:13px;color:var(--admin-text-muted)}.panel-title,.card-title{font-size:15px;font-weight:600;letter-spacing:0;line-height:1.5;color:var(--admin-text);display:inline-flex;align-items:center;gap:10px}.title-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.list-card :deep(.el-card__body){padding:0}.list-card .data-table{border-radius:0}.list-card .pager{padding:12px 18px 16px;border-top:1px solid var(--admin-border-soft)}.hint-alert{margin:0}.section-card{border-radius:var(--admin-radius-lg);border:1px solid var(--admin-border-soft)}.profile-card{max-width:640px}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:14px 18px;background:var(--admin-bg-elevated);border:1px solid var(--admin-border-soft);border-radius:var(--admin-radius-lg);box-shadow:var(--admin-shadow-sm)}.page-header h2,.page-title{margin:0;font-size:18px;font-weight:700;letter-spacing:0;line-height:1.45;color:var(--admin-text)}.page-desc,.subtitle{margin:6px 0 0;font-size:13px;line-height:1.5;color:var(--admin-text-muted)}.page-filters,.page-filters.filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex:1;min-width:0}.page-actions,.header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}.page-identity{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex-shrink:0}.page-identity-title{font-size:16px;font-weight:700;color:var(--admin-text);line-height:1.3}.admin-stat-card :deep(.el-card__body){padding:16px 18px}.stat-label{font-size:12px;font-weight:500;color:var(--admin-text-muted);margin-bottom:6px}.stat-value{font-size:22px;font-weight:700;color:var(--admin-text);font-variant-numeric:tabular-nums}.stat-value.warn{color:var(--admin-warning)}.summary-row{margin-bottom:4px}.category-table :deep(.el-table__row:hover > td),.admin-table :deep(.el-table__row:hover > td),.data-table :deep(.el-table__row:hover > td){background:#f0f7ff!important}.el-empty{padding:48px 20px}.el-empty__description{color:var(--admin-text-muted)}.pager{display:flex;justify-content:flex-end;padding-top:8px}.logo-mark[data-v-67b00bf7]{display:block;width:100%;height:100%;color:#fff;filter:drop-shadow(0 1px 1px rgba(45,43,40,.12))}.app-logo[data-v-e51e3fb3]{display:flex;align-items:center;gap:10px;min-width:0}.app-logo-icon[data-v-e51e3fb3]{flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:10px;background:linear-gradient(145deg,#3b82f6 0%,var(--admin-primary) 52%,var(--admin-accent) 100%);box-shadow:0 6px 16px #2563eb47}.app-logo--sm .app-logo-icon[data-v-e51e3fb3]{width:36px;height:36px;padding:7px;border-radius:10px}.app-logo--md .app-logo-icon[data-v-e51e3fb3]{width:40px;height:40px;padding:8px;border-radius:11px}.app-logo--lg .app-logo-icon[data-v-e51e3fb3]{width:72px;height:72px;padding:16px;border-radius:18px;box-shadow:0 16px 36px #5b6e8a61}.app-logo-copy[data-v-e51e3fb3]{display:flex;flex-direction:column;gap:2px;min-width:0}.app-logo-wordmark[data-v-e51e3fb3]{font-weight:700;letter-spacing:0;line-height:1.35;white-space:nowrap}.app-logo--sm .app-logo-wordmark[data-v-e51e3fb3]{font-size:17px}.app-logo--md .app-logo-wordmark[data-v-e51e3fb3]{font-size:18px}.app-logo--lg .app-logo-wordmark[data-v-e51e3fb3]{font-size:36px}.app-logo-main[data-v-e51e3fb3]{background:linear-gradient(120deg,var(--admin-primary-light) 0%,var(--admin-primary) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.app-logo-accent[data-v-e51e3fb3]{background:linear-gradient(120deg,var(--admin-accent) 0%,#6a96a4 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.app-logo--inverted .app-logo-main[data-v-e51e3fb3]{background:linear-gradient(120deg,#fff,#e4e2dd);-webkit-background-clip:text;background-clip:text}.app-logo--inverted .app-logo-accent[data-v-e51e3fb3]{background:linear-gradient(120deg,#67e8f9,#a5f3fc);-webkit-background-clip:text;background-clip:text}.app-logo-subtitle[data-v-e51e3fb3]{font-size:12px;font-weight:500;color:#909399;line-height:1.3}.app-logo--lg .app-logo-subtitle[data-v-e51e3fb3]{font-size:15px}.app-logo--inverted .app-logo-subtitle[data-v-e51e3fb3]{color:#ffffffb8}[data-v-cbbf5bbf]{margin:0;padding:0;box-sizing:border-box}.login-container[data-v-cbbf5bbf]{display:flex;min-height:100vh;position:relative;font-family:Inter,Noto Sans SC,-apple-system,BlinkMacSystemFont,sans-serif}.bg-section[data-v-cbbf5bbf]{flex:1.2;background:linear-gradient(145deg,#0f172a,#1e3a8a 48%,#172554);position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:60px;overflow:hidden}.orb[data-v-cbbf5bbf]{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5;animation:float-cbbf5bbf 8s ease-in-out infinite}.orb-1[data-v-cbbf5bbf]{width:400px;height:400px;background:linear-gradient(135deg,#2563eb,#0ea5e9);top:-100px;left:-100px}.orb-2[data-v-cbbf5bbf]{width:300px;height:300px;background:linear-gradient(135deg,#3b82f6,#2563eb);bottom:-50px;right:-50px;animation-delay:-2s}.orb-3[data-v-cbbf5bbf]{width:250px;height:250px;background:linear-gradient(135deg,#0ea5e9,#1d4ed8);top:50%;left:50%;transform:translate(-50%,-50%);animation-delay:-4s}@keyframes float-cbbf5bbf{0%,to{transform:translate(0) scale(1)}25%{transform:translate(30px,-30px) scale(1.05)}50%{transform:translate(-20px,20px) scale(.95)}75%{transform:translate(-30px,-20px) scale(1.02)}}.grid-pattern[data-v-cbbf5bbf]{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:60px 60px;animation:gridMove-cbbf5bbf 20s linear infinite}@keyframes gridMove-cbbf5bbf{0%{transform:translate(0)}to{transform:translate(60px,60px)}}.brand-content[data-v-cbbf5bbf]{position:relative;z-index:10;display:flex;flex-direction:column;align-items:center;text-align:center;color:#fff}.brand-content[data-v-cbbf5bbf] .app-logo{flex-direction:column;gap:16px;margin-bottom:40px;animation:logoFloat-cbbf5bbf 3s ease-in-out infinite}.brand-content[data-v-cbbf5bbf] .app-logo-copy{align-items:center}@keyframes logoFloat-cbbf5bbf{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.stats-container[data-v-cbbf5bbf]{display:flex;gap:24px;margin-top:0}.stat-card[data-v-cbbf5bbf]{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.15);border-radius:16px;padding:24px 32px;text-align:center;transition:all .3s ease}.stat-card[data-v-cbbf5bbf]:hover{transform:translateY(-5px);background:#ffffff26}.stat-number[data-v-cbbf5bbf]{font-size:32px;font-weight:700;color:#7dd3fc;margin-bottom:4px}.stat-label[data-v-cbbf5bbf]{font-size:14px;color:#fff9}.form-section[data-v-cbbf5bbf]{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:60px;background:#fdfdfc;position:relative}.login-card[data-v-cbbf5bbf]{width:100%;max-width:420px}.form-brand[data-v-cbbf5bbf]{display:none;margin-bottom:28px}.form-header[data-v-cbbf5bbf]{margin-bottom:40px}.form-title[data-v-cbbf5bbf]{font-size:28px;font-weight:700;color:#3d3a36;margin-bottom:8px}.form-desc[data-v-cbbf5bbf]{font-size:15px;color:#6b6762;margin-bottom:6px}.form-group[data-v-cbbf5bbf]{margin-bottom:24px;position:relative}.form-label[data-v-cbbf5bbf]{display:block;font-size:14px;font-weight:500;color:#374151;margin-bottom:8px}.input-wrapper[data-v-cbbf5bbf]{position:relative}.input-icon[data-v-cbbf5bbf]{position:absolute;left:16px;top:50%;transform:translateY(-50%);font-size:18px;color:#a09c96;transition:color .3s ease}.form-input[data-v-cbbf5bbf]{width:100%;height:52px;padding:0 16px 0 48px;border:2px solid #e4e2dd;border-radius:12px;font-size:15px;color:#3d3a36;transition:all .3s ease;background:#f8f7f4}.form-input[data-v-cbbf5bbf]:focus{outline:none;border-color:#2563eb;background:#fcfcfb;box-shadow:0 0 0 4px #2563eb1f}.form-input:focus+.input-icon[data-v-cbbf5bbf],.form-input:not(:placeholder-shown)+.input-icon[data-v-cbbf5bbf]{color:#2563eb}.form-input[data-v-cbbf5bbf]::placeholder{color:#a09c96}.password-toggle[data-v-cbbf5bbf]{position:absolute;right:16px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#a09c96;font-size:18px;padding:4px;transition:color .3s ease}.password-toggle[data-v-cbbf5bbf]:hover{color:#2563eb}.form-options[data-v-cbbf5bbf]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.remember-me[data-v-cbbf5bbf]{display:flex;align-items:center;gap:8px;cursor:pointer}.remember-me input[type=checkbox][data-v-cbbf5bbf]{width:18px;height:18px;accent-color:#2563eb;cursor:pointer}.remember-me span[data-v-cbbf5bbf]{font-size:14px;color:#6b6762}.forgot-link[data-v-cbbf5bbf]{font-size:14px;color:#2563eb;text-decoration:none;font-weight:500;transition:color .3s ease}.forgot-link[data-v-cbbf5bbf]:hover{color:#1d4ed8}.submit-btn[data-v-cbbf5bbf]{width:100%;height:52px;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:8px;position:relative;overflow:hidden}.submit-btn[data-v-cbbf5bbf]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#1d4ed8,#1e40af);opacity:0;transition:opacity .3s ease}.submit-btn[data-v-cbbf5bbf]:hover:before{opacity:1}.submit-btn span[data-v-cbbf5bbf]{position:relative;z-index:1}.submit-btn[data-v-cbbf5bbf]:hover{transform:translateY(-2px);box-shadow:0 10px 28px #2563eb52}.submit-btn[data-v-cbbf5bbf]:active{transform:translateY(0)}.submit-btn[data-v-cbbf5bbf]:disabled{opacity:.8;cursor:not-allowed}.btn-icon[data-v-cbbf5bbf]{position:relative;z-index:1;font-size:18px}.divider[data-v-cbbf5bbf]{display:flex;align-items:center;gap:16px;margin:32px 0}.divider-line[data-v-cbbf5bbf]{flex:1;height:1px;background:#e4e2dd}.divider-text[data-v-cbbf5bbf]{font-size:14px;color:#a09c96}.social-login[data-v-cbbf5bbf]{display:flex;gap:12px}.social-btn[data-v-cbbf5bbf]{flex:1;height:48px;background:#f8f7f4;border:2px solid #e4e2dd;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:all .3s ease;font-size:20px}.social-btn[data-v-cbbf5bbf]:hover{background:#fcfcfb;border-color:#2563eb;transform:translateY(-2px)}.social-btn span[data-v-cbbf5bbf]{font-size:14px;font-weight:500;color:#374151}.register-link[data-v-cbbf5bbf]{text-align:center;margin-top:32px;font-size:14px;color:#6b6762}.register-link a[data-v-cbbf5bbf]{color:#2563eb;text-decoration:none;font-weight:600}.register-link a[data-v-cbbf5bbf]:hover{color:#1d4ed8}.session-hint[data-v-cbbf5bbf]{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:12px 16px;margin-bottom:16px;display:flex;align-items:center;gap:10px;color:#1d4ed8;font-size:14px}.error-message[data-v-cbbf5bbf]{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:12px 16px;margin-bottom:20px;display:flex;align-items:center;gap:10px;color:#dc2626;font-size:14px;animation:shake-cbbf5bbf .5s ease}@keyframes shake-cbbf5bbf{0%,to{transform:translate(0)}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.loading[data-v-cbbf5bbf]{position:relative}.loading[data-v-cbbf5bbf]:after{content:"";position:absolute;width:20px;height:20px;border:2px solid transparent;border-top-color:#fff;border-radius:50%;animation:spin-cbbf5bbf .8s linear infinite}@keyframes spin-cbbf5bbf{to{transform:rotate(360deg)}}.particles[data-v-cbbf5bbf]{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.particle[data-v-cbbf5bbf]{position:absolute;width:6px;height:6px;background:#8eb4c473;border-radius:50%;animation:particleFloat-cbbf5bbf 15s linear infinite}@keyframes particleFloat-cbbf5bbf{0%{transform:translateY(100vh) rotate(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-100vh) rotate(720deg);opacity:0}}@media (max-width: 1024px){.bg-section[data-v-cbbf5bbf]{display:none}.form-section[data-v-cbbf5bbf]{flex:1}.form-brand[data-v-cbbf5bbf]{display:flex;justify-content:center}}@media (max-width: 480px){.form-section[data-v-cbbf5bbf]{padding:30px 20px}.form-title[data-v-cbbf5bbf]{font-size:24px}.stats-container[data-v-cbbf5bbf]{flex-direction:column;gap:12px}}.layout-tab-bar[data-v-65670c71]{flex-shrink:0;padding:10px 16px 0;background:var(--admin-bg-elevated);border-bottom:1px solid var(--admin-border-soft)}.tab-bar-inner[data-v-65670c71]{min-height:44px}.tab-bar-scroll[data-v-65670c71]{display:flex;align-items:center;gap:6px;flex:1;min-width:0;overflow-x:auto;padding:2px 0 8px;scrollbar-width:thin;scrollbar-color:#d0ccc4 transparent}.tab-bar-tools[data-v-65670c71]{display:flex;align-items:center;gap:6px;flex-shrink:0}.tab-tools-sep[data-v-65670c71]{flex-shrink:0;width:1px;height:20px;margin:0 2px;background:linear-gradient(180deg,transparent,var(--admin-border) 20%,var(--admin-border) 80%,transparent);align-self:center}.tab-bar-scroll[data-v-65670c71]::-webkit-scrollbar{height:5px}.tab-bar-scroll[data-v-65670c71]::-webkit-scrollbar-thumb{background:#d0ccc4;border-radius:99px}.tab-bar-scroll[data-v-65670c71]::-webkit-scrollbar-thumb:hover{background:#b8b4ac}.layout-tab[data-v-65670c71]{position:relative;display:inline-flex;align-items:center;gap:8px;flex-shrink:0;max-width:220px;height:36px;padding:0 10px 0 12px;margin:0;border:1px solid transparent;border-bottom:none;border-radius:10px 10px 0 0;background:#eff6ff;color:var(--admin-text-secondary);font-size:13px;font-weight:500;letter-spacing:0;cursor:pointer;box-shadow:none;transition:background .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease}.layout-tab[data-v-65670c71]:hover{color:var(--admin-primary);background:var(--admin-bg-elevated);border-color:var(--admin-border-soft);box-shadow:var(--admin-shadow-sm)}.layout-tab--tool[data-v-65670c71]{width:36px;min-width:36px;padding:0;justify-content:center;flex-shrink:0}.layout-tab--tool[data-v-65670c71]:hover{color:var(--admin-primary)}.layout-tab--tool[data-v-65670c71]:after{display:none}.layout-tab.is-active[data-v-65670c71]{color:#fff;font-weight:600;border-color:transparent;background:linear-gradient(135deg,var(--admin-primary) 0%,var(--admin-primary-dark) 100%);box-shadow:0 2px 12px #3b82f659;z-index:2}.layout-tab.is-pinned[data-v-65670c71]{padding-right:14px}.layout-tab.is-pinned .tab-accent[data-v-65670c71]{display:none!important}.tab-accent[data-v-65670c71]{display:none}.layout-tab:not(.is-active) .tab-accent[data-v-65670c71]{display:block;width:6px;height:6px;border-radius:50%;background:#d0ccc4;flex-shrink:0;transition:background .2s ease}.layout-tab:not(.is-active):hover .tab-accent[data-v-65670c71]{background:var(--admin-primary-light)}.layout-tab-title[data-v-65670c71]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.45;letter-spacing:0}.layout-tab-close[data-v-65670c71]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:6px;flex-shrink:0;opacity:0;transform:scale(.85);transition:opacity .18s ease,transform .18s ease,background .18s ease}.layout-tab:hover .layout-tab-close[data-v-65670c71],.layout-tab.is-active .layout-tab-close[data-v-65670c71]{opacity:1;transform:scale(1)}.layout-tab:not(.is-active) .layout-tab-close[data-v-65670c71]:hover{background:var(--admin-sidebar-hover);color:var(--admin-primary)}.layout-tab.is-active .layout-tab-close[data-v-65670c71]:hover{background:#fff3;color:#fff}.notification-trigger[data-v-a79d9ddf]{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-right:8px;border:none;border-radius:10px;background:transparent;color:var(--admin-text-secondary);cursor:pointer;transition:background .15s ease,color .15s ease}.notification-trigger[data-v-a79d9ddf]:hover{background:var(--admin-primary-subtle);color:var(--admin-primary-dark)}.notification-panel-head[data-v-a79d9ddf]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.notification-panel-title[data-v-a79d9ddf]{font-weight:600;color:var(--admin-text)}.notification-list[data-v-a79d9ddf]{max-height:360px;overflow-y:auto}.notification-empty[data-v-a79d9ddf]{padding:24px 0;text-align:center;color:var(--admin-text-muted);font-size:13px}.notification-item[data-v-a79d9ddf]{display:block;width:100%;padding:10px 12px;margin-bottom:6px;border:1px solid var(--admin-border-soft);border-radius:10px;background:#fff;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease}.notification-item[data-v-a79d9ddf]:hover{border-color:var(--admin-primary-light);background:var(--admin-primary-subtle)}.notification-item--unread[data-v-a79d9ddf]{border-color:var(--admin-primary-light);background:#f8fbff}.notification-item-title[data-v-a79d9ddf]{font-size:14px;font-weight:600;color:var(--admin-text)}.notification-item-body[data-v-a79d9ddf]{margin-top:4px;font-size:13px;color:var(--admin-text-secondary);line-height:1.45}.notification-item-time[data-v-a79d9ddf]{margin-top:6px;font-size:12px;color:var(--admin-text-muted)}.root-page[data-v-f4e14389]{min-height:100vh;font-family:var(--el-font-family)}.main-layout[data-v-f4e14389]{--sidebar-ease: cubic-bezier(.4, 0, .2, 1);--sidebar-duration: .28s;display:block;min-height:100vh}.aside-nav[data-v-f4e14389]{--aside-padding-x: 12px;position:fixed;left:0;top:0;z-index:100;width:var(--sidebar-width, 240px);background:var(--admin-sidebar-bg);border-right:1px solid var(--admin-border-soft);display:flex;flex-direction:column;padding:0;height:100vh;overflow:hidden;contain:layout style paint;transition:width var(--sidebar-duration) var(--sidebar-ease);will-change:width}.aside-header[data-v-f4e14389]{display:flex;align-items:center;justify-content:center;padding:20px var(--aside-padding-x) 16px;flex-shrink:0;transition:padding var(--sidebar-duration) var(--sidebar-ease)}.aside--collapsed[data-v-f4e14389]{--aside-padding-x: 8px}.brand[data-v-f4e14389]{display:flex;align-items:center;gap:10px;width:100%;height:52px;padding:8px 10px;border:none;background:transparent;cursor:pointer;border-radius:10px;overflow:hidden;transition:background-color .2s ease,padding var(--sidebar-duration) var(--sidebar-ease)}.brand[data-v-f4e14389]:hover{background:var(--admin-sidebar-hover)}.brand-mark[data-v-f4e14389]{flex-shrink:0;width:36px;height:36px;padding:7px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#3b82f6 0%,var(--admin-primary) 52%,var(--admin-accent) 100%);box-shadow:0 4px 14px #2563eb40;transition:transform .2s ease,box-shadow .2s ease}.brand:hover .brand-mark[data-v-f4e14389]{transform:scale(1.04);box-shadow:0 6px 18px #2563eb52}.brand-copy[data-v-f4e14389]{display:flex;flex-direction:column;gap:2px;min-width:0;overflow:hidden;text-align:left;opacity:1;max-width:180px;transition:opacity calc(var(--sidebar-duration) * .65) var(--sidebar-ease),max-width var(--sidebar-duration) var(--sidebar-ease)}.brand-wordmark[data-v-f4e14389]{font-size:17px;font-weight:700;letter-spacing:0;line-height:1.35;white-space:nowrap}.brand-main[data-v-f4e14389]{background:linear-gradient(120deg,var(--admin-primary) 0%,var(--admin-primary-dark) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.brand-accent[data-v-f4e14389]{background:linear-gradient(120deg,var(--admin-accent) 0%,#6a96a4 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.brand-subtitle[data-v-f4e14389]{font-size:12px;font-weight:500;color:var(--admin-text-muted);line-height:1.3;white-space:nowrap}.brand--collapsed[data-v-f4e14389]{justify-content:center;gap:0;padding-left:0;padding-right:0}.brand--collapsed .brand-copy[data-v-f4e14389]{flex:0 0 0;max-width:0;opacity:0;pointer-events:none}.brand--collapsed[data-v-f4e14389]:hover{background:transparent}.aside-footer[data-v-f4e14389]{flex-shrink:0;padding:8px var(--aside-padding-x) 16px;border-top:1px solid var(--admin-border-soft);transition:padding var(--sidebar-duration) var(--sidebar-ease)}.sidebar-collapse-btn[data-v-f4e14389]{display:flex;align-items:center;gap:10px;width:100%;height:38px;padding:0 12px;border:none;border-radius:8px;background:transparent;color:var(--admin-text-muted);cursor:pointer;font-size:13px;font-weight:500;font-family:inherit;transition:background-color .2s ease,color .2s ease,padding var(--sidebar-duration) var(--sidebar-ease)}.sidebar-collapse-btn[data-v-f4e14389]:hover{background:var(--admin-sidebar-hover);color:var(--admin-primary)}.collapse-icon-wrap[data-v-f4e14389]{display:flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0}.collapse-icon[data-v-f4e14389]{display:flex;transition:transform var(--sidebar-duration) var(--sidebar-ease);transform-origin:center}.collapse-icon--flipped[data-v-f4e14389]{transform:rotate(180deg)}.collapse-btn-text[data-v-f4e14389]{white-space:nowrap;overflow:hidden;max-width:120px;opacity:1;transition:opacity calc(var(--sidebar-duration) * .7) var(--sidebar-ease),max-width var(--sidebar-duration) var(--sidebar-ease)}.collapse-btn-text--hidden[data-v-f4e14389]{max-width:0;opacity:0}.aside--collapsed .sidebar-collapse-btn[data-v-f4e14389]{justify-content:center;padding:0}.menu-panel[data-v-f4e14389]{border-right:none;background:transparent;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 var(--aside-padding-x);transition:padding var(--sidebar-duration) var(--sidebar-ease)}.menu-panel[data-v-f4e14389] .el-menu{border-right:none;min-height:0;height:100%}.menu-panel[data-v-f4e14389] .el-menu-item{position:relative;display:flex;align-items:center;border-radius:8px;margin-bottom:2px;height:40px;font-size:14px;font-weight:500;letter-spacing:0;color:var(--admin-sidebar-text);line-height:1.5;padding-left:14px!important;padding-right:12px!important;overflow:hidden;border-left:3px solid transparent;transition:color .2s ease,background-color .2s ease,border-color .2s ease,padding var(--sidebar-duration) var(--sidebar-ease)}.menu-panel[data-v-f4e14389] .el-menu-item .el-icon{flex-shrink:0;width:18px;margin-right:10px;transition:margin var(--sidebar-duration) var(--sidebar-ease)}.menu-panel[data-v-f4e14389] .menu-item-label{display:inline-block;overflow:hidden;white-space:nowrap;max-width:160px;opacity:1;vertical-align:middle;transition:opacity calc(var(--sidebar-duration) * .65) var(--sidebar-ease),max-width var(--sidebar-duration) var(--sidebar-ease),margin var(--sidebar-duration) var(--sidebar-ease)}.menu-panel[data-v-f4e14389]>.el-menu-item:first-child{margin-bottom:6px}.menu-panel[data-v-f4e14389]>.el-menu-item:first-child:after{content:"";position:absolute;bottom:-4px;left:12px;right:12px;height:1px;background:var(--admin-border-soft);transition:left var(--sidebar-duration) var(--sidebar-ease),right var(--sidebar-duration) var(--sidebar-ease)}.menu-panel[data-v-f4e14389] .el-menu-item:hover{background:var(--admin-sidebar-hover);color:var(--admin-text)}.menu-panel[data-v-f4e14389] .el-menu-item.is-active{color:var(--admin-sidebar-text-active);background:var(--admin-sidebar-active);border-left-color:var(--admin-primary);font-weight:600;box-shadow:none}.menu-panel[data-v-f4e14389] .el-menu-item.is-active .el-icon{color:var(--admin-sidebar-text-active)}.menu-panel[data-v-f4e14389] .el-sub-menu__title{position:relative;display:flex;align-items:center;border-radius:8px;margin-bottom:2px;height:40px;font-size:14px;font-weight:500;color:var(--admin-sidebar-text);line-height:1.5;padding-right:12px!important;transition:color .2s ease,background-color .2s ease}.menu-panel[data-v-f4e14389] .el-sub-menu__title .el-icon{flex-shrink:0;width:18px;margin-right:10px}.menu-panel[data-v-f4e14389] .el-sub-menu__title:hover{background:var(--admin-sidebar-hover);color:var(--admin-text)}.menu-panel[data-v-f4e14389] .el-sub-menu.is-active>.el-sub-menu__title{color:var(--admin-sidebar-text-active);font-weight:600}.menu-panel[data-v-f4e14389] .el-sub-menu .el-menu-item{padding-left:42px!important;height:38px;font-size:13px}.menu-panel[data-v-f4e14389] .el-sub-menu .el-menu-item .el-icon{width:16px;margin-right:8px}.aside--collapsed .menu-panel[data-v-f4e14389] .el-sub-menu__title{justify-content:center;padding-left:0!important;padding-right:0!important}.aside--collapsed .menu-panel[data-v-f4e14389] .el-sub-menu__title .el-icon{margin-right:0!important}.aside--collapsed .menu-panel[data-v-f4e14389] .el-sub-menu__title .menu-item-label{flex:0 0 0;width:0;min-width:0;max-width:0;opacity:0;margin:0;padding:0;overflow:hidden;pointer-events:none}.aside--collapsed .menu-panel[data-v-f4e14389] .el-menu-item{justify-content:center;padding-left:0!important;padding-right:0!important;border-left-color:transparent}.aside--collapsed .menu-panel[data-v-f4e14389] .el-menu-item.is-active{background:var(--admin-sidebar-active);box-shadow:inset 0 0 0 1px #2563eb24}.aside--collapsed .menu-panel[data-v-f4e14389] .el-menu-item .el-icon{margin-right:0!important}.aside--collapsed .menu-panel[data-v-f4e14389] .menu-item-label{flex:0 0 0;width:0;min-width:0;max-width:0;opacity:0;margin:0;padding:0;overflow:hidden;pointer-events:none}.aside--collapsed .menu-panel[data-v-f4e14389]>.el-menu-item:first-child:after{left:8px;right:8px}.main-column[data-v-f4e14389]{flex-direction:column;background:var(--admin-bg);min-width:0;margin-left:var(--sidebar-width, 240px);min-height:100vh;transition:margin-left var(--sidebar-duration) var(--sidebar-ease);will-change:margin-left}@media (max-width: 1023px){.aside-nav[data-v-f4e14389]:not(.aside--collapsed){box-shadow:8px 0 32px #2d2b281a}}@media (prefers-reduced-motion: reduce){.aside-nav[data-v-f4e14389],.main-column[data-v-f4e14389],.brand[data-v-f4e14389],.brand-mark[data-v-f4e14389],.brand-copy[data-v-f4e14389],.aside-header[data-v-f4e14389],.aside-footer[data-v-f4e14389],.menu-panel[data-v-f4e14389],.sidebar-collapse-btn[data-v-f4e14389],.collapse-icon[data-v-f4e14389],.collapse-btn-text[data-v-f4e14389],.menu-panel[data-v-f4e14389] .el-menu-item,.menu-panel[data-v-f4e14389] .el-menu-item .el-icon,.menu-panel[data-v-f4e14389] .menu-item-label,.menu-panel[data-v-f4e14389]>.el-menu-item:first-child:after{transition:none!important}}.topbar[data-v-f4e14389]{height:56px;padding:0 20px;background:var(--admin-bg-elevated);border-bottom:1px solid var(--admin-border-soft);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.topbar-right[data-v-f4e14389]{display:flex;align-items:center;gap:8px}.user-trigger[data-v-f4e14389]{display:inline-flex;align-items:center;gap:10px;padding:6px 12px 6px 16px;border:1px solid var(--admin-border-soft);border-radius:999px;background:var(--admin-bg-elevated);cursor:pointer;font:inherit;color:var(--admin-text-secondary);transition:border-color .2s,box-shadow .2s,transform .15s ease}.user-trigger[data-v-f4e14389]:hover{border-color:#c5cdd6;box-shadow:0 4px 12px #2563eb1a;transform:translateY(-1px)}.user-trigger-label[data-v-f4e14389]{font-size:14px;font-weight:500}.user-trigger-avatar[data-v-f4e14389]{width:30px;height:30px;border-radius:50%;background:var(--admin-primary-subtle);color:var(--admin-primary);display:flex;align-items:center;justify-content:center}.content[data-v-f4e14389]{padding:20px;flex:1;min-height:0;overflow:auto}.tab-pane[data-v-f4e14389]{min-height:100%}.admin-user-dropdown{padding-top:0!important}.admin-user-dropdown .dropdown-user-card{display:flex;align-items:center;gap:12px;padding:16px 16px 12px;min-width:220px;border-bottom:1px solid var(--admin-border-soft)}.admin-user-dropdown .dropdown-avatar{width:48px;height:48px;border-radius:12px;background:var(--admin-primary-subtle);color:var(--admin-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px var(--admin-primary-ring)}.admin-user-dropdown .dropdown-name{font-size:15px;font-weight:600;color:var(--admin-text);line-height:1.3}.admin-user-dropdown .dropdown-email{margin-top:4px;font-size:13px;color:var(--admin-text-muted)}.admin-user-dropdown .el-dropdown-menu__item{display:flex;align-items:center;gap:8px;padding:10px 16px;font-size:14px}
