/* Two Track (brand: Beacon #F5A524 on Carbon #111418; Sora, Public Sans, JetBrains Mono) — full-bleed map under a compact field header; filters slide in from the left, well card rises from the bottom. */
:root{
  --bg:#F7F6F3; --surface:#FFFFFF; --surface-2:#EFEEEA; --map:#E9E6DC;
  --ink:#111418; --ink-2:#5B5E64; --ink-3:#6E7177; --line:#DCDAD4;
  --accent:#F5A524; --accent-ink:#111418; --accent-soft:#FDF0D5; --accent-text:#7A5100; --carbon:#111418;
  --over:#C8372D; --due:#E8C21F; --done:#2B8A4E; --me:#2F6DB0; --pin-stroke:#FFFFFF; --due-ink:#2a1d00;
  --scrim:rgba(17,20,24,.42); --shadow:0 10px 30px rgba(17,20,24,.18);
  --f-display:"Sora",system-ui,sans-serif;
  --f-body:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  --r:10px;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){:root{
  --bg:#111418; --surface:#1B1F24; --surface-2:#242930; --map:#0D0F12;
  --ink:#F2F1EC; --ink-2:#A7ABB3; --ink-3:#8A8E96; --line:#2C3138;
  --accent:#F5A524; --accent-ink:#111418; --accent-soft:#3A2E14; --accent-text:#F5A524;
  --over:#F0665A; --due:#F2D04A; --done:#47C27A; --me:#5B9AE0; --pin-stroke:#111418;
  --scrim:rgba(0,0,0,.55); --shadow:0 10px 30px rgba(0,0,0,.5);
  color-scheme:dark}}

html{height:100%;box-sizing:border-box}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;height:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.4;-webkit-text-size-adjust:100%}
[hidden]{display:none!important}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.muted{color:var(--ink-2)}

/* ---------- header ---------- */
.top{background:var(--surface);border-bottom:1px solid var(--line);padding-top:calc(8px + env(safe-area-inset-top,0px));padding-bottom:8px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:flex;flex-direction:column;gap:8px;position:relative;z-index:1500}
.row1{display:flex;align-items:center;gap:10px;min-width:0}
.brand{display:flex;flex-direction:column;min-width:0;flex:1}
.brand h1{margin:0;font-family:var(--f-display);font-weight:700;font-size:19px;letter-spacing:.01em;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand small{font-family:var(--f-display);font-weight:500;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sync{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);border-radius:99px;padding:4px 10px;white-space:nowrap}
.sync i{width:8px;height:8px;border-radius:50%;background:var(--ink-3);flex:none}
.sync[data-s="online"] i{background:var(--done)}
.sync[data-s="syncing"] i{background:var(--due)}
.sync[data-s="offline"] i{background:var(--over)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 14px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface);font-weight:600;font-size:14.5px;white-space:nowrap;text-decoration:none;color:var(--ink)}
.btn:hover{background:var(--surface-2)}
.btn:disabled{opacity:.55;cursor:default}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.primary:hover{filter:brightness(1.07)}
.btn.danger{color:var(--over)}
.btn.small{min-height:32px;padding:0 10px;font-size:13px}
.btn.icon{padding:0 11px}
.btn svg{width:18px;height:18px;flex:none}
.btn[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-text)}
.badge{min-width:20px;height:20px;padding:0 6px;border-radius:99px;background:var(--accent);color:var(--accent-ink);font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.row2{display:flex;gap:8px;align-items:center}
.search{flex:1;min-width:0;position:relative}
.search input{width:100%;height:40px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface-2);padding:0 36px;font-size:16px}
.search svg{position:absolute;left:11px;top:11px;width:18px;height:18px;color:var(--ink-3);pointer-events:none}
.search .clear{position:absolute;right:4px;top:4px;width:32px;height:32px;border:0;background:none;border-radius:8px;color:var(--ink-3);font-size:20px;line-height:1}
.chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -2px;padding:0 2px}
.chips::-webkit-scrollbar{display:none}
.chip{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 11px;border-radius:99px;border:1px solid var(--line);background:var(--surface);font-size:13.5px;font-weight:500;white-space:nowrap;color:var(--ink)}
.chip b{font-weight:600;font-variant-numeric:tabular-nums}
.chip .dot{width:11px;height:11px;border-radius:50%;flex:none}
.chip .dot.dashed,.checkrow .dot.dashed{background:transparent;border:2px dashed var(--ink-2);width:12px;height:12px}
.chip.est{border-style:dashed}
.chip.est[aria-pressed="false"]{color:var(--ink);background:var(--surface);border-style:dashed}
.chip.est[aria-pressed="false"] .dot{opacity:1}
.chip.est[aria-pressed="true"]{background:var(--accent-soft);border:1px solid var(--accent);color:var(--accent-text)}
.chip.est[aria-pressed="true"] .dot.dashed{border-color:var(--accent)}
.checkrow{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:var(--r);padding:9px 10px;font-size:14.5px;cursor:pointer}
.checkrow input{width:18px;height:18px;accent-color:var(--accent)}
.checkrow .dot{border-radius:50%;flex:none}
.chip[aria-pressed="false"]{color:var(--ink-3);background:var(--surface-2);border-style:dashed}
.chip[aria-pressed="false"] .dot{opacity:.3}
.notice{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--accent-soft);border-radius:var(--r);padding:7px 10px;font-size:13.5px;text-align:left;width:100%}
.notice span{flex:1;min-width:0}
@media (max-width:480px){.hide-sm{display:none}}

