:root{--bg:#0b0d12;--panel:#141821;--panel-2:#1b202b;--text:#e7e9ee;--muted:#8b90a0;--accent:#5b8cff;--accent-2:#3a6bff;--error:#ff6b6b;--ok:#6ee7a8;--border:#232836}*{box-sizing:border-box}body,html{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}a{color:var(--accent);text-decoration:none}.center{min-height:100vh;display:flex;align-items:center;justify-content:center}.admin-shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:var(--panel);border-right:1px solid var(--border);padding:18px 14px;display:flex;flex-direction:column}.sidebar .brand{font-weight:700;margin-bottom:18px}.side-nav{display:flex;flex-direction:column;gap:6px}.side-nav a{color:var(--text);padding:8px 10px;border-radius:8px}.side-nav a:hover{background:var(--panel-2);text-decoration:none}.spacer{flex:1 1}.who{border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:6px}.content{padding:28px 32px;overflow:auto}.page{max-width:900px}h1{margin:0 0 16px}h2{margin:24px 0 12px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:14px;gap:14px}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px}.link-card{color:var(--text);display:block}.link-card:hover{border-color:var(--accent);text-decoration:none}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px;margin:16px 0}.btn{display:inline-flex;align-items:center;gap:6px;background:var(--accent-2);color:#fff;border:1px solid transparent;border-radius:9px;padding:9px 15px;font-weight:600;font-size:14px;cursor:pointer}.btn:hover{background:var(--accent)}.btn.ghost{background:transparent;border-color:var(--border);color:var(--text)}.btn.lg{padding:11px 20px}.btn.sm{padding:6px 11px;font-size:13px}.btn:disabled{opacity:.6;cursor:default}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.form{display:flex;flex-direction:column;gap:12px;margin:14px 0;max-width:520px}.grid-form{display:grid;grid-template-columns:1fr 1fr;max-width:640px}.grid-form button{grid-column:1/-1;justify-self:start}.form label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted)}.card.login input,.form input,.form select{background:var(--panel-2);border:1px solid var(--border);border-radius:9px;padding:9px 11px;color:var(--text);font-size:14px}.card.login{display:flex;flex-direction:column;gap:12px;width:320px}.console{background:#06080c;border:1px solid var(--border);border-radius:10px;overflow:hidden}.console-head{padding:6px 10px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--border)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}.dot.on{background:var(--ok)}.dot.off{background:var(--error)}.console-out{margin:0;padding:12px;height:320px;overflow:auto;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12.5px;white-space:pre-wrap;color:#cdd3e0}.console-in{display:flex;gap:8px;padding:8px;border-top:1px solid var(--border)}.console-in input{flex:1 1;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:8px 10px;color:var(--text);font-family:ui-monospace,monospace}.files{width:100%;border-collapse:collapse;margin-top:10px}.files td,.files th{text-align:left;padding:7px 8px;border-bottom:1px solid var(--border);font-size:13px}.actions{text-align:right}.crumbs{font-size:13px}.link{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;font:inherit}.link.danger{color:var(--error)}.modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:24px}.modal-box{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px;width:min(720px,100%)}.modal-box textarea{width:100%;background:#06080c;color:#cdd3e0;border:1px solid var(--border);border-radius:8px;font-family:ui-monospace,monospace;font-size:12.5px;padding:10px;margin:10px 0}.muted{color:var(--muted)}.small{font-size:12px}.on{color:var(--ok)}.error{color:var(--error);background:hsla(0,100%,71%,.1);border:1px solid hsla(0,100%,71%,.3);padding:8px 12px;border-radius:8px}.subcard{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:14px;margin:10px 0}.cols2{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-top:8px}.editor{display:flex;flex-direction:column;gap:6px}textarea{background:#06080c;color:#cdd3e0;border:1px solid var(--border);border-radius:8px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12.5px;padding:8px;width:100%}.rank-card{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin:10px 0}.rank-head{display:flex;align-items:center;gap:10px}.rank-icon{width:42px;height:42px;flex:0 0 auto;border-radius:8px;object-fit:cover;background:#0003;display:grid;place-items:center}.rank-icon.ph{border:1px dashed var(--border);font-weight:700;color:#8b93a7}.rank-edit{margin-top:10px;padding-top:10px;border-top:1px solid var(--border);gap:12px}.rank-edit,.sell-card{display:flex;flex-direction:column}.sell-card{background:var(--panel-2);border:1px dashed var(--border);border-radius:10px;padding:14px;margin-top:14px;gap:10px}.field{display:flex;flex-direction:column;gap:4px}.field>span:first-child{font-size:12px;color:#8b93a7}.field .hint{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.price-chip{display:inline-block;margin:0 4px 2px 0;background:#0003;border:1px solid var(--border);border-radius:999px;padding:1px 9px;font-size:12px}.reward-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:4px 0;padding-bottom:5px;border-bottom:1px solid #ffffff10}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px 16px;gap:10px 16px;max-width:640px}.form-grid label{display:flex;flex-direction:column;gap:4px}.form-grid input{padding:6px 8px}.tag{display:inline-block;font-size:12px;padding:1px 7px;border-radius:999px;background:#1e222b;color:#9aa;border:1px solid #ffffff14}