:root{--bg:#f5f7fb;--ink:#152238;--muted:#738198;--line:#e7ebf2;--brand:#2864ff;--brand2:#173b9a;--card:#fff;--good:#159b67;--warn:#c47a12}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.login-page{background:#f4f7fc}.login-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:54px 22px 28px;background:radial-gradient(circle at 50% -15%,#eaf1ff 0,#f5f7fc 43%,#f4f7fb 100%)}.login-brand{display:flex;align-items:center;gap:13px;margin-bottom:32px;color:#11254b}.login-brand strong{display:block;font-size:25px;letter-spacing:.12em}.login-brand span{display:block;color:#7f8da7;font-size:11px;margin-top:1px}.brand-symbol{width:45px;height:45px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,#4388ff,#173db2);color:#fff;font-weight:850;font-size:17px;box-shadow:0 8px 20px #315fe733}.login-box{width:min(430px,100%);background:#fff;border:1px solid #e3e9f3;border-radius:16px;padding:37px 40px 27px;box-shadow:0 20px 55px #294b8412}.login-heading{text-align:center;margin-bottom:25px}.mini-line{width:31px;height:3px;border-radius:3px;background:#2d6cff;margin:0 auto 15px}.login-kicker{font-size:10px;letter-spacing:.18em;color:#8190aa;font-weight:800;margin:0 0 8px}.login-heading h1{font-size:25px;letter-spacing:-.04em;margin:0;color:#17284a}.login-subtitle{color:#8895a9;font-size:13px;margin:8px 0 0}.login-alert{color:#b64c4c;background:#fff3f3;border:1px solid #f3d3d3;border-radius:8px;padding:10px 12px;font-size:12px;margin-bottom:15px}.login-form{display:grid;gap:15px}.login-form label{font-size:12px;color:#65748c;font-weight:700}.login-form input{display:block;margin-top:7px;width:100%;border:1px solid #dfe6f0;border-radius:8px;padding:12px 12px;background:#fbfcfe;outline:none;font-size:14px}.login-form input:focus{border-color:#6e96ff;box-shadow:0 0 0 3px #edf2ff;background:#fff}.login-options{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#8b97aa;font-weight:500}.login-options a{color:#4e72c7;text-decoration:none}.remember{display:flex!important;align-items:center;gap:7px;color:#8895a9!important;font-weight:500!important}.remember input{width:14px!important;height:14px;margin:0!important;accent-color:#2e67e9}.login-submit{border:0;border-radius:8px;background:linear-gradient(135deg,#3777ff,#2757da);color:#fff;padding:12px 16px;font-weight:750;font-size:14px;cursor:pointer;box-shadow:0 8px 17px #2c64e62b}.login-submit:hover{filter:brightness(.96);transform:translateY(-1px)}.login-footer{border-top:1px solid #edf0f5;margin-top:24px;padding-top:17px;display:flex;justify-content:space-between;align-items:center;color:#a0aabb;font-size:11px}.login-footer b{color:#5873ad;font-weight:700}.line-link{border:0;background:none;color:#4d71c3;font-size:11px;cursor:pointer}.login-bottom{width:min(430px,100%);display:flex;justify-content:space-between;color:#a6b0c0;font-size:10px;margin-top:17px}.line-modal{position:fixed;inset:0;display:grid;place-items:center;background:#17294a66;backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:.18s;padding:20px}.line-modal[aria-hidden="false"]{opacity:1;pointer-events:auto}.line-dialog{position:relative;width:min(410px,100%);background:#fff;border-radius:16px;padding:32px;box-shadow:0 24px 70px #142c5a33}.line-dialog h2{font-size:22px;margin:0 0 6px}.line-dialog>p:not(.login-kicker){color:#8995a8;font-size:12px;margin:0 0 19px}.dialog-close{position:absolute;right:17px;top:13px;background:none;border:0;color:#9ba5b6;font-size:25px;cursor:pointer}.line-choice{display:flex;align-items:center;gap:11px;border:1px solid #e4eaf3;border-radius:10px;padding:13px 12px;margin:9px 0;cursor:pointer}.line-choice.selected{border-color:#7fa2ff;background:#f5f8ff}.line-choice i{width:9px;height:9px;border-radius:50%;background:#aeb9c9}.line-choice.selected i{background:#3474ff;box-shadow:0 0 0 4px #dce7ff}.line-choice div{flex:1}.line-choice b,.line-choice small{display:block}.line-choice small{color:#8d99aa;font-size:11px;margin-top:3px}.line-choice em{font-size:11px;color:#6881b6;font-style:normal}.line-dialog .login-submit{width:100%;margin-top:13px}.shell{display:flex;min-height:100vh}aside{width:240px;background:#10213c;color:#fff;padding:28px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;padding:2px 10px 42px}.brand b{font-size:20px;letter-spacing:.08em}.brand small{display:block;color:#91a3c6;font-size:9px;letter-spacing:.18em;margin-top:1px}.mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#52a5ff,#2452e7);font-weight:800;font-size:15px}.brand+nav{display:grid;gap:7px}nav a{color:#afbdd4;text-decoration:none;padding:11px 13px;border-radius:9px}nav a:hover,nav a.active{background:#1d3763;color:white}.side-note{margin-top:auto;border-top:1px solid #263a5c;padding:18px 10px;color:#b9c7de}.side-note small{color:#7184a7}.dot,.route-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#35d38c;margin-right:6px}.route-dot.muted{background:#aab5c6}main{flex:1;padding:38px 54px;max-width:1500px}header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:28px}h1,h2,p{margin:0}h1{font-size:28px;letter-spacing:-.03em}h2{font-size:18px;letter-spacing:-.02em}.eyebrow{font-size:10px;letter-spacing:.18em;color:#8090aa;font-weight:800;margin-bottom:7px}.top-actions{display:flex;align-items:center;gap:10px}.user-chip{background:#e9efff;color:#2b58bd;border-radius:20px;padding:8px 13px;font-weight:650}.btn{border:0;border-radius:8px;padding:10px 16px;text-decoration:none;cursor:pointer;font-weight:700;display:inline-block}.btn.primary{background:var(--brand);color:#fff}.btn.primary:hover{background:#194ddc}.btn.ghost{background:#fff;color:#52627d;border:1px solid var(--line)}.btn.small{padding:8px 12px;font-size:12px}.notice{background:#e9f8f1;color:#177a54;border:1px solid #bfe9d4;padding:11px 14px;border-radius:9px;margin-bottom:20px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.stat,.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 26px rgba(29,54,94,.035)}.stat{padding:21px}.stat span{color:var(--muted);display:block;font-size:12px}.stat strong{display:block;font-size:26px;margin:12px 0 5px}.stat em{font-style:normal;color:#97a2b4;font-size:11px}.stat .unit{font-size:14px;margin-left:4px;color:inherit;display:inline}.stat .good{color:var(--good);font-size:20px}.stat.warn strong{color:var(--warn)}.small-value{font-size:17px!important}.grid{display:grid;grid-template-columns:1.35fr .8fr;gap:18px}.wide{grid-column:1/-1}.panel{padding:24px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:19px}.pill{border-radius:20px;padding:5px 9px;font-size:11px;font-weight:700}.pill.success{background:#e7f8f0;color:#168658}.pill.pending{background:#fff5df;color:#a46c16}.quick{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.quick a{border:1px solid var(--line);border-radius:10px;padding:17px;color:var(--ink);text-decoration:none}.quick a:hover{border-color:#a9bcf9;background:#f8faff}.quick b{display:block;color:var(--brand);font-size:24px;font-weight:400;margin-bottom:10px}.quick span,.quick small{display:block}.quick span{font-weight:750}.quick small,.route small,.policy small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.route,.policy{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:14px 0}.route:last-child,.policy:last-child{border-bottom:0}.route div,.policy div{flex:1}.route strong{font-size:11px;color:#71809a}.table-wrap{overflow:auto}.table-wrap table{width:100%;border-collapse:collapse}.table-wrap th{text-align:left;color:#8995a9;font-size:11px;font-weight:700;padding:11px 10px;border-bottom:1px solid var(--line)}.table-wrap td{padding:14px 10px;border-bottom:1px solid #f0f2f6;white-space:nowrap}.table-wrap td a{color:var(--brand);text-decoration:none;font-weight:650}.empty{text-align:center;color:#9aa5b7;padding:35px!important}.domain-form{display:grid;grid-template-columns:1fr 1.4fr 1.3fr 1.5fr auto;gap:8px;margin-bottom:17px}.domain-form input,.domain-form select,form input{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 11px;background:#fff;outline:none}.domain-form input:focus,form input:focus{border-color:#88a5ff;box-shadow:0 0 0 3px #edf2ff}.policy strong{font-size:13px;color:#2d5bc0}@media(max-width:900px){aside{width:190px}main{padding:28px}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){aside{display:none}main{padding:20px 15px}.stats{gap:9px}.stat{padding:15px}.stat strong{font-size:20px}.quick{grid-template-columns:1fr}.domain-form{grid-template-columns:1fr}.login-box{padding:30px 22px}.login-bottom{font-size:9px}.login-screen{padding-top:38px}}

.page-content{display:grid;gap:18px}.empty-page{min-height:260px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.empty-page h2{margin-bottom:9px}.empty-desc{color:var(--muted);max-width:520px;margin-bottom:20px}.form-row{display:flex;justify-content:space-between;gap:25px;padding:15px 0;border-bottom:1px solid var(--line)}.form-row:last-child{border-bottom:0}.form-row span{color:var(--muted)}.form-row b{color:var(--ink)}.warn-text{color:var(--warn)!important}.page-content .stats{margin-bottom:0}.page-content .panel h2{margin-bottom:17px}.page-content .domain-form{grid-template-columns:1fr 1.5fr 1.5fr auto}.page-content .table-wrap{min-height:80px}
.guide-step{display:flex;gap:20px;padding:16px 0;border-top:1px solid var(--line)}.guide-step b{width:180px;flex:none}.guide-step span{color:var(--muted)}.guide-step code{background:#eef3ff;color:#315db8;padding:2px 5px;border-radius:4px}.code-box{white-space:pre-wrap;background:#101d33;color:#d6e3ff;border-radius:10px;padding:18px;margin:17px 0;font:12px/1.8 ui-monospace,SFMono-Regular,monospace}@media(max-width:600px){.guide-step{display:block}.guide-step b{display:block;margin-bottom:6px}}
.setting-form{margin-top:20px;padding-top:18px;border-top:1px solid var(--line);display:flex;align-items:end;gap:12px}.setting-form label{color:var(--muted);font-size:12px;font-weight:700}.setting-form input{display:block;margin-top:7px;width:180px}@media(max-width:600px){.setting-form{display:block}.setting-form .btn{margin-top:12px}}
.topbar{height:48px;background:#fff;border-bottom:1px solid #edf0f5;display:flex;align-items:center;gap:8px;padding:0 18px;margin:-38px -54px 26px;color:#7d899d}.top-icon{border:0;background:transparent;color:#71809a;font-size:16px;padding:6px;cursor:pointer}.crumb-home{color:#33445f;font-size:17px}.crumb-sep{color:#c0c8d4}.crumb-text{color:#465673}.top-spacer{flex:1}.topbar .user-chip{font-size:12px;padding:7px 12px}.overview-toolbar{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 14px;display:flex;align-items:center;gap:7px;margin-bottom:12px;color:#66758c;font-size:12px}.overview-toolbar input{width:150px;border:1px solid var(--line);border-radius:6px;padding:7px 8px;color:#7c8798;font-size:11px}.range,.granularity b{border:1px solid var(--line);background:#fff;padding:7px 10px;color:#65748c;font-size:11px;font-weight:600}.range.active,.granularity b.active{background:#2d78ed;color:#fff;border-color:#2d78ed}.granularity{margin-left:auto;display:flex;align-items:center;gap:4px}.user-metrics .stat strong{font-size:24px}.trend-panel{min-height:390px}.trend-tabs{display:flex;gap:22px;margin-top:18px;border-bottom:1px solid var(--line)}.trend-tabs a{padding:0 0 10px;color:#8490a4;font-size:12px}.trend-tabs a.active{color:#2d78ed;border-bottom:2px solid #2d78ed}.fake-chart{height:265px;padding:18px 6px 0;background:linear-gradient(#fff,#fbfcff)}.fake-chart svg{width:100%;height:220px}.chart-axis{display:flex;justify-content:space-between;color:#a2acbc;font-size:10px;padding:0 8px}.usage-panel{min-height:210px}.usage-line{display:flex;justify-content:space-between;padding:22px 0 8px;color:#7d899d;font-size:12px}.usage-line b{color:#263754}.usage-bar{height:6px;background:#edf0f5;border-radius:6px;overflow:hidden}.usage-bar i{display:block;height:100%;background:#ee4d83;border-radius:6px}.quick-panel{min-height:150px}.quick-panel .panel-head a{color:#2d78ed;font-size:12px}.quick-panel .quick{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.topbar{margin:-28px -28px 20px}.overview-toolbar{flex-wrap:wrap}.granularity{margin-left:0}.quick-panel .quick{grid-template-columns:repeat(2,1fr)}}
.filter-panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px 20px;margin-bottom:16px}.filter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.filter-grid label{font-size:12px;color:#738198;font-weight:700}.filter-grid input,.filter-grid select,.prewarm-box textarea{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:6px;padding:9px 10px;background:#fff;color:#66758c}.filter-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.table-panel>.panel-head{align-items:center}.table-actions{display:flex;gap:7px;flex-wrap:wrap}.table-panel>.table-wrap{margin-top:15px}.prewarm-box textarea{height:130px;resize:vertical}.prewarm-box{max-width:none}.prewarm-box h2{margin-bottom:6px}@media(max-width:900px){.filter-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.filter-grid{grid-template-columns:1fr}.table-actions{justify-content:flex-start}.table-actions .btn{padding:7px 9px;font-size:11px}}
.nav-group{margin:3px 0}.nav-parent{width:100%;display:flex;align-items:center;gap:10px;border:0;background:transparent;color:#b5c0d4;padding:11px 14px;border-radius:8px;font:inherit;font-size:13px;text-align:left;cursor:pointer}.nav-parent:hover,.nav-group.open>.nav-parent{background:#19345f;color:#fff}.nav-parent b{margin-left:auto;font-size:12px;font-weight:400;transition:transform .2s}.nav-group.open>.nav-parent b{transform:rotate(180deg)}.nav-icon{width:17px;text-align:center;color:#91a5c5}.nav-children{display:none;padding:3px 0 5px 27px}.nav-group.open>.nav-children{display:block}.nav-child{display:block!important;color:#9eacc4!important;font-size:12px!important;padding:9px 12px!important;border-left:1px solid #2d4770;border-radius:0!important}.nav-child:hover,.nav-child.active{color:#fff!important;background:#244676!important;border-left-color:#4b8cf8!important}.nav-group:not(.open)>.nav-parent b{opacity:.8}
/* 与参考控制台一致：趋势分析左侧、使用统计右侧 */
.grid .trend-panel{grid-column:auto}
.grid .usage-panel{grid-column:auto}
.grid .quick-panel{grid-column:1/-1}
@media(max-width:900px){.grid .trend-panel,.grid .usage-panel{grid-column:1/-1}}
.nav-single{display:flex!important;align-items:center;gap:10px;color:#b5c0d4!important;padding:11px 14px!important;border-radius:8px!important;font-size:13px!important}.nav-single:hover,.nav-single.active{background:#19345f!important;color:#fff!important}.nav-single .nav-icon{color:#91a5c5}