/* ---------- map ---------- */
.mapwrap{flex:1;position:relative;min-height:0}
#map{position:absolute;inset:0;background:var(--map)}
.empty-flag{position:absolute;left:max(12px,env(safe-area-inset-left,0px));top:12px;z-index:900;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:12px 14px;max-width:min(340px,calc(100% - 90px));font-size:14px;display:flex;flex-direction:column;gap:8px}
.empty-flag strong{font-family:var(--f-display);font-size:13px;letter-spacing:.07em;text-transform:uppercase;color:var(--accent-text)}
.locate{position:absolute;z-index:1000;right:max(12px,env(safe-area-inset-right,0px));bottom:calc(24px + env(safe-area-inset-bottom,0px));width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center}
.locate svg{width:22px;height:22px}
.locate.save{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
.locate:disabled{opacity:.5}
.offprog{position:absolute;z-index:1100;left:50%;transform:translateX(-50%);bottom:calc(24px + env(safe-area-inset-bottom,0px));width:min(320px,calc(100% - 120px));background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:10px 12px;display:flex;flex-direction:column;gap:6px;font-size:13.5px;font-weight:600}
.phone{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-top:4px;font-size:14px}
.phone .tel{font-weight:600;color:var(--accent-text);text-decoration:none;font-variant-numeric:tabular-nums}
.phone .tel:hover{text-decoration:underline}
.phone .pnote{font-size:12.5px;color:var(--ink-3)}
.phone .lnkbtn{padding:2px 0;font-size:13.5px}
.approxbox{border:1px dashed var(--ink-3);background:var(--surface-2);border-radius:var(--r);padding:10px 12px;font-size:14px;display:flex;flex-direction:column;gap:10px}
.gpsfoot{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:13.5px;color:var(--ink-2);border-top:1px solid var(--line);padding-top:10px}
.lnkbtn{border:0;background:none;padding:4px 0;font:inherit;font-weight:600;color:var(--accent-text);cursor:pointer}
.lnkbtn.danger{color:var(--over)}
.locate[data-on="true"]{color:var(--me);border-color:var(--me)}
.results{position:absolute;left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));top:8px;z-index:1200;max-width:520px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);max-height:min(60vh,460px);overflow:auto}
.results .rhead{position:sticky;top:0;background:var(--surface);display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);font-family:var(--f-display);font-weight:600;font-size:13px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2)}
.results .rhead button{margin-left:auto}
.results .ritem{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;padding:10px 12px}
.results .ritem:hover{background:var(--surface-2)}
.results .rdot{width:10px;height:10px;border-radius:50%;margin-top:5px;flex:none}
.results .rt{font-weight:600}
.results .rs{font-size:12.5px;color:var(--ink-2)}
.results .rd{margin-left:auto;font-size:13px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.results .empty{padding:14px;color:var(--ink-2);font-size:14px}
.cty{font-family:var(--f-display);font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap;text-shadow:0 0 3px var(--surface),0 0 3px var(--surface),0 0 6px var(--surface);transform:translate(-50%,-50%);pointer-events:none}
.cty.mine{color:var(--accent-text)}

/* map controls */
.leaflet-container{font-family:var(--f-body);background:var(--map)}
.leaflet-bar{border-radius:var(--r)!important;border:1px solid var(--line)!important;background:var(--surface);box-shadow:var(--shadow)!important;overflow:hidden}
.leaflet-bar a,.leaflet-bar a:hover{display:flex!important;align-items:center;justify-content:center;width:42px!important;height:42px!important;line-height:42px!important;color:var(--ink)!important;background:var(--surface)!important;border-bottom:1px solid var(--line)!important;font-size:22px!important}
.leaflet-bar a:last-child{border-bottom:0!important}
.leaflet-right .leaflet-control{margin-right:max(12px,env(safe-area-inset-right,0px))}
.leaflet-top .leaflet-control{margin-top:12px}
.leaflet-control-layers{border-radius:var(--r)!important;border:1px solid var(--line)!important;background:var(--surface)!important;color:var(--ink);box-shadow:var(--shadow)!important}
.leaflet-control-layers-toggle{width:42px!important;height:42px!important}
.leaflet-control-layers-expanded{padding:10px 12px!important;font-size:14px}
.leaflet-control-attribution{background:color-mix(in srgb,var(--surface) 80%,transparent)!important;color:var(--ink-2)!important;font-size:10.5px}
.leaflet-control-attribution a{color:var(--ink-2)!important}
@media (prefers-color-scheme: dark){.leaflet-control-layers-toggle{filter:invert(1) hue-rotate(180deg)}}

/* ---------- well card ---------- */
.card{position:absolute;z-index:1300;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--line);border-radius:16px 16px 0 0;box-shadow:var(--shadow);max-height:72%;overflow:auto;padding-top:14px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:flex;flex-direction:column;gap:12px}
@media (min-width:820px){.card{left:16px;right:auto;bottom:16px;width:400px;border:1px solid var(--line);border-radius:14px;max-height:calc(100% - 32px)}}
.card-head{display:flex;gap:10px;align-items:flex-start}
.card-head h2{margin:0;font-family:var(--f-display);font-weight:700;font-size:22px;line-height:1.15;text-wrap:balance}
.card-head .sub{color:var(--ink-2);font-size:14px;margin-top:2px}
.card-head .x{margin-left:auto;flex:none;width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);font-size:20px;line-height:1}
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:99px;padding:3px 10px;font-size:13px;font-weight:600;color:var(--surface);align-self:flex-start}
.pill.y5{background:var(--over)} .pill.y4{background:var(--due);color:var(--due-ink)} .pill.done{background:var(--done)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:5px 14px;margin:0;font-size:14px}
.kv dt{color:var(--ink-3);font-family:var(--f-display);font-weight:600;font-size:12px;letter-spacing:.07em;text-transform:uppercase;padding-top:2px}
.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}
.donebox{border:1px solid var(--line);background:var(--surface-2);border-radius:var(--r);padding:10px 12px;font-size:14px;display:flex;flex-direction:column;gap:4px}
.tag{display:inline-flex;align-self:flex-start;font-size:12px;font-weight:600;letter-spacing:.04em;padding:2px 8px;border-radius:6px;background:var(--accent-soft);color:var(--accent-text)}
.tag.warn{background:transparent;border:1px solid var(--due);color:var(--ink)}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.actions .wide{grid-column:1/-1}

