
:root{--bg:#07131a;--panel:#102630;--panel2:#0b1b24;--text:#e9f2f6;--muted:#9fb1bc;--border:#294652;--accent:#e0aa36}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:"Segoe UI",Arial,sans-serif;overflow:hidden}
.topbar{height:70px;padding:10px 16px;background:#061017;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:16px}.topbar h1{font-size:17px;margin:0 0 4px}.subtitle{font-size:12px;color:var(--muted)}.top-actions{display:flex;gap:10px;align-items:center;font-size:11px;color:var(--muted)}select,input,textarea{background:#091c25;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px}.btn{background:var(--accent);border:1px solid #aa8128;border-radius:8px;padding:8px 11px;font-weight:700;cursor:pointer}.btn.secondary{background:#15313f;color:var(--text);border-color:var(--border)}
.layout{height:calc(100vh - 70px);display:grid;grid-template-columns:minmax(0,1fr) 390px}.map-pane{position:relative}.map-pane #map{position:absolute;inset:0}.sidebar{overflow:auto;background:var(--panel);border-left:1px solid var(--border);padding:18px}.empty{color:var(--muted);margin-top:30px}.empty h2{color:var(--text)}.map-status{position:absolute;z-index:700;top:12px;left:12px;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:rgba(7,20,28,.94);font-size:12px;color:var(--muted)}.map-status.ok{display:none}.map-status.error{color:#ffd0d0;border-color:#8f4046}
.map-legend{position:absolute;z-index:700;left:12px;bottom:18px;background:rgba(7,20,28,.94);border:1px solid var(--border);border-radius:9px;padding:8px 10px;display:grid;grid-template-columns:1fr 1fr;gap:5px 12px;font-size:11px}.leg{display:flex;gap:6px;align-items:center}.sw{width:12px;height:12px;border-radius:3px;border:1px solid #fff8}
.type{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.crumb{font-size:11px;color:var(--muted);margin:5px 0 9px}.sidebar h2{font-size:22px;margin:0}.capital{font-size:12px;color:var(--muted);margin:4px 0 13px}.section{border-top:1px solid var(--border);margin-top:12px;padding-top:11px}.section h3{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px}.section p{font-size:13.5px;line-height:1.55;margin:0;white-space:pre-wrap}.badges{display:flex;gap:6px;flex-wrap:wrap;margin:9px 0}.badge{padding:4px 8px;border-radius:15px;background:#173443;border:1px solid var(--border);font-size:11.5px}.updated{font-size:11px;color:var(--muted);margin-top:12px}.adminrow{margin-top:16px}
dialog{border:0;padding:0;background:transparent;color:var(--text);max-width:96vw}dialog::backdrop{background:#000b}.modal-card{width:420px;max-width:94vw;background:#102630;border:1px solid var(--border);border-radius:12px;padding:16px}.modal-card.wide{width:760px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start}.modal-head h2{margin:0}.x{border:0;background:transparent;color:var(--text);font-size:24px;cursor:pointer}.modal-card label{display:grid;gap:5px;color:var(--muted);font-size:12px;margin-top:11px}.modal-card textarea{width:100%;font:13px/1.45 inherit;resize:vertical}.fields{max-height:66vh;overflow:auto;padding-right:4px}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.error{min-height:16px;color:#ffb9b9;font-size:12px;margin-top:7px}.muted{color:var(--muted);font-size:11px}
.map-label{transform:translate(-50%,-50%);white-space:nowrap;background:#ffffffdf;color:#12212b;border:1px solid #29465299;border-radius:5px;padding:2px 5px;font:650 10px/1.15 "Segoe UI",Arial;box-shadow:0 1px 2px #0003}.map-label small{display:block;font-size:8px;font-weight:500;color:#536b77}.map-label.province{font-size:12px;border-width:2px}.map-label.district{font-size:8px;padding:1px 3px}
@media(max-width:900px){body{overflow:auto}.topbar{height:auto;flex-wrap:wrap;align-items:flex-start}.top-actions{width:100%;justify-content:space-between}.layout{height:auto;display:block}.map-pane{height:62vh}.sidebar{min-height:38vh;border-left:0;border-top:1px solid var(--border)}.map-legend{grid-template-columns:1fr}}
