:root{color:#1f2937;--el-color-primary:#4f46e5;--el-color-primary-dark-2:#4338ca;--el-color-primary-light-3:#6366f1;--el-color-primary-light-5:#818cf8;--el-color-primary-light-7:#a5b4fc;--el-color-primary-light-8:#c7d2fe;--el-color-primary-light-9:#eef2ff;--brand-accent:#4f46e5;--brand-accent-soft:#6366f1;--brand-accent-glow:#4f46e547;--ink-900:#0f172a;--ink-700:#334155;--ink-500:#64748b;--line-soft:#e8edf4;--line:#e2e8f0;--surface:#fff;--surface-muted:#f8fafc;--canvas:#eef2f6;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--shadow-xs:0 1px 2px #0f172a0d;--shadow-sm:0 4px 14px #0f172a0f;--shadow-md:0 12px 30px #0f172a14;--shadow-lg:0 22px 48px #0f172a1f;--shadow-ring:0 0 0 3px #4f46e524;--ease:cubic-bezier(.22, .61, .36, 1);--t-fast:.16s var(--ease);--t-base:.24s var(--ease);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#eef2f6;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box}body{background-color:#0000;background-image:radial-gradient(1200px 600px at 12% -8%,#4f46e512,#0000 60%),radial-gradient(1000px 560px at 100% 0,#38bdf80f,#0000 55%),linear-gradient(#eef2f6 0%,#e9eef5 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;min-width:1180px;margin:0}.el-card{border:1px solid var(--line-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:box-shadow var(--t-base), transform var(--t-base), border-color var(--t-base)}.el-card:hover{box-shadow:var(--shadow-md);border-color:#dbe3ee}.admin-auth-shell{background:linear-gradient(#eef2f6 0%,#e2e8f0 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.admin-auth-card{text-align:center;background:#fff;border:1px solid #dbe4f0;border-radius:16px;justify-items:center;gap:14px;width:min(100%,420px);padding:30px 28px;display:grid;box-shadow:0 20px 60px #0f172a14}.admin-auth-card img{object-fit:contain;width:72px;height:72px}.admin-auth-card strong{color:#0f172a;font-size:20px;line-height:1.25}.admin-auth-card span{color:#64748b;font-size:13px;line-height:1.6}.admin-auth-card .el-input,.admin-auth-button{width:100%}.admin-shell{min-height:100vh}.admin-sidebar{color:#fff;background:radial-gradient(420px 220px at 18% 4%,#6366f152,#0000 70%),linear-gradient(185deg,#1e2440 0%,#141a30 42%,#0d1120 100%);position:relative;overflow:hidden;box-shadow:1px 0 #ffffff0a,6px 0 30px #080b1647}.admin-sidebar:before{content:"";pointer-events:none;background:radial-gradient(540px 280px at 90% 110%,#38bdf824,#0000 70%);position:absolute;inset:0}.brand{z-index:1;border-bottom:1px solid #ffffff12;align-items:center;gap:14px;min-width:0;height:90px;padding:0 18px;display:flex;position:relative}.brand-logo{object-fit:contain;background:linear-gradient(135deg,#818cf847,#38bdf829);border-radius:12px;flex:0 0 46px;width:46px;height:46px;padding:6px;box-shadow:inset 0 0 0 1px #ffffff1f,0 6px 16px #080b1666}.brand-copy{min-width:0}.brand strong{color:#fff;letter-spacing:.2px;text-overflow:ellipsis;white-space:nowrap;font-size:20px;font-weight:700;line-height:1.1;overflow:hidden}.side-menu{background:0 0;border-right:0;padding:14px 12px}.side-menu .el-menu-item{color:#aeb8d4;height:46px;transition:background var(--t-fast), color var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);border-radius:11px;margin:4px 0;font-weight:600;position:relative}.side-menu .el-menu-item .el-icon{transition:transform var(--t-fast)}.side-menu .el-menu-item:hover{color:#fff;background:#ffffff0f;transform:translate(2px)}.side-menu .el-menu-item:hover .el-icon{transform:scale(1.08)}.side-menu .el-menu-item.is-active{color:#fff;background:linear-gradient(135deg,#6366f1f2,#4f46e5d1);box-shadow:0 10px 24px #4f46e55c,inset 0 0 0 1px #ffffff1f}.side-menu .el-menu-item.is-active:before{content:"";background:#c7d2fe;border-radius:0 4px 4px 0;width:3px;height:22px;position:absolute;top:50%;left:-12px;transform:translateY(-50%);box-shadow:0 0 12px #c7d2fecc}.admin-header{z-index:10;-webkit-backdrop-filter:saturate(160%)blur(12px);border-bottom:1px solid var(--line-soft);background:#ffffffd1;justify-content:space-between;align-items:center;height:76px;padding:0 28px;display:flex;position:sticky;top:0;box-shadow:0 1px #0f172a05,0 8px 24px #0f172a0a}.admin-header h1{color:var(--ink-900);letter-spacing:.2px;margin:0;font-size:22px;font-weight:700}.admin-header p{color:var(--ink-500);margin:6px 0 0;font-size:13px}.admin-header-actions{align-items:center;gap:10px;display:flex}.current-user-chip{border:1px solid var(--line);border-radius:var(--radius-sm);min-width:120px;box-shadow:var(--shadow-xs);color:var(--ink-700);transition:box-shadow var(--t-base), border-color var(--t-base);background:linear-gradient(135deg,#fff 0%,#f4f7fc 100%);gap:2px;padding:8px 14px;display:grid}.current-user-chip:hover{box-shadow:var(--shadow-sm);border-color:#c7d2fe}.current-user-chip strong{color:var(--ink-900);font-size:13px;line-height:1.2}.current-user-chip span{color:var(--ink-500);font-size:12px;line-height:1.2}.admin-main{padding:26px 28px}.loading-state{color:#6b7280;background:#fff;border-radius:8px;place-items:center;min-height:360px;display:grid}.users-view{gap:18px;display:grid}.user-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.user-summary-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;gap:6px;min-height:104px;padding:18px;display:grid}.user-summary-card.is-root{background:linear-gradient(135deg,#f8fafc 0%,#eef2f7 100%);border-color:#cbd5e1}.user-summary-card span{color:#64748b;font-size:13px}.user-summary-card strong{color:#0f172a;font-size:22px;line-height:1.2}.user-summary-card em{color:#64748b;font-size:12px;font-style:normal}.users-card{border:1px solid #e5e7eb;border-radius:8px}.users-card .el-card__header{padding:22px 24px}.users-card-header{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.users-card-title{gap:8px;min-width:0;display:grid}.users-card-title strong{color:#0f172a;font-size:20px;line-height:1.35}.users-card-title span{color:#64748b;font-size:13px;line-height:1.7}.users-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;padding-top:1px;display:flex}.log-actor-cell{align-items:center;gap:3px;display:grid}.user-form-avatar{color:#1e293b;background:#e2e8f0;border-radius:8px;flex:none;place-items:center;width:38px;height:38px;font-size:15px;font-weight:700;display:grid}.users-table{--el-table-header-bg-color:#f8fafc;--el-table-row-hover-bg-color:#f8fafc;--el-table-header-text-color:#475569;--el-table-text-color:#334155}.users-table .el-table__cell{padding-top:13px;padding-bottom:13px}.users-table th.el-table__cell{color:#475569;font-weight:700}.users-table .cell{justify-content:center;align-items:center;display:flex}.user-name-text{color:#0f172a;font-size:14px;font-weight:700}.user-account-text{color:#64748b;font-size:13px;font-weight:600}.table-actions{justify-content:center;align-items:center;gap:12px;width:100%;display:flex}.user-form{gap:8px;display:grid}.user-form-identity{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:12px;margin-bottom:8px;padding:14px;display:flex}.user-form-identity strong{color:#0f172a;font-size:15px;display:block}.user-form-identity span{color:#64748b;margin-top:3px;font-size:12px;display:block}.form-note{color:#1d4ed8;background:#eff6ff;border:1px solid #dbeafe;border-radius:8px;margin-top:2px;padding:10px 12px;font-size:13px}.locked-user-note{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;gap:4px;margin-top:2px;padding:12px 14px;display:grid}.locked-user-note strong{color:#0f172a;font-size:13px}.locked-user-note span{color:#64748b;font-size:12px;line-height:1.6}.el-button{transition:background var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast), color var(--t-fast), transform var(--t-fast);font-weight:600}.el-button--primary{--el-button-bg-color:#4f46e5;--el-button-border-color:#4f46e5;--el-button-text-color:#fff;--el-button-hover-text-color:#fff;--el-button-active-text-color:#fff;--el-button-hover-bg-color:#6366f1;--el-button-hover-border-color:#6366f1;--el-button-active-bg-color:#4338ca;--el-button-active-border-color:#4338ca;--el-button-disabled-bg-color:#c7d2fe;--el-button-disabled-border-color:#c7d2fe;--el-button-disabled-text-color:#fff;color:#fff;background:linear-gradient(135deg,#6366f1 0%,#4f46e5 100%);border-color:#4f46e5;box-shadow:0 6px 16px #4f46e547}.el-button--primary:hover,.el-button--primary:focus{color:#fff;background:linear-gradient(135deg,#818cf8 0%,#6366f1 100%);border-color:#6366f1;transform:translateY(-1px);box-shadow:0 10px 22px #4f46e55c}.el-button--primary:active{color:#fff;background:#4338ca;border-color:#4338ca;transform:translateY(0);box-shadow:0 3px 8px #4f46e54d}.el-button--primary.is-disabled,.el-button--primary.is-disabled:hover,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:active{color:#fff;box-shadow:none;background:#aeb4e8;border-color:#aeb4e8;transform:none}.el-button--primary .el-icon{color:inherit}.el-button--primary.is-link,.el-button--primary.is-text{color:var(--el-color-primary);box-shadow:none;background:0 0;border-color:#0000;transform:none}.el-button:not(.el-button--primary):not(.el-button--danger):not(.is-link){--el-button-text-color:#1f2937;--el-button-bg-color:#fff;--el-button-border-color:#cbd5e1;--el-button-hover-text-color:#0f172a;--el-button-hover-bg-color:#f8fafc;--el-button-hover-border-color:#94a3b8;--el-button-active-text-color:#0f172a;color:#1f2937}.el-button.is-disabled,.el-button.is-disabled:hover,.el-button.is-disabled:focus{color:#64748b}.el-button--danger.is-plain{--el-button-text-color:#b91c1c;--el-button-hover-text-color:#fff;color:#b91c1c}.el-button--danger:not(.is-plain):not(.is-link):not(.is-text){--el-button-bg-color:#dc2626;--el-button-border-color:#dc2626;--el-button-text-color:#fff;--el-button-hover-bg-color:#ef4444;--el-button-hover-border-color:#ef4444;--el-button-hover-text-color:#fff;--el-button-active-bg-color:#b91c1c;--el-button-active-border-color:#b91c1c;--el-button-active-text-color:#fff;color:#fff}.el-button--warning:not(.is-plain):not(.is-link):not(.is-text){--el-button-bg-color:#d97706;--el-button-border-color:#d97706;--el-button-text-color:#fff;--el-button-hover-bg-color:#f59e0b;--el-button-hover-border-color:#f59e0b;--el-button-hover-text-color:#fff;--el-button-active-bg-color:#b45309;--el-button-active-border-color:#b45309;--el-button-active-text-color:#fff;color:#fff}.el-button--success:not(.is-plain):not(.is-link):not(.is-text){--el-button-bg-color:#059669;--el-button-border-color:#059669;--el-button-text-color:#fff;--el-button-hover-bg-color:#10b981;--el-button-hover-border-color:#10b981;--el-button-hover-text-color:#fff;--el-button-active-bg-color:#047857;--el-button-active-border-color:#047857;--el-button-active-text-color:#fff;color:#fff}.el-button--info:not(.is-plain):not(.is-link):not(.is-text){--el-button-bg-color:#475569;--el-button-border-color:#475569;--el-button-text-color:#fff;--el-button-hover-bg-color:#64748b;--el-button-hover-border-color:#64748b;--el-button-hover-text-color:#fff;--el-button-active-bg-color:#334155;--el-button-active-border-color:#334155;--el-button-active-text-color:#fff;color:#fff}.el-button--danger.is-disabled,.el-button--warning.is-disabled,.el-button--success.is-disabled,.el-button--info.is-disabled{color:#fff;--el-button-disabled-text-color:#fff;opacity:.6}.el-button.is-link.el-button--warning,.el-button.is-text.el-button--warning{color:#b45309}.el-button.is-link.el-button--danger,.el-button.is-text.el-button--danger{color:#dc2626}.el-button.is-link.el-button--success,.el-button.is-text.el-button--success{color:#047857}.el-button.is-link{transition:color var(--t-fast), opacity var(--t-fast)}.el-button.is-link:hover{opacity:.82}.el-button.el-button--primary:not(.is-link):not(.is-text),.el-button.el-button--success:not(.is-plain):not(.is-link):not(.is-text),.el-button.el-button--warning:not(.is-plain):not(.is-link):not(.is-text),.el-button.el-button--danger:not(.is-plain):not(.is-link):not(.is-text),.el-button.el-button--info:not(.is-plain):not(.is-link):not(.is-text),.el-button.el-button--primary:not(.is-link):not(.is-text):hover,.el-button.el-button--primary:not(.is-link):not(.is-text):focus,.el-button.el-button--primary:not(.is-link):not(.is-text):active,.el-button.el-button--success:not(.is-plain):not(.is-link):not(.is-text):hover,.el-button.el-button--success:not(.is-plain):not(.is-link):not(.is-text):focus,.el-button.el-button--success:not(.is-plain):not(.is-link):not(.is-text):active,.el-button.el-button--warning:not(.is-plain):not(.is-link):not(.is-text):hover,.el-button.el-button--warning:not(.is-plain):not(.is-link):not(.is-text):focus,.el-button.el-button--warning:not(.is-plain):not(.is-link):not(.is-text):active,.el-button.el-button--danger:not(.is-plain):not(.is-link):not(.is-text):hover,.el-button.el-button--danger:not(.is-plain):not(.is-link):not(.is-text):focus,.el-button.el-button--danger:not(.is-plain):not(.is-link):not(.is-text):active,.el-button.el-button--info:not(.is-plain):not(.is-link):not(.is-text):hover,.el-button.el-button--info:not(.is-plain):not(.is-link):not(.is-text):focus,.el-button.el-button--info:not(.is-plain):not(.is-link):not(.is-text):active{color:#fff!important}.el-button.el-button--primary:not(.is-link):not(.is-text) .el-icon,.el-button.el-button--primary:not(.is-link):not(.is-text) span,.el-button.el-button--success:not(.is-plain):not(.is-link):not(.is-text) .el-icon,.el-button.el-button--success:not(.is-plain):not(.is-link):not(.is-text) span,.el-button.el-button--warning:not(.is-plain):not(.is-link):not(.is-text) .el-icon,.el-button.el-button--warning:not(.is-plain):not(.is-link):not(.is-text) span,.el-button.el-button--danger:not(.is-plain):not(.is-link):not(.is-text) .el-icon,.el-button.el-button--danger:not(.is-plain):not(.is-link):not(.is-text) span,.el-button.el-button--info:not(.is-plain):not(.is-link):not(.is-text) .el-icon,.el-button.el-button--info:not(.is-plain):not(.is-link):not(.is-text) span{color:inherit!important}.el-button.is-plain.el-button--primary:hover,.el-button.is-plain.el-button--primary:focus,.el-button.is-plain.el-button--success:hover,.el-button.is-plain.el-button--success:focus,.el-button.is-plain.el-button--warning:hover,.el-button.is-plain.el-button--warning:focus,.el-button.is-plain.el-button--danger:hover,.el-button.is-plain.el-button--danger:focus,.el-button.is-plain.el-button--info:hover,.el-button.is-plain.el-button--info:focus{color:#fff!important}.el-button.is-plain.el-button--primary:hover .el-icon,.el-button.is-plain.el-button--success:hover .el-icon,.el-button.is-plain.el-button--warning:hover .el-icon,.el-button.is-plain.el-button--danger:hover .el-icon,.el-button.is-plain.el-button--info:hover .el-icon{color:inherit!important}.el-button.el-button--primary.is-disabled,.el-button.el-button--success.is-disabled,.el-button.el-button--warning.is-disabled,.el-button.el-button--danger.is-disabled,.el-button.el-button--info.is-disabled{color:#fff!important}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.dashboard-view{gap:14px;display:grid}.metric-card{border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:16px;display:flex;position:relative;overflow:hidden}.metric-card:before{background:linear-gradient(90deg, var(--brand-accent-soft), #38bdf8);opacity:0;height:3px;transition:opacity var(--t-base);content:"";position:absolute;inset:0 0 auto}.metric-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.metric-card:hover:before{opacity:1}.metric-card .el-card__body{justify-content:space-between;align-items:center;gap:16px;width:100%;min-height:112px;padding:20px;display:flex}.metric-card-copy{gap:6px;min-width:0;display:grid}.metric-card-copy span{color:#64748b;font-size:13px;font-weight:600}.metric-card-copy strong{color:#0f172a;font-size:30px;line-height:1}.metric-card-copy em{color:#64748b;font-size:12px;font-style:normal}.metric-icon{width:50px;height:50px;transition:transform var(--t-base);border-radius:14px;flex:0 0 50px;justify-content:center;align-items:center;font-size:24px;display:inline-flex;box-shadow:inset 0 0 0 1px #0f172a0a}.metric-card:hover .metric-icon{transform:scale(1.06)rotate(-3deg)}.metric-blue{color:#2563eb;background:#eff6ff}.metric-violet{color:#6366f1;background:#f5f3ff}.metric-green{color:#10b981;background:#ecfdf5}.metric-amber{color:#f59e0b;background:#fffbeb}.metric-grid .el-icon{color:#2563eb;background:#eff6ff;border-radius:8px;justify-content:center;align-items:center;width:38px;height:38px;font-size:20px;display:inline-flex}.metric-grid span{color:#6b7280}.metric-grid strong{color:#111827;font-size:30px}.work-card,.upload-card{border-radius:8px;margin-bottom:18px}.work-card .el-card__header{padding:15px 18px}.work-card .el-card__body{padding:18px}.card-header{justify-content:space-between;align-items:center;gap:16px;min-width:0;display:flex}.card-header strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.dashboard-panel{border-radius:14px;overflow:hidden}.dashboard-panel .el-card__header{border-bottom-color:var(--line-soft);background:linear-gradient(#fbfcff 0%,#f6f8fe 100%);padding:15px 18px}.dashboard-panel .el-card__body{padding:0}.dashboard-panel-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.dashboard-panel-header strong{color:#111827;font-size:16px;line-height:1.2}.dashboard-panel-header span{color:#64748b;font-size:13px;line-height:1.3}.dashboard-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:14px;display:grid}.dashboard-chart-card{flex-direction:column;min-height:282px;display:flex}.dashboard-chart-card .el-card__body{flex:1;min-height:220px;padding:18px}.wide-chart-card{grid-column:auto}.status-chart-body{justify-content:space-between;align-items:center;gap:24px;height:100%;display:flex}.donut-chart{border-radius:50%;flex:0 0 146px;place-items:center;width:146px;height:146px;display:grid;position:relative;box-shadow:inset 0 0 0 1px #0f172a0a}.donut-chart:after{content:"";background:#fff;border-radius:50%;position:absolute;inset:18px}.donut-chart>div{z-index:1;text-align:center;gap:6px;display:grid;position:relative}.donut-chart strong{color:#0f172a;font-size:28px;line-height:1}.donut-chart span{color:#64748b;font-size:12px;font-weight:700}.donut-legend{flex:1;gap:12px;min-width:0;display:grid}.legend-row{color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;grid-template-columns:12px minmax(56px,1fr) auto 48px;align-items:center;gap:10px;padding:12px 14px;font-size:13px;line-height:1.2;display:grid}.legend-row strong{color:#0f172a;font-size:14px}.legend-row em{color:#64748b;text-align:right;font-style:normal}.legend-dot{border-radius:999px;width:10px;height:10px}.chart-blue{background:#2563eb}.chart-amber{background:#f59e0b}.chart-green{background:#10b981}.chart-violet{background:#6366f1}.bar-chart-list,.rank-chart-list,.summary-chart-list{gap:12px;display:grid}.bar-chart-row{gap:8px;display:grid}.bar-chart-info{color:#334155;justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.bar-chart-info span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.bar-chart-info strong{color:#0f172a;flex:none;font-size:13px}.bar-track,.rank-track,.mini-track{background:#e2e8f0;border-radius:999px;overflow:hidden}.bar-track{height:12px}.bar-fill,.rank-fill,.mini-fill{border-radius:inherit;height:100%;transition:width .24s}.bar-fill{background:linear-gradient(90deg,#2563eb,#22c55e);min-width:8px}.rank-chart-row{grid-template-columns:30px minmax(126px,.62fr) minmax(150px,1fr) 58px;align-items:center;gap:10px;display:grid}.rank-index{color:#2563eb;background:#eff6ff;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:800;display:inline-flex}.rank-copy{gap:3px;min-width:0;display:grid}.rank-copy strong{color:#0f172a;text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:1.3;overflow:hidden}.rank-copy span{color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.rank-track{height:10px}.rank-fill{background:linear-gradient(90deg,#6366f1,#38bdf8);min-width:8px}.rank-chart-row em{color:#334155;text-align:right;font-size:13px;font-style:normal;font-weight:700}.summary-chart-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;grid-template-columns:42px minmax(82px,.65fr) minmax(110px,1fr);align-items:center;gap:12px;padding:13px;display:grid}.summary-chart-icon{opacity:.14;border-radius:12px;width:42px;height:42px}.summary-chart-row span{color:#64748b;font-size:12px;font-weight:700;display:block}.summary-chart-row strong{color:#0f172a;margin-top:4px;font-size:24px;line-height:1;display:block}.mini-track{height:8px}.chart-empty-state{color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;place-items:center;min-height:180px;font-size:14px;display:grid}.compact-select{flex:0 0 240px;width:240px}.toolbar{align-items:center;gap:12px;display:flex}.toolbar .el-input{width:260px}.category-view{gap:16px;display:grid}.category-page-bar{background:#fff;border:1px solid #edf0f4;border-radius:14px;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex;box-shadow:0 12px 30px #0f172a0a}.category-page-bar>div:first-child{gap:4px;min-width:0;display:grid}.category-page-bar strong{color:#111827;font-size:20px;line-height:1.25}.category-page-bar span{color:#64748b;font-size:13px;line-height:1.5}.category-page-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.category-workspace{grid-template-columns:minmax(420px,.9fr) minmax(620px,1.25fr);align-items:start;gap:20px;display:grid}.category-list-card,.series-list-card{border-radius:14px;overflow:hidden}.category-list-card .el-card__header,.series-list-card .el-card__header{padding:18px 20px}.category-card-header,.series-card-header,.series-card-header div{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.series-card-header div{justify-content:flex-start}.current-category-tag{color:#fff;text-overflow:ellipsis;white-space:nowrap;background:#1f2937;border-radius:999px;align-items:center;max-width:180px;height:26px;padding:0 12px;font-size:12px;font-weight:800;line-height:1;display:inline-flex;overflow:hidden}.category-card-header strong,.series-card-header strong{color:#111827;white-space:nowrap;font-size:16px}.category-card-header span,.series-card-header>span,.series-pager span{color:#8a94a6;white-space:nowrap;font-size:12px}.series-card-header .current-category-tag{color:#fff;font-size:12px}.category-form-inline{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;display:grid}.category-dialog{border-radius:14px}.category-dialog .el-dialog__header{border-bottom:1px solid #edf0f4;padding-bottom:12px}.category-dialog .el-dialog__body{padding-top:20px}.category-dialog-form .el-select,.category-dialog-form .el-input,.category-dialog-form .el-input-number{width:100%}.category-table{--el-table-header-bg-color:#f8fafc;--el-table-row-hover-bg-color:#f7fbff}.category-table .el-tag.el-tag--success{--el-tag-bg-color:#dcfce7;--el-tag-border-color:#bbf7d0;--el-tag-text-color:#166534}.category-table .el-tag.el-tag--info{--el-tag-bg-color:#f1f5f9;--el-tag-border-color:#cbd5e1;--el-tag-text-color:#475569}.category-table .el-table__cell{padding:12px 0}.category-row-name{color:#4b5563;width:100%;min-width:0;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0;font-weight:700;display:inline-flex}.category-row-name:before{content:"";background:0 0;border-radius:999px;align-self:stretch;width:4px;min-height:28px}.category-row-name span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.category-row-name.active{color:#111827}.category-row-name.active:before{background:#2563eb}.action-cell-right{justify-content:flex-end}.series-list-card{min-height:560px}.series-pager{background:#fbfcfe;border-top:1px solid #edf0f4;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;display:flex}.series-page-size{align-items:center;gap:10px;min-width:0;display:flex}.series-page-size .el-select{width:86px}.action-cell{white-space:nowrap;align-items:center;gap:8px;display:flex}.table-link{color:#2563eb;max-width:100%;font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;padding:0;font-weight:600;overflow:hidden}.table-link:hover{color:#1d4ed8}.table-thumb{aspect-ratio:16/9;object-fit:cover;background:#eef2f6;border:1px solid #e5e7eb;border-radius:6px;width:112px;display:block}.upload-card .el-upload-dragger{padding:42px 20px}.two-column{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;display:grid}.category-switch{margin-bottom:16px}.admin-pagination{justify-content:flex-end;margin-top:18px}.material-toolbar{grid-template-columns:minmax(260px,1fr) 180px 180px 150px;gap:12px;margin-bottom:16px;display:grid}.material-title{color:#111827;font-weight:600;line-height:1.5}.tag-list{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.switch-row{flex-wrap:wrap;align-items:center;gap:12px 18px;display:flex}.dialog-footer{justify-content:flex-end;gap:10px;display:flex}.material-dialog{--el-dialog-padding-primary:18px}.material-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;display:grid}.material-form-grid .span-2{grid-column:1/-1}.material-form .el-select,.material-form .el-input,.material-form .el-input-number,.preview-uploader{width:100%}.upload-preview,.banner-preview,.qr-preview{object-fit:cover;border-radius:8px;width:100%;max-width:360px;display:block}.materials-view{gap:16px;display:grid}.material-page-bar{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.material-page-bar strong{color:#0f172a;font-size:22px;line-height:1.2;display:block}.material-page-bar span{color:#64748b;font-size:13px;line-height:1.5}.material-page-actions{white-space:nowrap;gap:10px;display:flex}.material-filter-card,.material-table-card{border-radius:14px;overflow:hidden}.material-filter-card .el-card__body{padding:18px 20px}.material-table-card .el-card__body{padding:0}.material-batch-bar{background:#fff7f7;border-bottom:1px solid #fee2e2;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;display:flex}.material-batch-bar strong{color:#991b1b;font-size:14px;line-height:1.35;display:block}.material-batch-bar span{color:#64748b;text-overflow:ellipsis;white-space:nowrap;max-width:620px;margin-top:2px;font-size:12px;line-height:1.4;display:block;overflow:hidden}.material-batch-bar .el-button{flex:none}.material-rename-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 16px;display:grid}.material-rename-grid .el-form-item:first-child,.material-rename-grid .el-form-item:nth-child(2){grid-column:span 3}.material-rename-separator{grid-template-columns:auto minmax(90px,1fr);align-items:center;gap:12px;display:grid}.material-rename-preview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-top:14px;overflow:hidden}.material-rename-preview-head{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.material-rename-preview-head strong{color:#0f172a;font-size:13px}.material-rename-preview-head span{color:#64748b;font-size:12px}.material-rename-preview-list{gap:1px;display:grid}.material-rename-preview-row{background:#fff;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:14px;padding:9px 12px;display:grid}.material-rename-preview-row span,.material-rename-preview-row strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.material-rename-preview-row span{color:#64748b;font-size:12px}.material-rename-preview-row strong{color:#0f172a;font-size:13px}.material-filter-grid{grid-template-columns:minmax(260px,1.2fr) repeat(3,minmax(160px,.8fr)) auto;align-items:center;gap:12px;display:grid}.material-filter-grid .el-input,.material-filter-grid .el-select{width:100%}.material-table{--el-table-header-bg-color:#f8fafc;--el-table-row-hover-bg-color:#f7fbff}.material-table .el-table__cell{padding-top:14px;padding-bottom:14px}.material-table th.el-table__cell{color:#475569;font-weight:700}.material-sort-header{color:#64748b;font-size:17px}.material-drag-handle{color:#475569;cursor:grab;background:#fff;border:1px solid #cbd5e1;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;transition:background-color .16s,border-color .16s,color .16s,transform .16s,box-shadow .16s;display:inline-flex}.material-drag-handle:hover{color:#0f172a;background:#f8fafc;border-color:#94a3b8;transform:translateY(-1px);box-shadow:0 8px 18px #0f172a14}.material-drag-handle:active,.material-drag-handle.is-dragging{cursor:grabbing;color:#fff;background:#334155;border-color:#334155}.material-drag-handle.is-disabled,.material-drag-handle:disabled{cursor:not-allowed;opacity:.42;box-shadow:none;transform:none}.material-table .is-material-dragging-row>.el-table__cell,.category-table .is-category-dragging-row>.el-table__cell{background:#f1f5f9!important}.category-drag-handle{width:32px;height:32px}.material-info-cell{align-items:center;gap:14px;min-width:0;display:flex}.material-thumb{background:#eef2f6;border:1px solid #e2e8f0;border-radius:8px;flex:0 0 108px;width:108px;height:68px;overflow:hidden}.material-info-copy{min-width:0}.material-title{color:#111827;text-overflow:ellipsis;white-space:nowrap;font-weight:700;line-height:1.4;overflow:hidden}.material-meta{color:#64748b;margin-top:4px;font-size:12px}.material-category-cell{gap:4px;display:grid}.material-category-cell strong{color:#0f172a;font-size:14px;line-height:1.4}.material-category-cell span{color:#64748b;font-size:12px;line-height:1.4}.material-tags,.material-attr-tags{margin-top:8px}.material-muted-pill{color:#64748b;background:#f1f5f9;border-radius:999px;align-items:center;height:24px;padding:0 10px;font-size:12px;line-height:1;display:inline-flex}.material-pagination{margin:16px 20px 18px}.material-dialog{--el-dialog-padding-primary:18px;border-radius:14px;overflow:hidden}.material-dialog .el-dialog__header{margin-right:0;padding-bottom:0}.material-dialog-header{align-items:center;gap:12px;display:flex}.material-dialog-icon{color:#2563eb;background:#eff6ff;border-radius:10px;flex:0 0 40px;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;display:inline-flex}.material-dialog-header strong{color:#111827;font-size:17px;line-height:1.2;display:block}.material-dialog-header span{color:#64748b;font-size:12px;line-height:1.5}.material-dialog .el-dialog__body{max-height:min(74vh,760px);padding-top:12px;overflow:auto}.material-form .el-form-item{margin-bottom:18px}.material-form .el-form-item__label{color:#334155;font-weight:700}.material-status-group{width:100%}.material-status-group .el-radio-button__inner{min-width:86px}.material-check-grid{flex-wrap:wrap;align-items:center;gap:10px 18px;min-height:32px;display:flex}.material-check-grid .el-checkbox{margin-right:0}.material-auto-note{color:#64748b;margin:10px 0 0;font-size:12px;line-height:1.5}.material-upload-zone .el-upload{display:block}.material-upload-zone .el-upload-dragger{background:#f8fafc;border-color:#cbd5e1;border-radius:12px;width:100%;padding:30px 18px}.material-upload-zone .el-upload-dragger:hover{border-color:#93c5fd}.material-upload-zone .el-upload-dragger .el-icon--upload{color:#2563eb}.material-upload-zone .el-upload__text{color:#0f172a;font-weight:700}.material-upload-zone .el-upload__tip{color:#64748b}.material-upload-preview{aspect-ratio:16/9;border-radius:10px;width:100%;max-width:none}.material-batch-upload .el-upload-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin-top:12px;display:grid}.material-batch-upload .el-upload-list__item{border-radius:8px;margin:0}.banners-view{display:grid}.banner-workspace{border-radius:14px;overflow:hidden}.banner-workspace .el-card__header{background:#fafcff;border-bottom-color:#edf2f7;padding:16px 20px}.banner-workspace .el-card__body{padding:22px 24px 20px}.banner-header{justify-content:space-between;align-items:center;gap:16px;min-width:0;display:flex}.banner-header div{gap:4px;min-width:0;display:grid}.banner-header strong{color:#111827;font-size:16px;line-height:1.2}.banner-header span{color:#6b7280;font-size:12px;line-height:1.4}.banner-body{grid-template-columns:340px minmax(640px,1fr);align-items:start;gap:24px;display:grid}.banner-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:18px}.banner-form .el-form-item{margin-bottom:18px}.banner-form .el-form-item:last-child{margin-bottom:0}.banner-form .el-form-item__label{color:#334155;font-weight:700}.banner-form .el-select,.banner-form .el-input{width:100%}.banner-opacity-control{grid-template-columns:116px minmax(0,1fr) 48px;align-items:center;gap:12px;display:grid}.banner-opacity-control .el-input-number{width:116px}.banner-opacity-control span{color:#334155;text-align:right;font-size:13px;font-weight:700}.banner-panel{gap:14px;min-width:0;display:grid}.banner-panel-head{justify-content:space-between;align-items:center;gap:16px;min-width:0;display:flex}.banner-panel-head div{gap:4px;min-width:0;display:grid}.banner-panel-head strong{color:#0f172a;font-size:16px;line-height:1.2}.banner-panel-head span{color:#64748b;font-size:12px;line-height:1.4}.banner-uploader,.banner-uploader .el-upload,.banner-uploader .el-upload-dragger{width:100%}.banner-uploader .el-upload-dragger{background:#f8fafc;border-color:#cbd5e1;border-radius:12px;min-height:360px;padding:0;overflow:hidden}.banner-uploader .el-upload-dragger:hover{border-color:#64748b}.banner-uploader .el-upload-dragger .el-icon--upload{color:#2563eb;margin-bottom:10px}.banner-uploader .el-upload-dragger .el-upload__text{color:#0f172a;font-size:14px;font-weight:700}.banner-tip{color:#64748b;margin:0;font-size:12px;line-height:1.6}.banner-image-frame{aspect-ratio:16/9;background:#0f172a;width:100%;min-height:360px;position:relative;overflow:hidden}.banner-image-frame span{z-index:2;color:#fff;opacity:0;background:#0f172ac7;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:700;transition:opacity .18s;position:absolute;bottom:16px;right:16px}.banner-image-frame:after{content:"";opacity:0;background:linear-gradient(#0000 58%,#0f172a42 100%);transition:opacity .18s;position:absolute;inset:0}.banner-uploader:hover .banner-image-frame span,.banner-uploader:hover .banner-image-frame:after{opacity:1}.banner-preview{object-fit:cover;border-radius:0;width:100%;max-width:none;height:100%;min-height:360px}.banner-empty-uploader{color:#475569;background:linear-gradient(135deg,#f8fafc 0%,#eef2f7 100%);align-content:center;place-items:center;gap:12px;min-height:360px;padding:24px;display:grid}.banner-footer{border-top:1px solid #eef2f7;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:18px;display:flex}.banner-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.qr-preview{max-width:220px}.settings-view{gap:18px;display:grid}.settings-center{max-width:1360px}.settings-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:20px;display:grid}.settings-main,.settings-side{gap:20px;display:grid}.settings-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;box-shadow:0 14px 34px #0f172a0f}.settings-card .el-card__header{background:linear-gradient(#fff 0%,#f8fafc 100%);border-bottom-color:#edf2f7;padding:18px 20px}.settings-card .el-card__body{padding:20px}.settings-card-header{gap:4px;display:grid}.settings-card-header-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:14px}.settings-card-header strong{color:#111827;font-size:16px;line-height:1.2}.settings-card-header span{color:#6b7280;font-size:12px;line-height:1.4}.settings-form .el-form-item{margin-bottom:18px}.settings-form .el-form-item:last-child{margin-bottom:0}.settings-form .el-form-item__label{color:#334155;font-weight:700}.settings-form .el-input,.settings-form .el-select,.settings-form .el-textarea,.settings-form .el-input-number{width:100%}.settings-storage-card{border-color:#dbe4ef}.settings-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;display:grid}.settings-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 16px;display:grid}.settings-domain-grid{align-items:end}.settings-switch-box{background:#f8fafc;border:1px solid #dbe4ef;border-radius:8px;align-items:center;gap:12px;min-height:40px;padding:0 12px;display:flex}.settings-switch-box span{color:#475569;font-size:12px;line-height:1.45}.settings-helper-text{color:#475569;background:#f8fafc;border:1px solid #dbe4f0;border-radius:10px;margin:2px 0 0;padding:12px 14px;font-size:12px;line-height:1.7}.settings-preset-card .el-card__body{padding:14px}.settings-preset-list{gap:10px;display:grid}.settings-preset-empty{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;gap:6px;padding:16px;display:grid}.settings-preset-empty strong,.settings-preset-info strong{color:#0f172a;font-size:14px;line-height:1.3}.settings-preset-empty span,.settings-preset-info span,.settings-preset-info em{color:#64748b;font-size:12px;line-height:1.45}.settings-preset-info em{font-style:normal}.settings-preset-item{background:#fff;border:1px solid #e2e8f0;border-radius:10px;gap:12px;padding:12px;display:grid}.settings-preset-info{gap:4px;min-width:0;display:grid}.settings-preset-info strong,.settings-preset-info span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.settings-preset-actions{flex-wrap:wrap;gap:8px;display:flex}.settings-preset-actions .el-button{margin-left:0}.settings-preset-actions .el-button:first-child{flex:auto}.settings-preset-header{flex-direction:column;gap:12px;display:flex}.settings-preset-toolbar{flex-wrap:wrap;gap:8px;display:flex}.settings-preset-toolbar .el-button{flex:auto;margin-left:0}.settings-preset-file-input{display:none}.settings-qr-card{flex-direction:column;min-height:100%;display:flex}.settings-qr-card .el-card__body{flex:1}.settings-qr-layout{grid-template-rows:auto auto;gap:14px;height:100%;display:grid}.settings-qr-preview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;gap:12px;padding:16px;display:grid}.settings-qr-profile{align-items:center;gap:12px;min-width:0;display:flex}.settings-qr-profile strong{color:#0f172a;font-size:15px;line-height:1.2;display:block}.settings-qr-profile span{color:#64748b;font-size:12px}.settings-qr-avatar{background:linear-gradient(135deg,#cbd5e1,#94a3b8);border-radius:50%;flex:0 0 38px;width:38px;height:38px}.settings-qr-frame{background:#fff;border:1px dashed #cbd5e1;border-radius:12px;place-items:center;min-height:210px;padding:14px;display:grid}.settings-qr-frame img{border-radius:8px;width:min(188px,100%);display:block}.settings-qr-position{justify-self:center}.settings-qr-empty{color:#64748b;text-align:center;place-items:center;gap:10px;display:grid}.settings-qr-empty .el-icon{color:#2563eb;background:#eff6ff;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;display:inline-flex}.settings-qr-note{color:#64748b;margin:0;font-size:12px;line-height:1.5}.settings-qr-actions{gap:12px;display:grid}.settings-qr-dropzone{width:100%}.settings-qr-dropzone .el-upload{display:block}.settings-qr-dropzone .el-upload-dragger{background:#fff;border-color:#cbd5e1;border-radius:12px;width:100%;padding:20px 18px}.settings-qr-dropzone .el-upload__text{color:#0f172a;font-weight:700}.settings-qr-dropzone .el-upload__tip{color:#64748b}.settings-qr-toolbar{justify-content:flex-end;display:flex}.settings-action-bar{border-top:1px solid #dde6f0;justify-content:flex-end;gap:12px;padding:18px 20px 0;display:flex}.settings-action-bar .el-button{min-width:112px}.logs-view{gap:16px;display:grid}.logs-card{background:#fff;border:1px solid #dde6f0;border-radius:14px;overflow:hidden;box-shadow:0 16px 34px #0f172a14}.logs-card .el-card__header{background:linear-gradient(#fff 0%,#f8fafc 100%);border-bottom-color:#e2e8f0;padding:18px 22px}.logs-card .el-card__body{background:#fff;padding:0}.logs-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.logs-header strong{color:#0f172a;font-size:16px;line-height:1.3;display:block}.logs-header span{color:#64748b;font-size:12px;line-height:1.5}.logs-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.log-level-select,.log-keep-select{width:140px}.logs-table{--el-table-bg-color:#fff;--el-table-tr-bg-color:#fff;--el-table-header-bg-color:#f8fafc;--el-table-row-hover-bg-color:#f8fafc;--el-table-border-color:#e2e8f0;--el-table-header-text-color:#475569;--el-table-text-color:#334155;color:#334155}.logs-table .el-table__cell{padding-top:13px;padding-bottom:13px}.logs-table th.el-table__cell{color:#475569;font-weight:700}.logs-table .el-table__body tr{transition:background-color .16s}.logs-table .el-table__body tr:hover{background:#f8fafc}.log-actor-cell,.log-request-cell,.log-target-cell,.log-detail-cell,.log-network-cell,.log-result-cell{min-width:0;display:grid}.log-actor-cell{gap:5px}.log-actor-cell strong{color:#0f172a;font-size:13px;line-height:1.35}.log-actor-cell span{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:4px;width:max-content;max-width:100%;padding:2px 7px;font-size:11px;line-height:1.35}.log-request-cell{gap:7px}.log-module{color:#475569;font-size:12px;line-height:1.3}.log-method{min-width:46px;margin-right:7px;font-family:Consolas,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:800;display:inline-flex}.log-method.is-get{color:#0369a1}.log-method.is-post{color:#047857}.log-method.is-put{color:#7c3aed}.log-method.is-delete{color:#dc2626}.log-method.is-other{color:#475569}.log-path{color:#475569;overflow-wrap:anywhere;font-family:Consolas,SFMono-Regular,Menlo,monospace;font-size:12px}.log-target-cell{gap:5px}.log-target-cell strong{color:#0f172a;overflow-wrap:anywhere;font-size:13px;line-height:1.35}.log-target-cell span{color:#64748b;font-size:12px}.log-detail-cell{gap:5px}.log-detail-cell strong{color:#0f172a;overflow-wrap:anywhere;font-size:13px;line-height:1.35}.log-detail-cell span{color:#475569;overflow-wrap:anywhere;font-size:12px;line-height:1.45}.log-detail-cell em{color:#64748b;overflow-wrap:anywhere;font-size:12px;font-style:normal;line-height:1.45}.log-detail-cell em.is-failed{color:#b91c1c;font-weight:700}.log-network-cell{gap:5px}.log-network-cell strong{color:#334155;overflow-wrap:anywhere;font-family:Consolas,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.4}.log-network-cell span{color:#64748b;text-overflow:ellipsis;white-space:nowrap;max-width:260px;font-size:11px;line-height:1.45;overflow:hidden}.log-reason-cell{color:#94a3b8;overflow-wrap:anywhere;font-size:13px;line-height:1.45}.log-reason-cell.is-failed{color:#b91c1c;font-weight:600}.log-result-cell{justify-items:center;gap:5px}.log-result-cell .el-tag{border-radius:4px;justify-content:center;min-width:52px;font-weight:700}.log-result-cell span,.log-result-cell small{color:#64748b;font-family:Consolas,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.2}.logs-pagination{margin:16px 20px 18px}.tools-view{gap:16px;display:grid}.tools-card{background:#fff;border:1px solid #dde6f0;border-radius:14px;overflow:hidden;box-shadow:0 16px 34px #0f172a0f}.tools-card .el-card__header{background:linear-gradient(#fff 0%,#f8fafc 100%);border-bottom-color:#e2e8f0;padding:18px 22px}.tools-header,.tools-card-title{justify-content:space-between;align-items:center;gap:16px;display:flex}.tools-card-title{justify-content:stretch;display:grid}.tools-header strong,.tools-card-title strong{color:#0f172a;font-size:16px;line-height:1.3;display:block}.tools-header span,.tools-card-title span{color:#64748b;font-size:12px;line-height:1.5}.tools-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:18px 20px;display:grid}.tools-summary-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;gap:6px;padding:14px 16px;display:grid}.tools-summary-item span{color:#64748b;font-size:12px}.tools-summary-item strong{color:#111827;overflow-wrap:anywhere;min-width:0;font-size:14px}.tools-diagnostic-table{--el-table-header-bg-color:#f8fafc;--el-table-row-hover-bg-color:#f8fafc;--el-table-border-color:#e2e8f0;color:#334155}.tools-action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.tools-action-card .el-card__body{gap:12px;padding:20px 22px;display:grid}.backup-export-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.backup-export-row span{color:#64748b;font-size:13px}@media (width<=1440px){.category-workspace{grid-template-columns:minmax(380px,.9fr) minmax(520px,1.1fr)}.series-list-card{grid-column:auto}.dashboard-chart-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media (width<=1180px){.category-page-bar{flex-direction:column;align-items:stretch}.category-page-actions{justify-content:flex-start}.category-workspace{grid-template-columns:1fr}.series-list-card{grid-column:auto}.series-pager{flex-direction:column;align-items:flex-start}.settings-layout,.settings-grid-2,.settings-grid-3{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-chart-grid,.tools-summary-grid,.tools-action-grid{grid-template-columns:1fr}.wide-chart-card{grid-column:auto}.status-chart-body{flex-direction:column;align-items:stretch}.donut-chart{align-self:center}.rank-chart-row{grid-template-columns:28px minmax(0,1fr);row-gap:8px}.rank-copy,.rank-track,.rank-chart-row em{grid-column:2}.rank-track{grid-column:1/-1}.summary-chart-row{grid-template-columns:42px minmax(0,1fr)}}@media (width<=760px){.dashboard-chart-card .el-card__body{padding:16px}.legend-row,.summary-chart-row{grid-template-columns:12px minmax(0,1fr);row-gap:8px}.legend-row strong,.legend-row em,.summary-chart-row strong,.rank-chart-row em{text-align:left;grid-column:2}.rank-track,.mini-track{grid-column:1/-1}}.el-card__header{border-bottom-color:var(--line-soft)}.card-header strong,.dashboard-panel-header strong,.users-card-title strong,.category-page-bar strong{position:relative}.el-input__wrapper,.el-textarea__inner{border-radius:var(--radius-sm);box-shadow:0 0 0 1px var(--line) inset;transition:box-shadow var(--t-fast), background var(--t-fast)}.el-input__wrapper:hover,.el-textarea__inner:hover{box-shadow:inset 0 0 0 1px #c7d2fe}.el-input__wrapper.is-focus,.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--brand-accent) inset, var(--shadow-ring)}.el-select .el-select__wrapper{border-radius:var(--radius-sm);transition:box-shadow var(--t-fast)}.el-table{--el-table-border-color:var(--line-soft);--el-table-header-bg-color:#f6f8fc;--el-table-header-text-color:#475569;--el-table-row-hover-bg-color:#f3f6fd}.el-table th.el-table__cell{letter-spacing:.2px;font-weight:700}.el-table .el-table__row{transition:background var(--t-fast)}.el-table__body tr:hover>td.el-table__cell{background:#f3f6fd}.el-dialog{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.el-dialog__header{border-bottom:1px solid var(--line-soft);margin-right:0;padding:20px 24px 14px}.el-dialog__title{color:var(--ink-900);letter-spacing:.2px;font-weight:700}.el-dialog__body{padding:22px 24px}.el-dialog__footer{border-top:1px solid var(--line-soft);padding:14px 24px 20px}.el-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a6b}.el-tag{border-radius:999px;font-weight:600}.el-switch.is-checked .el-switch__core{background:var(--brand-accent);border-color:var(--brand-accent)}.el-pagination button,.el-pagination .el-pager li{transition:background var(--t-fast), color var(--t-fast), box-shadow var(--t-fast);border-radius:8px}.el-pagination .el-pager li.is-active{background:var(--brand-accent);color:#fff;box-shadow:0 4px 12px #4f46e54d}.el-popper{border-radius:var(--radius-sm)}*{scrollbar-width:thin;scrollbar-color:#c2ccdc transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background-color:#c2ccdc;background-clip:padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background-color:#a5b1c6}::-webkit-scrollbar-track{background:0 0}.admin-auth-card{box-shadow:var(--shadow-lg)}.admin-auth-shell{background:radial-gradient(800px 420px at 50% -10%,#4f46e51f,#0000 60%),linear-gradient(#eef2f6 0%,#e2e8f0 100%)}.el-table .el-table__header-wrapper th.el-table__cell,.el-table__header-wrapper{z-index:3;position:sticky;top:0}.el-table__header-wrapper{box-shadow:0 1px 0 var(--line-soft)}.el-table th.el-table__cell>.cell{color:var(--ink-700)}.el-table .el-table__body tr.el-table__row--striped>td.el-table__cell,.el-table .el-table__body tr:nth-child(2n)>td.el-table__cell{background:#fafbfe}.el-table .el-table__body tr.el-table__row>td.el-table__cell{transition:background var(--t-fast), box-shadow var(--t-fast);position:relative}.el-table .el-table__body tr.el-table__row:hover>td.el-table__cell{background:#eef2ff!important}.el-table .el-table__body tr.el-table__row:hover>td.el-table__cell:first-child:before{content:"";background:var(--brand-accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:0;bottom:0;left:0}.el-table .el-table__body tr.current-row>td.el-table__cell{background:#e7ecff!important}.el-table td.el-table__cell .cell{color:var(--ink-900);line-height:1.55}.action-cell .el-button.is-link,.action-cell .el-button.is-text{height:28px;transition:background var(--t-fast), color var(--t-fast), transform var(--t-fast);border-radius:7px;margin:0;padding:4px 8px}.action-cell .el-button.is-link+.el-button.is-link,.action-cell .el-button.is-text+.el-button.is-text{margin-left:2px}.action-cell .el-button.is-link:hover,.action-cell .el-button.is-text:hover{background:#4f46e51a;transform:translateY(-1px)}.action-cell .el-button.is-link.el-button--danger:hover,.action-cell .el-button.is-text.el-button--danger:hover{background:#dc26261a}.action-cell .el-button.is-link.el-button--warning:hover,.action-cell .el-button.is-text.el-button--warning:hover{background:#d977061f}.action-cell .el-button.is-link.el-button--success:hover,.action-cell .el-button.is-text.el-button--success:hover{background:#0596691a}.action-cell .action-divider{background:var(--line);width:1px;height:14px;margin:0 2px}.el-table__empty-block{min-height:220px}.el-table__empty-text{color:var(--ink-500);font-size:13.5px;line-height:1.7}.el-loading-mask{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background-color:#ffffffb8}.el-loading-spinner .circular .path{stroke:var(--brand-accent)}.el-loading-spinner .el-loading-text{color:var(--ink-500)}.el-pagination{color:var(--ink-500);align-items:center;gap:6px}.el-pagination button:hover:not(:disabled),.el-pagination .el-pager li:hover:not(.is-active){color:var(--brand-accent);background:#4f46e514}.el-pagination .el-pager li{font-weight:600}.el-tag{border-width:1px;padding:0 11px}.el-tag.el-tag--success{color:#047857;background:#e7f6ee;border-color:#b6e3c9}.el-tag.el-tag--warning{color:#b45309;background:#fdf2e2;border-color:#f6dcae}.el-tag.el-tag--danger{color:#b91c1c;background:#fdeaea;border-color:#f6c5c5}.el-tag.el-tag--info{color:#475569;background:#eef1f6;border-color:#d8dee9}.el-tag.el-tag--primary{color:#4338ca;background:#ecebfc;border-color:#cbc8f6}.el-form-item__label{color:var(--ink-700);font-weight:600}.el-form-item.is-required .el-form-item__label:before{color:#dc2626}.el-form-item{margin-bottom:20px}.el-input__wrapper,.el-textarea__inner,.el-select__wrapper{transition:box-shadow var(--t-fast), border-color var(--t-fast)}.el-input__wrapper:hover,.el-select__wrapper:hover{box-shadow:inset 0 0 0 1px #c4cbe6}.el-form-item__error{padding-top:3px;font-weight:500}.el-dialog__body .el-divider--horizontal{margin:18px 0}.el-descriptions__label{color:var(--ink-500);font-weight:600}.el-descriptions__content{color:var(--ink-900)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