/* ---------- drawer ---------- */
.scrim{position:fixed;inset:0;background:var(--scrim);z-index:1900}
.drawer{position:fixed;z-index:2000;top:0;bottom:0;left:0;width:min(420px,100%);background:var(--surface);border-right:1px solid var(--line);box-shadow:var(--shadow);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px)}
.drawer-head{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line)}
.drawer-head h2{margin:0;font-family:var(--f-display);font-size:19px;font-weight:700;flex:1;min-width:0}
.drawer-body{overflow:auto;padding:0 16px 28px;display:flex;flex-direction:column}
.fold{border-bottom:1px solid var(--line)}
.fold:last-child{border-bottom:0}
.fold>summary{list-style:none;display:flex;align-items:center;gap:10px;padding:12px 0;min-height:54px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.fold>summary::-webkit-details-marker{display:none}
.fold>summary:focus-visible{outline:2px solid var(--accent-text);outline-offset:-2px;border-radius:6px}
.fold .ft{font-family:var(--f-display);font-weight:700;font-size:16.5px;display:flex;align-items:center;gap:8px;white-space:nowrap}
.fold .fs{margin-left:auto;min-width:0;color:var(--ink-3);font-size:13px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fold .chev{width:18px;height:18px;flex:none;color:var(--ink-3);transition:transform .15s ease}
.fold[open] .chev{transform:rotate(180deg)}
.fold .fb{display:flex;flex-direction:column;gap:12px;padding:0 0 18px}
.fold .fb p{margin:0;font-size:13.5px;color:var(--ink-2)}
.fold .fb h4{margin:6px 0 0;font-family:var(--f-display);font-weight:600;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-2);display:flex;align-items:center;gap:8px}
.fold .fb h4 .lnk{margin-left:auto;text-transform:none;letter-spacing:0;font-family:var(--f-body);font-size:13.5px;font-weight:600;color:var(--accent-text);background:none;border:0;padding:4px}
.fold .fb h4 .lnk+.lnk{margin-left:0}
.fold.admin .ft .admin-label{display:none}
.fold.admin{border-top:1px solid var(--line);margin-top:8px}
.fold.admin .ft{color:var(--accent-text)}
@media (prefers-reduced-motion:reduce){.fold .chev{transition:none}}
.sec{padding:14px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.sec:last-child{border-bottom:0}
.sec h3{margin:0;font-family:var(--f-display);font-weight:600;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-2);display:flex;align-items:center;gap:8px}
.sec h3 .lnk{margin-left:auto;text-transform:none;letter-spacing:0;font-family:var(--f-body);font-size:13.5px;font-weight:600;color:var(--accent-text);background:none;border:0;padding:4px}
.sec h3 .lnk+.lnk{margin-left:0}
.sec p{margin:0;font-size:13.5px;color:var(--ink-2)}
.sec.admin{background:linear-gradient(var(--surface-2),var(--surface-2)) padding-box;margin:0 -16px;padding-left:16px;padding-right:16px}
.admin-label{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--accent-text);text-transform:uppercase;border:1px solid var(--accent);border-radius:5px;padding:1px 6px}
select.inp,input.inp{width:100%;height:42px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface-2);padding:0 10px;font-size:16px}
.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.grid2>*{min-width:0}
select.inp,input.inp{box-sizing:border-box}
select.inp{min-width:0;max-width:100%;text-overflow:ellipsis}
.grid2 label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-2)}
.field{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-2)}
.ctylist{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);max-height:300px;overflow:auto;background:var(--surface)}
.ctylist label{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line);font-size:15px;cursor:pointer}
.ctylist label:last-child{border-bottom:0}
.ctylist input{width:18px;height:18px;accent-color:var(--accent);flex:none}
.ctylist .n{margin-left:auto;color:var(--ink-3);font-size:13px;font-variant-numeric:tabular-nums}
.ctylist .me{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--accent-text);text-transform:uppercase}
.statuses{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.statuses label{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:var(--r);padding:9px 8px;font-size:14px;cursor:pointer;white-space:nowrap;min-width:0}
.statuses input{width:18px;height:18px;accent-color:var(--accent)}
.statuses .dot{width:11px;height:11px;border-radius:50%}
.list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.list > *{border-bottom:1px solid var(--line)}
.list > *:last-child{border-bottom:0}
.others button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;padding:9px 12px;width:100%}
.others .t{font-weight:600}
.others .s{font-size:12.5px;color:var(--ink-2)}
.skip{display:flex;flex-direction:column;gap:2px;padding:9px 12px;border-bottom:1px solid var(--line)}
.skip:last-child{border-bottom:0}
.skip .t{font-weight:600;display:flex;align-items:center;gap:8px}
.skip .s{font-size:12.5px;color:var(--ink-2);overflow-wrap:anywhere}
.skip .s.warn{color:var(--over)}
.skip .rdot{width:9px;height:9px;border-radius:50%;flex:none;display:inline-block}
.skiplink{border:0;background:none;padding:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--over);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.steps{margin:0;padding-left:20px;font-size:14px;display:flex;flex-direction:column;gap:4px}
.steps a{color:var(--accent-text);font-weight:600}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);max-height:260px;overflow-y:auto}
table.fips{width:100%;border-collapse:collapse;font-size:14px}
table.fips th{position:sticky;top:0;background:var(--surface-2);text-align:left;font-family:var(--f-display);font-weight:600;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);padding:8px 12px;border-bottom:1px solid var(--line)}
table.fips td{padding:8px 12px;border-bottom:1px solid var(--line)}
table.fips tr:last-child td{border-bottom:0}
table.fips .num,table.fips th:last-child{text-align:right;font-variant-numeric:tabular-nums}
table.fips td.mono{font-weight:500}
.filerow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px}
.filerow .dot{width:12px;height:12px;border-radius:50%;flex:none}
.filerow .fn{flex:1;min-width:150px}
.filerow small{display:block;color:var(--ink-2);overflow-wrap:anywhere}
.member{display:flex;align-items:center;gap:10px;padding:9px 12px;flex-wrap:wrap}
.member .fn{flex:1;min-width:160px;overflow-wrap:anywhere}
.member small{display:block;color:var(--ink-2)}
.addrow{display:flex;gap:8px;flex-wrap:wrap}
.addrow input{flex:1;min-width:180px}
.addrow select{width:auto}
.progress{height:6px;border-radius:99px;background:var(--line);overflow:hidden}
.progress i{display:block;height:100%;background:var(--accent);width:0}

