:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#20362f;background:#f5f7f4}*{box-sizing:border-box}body{margin:0}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;border-bottom:1px solid #dfe6dd;background:#fff}.brand{font-size:32px;font-weight:800;letter-spacing:-2px;text-decoration:none;color:#234f3f}.brand span{font-weight:400;letter-spacing:-1px;margin-left:8px;color:#698474}.tag{font-size:13px;color:#63756b}main{display:grid;grid-template-columns:340px 1fr;height:calc(100dvh - 78px);min-height:520px}.panel{padding:36px 28px;overflow:auto}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#6c826e}h1{font-size:32px;line-height:1.15;letter-spacing:-1.3px;margin:20px 0}.panel p{font-size:14px;line-height:1.65;color:#60746a}h2{font-size:15px;margin:28px 0 18px}label{display:block;font-size:12px;font-weight:600;margin:14px 0 6px}input{width:100%;border:1px solid #ccd8cf;border-radius:8px;padding:11px;background:#fff;font:inherit;color:inherit}button{cursor:pointer;border:0;border-radius:8px;font:inherit;font-size:14px;font-weight:600}form button{width:100%;background:#245740;color:#fff;padding:13px;margin-top:18px;display:flex;justify-content:space-between}button:hover{filter:brightness(.94)}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #d39b43;outline-offset:3px}.panel .note{font-size:11px;border-top:1px solid #dce4dd;padding-top:16px}.map-wrap{position:relative;min-height:360px}#map{height:100%;width:100%;background:#dce6d8}#fit{position:absolute;z-index:800;top:16px;right:16px;padding:11px 16px;background:white;box-shadow:0 2px 10px #183b3020}.embed .topbar,.embed .panel{display:none}.embed main{display:block;height:100dvh;min-height:0}.embed .map-wrap{height:100%;min-height:0}@media(max-width:700px){.topbar{height:60px;padding:0 20px}.tag{display:none}main{display:flex;flex-direction:column;height:auto;min-height:0}.panel{padding:18px 20px}.panel h1{font-size:25px;margin:10px 0}.panel>p:not(#status),.panel h2{display:none}form{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}form label{margin:0}form label[for=longitude]{grid-row:1;grid-column:2}form input{grid-row:2;min-width:0}form button{grid-column:1/-1;margin-top:0}.map-wrap{height:60dvh}.embed .map-wrap{height:100dvh}}

