:root{--bg:#0d1117;--bg-subtle:#010409;--panel:#161b22;--panel-hover:#1c2129;--line:#30363d;--line-subtle:#21262d;--text:#e6edf3;--muted:#7d8590;--accent:#58a6ff;--accent-soft:#388bfd24;--green:#3fb950;--red:#f85149;--amber:#d29922;--shadow-sm:0 1px 0 #ffffff0a inset;--shadow-md:0 8px 24px #01040980;--radius:8px;--radius-sm:6px;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text);background:var(--panel);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:6px 14px;font-size:.85rem;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}button:hover:not(:disabled){background:var(--panel-hover);border-color:#8b949e}button:active:not(:disabled){background:var(--bg-subtle)}button:disabled{cursor:not-allowed;opacity:.5}.primary{color:#fff;background:#1f6feb;border-color:#f0f6fc1a}.primary:hover:not(:disabled){background:#388bfd;border-color:#f0f6fc1a}.app-shell{width:min(1280px,100%);min-height:100vh;margin:0 auto;padding:clamp(16px,3vw,32px)}.topbar,.command-strip,.panel-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.topbar{margin-bottom:24px;padding:4px 0}.eyebrow{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px;font-family:ui-monospace,SFMono-Regular,Cascadia Code,Consolas,monospace;font-size:.72rem;font-weight:500}h1,h2{color:var(--text);letter-spacing:-.02em;margin:0;font-weight:600}h1{font-size:clamp(1.6rem,4vw,2.4rem);line-height:1.1}h2{font-size:clamp(1.1rem,1.8vw,1.35rem)}.muted,.empty-state{color:var(--muted);line-height:1.6}.mode-switch{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-subtle);gap:2px;padding:3px;display:inline-flex}.mode-switch button{background:0 0;border-color:#0000;min-width:80px;padding:6px 16px;font-weight:500}.mode-switch .active{color:#fff;background:var(--panel-hover);border-color:#0000}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-sm);padding:clamp(18px,2vw,24px);position:relative}.panel:before{content:"";display:none}.login-grid,.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.login-grid.single-login{grid-template-columns:minmax(0,480px);justify-content:center}.admin-grid.lower{align-items:start}.dashboard{gap:16px;display:grid}.login-panel{opacity:.7;align-content:start;gap:14px;min-height:420px;transition:opacity .16s,border-color .16s;display:grid}.login-panel.selected{border-color:var(--accent);opacity:1}.narrow-panel{gap:16px;width:min(480px,100%);margin:0 auto;display:grid}.status-panel{align-items:center;gap:16px;width:min(560px,100%);margin:10vh auto 0;display:flex}.pulse{background:var(--green);border-radius:999px;width:10px;height:10px;box-shadow:0 0 0 4px #3fb95029}form,.stack-list,.token-panel{gap:14px;display:grid}label,fieldset{color:var(--text);gap:6px;font-size:.85rem;font-weight:500;display:grid}fieldset{border:1px solid var(--line);border-radius:var(--radius);min-width:0;margin:0;padding:14px}legend{color:var(--muted);padding:0 6px;font-size:.8rem;font-weight:600}input,select,textarea{border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;color:var(--text);background:var(--bg-subtle);outline:none;padding:8px 12px;font-size:.875rem}input::placeholder,textarea::placeholder{color:#6e7681}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}select option{color:#c9d1d9;background:var(--panel)}textarea{resize:vertical;min-height:120px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.subscription-rules-panel{gap:14px;display:grid}.rule-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.rule-editor-grid textarea{min-height:140px;font-family:ui-monospace,SFMono-Regular,Cascadia Code,Consolas,monospace;line-height:1.5}.check-row,.check-card{align-items:center;gap:10px;display:flex}.check-row input,.check-card input{width:auto}.check-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.service-picker{margin-top:14px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.service-chip{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-subtle);align-items:center;gap:10px;padding:9px 12px;display:flex}.service-chip input{width:auto}.check-card{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-subtle);justify-content:flex-start;padding:12px}.check-card span{flex:1}.check-card small{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Cascadia Code,Consolas,monospace}.actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.actions.compact{min-width:180px}.left-actions{justify-content:flex-start}.chip,.status{border:1px solid var(--line);color:var(--muted);background:var(--bg-subtle);border-radius:999px;align-items:center;padding:3px 10px;font-size:.72rem;font-weight:500;display:inline-flex}.server-card,.job-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-subtle);justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.server-edit-form{width:100%}.server-card strong,.job-card strong{margin-bottom:4px;display:block}code,pre{font-family:ui-monospace,SFMono-Regular,Cascadia Code,Consolas,monospace}code{overflow-wrap:anywhere;color:#79c0ff;font-size:.82rem;display:block}pre{border:1px solid var(--line);border-radius:var(--radius-sm);color:#c9d1d9;background:var(--bg-subtle);white-space:pre-wrap;max-height:220px;margin:10px 0 0;padding:12px;font-size:.82rem;overflow:auto}.table-wrap{margin-top:14px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:820px;font-size:.85rem}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:10px 12px}th{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;background:var(--bg-subtle);font-family:inherit;font-size:.72rem;font-weight:600}td{color:var(--text)}tbody tr:hover{background:#b1bac40a}.notice{border:1px solid var(--line);border-radius:var(--radius-sm);margin:0;padding:10px 14px;font-size:.85rem;line-height:1.5}.notice.success{color:var(--green);background:#3fb9501a;border-color:#3fb95066}.notice.error{color:#ff7b72;background:#f851491a;border-color:#f8514966}.notice.info{color:var(--amber);background:#d299221a;border-color:#d2992266}.status.completed{color:var(--green);border-color:#3fb9504d}.status.failed,.status.partial_failed,.status.expired,.status.disabled{color:#ff7b72;border-color:#f851494d}.status.active{color:var(--green);border-color:#3fb9504d}.inline-status-form,.inline-remark-form{white-space:nowrap;align-items:center;gap:6px;display:flex}.inline-remark-form input{width:110px;min-width:0;padding:5px 8px;font-size:.8rem}.inline-remark-form button,.inline-status-form button{white-space:nowrap;padding:5px 10px;font-size:.8rem}.inline-status-form .inline-notice,.inline-remark-form .inline-notice{display:none}@media (width>=601px){td[data-label=备注]{white-space:nowrap;width:180px}td[data-label=状态]{white-space:nowrap;width:150px}td[data-label=重置密码]{white-space:nowrap;width:110px}td[data-label=初始密码],td[data-label=订阅],td[data-label=绑定]{white-space:nowrap;width:80px}td[data-label=用户]{white-space:nowrap}td[data-label=用户] code{color:var(--muted);margin-left:6px;font-size:.75rem;display:inline}td[data-label=最后登录],td[data-label=订阅使用],td[data-label=创建时间]{white-space:nowrap;width:92px}td[data-label=流量]{white-space:nowrap}td[data-label=流量] strong{display:inline}td[data-label=流量] small{color:var(--muted);margin:0 0 0 6px;font-size:.72rem;display:inline}td[data-label=到期时间],td[data-label=订阅],td[data-label=绑定]{white-space:nowrap}}td small{color:var(--muted);margin-top:3px;font-size:.75rem;display:block}.inline-expiry-form{gap:6px;min-width:240px;display:grid}.inline-expiry-form input,.inline-expiry-form button{padding:5px 10px;font-size:.8rem}.date-picker-row{grid-template-columns:minmax(170px,1fr) auto;gap:6px;display:grid}.quick-expiry-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.inline-notice{color:var(--muted);font-size:.75rem}.inline-notice.success{color:var(--green)}.inline-notice.error{color:#ff7b72}.tight{align-items:flex-start}.kv{gap:0;margin:14px 0 0;display:grid}.kv div{border-bottom:1px solid var(--line-subtle);justify-content:space-between;gap:12px;padding:10px 0;display:flex}.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:500}.copy-block{text-align:left;border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;color:var(--text);background:var(--bg-subtle);gap:6px;padding:12px 14px;display:grid}.copy-block:hover:not(:disabled){border-color:var(--accent);background:var(--panel-hover)}.copy-block code{overflow-wrap:anywhere;color:var(--text)}.note-panel{border-color:#d2992266}.user-dashboard{gap:16px;display:grid}@media (width>=1600px){.app-shell{width:min(1440px,100%)}}@media (width<=880px){.topbar,.command-strip,.panel-head,.server-card{flex-direction:column;align-items:stretch}.mode-switch,.actions,.actions.compact{justify-content:stretch;width:100%}.mode-switch button,.actions button{flex:1}.login-grid,.admin-grid,.form-grid,.rule-editor-grid,.check-grid,.service-grid{grid-template-columns:1fr}.login-panel{min-height:auto}.app-shell{padding:14px}.table-wrap{overflow-x:auto}table{min-width:820px}}@media (width<=600px){.app-shell{width:100%;padding:12px}.panel{border-radius:var(--radius);padding:14px}h1{font-size:1.5rem}h2{font-size:1.1rem}.topbar,.command-strip,.panel-head{flex-direction:column;align-items:stretch;gap:10px}.topbar>div{width:100%}.mode-switch,.actions,.actions.compact{width:100%;min-width:0}.mode-switch button,.actions button{flex:1;min-width:0;padding:8px 10px}.login-grid,.admin-grid,.form-grid,.rule-editor-grid,.check-grid,.service-grid{grid-template-columns:1fr}.login-panel{min-height:auto}.table-wrap{overflow:visible}table,thead,tbody,tr,th,td{display:block}table{width:100%;min-width:0}thead{display:none}tr{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-subtle);margin-bottom:10px;padding:12px}td{border-bottom:1px solid var(--line-subtle);flex-wrap:wrap;align-items:center;gap:6px 10px;padding:7px 0;display:flex}td:before{color:var(--muted);letter-spacing:.02em;text-transform:uppercase;content:attr(data-label);flex:0 0 76px;font-size:.68rem;font-weight:600}td:last-child{border-bottom:0}td[data-label=初始密码],td[data-label=订阅使用],td[data-label=创建时间],td[data-label=绑定]{display:none}td[data-label=流量]{flex-direction:column;align-items:flex-start;gap:2px}td[data-label=流量] strong{display:block}td[data-label=流量] small{margin:0;font-size:.72rem;display:block}td[data-label=用户] code{margin-left:6px;font-size:.72rem;display:inline}.inline-remark-form,.inline-expiry-form,.inline-status-form{flex-wrap:wrap;flex:100%;min-width:0}.inline-remark-form input{flex:auto;width:100%;min-width:0}.inline-remark-form button,.inline-status-form button{flex:none;padding:6px 12px}.date-picker-row,.quick-expiry-row{grid-template-columns:1fr}.date-picker-row input{width:100%}.server-card,.job-card{flex-direction:column;align-items:stretch;gap:10px}.server-card .actions,.job-card .actions{width:100%}.status-panel{width:100%;margin:6vh auto 0}.narrow-panel{width:100%}}@media (width<=400px){.app-shell{padding:10px}h1{font-size:1.35rem}.panel{padding:12px}td{flex-direction:column;align-items:flex-start;gap:4px}td:before{flex-basis:auto;font-size:.64rem}button{width:100%}.mode-switch button,.actions button{flex:1}}