/* ---------- gate (sign-in) ---------- */
.gate{position:fixed;inset:0;z-index:6000;background:var(--bg);display:flex;align-items:center;justify-content:center;overflow:auto;padding-top:calc(24px + env(safe-area-inset-top,0px));padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.gate-box{width:min(420px,100%);background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:22px;display:flex;flex-direction:column;gap:18px;margin:auto}
.gate-brand{display:flex;align-items:center;gap:12px}
.gate-brand img{border-radius:12px;flex:none}
.brand-icon{width:30px;height:30px;border-radius:7px;flex:none}
@media (max-width:359px){.brand-icon{display:none}}
.gate-brand h1{margin:0;font-family:var(--f-display);font-size:26px;font-weight:700;line-height:1.05}
.gate-brand p{margin:2px 0 0;color:var(--ink-2);font-size:14px}
#gateBody{display:flex;flex-direction:column;gap:12px}
#gateBody h2{margin:0;font-family:var(--f-display);font-size:19px}
#gateBody p{margin:0}
.or{display:flex;align-items:center;gap:10px;color:var(--ink-3);font-size:13px}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
details.help{font-size:13.5px;color:var(--ink-2)}
details.help summary{cursor:pointer;font-weight:600;color:var(--accent-text)}
details.help[open] summary{margin-bottom:6px}

/* ---------- dialogs & toast ---------- */
.ask{position:fixed;inset:0;z-index:7000;background:var(--scrim);display:flex;align-items:center;justify-content:center;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.ask-box{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:18px;width:min(380px,100%);display:flex;flex-direction:column;gap:12px}
.ask-box h2{margin:0;font-family:var(--f-display);font-size:20px}
.ask-box p{margin:0;color:var(--ink-2);overflow-wrap:anywhere}
.toast{position:fixed;z-index:8000;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:var(--r);font-size:14px;box-shadow:var(--shadow);max-width:calc(100% - 32px)}

@media (prefers-reduced-motion:reduce){.leaflet-zoom-anim .leaflet-zoom-animated{transition:none!important}}
