:root{--font:-apple-system,BlinkMacSystemFont,system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
:root{--bg:#02191E;--gold:#C99E67;--tx:#F3EDE4;--mut:#9fb3b5;--card:#0a2a30}
*{box-sizing:border-box}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--tx);max-width:480px;margin:auto;min-height:100vh}
.screen{display:none;padding:16px 16px 90px}.screen.active{display:block}
#splash{text-align:center;padding-top:48px}#splash h1{font-weight:300;font-size:34px;letter-spacing:1px;margin:8px 0;color:var(--gold)}
.logo{font-size:52px;color:var(--gold)}.founding{font-size:11px;color:var(--mut);letter-spacing:1px;text-transform:uppercase;margin-top:28px}
.card{background:var(--card);border:1px solid #c99e6733;border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:10px;text-align:left}
input,select,textarea{font:inherit;padding:12px;border-radius:10px;border:1px solid #c99e6744;background:#02191E;color:var(--tx)}
button{font:inherit;cursor:pointer;border-radius:24px;padding:12px;border:1px solid var(--gold)}.gold{background:var(--gold);color:var(--bg);font-weight:600}.ghost{background:none;color:var(--gold)}.sm{padding:6px 14px;font-size:13px}
.demo{font-size:11px;color:var(--gold);text-align:center}.roles,.checks{display:flex;gap:16px}.consent{font-size:14px}
header{display:none}
nav{display:none}
body.in header,body.in nav{display:flex}
.bar{display:flex;gap:8px;margin-bottom:10px}.bar select{flex:1}#leaf{height:calc(100vh - 210px);border-radius:16px}
h2{font-weight:400;color:var(--gold)}.muted{color:var(--mut);font-size:13px}
.item{background:var(--card);border-radius:14px;padding:12px;margin-bottom:10px;border-left:3px solid var(--gold)}.item .d{float:right;color:var(--gold);font-weight:600}
.pill{display:inline-block;font-size:10px;border:1px solid var(--gold);color:var(--gold);border-radius:10px;padding:1px 7px;margin-right:4px}.pill.demo{background:#c99e6733}
.soon{text-align:center;align-items:center}.leaflet-popup-content{font-family:var(--font)}

.biglogo{width:150px;height:150px;filter:drop-shadow(0 0 18px #5FC9C355)}
.brandline{letter-spacing:4px;text-transform:uppercase;font-size:12px;color:#5FC9C3;margin-top:6px}
.slogan{font-style:italic;color:var(--gold);margin:4px 0}
.tagline{display:inline-block;margin:10px 0 24px;padding:8px 16px;border-radius:999px;background:rgba(49,163,163,0.12);border:1px solid rgba(95,201,195,0.55);color:var(--gold);font-size:13px;line-height:1.35;max-width:92%}
/* .hb base superseded in v0.12 nav */
.count{font-size:12px;color:var(--mut);margin:-2px 0 8px;text-align:center}.count b{color:var(--gold)}
#leaf{background:#02191E;border:1px solid #c99e6733;height:calc(100vh - 235px)}
.thread{stroke-dasharray:6 10;animation:flow 6s linear infinite;filter:drop-shadow(0 0 3px #C99E67)}
.glow{filter:blur(3px)}.node{filter:drop-shadow(0 0 6px #C99E67)}
@keyframes flow{to{stroke-dashoffset:-160}}
@keyframes pulse{50%{stroke-opacity:.15}}.glow{animation:pulse 4s ease-in-out infinite}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#0a2a30;color:#F3EDE4}

#splash h1.wm{font-weight:700;font-size:44px;letter-spacing:0;margin:6px 0 2px}.wm span,.hb .t{color:#5FC9C3}
#leaf .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.75) saturate(.5) sepia(.25) hue-rotate(140deg)}

.av{width:44px;height:44px;border-radius:50%;border:2px solid #C99E67;object-fit:cover;display:inline-flex;align-items:center;justify-content:center;background:#0a2a30;color:#C99E67;font-weight:700;font-size:15px;box-shadow:0 0 10px #C99E6788;vertical-align:middle}
.av.big{width:96px;height:96px;font-size:30px}.ph{display:flex;align-items:center;gap:14px}.phbtn{border:1px solid #C99E67;border-radius:24px;padding:8px 14px;color:#C99E67;cursor:pointer}
.avm{background:none;border:0}.avm .av{width:40px;height:40px}.row{display:flex;gap:10px;align-items:flex-start}.row>div{flex:1}
/* v0.3 */
.banner{position:sticky;top:0;z-index:2000;background:#C99E67;color:#02191E;font-size:12px;font-weight:600;text-align:center;padding:5px}
.choices{display:flex;flex-direction:column;gap:14px;margin:26px 0 8px}
button.big{display:flex;gap:14px;align-items:center;text-align:left;padding:18px 20px;border-radius:18px;font-size:18px}
button.big b{display:block;font-size:19px}button.big small{display:block;font-size:13px;font-weight:400;opacity:.85;margin-top:2px}.big .ic{font-size:28px}
button.outline{background:#0a2a30;color:#F3EDE4;border:2px solid #C99E67}button.outline b{color:#C99E67}
.big1{font-size:17px;padding:15px}
.back{background:none;border:0;color:#C99E67;padding:4px 0;font-size:15px}
.seg{display:flex;background:#0a2a30;border-radius:28px;padding:4px;margin:6px 0 14px;border:1px solid #c99e6744}.seg button{flex:1;border:0;background:none;color:#9fb3b5;font-weight:600;font-size:15px}.seg button.on{background:#C99E67;color:#02191E}
.lbl{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#9fb3b5}.msg{color:#C99E67;font-size:14px;min-height:1em;margin:0}.center{text-align:center}
a{color:#5FC9C3}
#leaf{background:#e9efee;border:1px solid #C99E6766;height:calc(100vh - 250px)}
#leaf .leaflet-tile-pane{filter:none}
#leaf .base{filter:sepia(.25) hue-rotate(130deg) saturate(1.4) brightness(1.02)}
.leaflet-container .thread{filter:none}.leaflet-container .glow{filter:blur(3px)}
.avm .av{box-shadow:0 2px 10px #02191E55,0 0 0 3px #fff8}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#02191E}.leaflet-popup-content a{color:#1d7f79}
.leaflet-popup-content .pill{color:#8a6a3c;border-color:#C99E67}
[hidden]{display:none!important}
/* old compact header overrides removed */
#leaf .thread{stroke-width:2.6px}

.infoc{display:flex;flex-direction:row-reverse;align-items:center;gap:6px;margin:0 6px 6px 0!important}
.infoc button{width:20px;height:20px;border-radius:50%;padding:0;border:1px solid #02191E33;background:#ffffffcc;color:#02191E;font:italic 600 12px Georgia,serif;line-height:18px}
.infoc span{background:#ffffffe6;color:#02191E;font-size:10px;padding:3px 7px;border-radius:8px;max-width:240px}
select[name=country]:invalid{color:#9fb3b5}

.prog{gap:8px}.pt{display:flex;justify-content:space-between;align-items:baseline}.pt b{color:#C99E67;font-size:18px}
.pbar{height:10px;background:#02191E;border-radius:6px;overflow:hidden;border:1px solid #c99e6744}#pFill{height:100%;background:linear-gradient(90deg,#5FC9C3,#C99E67);width:0;transition:width .4s}
#sessForm{margin-top:12px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid2 input{width:100%}
.wide{width:100%;margin:12px 0}.wide:disabled{opacity:.4}
.sess{display:flex;gap:10px;align-items:flex-start;background:#0a2a30;border-radius:12px;padding:10px;margin-bottom:8px;border-left:3px solid #C99E67}
.sn{min-width:28px;height:28px;border-radius:50%;background:#C99E67;color:#02191E;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:13px}
.sb{flex:1;font-size:14px}.sb small{color:#9fb3b5}.sa{display:flex;gap:4px}.sa .sm{padding:4px 8px}

.phone{display:flex;gap:6px;align-items:center;position:relative}.phone [name=prefix]{width:78px;flex:none}.phone [name=phone]{flex:1;min-width:0}
.cc{position:absolute;left:58px;top:50%;transform:translateY(-50%);font-size:9px;color:#9fb3b5;pointer-events:none}
.cbs{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.cbsMsg{display:flex;margin-top:8px}
.cbsRow{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%;margin-top:6px}
.cbsRow .cb{justify-content:center;width:100%;box-sizing:border-box}
.cb{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:16px;font-size:12px;font-weight:600;text-decoration:none!important;border:1px solid #C99E67;color:#C99E67!important}
.cb.wa{background:#0E7A6C;border-color:#0E7A6C;color:#fff!important}.cb.mail{background:#fff8ee;color:#4a3210!important;border-color:#C99E67}
a.tel{color:var(--teal);text-decoration:underline;text-underline-offset:2px;font-weight:600}
#mailBox{margin-bottom:12px}.grid2.wide{display:grid}
.grid2 .full{grid-column:auto}

.tags{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}.tag{border:1px solid #c99e67;background:#fff;color:#8a6a3c;border-radius:14px;padding:5px 11px;font-size:13px;cursor:pointer}.tag.on{background:#c99e67;color:#fff}.addtag{display:flex;gap:6px;margin-bottom:8px}.addtag input{flex:1}.mk{display:inline-block;font-size:10px;color:#6b7b7a;background:#eef3f2;border-radius:8px;padding:1px 6px;margin:2px 4px 0 0;text-decoration:none}
.xloc{border:1px dashed rgba(184,135,63,.5);border-radius:12px;padding:8px;margin:8px 0;display:flex;flex-direction:column;gap:6px}
.xloc .xh{display:flex;justify-content:space-between;align-items:center}
#addLoc{margin:6px 0}

footer.legal{text-align:center;font-size:11px;opacity:.7;padding:18px 10px 90px}footer.legal a{color:inherit}

.cb.msg{flex:1;width:100%;justify-content:center;background:#C99E67;color:#02191E!important;border:1px solid #C99E67;cursor:pointer;font:inherit;font-weight:700;padding:10px 14px;border-radius:14px;font-size:13px}
.cb.msg .msgIc{position:relative;width:18px;height:18px;flex:none;display:inline-block}
.cb.msg .msgRing{position:absolute;inset:0;color:#0a2a30;opacity:.85}
.cb.msg .msgBub{position:absolute;left:50%;top:50%;width:13px;height:13px;transform:translate(-50%,-48%);stroke:#02191E}
@keyframes msgRingSpin{to{transform:rotate(360deg)}}
.cb.msg .msgRing{transform-origin:center;animation:msgRingSpin 10s linear infinite}
@media(prefers-reduced-motion:reduce){.cb.msg .msgRing{animation:none}}
.badge{display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:#d9534f;color:#fff;font-size:11px;font-style:normal;line-height:18px;text-align:center}
nav button{position:relative}nav .badge{position:absolute;top:2px;right:18%}
.conv{cursor:pointer}
.chat{position:fixed;left:8px;right:8px;bottom:70px;max-width:480px;margin:auto;max-height:70vh;display:flex;flex-direction:column;background:#fff;color:#02191e;border-radius:16px;box-shadow:0 10px 40px rgba(0,0,0,.3);z-index:2000;padding:10px}
.chat[hidden]{display:none}.chatH{display:flex;justify-content:space-between;align-items:center;padding:4px 6px}
.chatLog{flex:1;overflow:auto;padding:6px;display:flex;flex-direction:column;gap:6px;min-height:120px}
.bub{max-width:80%;padding:7px 10px;border-radius:12px;white-space:pre-wrap;word-break:break-word}.bub small{display:block;font-size:10px;opacity:.6}
.bub.me{align-self:flex-end;background:#C99E67;color:#02191e}.bub.them{align-self:flex-start;background:#e8f3f2}
.chatF{display:flex;gap:6px}.chatF textarea{flex:1;margin:0}

/* v0.9.2 map + tab icons */
:root{--hdr-h:calc(56px + env(safe-area-inset-top,0px));--safari-extra:0px;--vv-bottom:0px;--nav-h:calc(64px + env(safe-area-inset-bottom,0px) + var(--safari-extra) + var(--vv-bottom))}
body.in{display:flex;flex-direction:column;height:100dvh;max-height:100dvh;overflow:hidden;padding-top:var(--hdr-h);padding-bottom:var(--nav-h);box-sizing:border-box}
body.in > .banner{display:none}
body.in > header{display:flex;position:fixed;top:0;left:0;right:0;max-width:480px;margin:0 auto;z-index:1200;height:var(--hdr-h);padding:env(safe-area-inset-top,0px) 12px 0;box-sizing:border-box;align-items:center;justify-content:space-between;gap:10px;background:#011114;border-bottom:1px solid #c99e6733;color:var(--gold)}
body.in > main{flex:1 1 auto;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch}
body.in > footer.legal{display:none}
body.in > nav#tabs{display:flex;position:fixed;bottom:0;left:0;right:0;max-width:480px;margin:0 auto;z-index:1200;height:var(--nav-h);padding:8px 4px calc(8px + env(safe-area-inset-bottom,0px));box-sizing:border-box;align-items:stretch;background:#011114;border-top:1px solid #c99e6744}
body.in .screen{padding:16px 16px 20px}
#map.screen.active{display:flex;flex-direction:column;height:100%;min-height:100%;max-height:100%;padding:10px 12px 8px;box-sizing:border-box;overflow:hidden}
#map .bar{flex:none;margin-bottom:8px}#map #count{flex:none;margin:0 0 8px}
#leaf{flex:1 1 auto;min-height:0;height:auto!important;width:100%;border-radius:16px;margin:0;border:1px solid #C99E6766;overflow:hidden;background:#e9efee}
.hb{display:flex;align-items:center;gap:8px;min-width:0}.hb img,.hb .logoMark{width:32px;height:32px;flex:none;display:block}.hb b{font-size:17px;font-weight:700;letter-spacing:.2px;white-space:nowrap}.hb .t{color:#5FC9C3}.hb small{display:none}
.hbtns{display:flex;gap:8px;align-items:center;flex:none}
.iconbtn{width:44px;height:44px;border-radius:50%;border:1px solid #c99e6755;background:#0a2a30;color:#C99E67;display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;flex:none;-webkit-tap-highlight-color:transparent}
.iconbtn svg{width:22px;height:22px;stroke:#C99E67;fill:none;display:block}
.iconbtn:active{background:#12343a}
nav#tabs button{flex:1;min-width:0;min-height:48px;border:0;background:none;color:#6f8587;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:12px;padding:4px 2px;position:relative;font-size:inherit}
nav#tabs button svg{width:26px;height:26px;display:block;stroke:currentColor;flex:none;opacity:.9}
nav#tabs button span{font-size:12px;line-height:1.1;letter-spacing:.15px;font-weight:600;white-space:nowrap}
nav#tabs button.on{color:var(--gold)}
nav#tabs button.on svg{opacity:1;filter:drop-shadow(0 0 6px #5FC9C3bb) drop-shadow(0 0 1px #C99E67)}
nav#tabs .badge{position:absolute;top:2px;right:calc(50% - 20px);min-width:16px;height:16px;line-height:16px;padding:0 4px;font-size:10px}
.chat{bottom:calc(8px + var(--nav-h))}

/* v0.9.3 practice labels */
.pin{position:relative;display:flex;align-items:center;gap:5px;min-height:48px;height:auto;pointer-events:none}
.pin.left{flex-direction:row-reverse}
.pin .av{pointer-events:auto;flex:none;box-shadow:0 2px 10px #02191E55,0 0 0 3px #fff8}
.pinlab{pointer-events:none;display:flex;flex-direction:column;gap:2px;background:#0a2a30f2;color:#C99E67;padding:4px 8px;border-radius:12px;border:1px solid #C99E6788;max-width:128px;box-shadow:0 2px 10px #02191E66}
.pintitle{font:600 11px/1.2 var(--font);letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:112px}
.pinmods{display:flex;flex-wrap:wrap;align-items:center;gap:2px;line-height:1}
.pinmods i{font-style:normal;font:600 9px/1.1 var(--font);color:#5FC9C3;background:#5FC9C328;border:1px solid #5FC9C355;padding:1px 5px;border-radius:6px;white-space:nowrap}
.pinmods i.more{color:#C99E67;background:#C99E6722;border-color:#C99E6755}
.pinmods .dot{color:#C99E6788;font-size:9px;padding:0 1px}
.who{color:#6b7b7a;font-size:13px}
.leaflet-popup-content .who{color:#5a6a69}
.avm{background:transparent!important;border:0!important}

/* pin labels */
.leaflet-marker-icon.avm,.avm{overflow:visible!important;background:transparent!important;border:0!important}
.pin{overflow:visible}.pinlab{overflow:visible;min-width:72px}
.pinloc{display:block;font:500 9px/1.2 var(--font);color:#9fb3b5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:112px;margin-top:1px}
.pinmods{margin-top:2px;display:flex!important;flex-wrap:wrap;align-items:center;gap:2px}

/* v0.12 clusters + sheet */
.clicon{background:transparent!important;border:0!important}
.clbub{width:var(--s,44px);height:var(--s,44px);border-radius:50%;display:flex;align-items:center;justify-content:center;
 background:radial-gradient(circle at 35% 30%,#5FC9C3 0%,#0a2a30 55%,#02191E 100%);
 border:2px solid #C99E67;box-shadow:0 0 0 3px #C99E6744,0 4px 14px #02191E88;color:#C99E67;font:700 14px/1 var(--font)}
.clbub b{font-size:clamp(12px,calc(var(--s)*.36),18px);color:#F3EDE4;text-shadow:0 1px 2px #02191E}
.pin.bare{height:44px;width:44px;display:flex;align-items:center;justify-content:center}
.pin.bare .av{margin:0}
.sheetBack{position:fixed;inset:0;background:#02191E66;z-index:1800}
.sheet{position:fixed;left:0;right:0;bottom:0;max-width:480px;margin:auto;max-height:70vh;z-index:1900;
 background:#0a2a30;color:var(--tx);border-radius:18px 18px 0 0;border:1px solid #c99e6744;border-bottom:0;
 box-shadow:0 -8px 40px #02191Eaa;display:flex;flex-direction:column;padding:0 0 calc(12px + env(safe-area-inset-bottom,0px));
 animation:sheetUp .22s ease}
.sheet[hidden],.sheetBack[hidden]{display:none!important}
@keyframes sheetUp{from{transform:translateY(40%)}to{transform:translateY(0)}}
.sheetGrab{width:40px;height:4px;border-radius:2px;background:#c99e6755;margin:8px auto 0}
.sheetH{display:flex;justify-content:space-between;align-items:flex-start;padding:10px 14px 6px;gap:8px}
.sheetH b{color:var(--gold);font-weight:600;display:block}
.sheetH small{display:block;margin-top:2px}
.sheetList{overflow:auto;padding:4px 12px 12px;-webkit-overflow-scrolling:touch}
.sheetList .item{cursor:pointer}
.marker-cluster,.marker-cluster div{background:transparent!important}
.forgot{margin:0;text-align:right;font-size:13px}.forgot a{color:var(--gold);text-decoration:none}
button.hb{border:0;background:none;color:inherit;padding:0;cursor:pointer;font:inherit;text-align:left}
button.hb:active{opacity:.85}
.mapBack{display:inline-flex;align-items:center;margin:0 0 8px;padding:8px 0;font-size:16px;font-weight:600}
.toast{position:fixed;left:50%;bottom:calc(var(--nav-h) + 18px);transform:translateX(-50%) translateY(8px);z-index:2100;
 background:#C99E67;color:#02191E;padding:12px 20px;border-radius:28px;font:600 15px/1 var(--font);
 box-shadow:0 8px 28px #02191E88;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;white-space:nowrap;max-width:90vw}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
/* Safari browser: keep tab bar above floating toolbar */
html.safari-browser{--safari-extra:56px}
html.safari-browser body.in > nav#tabs{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px) + var(--vv-bottom))}

.nearCity{margin:0 12px 8px;padding:10px 12px;border:1px solid #c99e6744;border-radius:14px;background:#02191ecc}
.nearCity .row2{display:flex;gap:8px;align-items:center;margin-top:6px}
.nearCity input{flex:1;min-width:0}
.nearCity .msg{margin:6px 0 0;font-size:13px;color:var(--mut)}

/* v0.15 list search */
.listSearch{position:sticky;top:0;z-index:5;margin:0 -16px 12px;padding:10px 16px 12px;background:linear-gradient(#02191ef8 70%,#02191e00);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.listSearch .combo,.listSearch #listFilter{width:100%;margin:0 0 8px;box-sizing:border-box}
.listSearch #qPlace{width:100%;margin:0;box-sizing:border-box}
.listSearchMeta{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.listSearchActs{display:flex;gap:8px;align-items:center}
#listCount{font-size:13px}

/* v0.16 combobox */
.combo{position:relative}
.comboMenu{position:absolute;left:0;right:0;top:calc(100% + 4px);max-height:220px;overflow:auto;-webkit-overflow-scrolling:touch;margin:0;padding:6px 0;list-style:none;background:#0a2a30;border:1px solid #c99e6766;border-radius:14px;box-shadow:0 12px 28px #0008;z-index:40}
.comboMenu li{margin:0}
.comboMenu button{display:flex;width:100%;text-align:left;gap:8px;align-items:baseline;justify-content:space-between;padding:10px 14px;border:0;background:none;color:var(--gold);font:inherit;cursor:pointer}
.comboMenu button:active,.comboMenu button:hover,.comboMenu button.on{background:#12343a}
.comboMenu .n{color:var(--mut);font-size:12px;flex:none}
.comboMenu .empty{padding:10px 14px;color:var(--mut);font-size:13px}
#map .bar select#filter{min-width:0}

/* v0.17.3 logo A — rotating teal ring */
@keyframes logoSpin{to{transform:rotate(360deg)}}
.logoMark .logoRing{transform-box:fill-box;transform-origin:center;animation:logoSpin 14s linear infinite}
@media(prefers-reduced-motion:reduce){.logoMark .logoRing{animation:none}}
.biglogo.logoMark{width:150px;height:150px;filter:drop-shadow(0 0 18px #5FC9C355)}

/* v0.17.4 session form grid */
#sessForm .sessGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start;margin-top:8px}
#sessForm .sessCol{display:flex;flex-direction:column;gap:10px;min-width:0}
#sessForm .lbl{margin:0}
#sessForm .lbl input,
#sessForm .lbl select{width:100%;height:56px;min-height:56px;box-sizing:border-box;padding:14px 12px;line-height:1.2;border-radius:10px;font:inherit}
#sessForm .lbl select{-webkit-appearance:none;appearance:none;background-color:#02191E;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%23C99E67' d='M1 1l5 5 5-5'/></svg>");background-repeat:no-repeat;background-position:right 14px center;background-size:12px 8px;padding-right:36px;color:var(--tx)}
#sessForm .sessComment{display:flex;flex-direction:column;gap:6px;margin-top:10px;width:100%}
#sessForm .sessComment textarea{width:100%;min-height:72px;box-sizing:border-box;padding:14px 12px;border-radius:10px;resize:vertical}
@media(max-width:360px){#sessForm .sessGrid{grid-template-columns:1fr}}
/* v0.18.5 responsiveness: no tap delay, map never paints over header/tab bar */
html{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
button,a,[data-go],nav#tabs button,#logoHome{touch-action:manipulation;cursor:pointer}
nav#tabs svg,nav#tabs span,#logoHome *{pointer-events:none}
#leaf,.leaflet-container{position:relative;z-index:0;isolation:isolate}
body.in > header,body.in > nav#tabs{transform:translateZ(0)}
.toast{pointer-events:none}
.bub.pend{opacity:.7}.bub.fail{outline:1px solid #d66;cursor:pointer}
/* v0.19 light: no continuous animations */
.logoMark .logoRing,.cb.msg .msgRing,.thread,.glow{animation:none!important}
/* v0.19.1 header logo: ring in its own composited layer; glow is static inside it, only transform animates */
.logoWrap{position:relative;display:block;width:32px;height:32px;flex:none}
.logoWrap .logoRingSvg{position:absolute;inset:0;width:32px;height:32px;will-change:transform;transform:translateZ(0);animation:logoSpinL 14s linear infinite;pointer-events:none}
@keyframes logoSpinL{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.logoWrap .logoRingSvg{animation:none}}
html.bg-hidden .logoWrap .logoRingSvg{animation-play-state:paused}
.igl{display:inline-flex;align-items:center;gap:4px}.igl svg{flex:none}
/* v0.19.3: lock the page on iOS; only <main> scrolls; map fills the rest */
html:has(body.in){height:100%;overflow:hidden;overscroll-behavior:none}
body.in{position:fixed;top:0;bottom:0;left:0;right:0;width:100%;max-width:480px;margin:0 auto;height:100dvh;overscroll-behavior:none}
body.in > main{overscroll-behavior:contain}
#map.screen.active{height:100%;max-height:100%}
#map .bar{position:relative;z-index:2}
