:root{--bg:#0d0f16;--panel:#161a25;--panel2:#1d2230;--line:#2a3042;--text:#e9ecf4;--muted:#8a91a6;--accent:#ee2a33;--gold:#ffcc33;--green:#4bff6b}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:#7fb4ff;text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:26px;margin:0 0 18px}h2{font-size:17px;margin:0 0 12px}h3{font-size:15px;margin:18px 0 8px;color:var(--gold)}
.accent{color:var(--accent)}.muted{color:var(--muted)}small{font-size:12px}code{background:#0b0d13;padding:2px 6px;border-radius:4px}
.center{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:16px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:18px}
.narrow{width:100%;max-width:440px}
label{display:block;margin:10px 0;color:var(--muted);font-size:13px}
label.row{display:flex;gap:10px;align-items:center;color:var(--text);font-size:14px}
input,select,textarea{width:100%;margin-top:5px;background:#0b0d13;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:9px 11px;font:inherit}
label.row input{width:auto;margin:0}
input:focus,select:focus,textarea:focus{outline:2px solid #3b5bdb;border-color:transparent}
.btn{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:8px;padding:10px 18px;font-weight:700;cursor:pointer;margin-top:8px}
.btn:hover{filter:brightness(1.1);text-decoration:none}.btn.small{padding:6px 12px;margin:0}.btn.danger{background:#a0141c}
.err{background:#3a1216;border:1px solid #7a1f27;padding:10px;border-radius:8px}.ok{color:var(--green);font-weight:700}
.top{display:flex;justify-content:space-between;align-items:center;padding:14px 22px;background:#0a0c12;border-bottom:1px solid var(--line)}
.brand{font-weight:900;font-style:italic;font-size:20px;letter-spacing:.5px}.brand small{color:var(--muted);font-style:normal;font-weight:400;font-size:12px}
.layout{display:flex;min-height:calc(100vh - 56px)}
.side{width:210px;flex-shrink:0;background:#11141d;border-right:1px solid var(--line);padding:14px 10px}
.side a{display:block;color:var(--text);padding:9px 12px;border-radius:8px;margin-bottom:2px}.side a:hover{background:var(--panel2);text-decoration:none}
.side a.on{background:var(--accent);font-weight:700}
main{flex:1;padding:24px;min-width:0}
.flash{background:#14301b;border:1px solid #2c6b3a;color:#b9f5c6;padding:10px 14px;border-radius:8px;margin-bottom:16px}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:18px}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px}.tile .num{font-size:28px;font-weight:800;color:var(--gold)}.tile .lbl{color:var(--muted);font-size:13px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.grid5{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:8px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:13px}
tr.dim{opacity:.5}td.wrap{max-width:280px;word-break:break-word}.plus{color:var(--green)}.minus{color:#ff7272}
.badge{background:var(--accent);color:#fff;border-radius:10px;padding:1px 7px;font-size:11px;font-weight:700}
.facts{margin:0;padding-left:18px}.facts li{margin:6px 0}
.maps{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-bottom:10px}
.map{display:flex;gap:10px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px;margin:0;color:var(--text)}
.map input{width:auto;margin:0}.map span{display:flex;flex-direction:column}
.diff{font-weight:700}.deasy{color:var(--green)}.dmedium{color:var(--gold)}.dhard{color:#ff8a3d}.dexpert{color:#ff4b5c}
.tabs{display:flex;gap:6px;margin-bottom:12px}.tabs a{padding:7px 14px;border-radius:8px;background:var(--panel);color:var(--text)}.tabs a.on{background:var(--accent)}
.search{display:flex;gap:8px;margin-bottom:12px;max-width:480px}.search input{margin:0}
form.inline{display:flex;gap:6px;align-items:center}form.inline select,form.inline input{margin:0;padding:6px}
@media (max-width:760px){.layout{flex-direction:column}.side{width:auto;display:flex;flex-wrap:wrap;gap:4px;border-right:0;border-bottom:1px solid var(--line)}.side a{margin:0}main{padding:16px}}