/* Light Wiggo theme. Filter only raster tiles, never markers, labels in popups or attribution. */
:root { --map-ink:#15211f; --map-sand:#d5b968; --map-paper:#f4f3ef; --map-border:#d9ddd8; }
body { color:var(--map-ink); background:var(--map-paper); }
.topbar { border-color:var(--map-border); }
.brand { color:var(--map-ink); }
.brand span,.tag,.panel p { color:#65706b; }
.eyebrow { color:#877039; }
input { border-color:var(--map-border); border-radius:6px; }
form button { background:var(--map-ink); }
#map { background:#e9ede7; font-family:inherit; }
#map .leaflet-tile-pane { filter:saturate(.15) contrast(.78) brightness(1.12); }
#map .leaflet-control-zoom { border:1px solid var(--map-border); border-radius:9px; overflow:hidden; box-shadow:0 4px 18px #15211f14; }
#map .leaflet-control-zoom a { width:44px; height:44px; line-height:44px; background:#fff; color:var(--map-ink); border-color:var(--map-border); font-weight:400; }
#map .leaflet-control-zoom a:hover { background:var(--map-paper); }
#map .leaflet-control-zoom a.leaflet-disabled { color:#9ca6a1; }
#map .leaflet-top .leaflet-control { margin-top:16px; }
#map .leaflet-left .leaflet-control { margin-left:16px; }
#fit { min-height:44px; border:1px solid var(--map-border); border-radius:9px; color:var(--map-ink); background:#fff; box-shadow:0 4px 18px #15211f14; font-size:13px; }
#fit:hover { background:var(--map-paper); filter:none; }
#map .leaflet-control-attribution { padding:3px 8px; background:rgba(255,255,255,.94); color:#52615b; font-size:11px; }
#map .leaflet-control-attribution a { color:#315d4c; }
#map .leaflet-popup-content-wrapper { border:1px solid var(--map-border); border-radius:10px; color:var(--map-ink); box-shadow:0 8px 30px #15211f24; }
#map .leaflet-popup-content { margin:20px 42px 20px 20px; font-size:14px; font-weight:600; line-height:1.6; overflow-wrap:anywhere; }
#map .leaflet-popup-tip { background:#fff; box-shadow:0 3px 8px #15211f14; }
#map a.leaflet-popup-close-button { width:38px; height:38px; padding:0; line-height:38px; color:#65706b; }
#map .wiggo-map-marker { background:none; border:0; }
.wiggo-map-pin { position:absolute; left:6px; top:4px; width:32px; height:32px; display:grid; place-items:center; border:3px solid #fff; border-radius:50% 50% 4px 50%; background:var(--map-ink); transform:rotate(45deg); box-shadow:2px 3px 8px #15211f40; }
.wiggo-map-pin > span { width:11px; height:11px; border-radius:50%; background:var(--map-sand); }
#map .wiggo-map-marker:hover .wiggo-map-pin { background:#315d4c; }
#map .wiggo-map-marker:focus-visible { outline:3px solid var(--map-sand); outline-offset:4px; border-radius:8px; }
#map .leaflet-control a:focus-visible { outline:3px solid var(--map-sand); outline-offset:-3px; }

/* Copyable integration examples; isolated from the embedded map. */
#open-integration { padding:11px 15px; background:#15211f; color:#fff; font-size:13px; }
.integration-dialog { width:min(920px,calc(100% - 24px)); max-height:90dvh; padding:24px; border:1px solid #d9ddd8; border-radius:12px; color:#15211f; background:#f4f3ef; }
.integration-dialog::backdrop { background:#15211f99; }
.integration-heading { display:flex; gap:16px; align-items:center; justify-content:space-between; }
.integration-dialog h2,.integration-dialog h3 { margin:0; }
.integration-dialog h2 { font-size:24px; }
.integration-dialog h3 { font-size:17px; }
.integration-dialog p { font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
.integration-dialog section { margin-top:26px; }
.integration-dialog button { padding:10px 14px; background:#15211f; color:white; flex-shrink:0; }
.integration-dialog pre { padding:18px; overflow:auto; background:#fff; border:1px solid #d9ddd8; border-radius:8px; font-size:13px; line-height:1.6; max-height:45dvh; }
.integration-dialog a { color:#315d4c; }
.integration-dialog #copy-status { position:sticky; bottom:0; margin-bottom:0; background:#f4f3ef; padding:8px 0; }
.embed .integration-dialog { display:none; }
@media(max-width:700px) {
    #open-integration { max-width:180px; font-size:12px; }
    .integration-dialog { padding:16px; }
    .integration-heading { align-items:flex-start; flex-wrap:wrap; }
}
/* Only the raster layer changes; markers, controls and credits retain their colors. */
#map[data-style="standard"] .leaflet-tile-pane { filter:none; }
#map[data-style="light"] .leaflet-tile-pane { filter:saturate(.15) contrast(.78) brightness(1.12); }
#map[data-style="gray"] .leaflet-tile-pane { filter:grayscale(1) contrast(.9) brightness(1.04); }
#map[data-style="dark"] .leaflet-tile-pane { filter:invert(1) hue-rotate(180deg) saturate(.25) brightness(.82) contrast(.9); }
.map-style-control { position:absolute; z-index:800; top:70px; right:16px; display:flex; align-items:center; gap:10px; padding:8px 10px; background:#fff; color:#15211f; border:1px solid #d9ddd8; border-radius:9px; box-shadow:0 4px 18px #15211f14; }
.map-style-control label { margin:0; font-size:12px; }
.map-style-control select { min-height:32px; max-width:140px; border:1px solid #d9ddd8; border-radius:5px; padding:4px 6px; font:inherit; font-size:13px; background:#fff; color:#15211f; }
.map-style-control select:focus-visible { outline:3px solid #d5b968; outline-offset:2px; }
.integration-dialog #example-style { margin:8px 0; padding:10px 12px; border:1px solid #d9ddd8; border-radius:6px; background:white; color:#15211f; font:inherit; }

/* Embedded maps use the style selected by the embedding page. */
.embed .map-style-control { display:none; }
