:root {
  color-scheme: dark;
  --bg: #07111f;
  --panel: #111f31;
  --panel-soft: #17293f;
  --text: #f7fbff;
  --muted: #a9bdd3;
  --accent: #45e6b0;
  --accent-dark: #063f36;
  --warning: #ffcc66;
  --danger: #ff7185;
  font-family: Inter, ui-rounded, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; max-width:100%; overflow-x:hidden; background: radial-gradient(circle at top, #153454 0, var(--bg) 42rem); color: var(--text); }
body::before { content: ""; position: fixed; inset: 0; pointer-events: none; opacity: .08; background-image: linear-gradient(rgba(255,255,255,.4) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.4) 1px, transparent 1px); background-size: 32px 32px; }
main { position: relative; width: calc(100vw - 2rem); max-width:46rem; margin: 0 auto; padding: 1.2rem 0 5rem; }
.brand { display: flex; align-items: center; gap: .8rem; margin-bottom: 1.2rem; }
.brand-mark { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 1rem; background: var(--accent); color: #061b18; font-size: 1.5rem; box-shadow: 0 8px 30px rgba(69,230,176,.25); }
h1,h2,p { margin-top: 0; }
h1 { margin-bottom: .1rem; font-size: clamp(1.6rem, 7vw, 2.2rem); }
h2 { font-size: 1.05rem; letter-spacing: .03em; }
.eyebrow { color: var(--accent); text-transform: uppercase; letter-spacing: .16em; font-weight: 800; font-size: .72rem; }
.muted { color: var(--muted); }
.card { padding: 1.15rem; border: 1px solid rgba(255,255,255,.1); border-radius: 1.4rem; background: rgba(17,31,49,.92); box-shadow: 0 16px 48px rgba(0,0,0,.22); margin-bottom: 1rem; }
.grid { display: grid; gap: 1rem; }
label { display: grid; gap: .45rem; color: var(--muted); font-size: .88rem; font-weight: 700; }
input,select,button { width: 100%; min-height: 3.25rem; border-radius: 1rem; border: 1px solid rgba(255,255,255,.15); font: inherit; }
input,select { padding: 0 .9rem; color: var(--text); background: #0a1727; }
button { padding: .75rem 1rem; border: 0; background: var(--accent); color: #06231d; font-weight: 900; cursor: pointer; }
button.secondary { color: var(--text); background: var(--panel-soft); border: 1px solid rgba(255,255,255,.13); }
button.danger { color: #fff; background: #962f45; }
button:disabled { cursor: wait; opacity: .55; }
.status-row { display: grid; grid-template-columns: repeat(3,1fr); gap: .55rem; }
.status { min-width: 0; padding: .65rem; border-radius: .9rem; background: #091827; text-align: center; }
.status strong { display:block; font-size: .76rem; overflow: hidden; text-overflow: ellipsis; }
.status span { display:block; color: var(--muted); font-size: .64rem; margin-top: .15rem; }
.hidden { display: none !important; }
.alert { padding: .8rem 1rem; border-radius: 1rem; background: #342910; color: #ffe0a3; margin-bottom: 1rem; }
.success { background: var(--accent-dark); color: #baffea; }
.code { font-size: clamp(2rem, 12vw, 4rem); letter-spacing: .14em; font-weight: 950; text-align: center; color: var(--accent); }
.qr { display:block; width: min(65vw, 15rem); aspect-ratio: 1; margin: 1rem auto; border-radius: 1rem; background: white; padding: .6rem; }
.links { display: flex; gap: .7rem; margin-top: 1rem; }
.links a { flex:1; padding: .8rem; border-radius: .8rem; color: var(--text); background: var(--panel-soft); text-align:center; text-decoration:none; font-weight: 800; }
.list { display:grid; gap:.65rem; padding:0; list-style:none; }
.list li { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.8rem; border-radius:.9rem; background:#0b1929; }
.list button { width:auto; min-height:2.4rem; padding:.45rem .7rem; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.admin-main { width:calc(100vw - 1rem); max-width:72rem; }
.grid > *, .links > * { min-width:0; }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.section-heading h2 { margin-bottom:0; }
button.compact { width:auto; min-height:2.75rem; padding:.55rem .8rem; }
.search-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.6rem; margin:.9rem 0; }
.search-row button { width:auto; }
.search-results { display:grid; gap:.4rem; margin-bottom:.7rem; }
.search-result { min-height:2.7rem; padding:.6rem .8rem; color:var(--text); background:#0a1727; border:1px solid rgba(255,255,255,.12); text-align:left; font-weight:700; }
.map-mode { display:grid; grid-template-columns:1fr; gap:.45rem; margin-bottom:.7rem; }
.map-mode button { min-height:2.75rem; font-size:.82rem; }
.map-mode button.active { color:#06231d; background:var(--accent); }
.map { height:clamp(21rem,56vh,32rem); border-radius:1rem; overflow:hidden; background:#cdd9df; border:1px solid rgba(255,255,255,.15); z-index:0; }
.map-status { margin:.65rem 0 0; font-size:.8rem; }
.maplibregl-map { font-family:inherit; }
.maplibregl-ctrl-group button { width:29px; min-height:29px; border-radius:0; }
.maplibregl-ctrl-attrib { color:#15202b; font-size:.68rem; }
.maplibregl-ctrl-attrib a { color:#145b7d; }
.coordinate-row { display:grid; grid-template-columns:1fr 1fr; gap:.65rem; }
.symbol-picker { display:flex; flex-wrap:wrap; gap:.45rem; }
.symbol-picker button { width:2.9rem; min-height:2.9rem; padding:.35rem; color:var(--text); background:#0a1727; border:1px solid rgba(255,255,255,.14); font-size:1.25rem; }
fieldset { min-width:0; padding:0; border:0; }
legend { margin-bottom:.65rem; color:var(--muted); font-size:.88rem; font-weight:700; }
.category-picker { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; }
.category-picker label { display:flex; align-items:center; gap:.55rem; min-width:0; padding:.65rem; border-radius:.85rem; background:#0a1727; color:var(--text); }
.category-picker input, .osm-preview input { width:1.2rem; min-height:1.2rem; accent-color:var(--accent); }
.osm-preview { display:grid; gap:.55rem; }
.osm-candidate { display:grid; grid-template-columns:auto 1fr; gap:.7rem; align-items:center; padding:.7rem; border-radius:.85rem; background:#0a1727; }
.osm-candidate strong,.osm-candidate span { display:block; }
.osm-candidate span { color:var(--muted); font-size:.78rem; margin-top:.15rem; }
.list li > span { min-width:0; }
.list small { display:block; color:var(--muted); margin-top:.18rem; }
.source-pill { display:inline-block; padding:.08rem .35rem; border-radius:.4rem; color:#bde1ff; background:#13365a; font-size:.65rem; font-weight:800; }
@media (min-width: 36rem) { .map-mode { grid-template-columns:repeat(3,1fr); } .category-picker { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (min-width: 52rem) { .two { grid-template-columns: 1fr 1fr; } main { padding-top: 2.5rem; } }
