:root{color-scheme:light;--primary:#2cad82;--primary-strong:#177454;--primary-soft:#dff5eb;--blue:#347cc4;--blue-soft:#e7f1fd;--amber:#95600b;--amber-soft:#fff3dc;--danger:#b83f50;--danger-soft:#fde9eb;--violet:#9179cf;--surface:#fff;--surface-muted:#f5faf7;--text:#263934;--muted:#61786f;--line:rgba(48,101,84,.14);--page-bg:linear-gradient(135deg,#eef7f2,#edf4f8 48%,#f8f5ef);--panel:rgba(255,255,255,.92);--sidebar:rgba(255,255,255,.72);--control:#f5faf7;--overlay:rgba(20,40,34,.38);--focus-ring:rgba(44,173,130,.3);--shadow:0 20px 48px -28px rgba(31,105,82,.36);--button-text:#fff}
:root[data-theme=dark]{color-scheme:dark;--primary:#63d6aa;--primary-strong:#90e8c4;--primary-soft:#183d32;--blue:#8bbcf3;--blue-soft:#1d3047;--amber:#efc16d;--amber-soft:#3d3221;--danger:#f197a1;--danger-soft:#42282f;--violet:#bba4ed;--surface:#18251f;--surface-muted:#132019;--text:#e1eee7;--muted:#a0b5aa;--line:rgba(172,211,190,.15);--page-bg:linear-gradient(135deg,#101c17,#142029 52%,#211f1a);--panel:rgba(24,37,31,.94);--sidebar:rgba(17,29,23,.88);--control:#132019;--overlay:rgba(0,0,0,.62);--focus-ring:rgba(99,214,170,.3);--shadow:0 20px 48px -28px rgba(0,0,0,.65);--button-text:#102e23}
*{box-sizing:border-box}body{margin:0;font:13px/1.65 Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--text);background:var(--page-bg);min-height:100vh}button,input,select{font:inherit}button,a,input,select{outline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--focus-ring)}button{cursor:pointer;min-height:38px;padding:8px 16px;border-radius:11px;border:1px solid transparent;white-space:nowrap;font-weight:600;transition:transform .16s,opacity .16s}button:hover{transform:translateY(-1px)}button:disabled{opacity:.6;cursor:wait;transform:none}button[aria-busy=true]::before{content:'◌';display:inline-block;margin-right:6px;animation:spin 1s linear infinite}.primary{background:var(--primary);color:var(--button-text)}:root:not([data-theme=dark]) .primary{background:#198966}.soft{background:var(--primary-soft);color:var(--primary-strong)}.ghost{background:var(--surface);border-color:var(--line);color:var(--text)}.danger-button{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.wide{width:100%}input,select{border:1px solid var(--line);border-radius:11px;background:var(--control);color:var(--text);padding:10px 12px;min-width:0}input{width:100%;display:block;margin-top:6px}input:focus{background:var(--surface)}label{display:block;font-weight:600}h1,h2,p{margin:0}h1{font-size:26px;letter-spacing:-.7px;line-height:1.4;font-weight:750}h2{font-size:17px;font-weight:700}p+p{margin-top:10px}.muted{color:var(--muted)}.small{font-size:12px}.eyebrow{font-size:10px;letter-spacing:1.7px;color:var(--muted);font-weight:700;margin-bottom:7px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:24px;margin-bottom:20px}.panel-header{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:20px}.panel-header p{margin-top:4px}.panel-footer{display:flex;gap:14px;align-items:center;justify-content:space-between;padding-top:18px;border-top:1px solid var(--line);margin-top:20px;font-size:12px;color:var(--muted)}.brand-mark{width:42px;height:42px;border-radius:14px;background:var(--primary-soft);color:var(--primary-strong);display:inline-grid;place-items:center;font-size:23px;font-weight:800;flex-shrink:0}.theme-control{position:fixed;top:16px;right:24px;display:flex;align-items:center;gap:8px;z-index:15;background:var(--panel);padding:4px 7px 4px 12px;border:1px solid var(--line);border-radius:12px;font-size:12px}.theme-control select{padding:4px 8px;border:0;background:transparent}.initial{display:grid;place-items:center;min-height:100vh;color:var(--muted)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:80px 18px 30px}.login-panel{width:min(420px,100%);padding:34px}.login-panel .brand-mark{margin-bottom:22px}.login-panel h1{font-size:24px}.login-panel>p{margin:8px 0 24px}.login-panel label{margin-top:18px}.login-panel .wide{margin:24px 0 0}.login-panel .small{margin:16px 0 0}.shell{display:grid;grid-template-columns:276px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:var(--sidebar);border-right:1px solid var(--line);backdrop-filter:blur(18px);padding:30px 20px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;margin:2px 10px 34px}.brand strong{font-size:19px}.brand small{display:block;font-size:10px;letter-spacing:1px;color:var(--muted)}.nav-label{color:var(--muted);font-size:11px;padding:8px 14px}nav{display:grid;gap:6px}nav button{display:flex;align-items:center;gap:10px;background:transparent;color:var(--muted);text-align:left;min-height:52px;padding:8px 12px;border-left:3px solid transparent}nav button span{font-size:23px;width:34px;text-align:center}nav button.active{color:var(--primary-strong);background:var(--primary-soft);border-left-color:var(--primary)}nav button b{font-size:13px;font-weight:600}.sidebar-footer{margin-top:auto;padding:18px 12px 0;color:var(--muted);font-size:11px}.sidebar-footer p{margin:10px 0 18px}.sidebar-footer button{width:100%}main{padding:70px 34px 24px;max-width:1720px;width:100%;min-width:0}.page-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 26px}.page-header .muted{margin-top:7px}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;color:var(--primary-strong);background:var(--primary-soft);font-size:11px;font-weight:600;white-space:nowrap}.pill::before{content:'•'}.pill.warning,.banner.warning{background:var(--amber-soft);color:var(--amber)}.pill.danger,.banner.danger{background:var(--danger-soft);color:var(--danger)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat{padding:20px 18px;border-left:4px solid var(--primary)}.stat.blue{border-left-color:var(--blue)}.stat.violet{border-left-color:var(--violet)}.stat.amber{border-left-color:var(--amber)}.stat label{font-size:11px;color:var(--muted)}.stat strong{display:block;font-size:27px;margin:8px 0 6px;font-weight:750;letter-spacing:-.9px;line-height:1.4}.stat strong.mono{font-size:22px;letter-spacing:-1px;overflow-wrap:anywhere}.stat small{font-size:10px;color:var(--muted)}.mono,code{font-family:"Cascadia Code",Consolas,monospace}.route{display:flex;align-items:center;justify-content:space-around;padding:16px 0 26px;gap:12px}.route>div{text-align:center;flex:1;min-width:0}.route-icon{display:grid;place-items:center;width:38px;height:38px;margin:0 auto 12px;border:1px solid var(--line);background:var(--control);border-radius:12px;color:var(--primary-strong);font-size:12px}.route strong,.route small{display:block}.route small{color:var(--muted);font-size:11px;margin-top:5px}.arrow{font-size:24px;color:var(--muted)}.current-line{display:flex;align-items:center;gap:14px;margin-bottom:14px}.current-line code{font-size:20px;overflow-wrap:anywhere;min-width:0}.banner{padding:13px 16px;border-radius:12px;margin:14px 0 20px;border:1px solid var(--line);overflow-wrap:anywhere}.banner.info{background:var(--blue-soft);color:var(--blue)}#partial{display:flex;justify-content:space-between;gap:12px;align-items:center}.form-row{display:grid;grid-template-columns:1.3fr 1fr auto;align-items:end;gap:14px;margin-bottom:18px}.form-row label{font-size:12px}.form-row button{min-height:44px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:12px;white-space:nowrap}th{font-size:11px;color:var(--muted);background:var(--surface-muted);padding:12px 14px;position:sticky;top:0}td{padding:14px;border-bottom:1px solid var(--line);max-width:320px;overflow:hidden;text-overflow:ellipsis}tbody tr:hover{background:var(--surface-muted)}td button{padding:4px 12px;min-height:30px;font-size:11px}.empty{text-align:center;padding:34px 12px}.empty p{margin-top:8px;color:var(--muted)}.subscription-grid{display:grid;gap:18px;grid-template-columns:repeat(3,minmax(0,1fr))}.subscription-grid .panel{padding:22px;min-width:0}.subscription-grid h2{margin-bottom:14px}.subscription-link{width:100%;font-size:11px;font-family:Consolas,monospace;margin-bottom:12px}.subscription-grid button{width:100%}.subscription-grid details{margin-top:20px}.subscription-grid summary{cursor:pointer;color:var(--primary-strong);font-weight:600}.subscription-grid ol{padding-left:18px;color:var(--muted);font-size:12px}.subscription-grid li{margin-bottom:10px}.main-footer{display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:10px;margin-top:28px}dialog{max-width:440px;width:calc(100% - 36px);color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:28px}dialog::backdrop{background:var(--overlay);backdrop-filter:blur(4px)}dialog h2{margin:14px 0 10px}dialog p{overflow-wrap:anywhere}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}#toast{position:fixed;right:24px;top:76px;max-width:min(420px,calc(100% - 32px));padding:14px 20px;background:var(--primary-soft);color:var(--primary-strong);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;z-index:30;animation:appear .2s}.workspace{animation:appear .2s}[hidden]{display:none!important}@keyframes spin{to{transform:rotate(360deg)}}@keyframes appear{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1200px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.subscription-grid{grid-template-columns:1fr}.subscription-grid .panel{margin-bottom:0}.subscription-grid{margin-bottom:20px}}
@media(max-width:1000px){.shell{grid-template-columns:92px minmax(0,1fr)}.sidebar{padding:28px 12px}.brand{margin:0 auto 28px}.brand>div,.nav-label,nav b,.sidebar-footer{display:none}nav button{justify-content:center;padding:8px}main{padding:72px 24px 20px}}
@media(max-width:600px){.shell{display:block}.sidebar{height:auto;position:sticky;padding:9px 14px;z-index:12;display:block;border-right:0;border-bottom:1px solid var(--line)}.brand{display:none}nav{display:flex;justify-content:space-around;gap:6px}nav button{min-height:42px;padding:6px 9px;border-left:0;border-bottom:2px solid transparent;flex:1;gap:5px}nav button.active{border-left:0;border-bottom-color:var(--primary)}nav button span{font-size:19px;width:22px}nav button b{display:block;font-size:11px}.theme-control{position:static;width:fit-content;margin:12px 14px 8px auto}.sidebar{top:0}main{padding:22px 16px}.page-header{align-items:flex-start}.page-header>.pill{display:none}h1{font-size:24px}.panel{padding:18px}.stats{gap:10px}.stat{padding:16px 12px}.stat strong{font-size:23px}.stat strong.mono{font-size:19px}.stat small{font-size:9px}.panel-header{align-items:flex-start;gap:10px}.panel-header .soft,.panel-header .ghost{font-size:11px;padding:7px 10px}.route{gap:5px}.route small{font-size:9px}.route .arrow{font-size:17px}.route strong{font-size:12px}.panel-footer{flex-wrap:wrap;gap:10px}.current-line{flex-wrap:wrap}.form-row{grid-template-columns:1fr}.form-row button{width:100%}.main-footer{display:block}.main-footer span{display:block;margin-top:6px}#partial{display:block}#partial button{margin-top:10px}.login-wrap{min-height:calc(100vh - 72px);padding-top:20px}.login-panel{padding:26px}.login-panel h1{font-size:23px}#toast{top:20px;right:16px}.theme-control:has(+.login-wrap[hidden]){margin-bottom:0}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.logout-mobile{display:none}@media(max-width:1000px){.logout-mobile{display:block;font-size:11px}}
