:root{color:#182230;background:#f4f6f9;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;--brand: #2667ff;--brand-dark: #1749c6;--line: #e5e9f0;--muted: #667085}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f4f6f9}button,input{font:inherit}.admin-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:20;width:238px;overflow-y:auto;background:#101828;transition:width .2s ease}.collapsed .sidebar{width:64px}.brand{height:64px;display:flex;align-items:center;gap:12px;padding:0 18px;color:#fff;letter-spacing:.04em;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--brand);font-weight:800}.side-menu{border:0!important;background:transparent!important}.side-menu .el-menu-item,.side-menu .el-sub-menu__title{color:#98a2b3}.side-menu .el-menu-item:hover,.side-menu .el-sub-menu__title:hover{color:#fff;background:#1d2939}.side-menu .el-menu-item.is-active{color:#fff;background:#2667ff}.side-menu .el-menu{background:#0d1420}.workspace{width:calc(100% - 238px);margin-left:238px;transition:margin-left .2s ease,width .2s ease}.collapsed .workspace{width:calc(100% - 64px);margin-left:64px}.topbar{position:sticky;top:0;z-index:10;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--line);background:#fffffff0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar-right{display:flex;align-items:center;gap:16px;color:var(--muted)}.content{padding:28px;max-width:1680px;margin:0 auto}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.page-header h1{margin:0;font-size:26px;letter-spacing:-.02em}.page-header p{margin:7px 0 0;color:var(--muted)}.page-actions,.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.surface{padding:20px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 3px 14px #1018280a}.toolbar{margin-bottom:18px}.table-footer{display:flex;justify-content:flex-end;padding-top:18px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.metric-card{padding:20px;border:1px solid var(--line);border-radius:14px;background:#fff}.metric-card span{color:var(--muted);font-size:14px}.metric-card strong{display:block;margin-top:10px;font-size:30px}.chart-grid{display:grid;grid-template-columns:2fr 1fr;gap:18px}.chart{height:340px}.dialog-footer{display:flex;justify-content:flex-end;gap:10px}.rule-list{display:grid;gap:8px;margin-top:10px}.rule-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#f8fafc}.result-box{padding:16px;border-radius:10px;background:#f8fafc;white-space:pre-wrap;word-break:break-all;max-height:360px;overflow:auto}.login-page{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 15% 15%,#315efb 0,#152a73 28%,#0b1220 72%)}.login-panel{width:min(940px,100%);min-height:520px;display:grid;grid-template-columns:1.1fr .9fr;overflow:hidden;border-radius:24px;background:#fff;box-shadow:0 30px 80px #0000004d}.login-intro{padding:72px 56px;color:#fff;background:linear-gradient(145deg,#1f55dc,#102d80)}.login-intro h1{margin:18px 0;font-size:42px;line-height:1.15}.login-intro p{color:#d0d9ff;line-height:1.8}.login-kicker{font-size:12px;letter-spacing:.18em;color:#aebfff}.login-form{align-self:center;padding:54px}.login-form h2{margin:0 0 28px;font-size:26px}.login-form .el-button{width:100%;margin-top:8px}@media(max-width:980px){.metric-grid{grid-template-columns:repeat(2,1fr)}.chart-grid{grid-template-columns:1fr}}@media(max-width:760px){.sidebar{width:64px}.sidebar .brand strong{display:none}.workspace,.collapsed .workspace{width:calc(100% - 64px);margin-left:64px}.content{padding:18px}.page-header{align-items:flex-start;flex-direction:column}.login-panel{grid-template-columns:1fr}.login-intro{display:none}.login-form{padding:38px 26px}}@media(max-width:560px){.metric-grid{grid-template-columns:1fr}.toolbar>*{width:100%}}
