:root{--bg:#0f1115;--panel:#171a21;--line:#2a2f3a;--txt:#e7eaf0;--muted:#9aa3b2;--accent:#4f8cff}*{box-sizing:border-box}html,body{height:100%;color:var(--txt);background:var(--bg);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.app{height:100vh;display:flex}.side{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;flex:0 0 300px;width:300px;display:flex}.map{flex:1}.head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:8px;padding:14px 16px;display:flex}.head h1{margin:0 0 2px;font-size:15px}.head p{color:var(--muted);margin:0;font-size:11px}.logout{border:1px solid var(--line);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:7px;padding:4px 8px;font-size:11px}.logout:hover{color:var(--txt);border-color:var(--accent)}.sect{border-bottom:1px solid var(--line);padding:12px 16px}.sect label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:6px;font-size:11px;display:block}select,input{width:100%;color:var(--txt);border:1px solid var(--line);background:#0f1218;border-radius:8px;outline:none;padding:8px 10px;font-size:13px}input:focus,select:focus{border-color:var(--accent)}.scrollarea{flex:1;overflow:auto}.legend{border-bottom:1px solid var(--line);padding:10px 16px}.leg-item{align-items:center;gap:8px;padding:3px 0;font-size:12px;display:flex}.leg-item .sw{border:1px solid #ffffff40;border-radius:3px;flex:0 0 14px;width:14px;height:14px}.leg-item .ct{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto}.pend{padding:10px 16px}.pend h2{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 6px;font-size:11px}.pend .mz{border-bottom:1px solid var(--line);justify-content:space-between;padding:4px 0;font-size:12px;display:flex}.pend .hint{color:var(--muted);margin-top:8px;font-size:11px;line-height:1.4}.count{color:var(--muted);padding:2px 16px 10px;font-size:11px}.foot{border-top:1px solid var(--line);color:var(--muted);padding:10px 16px;font-size:11px}.iw h3{color:#111;margin:0 0 2px;font-size:14px}.iw .sub{color:#666;margin:0 0 8px;font-size:11px}.iw table{border-collapse:collapse;color:#222;font-size:11px}.iw th,.iw td{text-align:left;white-space:nowrap;border-bottom:1px solid #e3e3e3;padding:3px 7px}.iw th{background:#f4f5f7;font-weight:600;position:sticky;top:0}.iw .scroll{border:1px solid #e3e3e3;border-radius:6px;max-height:230px;overflow:auto}.iw .num{text-align:right;font-variant-numeric:tabular-nums}.login-wrap{justify-content:center;align-items:center;height:100vh;padding:20px;display:flex}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:100%;max-width:360px;padding:28px}.login-card h1{margin:0 0 4px;font-size:18px}.login-card p{color:var(--muted);margin:0 0 20px;font-size:13px}.login-card form{flex-direction:column;gap:12px;display:flex}.login-card button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px;font-size:14px;font-weight:600}.login-card button:hover{filter:brightness(1.08)}.login-err{color:#ff6b6b;margin:0;font-size:12px}
