:root{--bg:#f6f7fb;--card:#fff;--text:#152238;--muted:#64748b;--line:#e2e8f0;--brand:#0f766e;--brand2:#dff7f1;--shadow:0 12px 32px #0f172a0d}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body.dark{--bg:#0b1220;--card:#111c2d;--text:#e5edf7;--muted:#9aabc1;--line:#28364a;--brand:#5eead4;--brand2:#123b3a;--shadow:0 12px 32px #0003}a{color:inherit}.topbar{position:sticky;top:0;z-index:1000;background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:12px max(16px,calc((100vw - 1200px)/2));gap:14px}.brand{font-weight:850;letter-spacing:-.04em;text-decoration:none;font-size:1.1rem}.brand span{color:var(--brand)}.navlinks{display:flex;gap:18px;align-items:center}.navlinks a{text-decoration:none;color:var(--muted);font-weight:600}.wrap{max-width:1200px;margin:auto;padding:24px 18px 100px}.hero{background:linear-gradient(120deg,#0f766e,#155e75);color:white;border-radius:28px;padding:clamp(24px,5vw,56px);display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:center;overflow:hidden}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-weight:800;font-size:.75rem;opacity:.8}.hero h1{font-size:clamp(2rem,5vw,4rem);line-height:1.02;letter-spacing:-.055em;margin:12px 0}.hero p{max-width:42rem;color:#e0f2fe}.searchrow{display:flex;gap:8px;margin-top:22px}.searchrow input{min-width:0;flex:1}.input,select,textarea{font:inherit;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--text);width:100%}.btn{font:inherit;font-weight:750;border:0;border-radius:12px;padding:12px 16px;cursor:pointer;background:var(--brand);color:#fff;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn.secondary{background:var(--brand2);color:var(--text)}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--text)}.btn:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #f59e0b;outline-offset:2px}.hero-art{min-height:210px;display:grid;place-items:center}.india-mark{font-size:clamp(6rem,15vw,12rem);filter:drop-shadow(0 15px 18px #0017)}.section{margin-top:34px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:16px}.section h2{margin:0;font-size:1.5rem;letter-spacing:-.03em}.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow);min-width:0}.place-card{display:flex;flex-direction:column;gap:8px}.place-emoji{height:112px;background:linear-gradient(135deg,var(--brand2),#dbeafe);border-radius:14px;display:grid;place-items:center;font-size:2.8rem}.place-card h3{margin:4px 0 0}.place-card p{margin:0;color:var(--muted);font-size:.92rem}.tag{display:inline-block;background:var(--brand2);border-radius:999px;padding:4px 9px;font-size:.75rem;font-weight:700}.maplayout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px}.filters{display:flex;flex-direction:column;gap:12px}.mapbox{height:520px;border-radius:20px;overflow:hidden;border:1px solid var(--line);background:#dce8e5}.maptools{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.bottomnav{display:none}.status{min-height:1.5em;color:var(--muted);font-size:.9rem}.footer{border-top:1px solid var(--line);padding:28px 18px;color:var(--muted);text-align:center}.list{display:grid;gap:10px}.listitem{padding:12px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.hide{display:none!important}.pill{border:1px solid var(--line);border-radius:999px;padding:7px 11px;background:var(--card);color:var(--text);cursor:pointer}.admin-table{width:100%;border-collapse:collapse}.admin-table td,.admin-table th{text-align:left;padding:10px;border-bottom:1px solid var(--line)}@media(max-width:760px){.navlinks{display:none}.wrap{padding:16px 12px 100px}.hero{grid-template-columns:1fr;border-radius:22px}.hero-art{min-height:100px}.india-mark{font-size:6rem}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.card{padding:12px}.maplayout{grid-template-columns:1fr}.filters{display:grid;grid-template-columns:1fr 1fr}.mapbox{height:62vh;min-height:380px}.bottomnav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:1100;background:var(--card);border-top:1px solid var(--line);padding:8px 4px calc(8px + env(safe-area-inset-bottom));justify-content:space-around}.bottomnav a{font-size:.7rem;text-align:center;text-decoration:none;color:var(--muted);display:grid;gap:2px;min-width:48px}.bottomnav b{font-size:1.1rem}.searchrow{flex-direction:column}.searchrow .btn{width:100%}}@media(max-width:390px){.grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.studio-grid{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:18px;align-items:start}.studio-controls{display:grid;gap:14px}.field{display:grid;gap:6px;font-weight:650}.field small{font-weight:400;color:var(--muted)}.control-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.color-field{display:flex;align-items:center;gap:8px;font-weight:600}.color-field input{width:44px;height:38px;border:0;padding:0;background:transparent}.theme-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.theme-choice{border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--card);color:var(--text);text-align:left;cursor:pointer}.theme-choice[aria-pressed=true]{border:2px solid var(--brand);background:var(--brand2)}.state-list{display:grid;grid-template-columns:1fr 1fr;gap:7px;max-height:340px;overflow:auto;padding:2px}.state-option{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:10px;padding:8px;font-size:.85rem}.state-option input{accent-color:var(--brand)}.preview-wrap{background:#e8edf2;border-radius:20px;padding:12px;min-width:0}.preview-toolbar{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:10px}.map-poster{--poster-bg:#fffaf0;--visited:#0f766e;--unvisited:#dce5e9;--wishlist:#f4b942;--poster-ink:#172a3a;background:var(--poster-bg);color:var(--poster-ink);padding:clamp(18px,4vw,38px);border-radius:14px;min-height:500px;box-shadow:0 12px 28px #0002;display:flex;flex-direction:column;gap:16px;overflow:hidden}.poster-kicker{text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;font-weight:800;opacity:.7}.poster-title{font-size:clamp(1.6rem,4vw,3rem);line-height:1.05;letter-spacing:-.04em;margin:0;overflow-wrap:anywhere}.poster-subtitle{margin:0;opacity:.8}.poster-map{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.poster-state{border-radius:7px;padding:9px 5px;text-align:center;background:var(--unvisited);font-size:.74rem;font-weight:750;overflow-wrap:anywhere;min-height:40px;display:grid;place-items:center}.poster-state.visited{background:var(--visited);color:white}.poster-state.wishlist{background:var(--wishlist);color:#34230a}.poster-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:.78rem}.legend-item{display:flex;align-items:center;gap:5px}.legend-dot{width:10px;height:10px;border-radius:3px;display:inline-block}.poster-foot{margin-top:auto;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;border-top:1px solid currentColor;padding-top:12px;font-size:.78rem;opacity:.85}.map-poster.layout-landscape .poster-map{grid-template-columns:repeat(6,minmax(0,1fr))}.map-poster.layout-square{min-height:420px}.map-poster.theme-dark{--poster-bg:#101b2b;--poster-ink:#f3f7fb;--unvisited:#344256;--visited:#20a898;--wishlist:#f3c969}.map-poster.theme-pastel{--poster-bg:#fff4f6;--poster-ink:#3c2940;--unvisited:#e8e4f3;--visited:#8b79c6;--wishlist:#ffc98b}.map-poster.theme-vintage{--poster-bg:#f0e4c9;--poster-ink:#4b3524;--unvisited:#d6c7a6;--visited:#55735a;--wishlist:#c78349}.map-poster.theme-minimal{--poster-bg:#fff;--poster-ink:#1e293b;--unvisited:#e5e7eb;--visited:#111827;--wishlist:#a3a3a3}.status-good{color:#0f766e}.status-error{color:#b91c1c}@media(max-width:850px){.studio-grid{grid-template-columns:1fr}.studio-controls{order:1}.preview-wrap{order:2}.map-poster{min-height:440px}}@media(max-width:420px){.poster-map{grid-template-columns:repeat(3,minmax(0,1fr))}.map-poster.layout-landscape .poster-map{grid-template-columns:repeat(4,minmax(0,1fr))}.state-list{grid-template-columns:1fr}.control-row{grid-template-columns:1fr}}

.saved-map-panel{border-top:1px solid var(--line);padding-top:12px}.saved-map-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.saved-map-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.saved-map-actions .pill{font-size:.75rem;padding:6px 8px}.listitem>div:first-child{min-width:0}.listitem strong{overflow-wrap:anywhere}@media(max-width:520px){.listitem{align-items:flex-start;flex-direction:column}.saved-map-actions{justify-content:flex-start;width:100%}}
#stateBoundaries[aria-pressed=true],#districtBoundaries[aria-pressed=true]{border-color:var(--brand);background:var(--brand2);font-weight:800}

.geographic-poster-svg{display:block;width:100%;height:auto;max-height:560px;overflow:visible}.geographic-poster-svg path{vector-effect:non-scaling-stroke;transition:fill .15s ease}.geographic-poster-svg path:hover{stroke-width:2.2}.district-poster-list{grid-column:1/-1;border-top:1px solid var(--line);padding-top:8px;font-size:.75rem;line-height:1.7;overflow-wrap:anywhere;opacity:.85}.maptools button[aria-pressed="true"]{border-color:var(--brand);background:var(--brand2)}
.geographic-poster-svg{grid-column:1/-1}

.header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.connection-status{font-size:.75rem;font-weight:750;color:var(--muted);white-space:nowrap}.connection-status[data-state="online"]{color:#0f766e}.connection-status[data-state="offline"]{color:#b45309}@media(max-width:760px){.header-actions{gap:5px}.connection-status{font-size:.68rem}.header-actions .btn{padding:9px 10px;font-size:.82rem}}
