/* v0.5 | Friday Night Rosary public city tracker */
.map-live-intro{max-width:790px}
.map-live-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.88fr);gap:28px;align-items:start;margin-top:29px}
.map-live-main,.map-live-side{min-width:0}
.map-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#d7c5a5;border:1px solid #d7c5a5;margin-bottom:14px}
.map-stat{padding:15px;background:#f8f1e4;display:flex;flex-direction:column;gap:3px;text-align:center}
.map-stat strong{font-family:Georgia,serif;font-size:clamp(26px,3vw,40px);font-weight:400;color:#08293d;font-variant-numeric:tabular-nums}
.map-stat span{text-transform:uppercase;letter-spacing:.11em;font-size:10px;color:#746650}
#rosary-world-map{height:455px;background:#e5e2d6;border:1px solid #cbb892;position:relative;isolation:isolate;overflow:hidden}
.map-placeholder{display:grid;place-items:center;position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 55px,rgba(90,107,105,.11) 56px 57px),repeating-linear-gradient(90deg,#e6e9df 0 74px,#d8ded5 75px 76px);color:#344a4e;font:16px Georgia,serif;text-align:center;padding:25px}
.map-status{font-size:13px;color:#56626a;line-height:1.6;margin:12px 0}
.map-legend{font-size:12px;color:#61605a;margin:0 0 10px}.map-legend .sample{display:inline-grid;place-items:center;border-radius:100px;background:#14384b;color:#f8ecd2;width:23px;height:23px;margin-right:5px;font-size:10px}
.map-form{background:#f2e8d8;border:1px solid #d5c19c;padding:22px}
.map-form h3{font-family:Georgia,serif;font-size:27px;font-weight:400;color:#092d40;margin:0 0 7px}.map-form p{font-size:14px;color:#536069;line-height:1.65;margin:0 0 17px}
.map-form label{display:block;font-size:12px;font-weight:700;color:#203849;margin:13px 0 5px;letter-spacing:.02em}
.map-form input[type=text]{width:100%;border:1px solid #bfb198;background:#fffdf8;border-radius:1px;padding:12px 11px;min-height:44px;font-size:16px;color:#19303e}
.map-form input:focus,.map-form button:focus-visible{outline:2px solid #9b743d;outline-offset:2px}
.map-form .field-help{font-size:11px;color:#6a6c69;margin-top:3px}
.map-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.map-form button{min-height:44px;border:0;padding:11px 16px;font:700 12px Arial,sans-serif;letter-spacing:.04em;cursor:pointer}
.map-form button:disabled{opacity:.55;cursor:not-allowed}
.map-form .button-find{display:block;width:100%;background:#0b3548;color:#f8edcf;margin-top:17px}
.map-form .button-add{display:block;width:100%;background:#c09a58;color:#102938;margin-top:15px}
.map-form .place-options{display:grid;gap:8px;margin:12px 0 0}.map-form .place-choice{background:#fffdf7;border:1px solid #b5a284;text-align:left;color:#213e45;font-size:12px;white-space:normal}
.map-form .place-choice[aria-pressed=true]{border:2px solid #52765f;background:#e2ecdf}
.map-form .privacy-check{display:flex;gap:9px;align-items:start;font-size:12px;line-height:1.5;margin-top:16px;color:#4d5962}
.map-form .privacy-check input{margin-top:3px;accent-color:#1b554b}
.map-form .feedback{font-size:13px;line-height:1.55;padding:10px 0 0;min-height:1.5em;color:#28475b}
.map-form .feedback.error{color:#872d26}
.map-form .feedback.success{color:#275b36}
.map-form .map-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.map-form .turnstile-slot{min-height:60px;margin-top:15px}
.map-form .receipt{margin-top:12px;padding:12px;background:#e7eee4;border:1px solid #9bb39b;font-size:12px;line-height:1.65;color:#26432d;overflow-wrap:anywhere}
.map-form .receipt code{font-size:11px;word-break:break-all}
.map-remove{margin-top:16px;border-top:1px solid #cdbfa3;padding-top:15px}.map-remove summary{cursor:pointer;font-size:13px;color:#31495b;font-weight:700}.map-remove button{background:#d4c6aa;color:#153241;margin-top:10px;width:100%}
.map-cities-list{margin-top:18px;background:#f7f0e3;border:1px solid #e0d4bd;padding:15px 18px}
.map-cities-list h3{font-family:Georgia,serif;font-size:21px;font-weight:400;color:#133447;margin:0 0 6px}
.map-cities-list ul{columns:2;column-gap:25px;margin:0;padding:0;list-style:none}.map-cities-list li{break-inside:avoid;font-size:12px;line-height:1.75;color:#485761}
.rosary-city-pin{background:#0a3347;border:2px solid #f2dfb4;box-shadow:0 2px 8px #1a304480;border-radius:100%;width:29px;height:29px;display:grid;place-items:center;color:#fff4d9;font:700 12px Arial,sans-serif}
.rosary-city-pin.single{width:17px;height:17px;background:#bb9050;border:2px solid #fff3d9}
.rosary-cluster{width:48px;height:48px;background:#a98144;border:3px solid #f9efd6;border-radius:50%;display:grid;place-items:center;font:700 14px Arial,sans-serif;color:#0b283a;box-shadow:0 2px 9px #20303860}
#rosary-world-map .leaflet-container{z-index:1}
.map-small-note{color:#68685e;font-size:12px;line-height:1.7;margin-top:13px}
@media(max-width:900px){.map-live-layout{grid-template-columns:1fr}.map-cities-list ul{columns:2}}
@media(max-width:500px){.map-form{padding:18px}.map-form .form-row{grid-template-columns:1fr}.map-stats{grid-template-columns:repeat(3,1fr)}.map-stat{padding:13px 6px}.map-stat span{font-size:9px}#rosary-world-map{height:350px}.map-cities-list ul{columns:1}}
