:root{color:#17202d;font-synthesis:none;--ink:#17202d;--muted:#707887;--line:#e2e5e9;--paper:#fff;--red:#d73b43;--red-dark:#b52832;--green:#159b66;--navy:#111722;background:#f5f6f8;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}h1,h2,p{margin-top:0}.splash{min-height:100vh;color:var(--muted);place-content:center;justify-items:center;gap:14px;display:grid}.spinner{border:3px solid #d9dde3;border-top-color:var(--red);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.auth-page{background:#eef0f3;place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{background:var(--paper);border:1px solid var(--line);width:min(430px,100%);padding:38px 40px 42px;box-shadow:0 18px 50px #1922301a}.wordmark{align-items:center;gap:10px;display:flex}.logo{color:#fff;background:var(--red);place-items:center;width:32px;height:32px;font-weight:900;display:grid}.auth-copy{margin:42px 0 24px}.auth-copy h1{letter-spacing:-.03em;margin-bottom:8px;font-size:29px}.auth-copy p{color:var(--muted)}.auth-tabs{border-bottom:1px solid var(--line);margin-bottom:24px;display:flex}.auth-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;flex:1;padding:10px}.auth-tabs button.active{color:var(--ink);border-bottom-color:var(--red)}.auth-card form{gap:17px;display:grid}label{color:#505a69;gap:7px;font-size:13px;font-weight:700;display:grid}input,select{width:100%;min-height:42px;color:var(--ink);background:#fff;border:1px solid #ccd2da;border-radius:5px;outline:none;padding:9px 11px}input:focus,select:focus{border-color:var(--red);box-shadow:0 0 0 3px #d73b431a}.form-error{color:var(--red-dark);margin:-4px 0 0;font-size:13px}button,.button-link{color:var(--ink);background:0 0;border:1px solid #0000;border-radius:5px;padding:9px 14px;font-weight:750;text-decoration:none}.primary{color:#fff;background:var(--red)}.primary:hover{background:var(--red-dark)}.secondary{background:#fff;border-color:#ccd2da}.secondary:hover{border-color:#9da7b5}.danger-outline{color:var(--red-dark);background:#fff;border-color:#efb7ba}.wide{width:100%;margin-top:3px}.compact{white-space:nowrap;padding:7px 10px;font-size:12px}.topbar{z-index:10;color:#fff;background:var(--navy);grid-template-columns:230px 1fr auto;align-items:center;height:62px;padding:0 24px;display:grid;position:sticky;top:0}.wordmark.compact .logo{width:28px;height:28px}.topbar nav{justify-content:center;align-self:stretch;gap:3px;display:flex}.topbar nav button{color:#929cab;background:0 0;border:0;border-radius:0;padding:0 19px;position:relative}.topbar nav button:hover,.topbar nav button.active{color:#fff}.topbar nav button.active:after{background:var(--red);content:"";height:3px;position:absolute;bottom:0;left:18px;right:18px}.account{color:#a9b1bd;align-items:center;gap:14px;font-size:13px;display:flex}.account button{color:#d7dbe1;padding:5px}.workspace{grid-template-columns:230px minmax(0,1fr);min-height:calc(100vh - 62px);display:grid}.sidebar{border-right:1px solid var(--line);background:#fff;padding:24px 14px}.side-title{color:var(--muted);letter-spacing:.08em;justify-content:space-between;align-items:center;padding:0 9px 12px;font-size:12px;font-weight:800;display:flex}.side-title button{color:var(--muted);padding:1px 7px;font-size:20px}.project-item{text-align:left;background:0 0;border:0;width:100%;padding:11px 12px}.project-item span{gap:4px;display:grid}.project-item strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.project-item small{color:var(--muted);font-size:11px}.project-item.active{box-shadow:inset 3px 0 var(--red);background:#f2f3f5}.empty-project{width:100%;color:var(--muted);background:#fafbfc;border:1px dashed #cbd1d9}.content{width:min(1320px,100%);padding:38px 34px 70px}.notice{border-left:3px solid var(--red);cursor:pointer;background:#fff;justify-content:space-between;align-items:center;margin-bottom:18px;padding:12px 15px;font-size:13px;display:flex;box-shadow:0 2px 8px #121c2b0d}.notice span{color:var(--muted);font-size:19px}.page-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px;display:flex}.page-heading h1{letter-spacing:-.03em;margin:4px 0 0;font-size:28px}.kicker{color:var(--red);letter-spacing:.08em;font-size:12px;font-weight:800}.heading-actions{gap:9px;display:flex}.panel,.status-card,.drawer-card,.admin-stats article{border:1px solid var(--line);background:#fff;box-shadow:0 3px 14px #161f2c0b}.panel{margin-top:17px}.drawer-card{border-top:3px solid var(--red);grid-template-columns:230px 1fr;align-items:end;gap:28px;margin-bottom:18px;padding:21px 22px;display:grid}.drawer-card h2{margin-bottom:5px;font-size:17px}.drawer-card p{color:var(--muted);margin:0;font-size:12px;line-height:1.55}.drawer-card form{align-items:end;gap:9px;display:flex}.drawer-card form>input,.drawer-card form>select{flex:1}.claim-card{align-items:start}.claim-card form{grid-template-columns:1fr 1fr;display:grid}.claim-card form label:first-child{grid-column:1/-1}.form-buttons{grid-column:1/-1;justify-content:flex-end;gap:8px;display:flex}.ap-switch{background:#ebeef2;border:1px solid #d9dde3;justify-content:space-between;align-items:end;margin-bottom:17px;padding:12px 15px;display:flex}.ap-switch label{width:min(480px,78%)}.ap-switch span{color:var(--muted);padding-bottom:11px;font-size:12px;font-weight:750}.status-card{padding:22px 23px 17px}.ap-state{align-items:center;gap:12px;display:flex}.ap-state div{gap:3px;display:grid}.ap-state small{color:var(--muted)}.status-dot,.client-dot{background:var(--green);border-radius:50%;flex:none}.status-dot{width:10px;height:10px;box-shadow:0 0 0 5px #159b661f}.offline .status-dot,.client-dot.offline{box-shadow:none;background:#9ba3ae}.status-card dl{border:1px solid var(--line);background:var(--line);grid-template-columns:repeat(4,1fr);gap:1px;margin:20px 0 14px;display:grid}.status-card dl div{background:#fff;min-width:0;padding:14px 16px}dt{color:var(--muted);margin-bottom:5px;font-size:11px}dd{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;font-weight:800;overflow:hidden}.card-actions{justify-content:flex-end;gap:5px;display:flex}.card-actions button{color:var(--muted);padding:7px 9px;font-size:12px}.panel-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:19px 22px;display:flex}.panel-heading h2{margin:0 0 4px;font-size:17px}.panel-heading p{color:var(--muted);margin:0;font-size:12px}.project-wifi{margin:0 0 17px}.project-wifi form{grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr) auto;align-items:end;gap:10px;padding:17px 22px 20px;display:grid}.open-toggle{white-space:nowrap;align-items:center;gap:7px;min-height:42px;padding:0 3px;display:flex}.open-toggle input{width:16px;min-height:16px;accent-color:var(--red)}.sync-badge{color:#7b6530;background:#f6f0df;border-radius:20px;padding:5px 9px;font-size:11px;font-weight:800}.sync-badge.ready{color:#14744f;background:#e8f5ef}.ap-sync{margin-left:auto}.count-pill{color:#586272;background:#eff1f4;border-radius:20px;padding:5px 10px;font-size:12px;font-weight:750}.empty-state{color:#596373;text-align:center;justify-items:center;padding:55px 20px;display:grid}.empty-state p{color:var(--muted);margin:7px 0 0;font-size:13px}.empty-icon{width:42px;height:42px;color:var(--red);border:1px solid #d5dae1;border-radius:50%;place-items:center;margin-bottom:12px;font-size:23px;display:grid}.compact-empty{padding:35px 20px}.client-row{border-bottom:1px solid #edf0f3;grid-template-columns:minmax(190px,1.2fr) minmax(210px,1fr) minmax(300px,1.4fr) auto;align-items:center;gap:18px;padding:16px 22px;display:grid}.client-row:last-child{border-bottom:0}.client-row.muted{background:#fafbfc}.identity{align-items:center;gap:10px;min-width:0;display:flex}.identity div,.client-stat{gap:4px;min-width:0;display:grid}.identity strong,.identity small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.identity small,.client-stat small{color:var(--muted);font-family:ui-monospace,Consolas,monospace;font-size:10px}.client-dot{width:8px;height:8px}.client-dot.blocked{background:var(--red)}.client-stat span{color:var(--muted);font-size:11px}.client-stat strong{font-size:12px}.limit-controls{grid-template-columns:1fr 1fr auto;align-items:end;gap:7px;display:grid}.limit-controls label{gap:4px;font-size:10px}.limit-controls input{min-height:34px;padding:6px 8px;font-size:12px}.command-panel{max-width:650px}.command-row,.key-row,.admin-row{border-bottom:1px solid #edf0f3;justify-content:space-between;align-items:center;gap:16px;padding:13px 22px;font-size:13px;display:flex}.command-row:last-child,.key-row:last-child,.admin-row:last-child{border-bottom:0}.command-row>span{gap:12px;display:flex}.command-row small,.key-row small,.admin-row small{color:var(--muted)}.command-row strong{color:#967522;font-size:12px}.command-row strong.succeeded{color:var(--green)}.command-row strong.failed{color:var(--red-dark)}.api-intro{padding:22px}.api-intro h2{margin-bottom:6px;font-size:17px}.api-intro p{color:var(--muted);font-size:13px}.api-intro code,.issued code{border-left:3px solid var(--red);color:#8b2931;background:#fff3f3;margin-top:15px;padding:11px 12px;font-size:12px;display:block;overflow:auto}.issued{align-items:center;gap:10px;padding:21px 22px;display:flex}.issued>div{flex:1;min-width:0}.issued h2{margin:4px 0 0;font-size:17px}.key-row>div,.admin-row>div{gap:5px;display:grid}.key-row small,.admin-row small{font-family:ui-monospace,Consolas,monospace;font-size:11px}.admin-stats{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.admin-stats article{gap:6px;padding:18px 20px;display:grid}.admin-stats small{color:var(--muted)}.admin-stats strong{font-size:25px}.admin-row>span{color:var(--muted);margin-left:auto;font-size:12px}@media (max-width:1050px){.client-row{grid-template-columns:minmax(190px,1fr) 1fr auto}.limit-controls{grid-column:1/3}}@media (max-width:760px){.topbar{grid-template-columns:auto 1fr auto;padding:0 14px}.topbar .wordmark strong,.account span{display:none}.topbar nav button{padding:0 10px;font-size:12px}.topbar nav button.active:after{left:10px;right:10px}.workspace{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);gap:6px;padding:10px 12px;display:flex;overflow-x:auto}.side-title{flex:none;gap:5px;padding:7px}.project-item{flex:none;width:auto;min-width:130px}.project-item.active{box-shadow:inset 0 -3px var(--red)}.empty-project{flex:none;width:auto}.content{padding:25px 13px 55px}.page-heading{align-items:flex-start}.page-heading h1{font-size:24px}.heading-actions{flex-direction:column}.drawer-card{grid-template-columns:1fr;gap:15px}.drawer-card form{display:grid}.claim-card form{grid-template-columns:1fr}.claim-card form label:first-child,.form-buttons{grid-column:1}.ap-switch{flex-direction:column;align-items:stretch;gap:6px}.ap-switch label{width:100%}.ap-switch span{padding:0}.status-card dl{grid-template-columns:1fr 1fr}.project-wifi form{grid-template-columns:1fr}.client-row{grid-template-columns:1fr auto;gap:12px;padding:16px}.client-stat{grid-column:1/-1}.limit-controls{grid-column:1/-1;grid-template-columns:1fr 1fr}.limit-controls button{grid-column:1/-1}.issued{flex-direction:column;align-items:stretch}.admin-stats{grid-template-columns:1fr 1fr}.admin-row{flex-wrap:wrap;align-items:flex-start}.admin-row>span{margin-left:0}.auth-card{padding:32px 25px 35px}}
