:root{--bg:#0a1020;--surface:#10192b;--surface2:#14203a;--line:#243653;--soft:#71819d;--text:#eff4ff;--blue:#4f8cff;--cyan:#59d4ff;--green:#3bd5a3;--red:#ff7487;--radius:14px}*{box-sizing:border-box}html,body{margin:0;background:radial-gradient(900px 560px at 100% -10%,#162853 0,transparent 66%),var(--bg);color:var(--text);font:14px/1.45 Inter,"Segoe UI","Microsoft YaHei",sans-serif}button,input,select{font:inherit}button{cursor:pointer}[hidden]{display:none!important}a{color:#96bcff;text-decoration:none}a:hover{text-decoration:underline}.mono,.stat-value{font-family:Consolas,"SFMono-Regular",monospace;font-variant-numeric:tabular-nums}.muted{color:#a8b7cf}
/* login */.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(560px 420px at 50% 44%,rgba(56,112,225,.16),transparent 70%),var(--bg)}.login-panel{width:min(100%,430px);padding:42px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,#14203a,#0e1729);box-shadow:0 20px 55px #0005}.login-brand,.sidebar-brand{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:800;letter-spacing:.12em}.brand-orbit{width:26px;height:26px;border:2px solid var(--blue);border-radius:50%;position:relative;box-shadow:inset 0 0 0 4px #4f8cff22}.brand-orbit:after{content:"";position:absolute;right:-3px;bottom:1px;width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 14px var(--cyan)}.eyebrow,.workspace-label,.section-kicker{margin:28px 0 8px;color:var(--blue);font-size:10px;font-weight:800;letter-spacing:.12em}.login-panel h1{margin:0;font-size:29px;letter-spacing:-.035em}.login-copy{margin:12px 0 28px;color:#a8b7cf}.field-label,.form-field{display:grid;gap:8px;color:#a8b7cf;font-size:12px;font-weight:600}.login-panel input,.form-field input,.form-field select{width:100%;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:9px;outline:0;background:#0b1425;color:var(--text)}.login-panel input:focus,.form-field input:focus,.form-field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #4f8cff26}.button{display:inline-flex;min-height:36px;align-items:center;justify-content:center;gap:8px;padding:0 13px;border:1px solid transparent;border-radius:8px;font-size:12px;font-weight:750;transition:background .16s,border .16s,transform .16s}.button:active{transform:translateY(1px)}.button-primary{background:var(--blue);color:#fff;box-shadow:0 4px 14px #2e6fea33}.button-primary:hover{background:#6a9fff}.button-secondary{border-color:var(--line);background:#ffffff05;color:#d6e2f6}.button-secondary:hover{border-color:#48638f;background:#4f8cff12}.button-danger{border-color:#ff748755;background:#ff748711;color:#ff9eaa}.button-small{min-height:29px;padding:0 9px;font-size:11px}.button-block{width:100%;height:44px;margin-top:18px;font-size:13px}.form-message{min-height:20px;margin:13px 0 0;color:#ff9eaa;font-size:12px}
/* shell */.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:2;width:242px;padding:25px 15px 17px;border-right:1px solid #1c2a43;background:#09101eee;backdrop-filter:blur(18px);display:flex;flex-direction:column}.sidebar-brand{padding:2px 9px;font-size:12px;line-height:1.05}.sidebar-brand b{color:var(--blue)}.workspace-label{margin:38px 10px 10px;color:#71819d}.nav-list{display:grid;gap:4px}.nav-item{display:flex;min-height:42px;align-items:center;gap:12px;padding:0 11px;border:1px solid transparent;border-radius:9px;background:transparent;color:#a8b7cf;text-align:left;transition:.16s}.nav-item svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.nav-item:hover{color:var(--text);background:#fff1}.nav-item.active{border-color:#4f8cff28;background:linear-gradient(90deg,#4f8cff2c,#4f8cff0b);color:#f5f8ff}.sidebar-footer{margin-top:auto;padding:16px 10px 0;border-top:1px solid #1c2a43;display:grid;gap:5px;color:#a8b7cf;font-size:12px}.sync-state{display:flex;align-items:center;gap:8px;color:#d9e6ff}.sync-state i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #3bd5a322}.sidebar-footer small{color:#71819d}.logout-button{width:100%;margin-top:10px;padding:10px 0 0;border:0;border-top:1px solid #1c2a43;background:transparent;color:#71819d;text-align:left;font-size:12px}.logout-button:hover{color:white}.main-area{width:calc(100% - 242px);min-height:100vh;margin-left:242px}.topbar{height:82px;padding:0 34px;border-bottom:1px solid #1c2a43;display:flex;align-items:center;justify-content:space-between;background:#0a1020b8;backdrop-filter:blur(10px)}.section-kicker{margin:0 0 4px}.topbar h1{margin:0;font-size:21px;letter-spacing:-.025em}.topbar-actions{display:flex;align-items:center;gap:14px}.updated-at{color:#71819d;font-size:12px}.refresh-glyph{font-size:15px}.content{max-width:1640px;margin:0 auto;padding:27px 34px 44px;outline:0}
/* dashboard */.overview-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px}.stat-rail{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat,.panel{border:1px solid #1e2e4a;border-radius:var(--radius);background:linear-gradient(145deg,#14203ae8,#0d1728ee);box-shadow:0 8px 24px #0002}.stat{position:relative;min-height:130px;padding:19px;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.stat:after{content:"";position:absolute;right:-16px;bottom:-35px;width:105px;height:105px;border-radius:50%;background:radial-gradient(circle,#4f8cff2c,transparent 68%)}.stat:nth-child(2):after{background:radial-gradient(circle,#3bd5a325,transparent 68%)}.stat:nth-child(3):after{background:radial-gradient(circle,#59d4ff22,transparent 68%)}.stat-label{position:relative;z-index:1;color:#a8b7cf;font-size:12px}.stat-value{position:relative;z-index:1;font-size:31px;line-height:1;font-weight:750;letter-spacing:-.055em}.stat-note{position:relative;z-index:1;color:#71819d;font-size:11px}.stat-note b{color:var(--green);font-size:9px}.chart-panel,.rank-panel,.form-panel{padding:21px}.chart-panel{min-height:365px}.panel-heading,.section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.panel-heading h2,.section-header h2{margin:0;font-size:16px;letter-spacing:-.015em}.panel-heading p,.section-header p{margin:5px 0 0;color:#71819d;font-size:12px}.chart-legend{display:flex;align-items:center;gap:6px;color:#71819d;font-size:11px;white-space:nowrap}.chart-legend i{display:inline-block;width:18px;height:2px;background:var(--blue)}.chart-legend i.gray{margin-left:7px;background:#8290a7}.distribution-chart{width:100%;height:260px;margin-top:17px;overflow:visible}.grid-line{stroke:#23344f;stroke-dasharray:2 3}.chart-line{stroke:var(--blue)!important;fill:none;stroke-width:3}.chart-average{stroke:#8290a7;stroke-width:1;stroke-dasharray:4 4}.chart-dot{fill:var(--cyan);stroke:#152640;stroke-width:4}.chart-label{fill:#71819d;font-size:10px}.chart-value{fill:#d7e5ff;font-size:11px;font-weight:700}.signal-panel{padding:5px 19px}.signal-row{padding:16px 0;border-bottom:1px solid #1e2e4a}.signal-row:last-child{border:0}.signal-row span,.signal-row small{display:block;color:#71819d;font-size:11px}.signal-row strong{display:block;margin:4px 0 2px;font-size:21px;letter-spacing:-.035em}.progress,.mini-bar{height:4px;overflow:hidden;border-radius:4px;background:#20304a}.progress i,.mini-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--cyan))}.rank-panel{grid-column:1/-1}.rank-table,.data-table{width:100%;border-collapse:collapse}.rank-table{margin-top:17px}.rank-table th,.rank-table td,.data-table th,.data-table td{height:49px;padding:0 14px;border-bottom:1px solid #1e2e4a;text-align:left;font-size:12px}.rank-table th,.data-table th{height:38px;color:#71819d;font-size:10px;font-weight:700;letter-spacing:.055em;text-transform:uppercase}.rank-table tbody tr,.data-table tbody tr{transition:background .15s}.rank-table tbody tr:hover,.data-table tbody tr:hover,.tree-head:hover{background:#6190e60e}.rank-number{color:var(--blue);font-family:Consolas,monospace}.mini-bar{min-width:70px}.table-panel{overflow-x:auto}.data-table{min-width:720px}.section-header{margin:0 0 18px}.section-space{margin-top:16px}
/* detail / forms */.tree-panel{padding:0}.tree-row{border-bottom:1px solid #1e2e4a}.tree-row:last-child{border-bottom:0}.tree-head{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(80px,1fr) minmax(100px,1fr) auto;gap:12px;align-items:center;padding:16px 20px;cursor:pointer}.tree-head strong{font-size:13px}.chevron{color:#71819d;font-size:23px;transition:transform .18s}.tree-row.open .chevron{transform:rotate(90deg);color:var(--blue)}.tree-detail{display:none;padding:0 20px 20px}.tree-row.open .tree-detail{display:block}.page-card{padding:15px 0;border-top:1px solid #1e2e4a}.page-meta{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.page-name{font-weight:700}.reel-list{margin-top:13px;border-top:1px solid #1e2e4a}.reel-row{display:grid;grid-template-columns:minmax(0,1fr) 90px 90px;gap:12px;padding:10px 0;border-bottom:1px solid #1e2e4a;font-size:12px}.reel-row span{text-align:right}.form-grid{display:grid;grid-template-columns:1.3fr repeat(3,minmax(120px,1fr));gap:14px;align-items:end}.form-actions,.row-actions{display:flex;flex-wrap:wrap;gap:6px}.codes-box{display:none;margin:17px 0 0;padding:14px;border:1px solid #4f8cff47;border-radius:9px;background:#0b1426;color:#bcd3ff;white-space:pre-wrap}.inline-checkboxes{display:flex;align-items:center;gap:13px;height:44px}.inline-checkboxes label{display:flex;align-items:center;gap:5px;font-size:12px;color:#a8b7cf}.inline-checkboxes input{width:auto;height:auto;accent-color:var(--blue)}.status{white-space:nowrap}.status:before{content:"";display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:#75819a}.status.ok:before{background:var(--green);box-shadow:0 0 0 3px #3bd5a322}.status.bad:before{background:var(--red);box-shadow:0 0 0 3px #ff748722}.empty{padding:50px;text-align:center;color:#71819d}
@media(max-width:1050px){.stat-rail{grid-template-columns:repeat(2,1fr)}.overview-grid{grid-template-columns:1fr}.signal-panel{display:grid;grid-template-columns:repeat(2,1fr);gap:0 18px}.signal-row:nth-last-child(2){border-bottom:0}.form-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.sidebar{position:static;width:100%;min-height:0;padding:15px}.app-shell{display:block}.sidebar-brand{padding:0}.workspace-label,.sidebar-footer{display:none}.nav-list{display:flex;gap:5px;overflow:auto;margin-top:14px}.nav-item{flex:0 0 auto}.nav-item span{font-size:12px}.main-area{width:100%;margin:0}.topbar{height:auto;min-height:76px;padding:15px 18px;align-items:flex-start}.topbar-actions{align-items:flex-end;flex-direction:column;gap:7px}.updated-at{max-width:130px;text-align:right;font-size:10px}.content{padding:19px 14px 30px}.stat-rail{grid-template-columns:1fr 1fr;gap:9px}.stat{min-height:110px;padding:14px}.stat-value{font-size:25px}.chart-panel,.rank-panel,.form-panel{padding:15px}.chart-panel{min-height:310px}.distribution-chart{height:205px}.signal-panel{grid-template-columns:1fr;padding:4px 15px}.signal-row:nth-last-child(2){border-bottom:1px solid #1e2e4a}.rank-table{min-width:630px}.rank-panel{overflow-x:auto}.tree-head{grid-template-columns:1fr auto;gap:7px;padding:14px}.tree-head>span:nth-of-type(1){grid-column:1}.tree-detail{padding:0 14px 14px}.reel-row{grid-template-columns:1fr 70px}.reel-row span:last-child{display:none}.form-grid{grid-template-columns:1fr}.page-meta{align-items:baseline}.row-actions{min-width:250px}.login-panel{padding:30px 24px}.login-panel h1{font-size:25px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
