:root { color-scheme: dark; --bg:#111416; --panel:#1a1f22; --panel2:#20272b; --line:#354047; --text:#edf1f2; --muted:#9ba8ae; --green:#65d09c; --red:#ef8b8b; }
* { box-sizing:border-box; }
[hidden] { display:none!important; }
body { margin:0; min-height:100vh; background:var(--bg); color:var(--text); font:14px system-ui,"Microsoft YaHei",sans-serif; letter-spacing:0; }
button,input,textarea { font:inherit; letter-spacing:0; }
button { min-height:36px; padding:7px 14px; border:1px solid #51ae81; border-radius:5px; background:#51ae81; color:#07140d; font-weight:700; cursor:pointer; }
button:disabled { cursor:wait; opacity:.72; }
button.secondary { border-color:var(--line); background:var(--panel2); color:var(--text); }
input,textarea { min-height:38px; border:1px solid var(--line); border-radius:4px; background:#0d1012; color:var(--text); padding:8px; }
.login-view { min-height:100vh; display:grid; place-items:center; padding:20px; }
.login-panel { width:min(420px,100%); display:grid; gap:15px; padding:26px; border:1px solid var(--line); border-radius:7px; background:var(--panel); }
h1 { margin:0; font-size:20px; }.login-panel p,.topbar p { margin:6px 0 0; color:var(--muted); }.login-panel label,.action-band label { display:grid; gap:6px; color:var(--muted); }.error { min-height:18px; color:var(--red)!important; }
.admin-view { max-width:1440px; margin:auto; padding:18px; }.topbar { display:flex; justify-content:space-between; align-items:center; padding-bottom:15px; border-bottom:1px solid var(--line); }
.account-actions { display:flex; gap:7px; }
dialog { width:min(420px,calc(100vw - 32px)); border:1px solid var(--line); border-radius:7px; background:var(--panel); color:var(--text); } dialog::backdrop { background:rgba(0,0,0,.72); } dialog form { display:grid; gap:13px; } dialog header { display:flex; justify-content:space-between; align-items:center; } dialog h2 { margin:0; font-size:18px; } dialog label { display:grid; gap:6px; color:var(--muted); }
nav { display:flex; gap:6px; padding:12px 0; } nav button { border-color:var(--line); background:transparent; color:var(--muted); } nav button.active { border-color:var(--green); color:var(--green); }
.action-band { display:flex; gap:12px; align-items:end; padding:14px; background:var(--panel); border:1px solid var(--line); }.action-band input { width:120px; }
.users-band { justify-content:space-between; align-items:center; }
.new-cards { margin:12px 0; padding:12px; border:1px solid #51ae81; background:var(--panel); }.new-cards>div { display:flex; justify-content:space-between; align-items:center; }.new-cards textarea { width:100%; min-height:150px; margin-top:10px; font-family:Consolas,monospace; }
.table-wrap { margin-top:12px; overflow:auto; border:1px solid var(--line); } table { width:100%; border-collapse:collapse; background:var(--panel); } th,td { padding:10px; border-bottom:1px solid var(--line); text-align:left; white-space:nowrap; } th { color:var(--muted); font-size:12px; } td code { color:var(--green); }
.machine-list { display:grid; gap:6px; min-width:270px; }.machine-row { display:grid; grid-template-columns:minmax(120px,1fr) auto auto; gap:7px; align-items:center; }.machine-row code { overflow:hidden; text-overflow:ellipsis; }.machine-state { color:var(--muted); font-size:12px; }.machine-state.banned { color:var(--red); }.compact { min-height:30px; padding:4px 9px; font-size:12px; }
#toast { position:fixed; right:18px; bottom:18px; max-width:360px; padding:10px 14px; border-radius:4px; background:#263137; opacity:0; pointer-events:none; transition:opacity .15s; } #toast.visible { opacity:1; }
@media(max-width:680px){.action-band{align-items:stretch;flex-direction:column}.action-band input{width:100%}.topbar{align-items:flex-start}.admin-view{padding:10px}}
