:root{
  --bg:#0b1020; --fg:#eef1f6; --panel:#141a2f; --border:#283251;
  --accent:#2d7dfa; --green:#4cd964; --red:#ff4949; --muted:#9bb0d3;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Arial;background:var(--bg);color:var(--fg)}
.container{max-width:1200px;margin:30px auto;padding:16px}
.muted{color:var(--muted)}
.card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:16px;box-shadow:0 10px 30px rgba(0,0,0,.2)}
.grid{display:grid;grid-template-columns:2fr 1fr;gap:16px}
@media (max-width:900px){.grid{grid-template-columns:1fr}}
#map-wrapper{position:relative;width:100%;max-width:1100px;margin:0 auto}
#fair-map{width:100%;height:auto;max-height:80vh;display:block;border-radius:16px;object-fit:contain;background:#0e1327}
#overlay{position:absolute;inset:0;pointer-events:none}
.btn{background:var(--accent);border:0;color:#fff;padding:10px 14px;border-radius:10px;cursor:pointer;font-weight:600}
.btn:disabled{opacity:.6;cursor:not-allowed}
.input{background:#10162a;color:var(--fg);border:1px solid var(--border);padding:8px 10px;border-radius:10px;width:100%;margin:6px 0}
.pill{display:inline-block;padding:2px 8px;border-radius:999px;border:1px solid var(--border)}
.free{background:rgba(76,217,100,.2);color:#b8f3c5}
.busy{background:rgba(255,73,73,.2);color:#ffd1d1}
.tag{display:inline-block;background:#10162a;border:1px solid var(--border);border-radius:999px;padding:4px 10px;margin:4px 6px 0 0}
.status{min-height:24px}
.sidebar hr{border-color:var(--border);margin:16px 0}