:root{--bg:#fff8f3;--card:#fff;--tx:#1c1c1e;--mu:#8a8a8e;--ln:#ececf0;--ac:#ff5a3c;--ac2:#ffe3dc;--bl:#3b82f6;--gr:#22c55e;--sh:0 4px 16px rgba(0,0,0,.06);--tab:56px}
@media(prefers-color-scheme:dark){:root{--bg:#121214;--card:#1f1f23;--tx:#f2f2f7;--mu:#98989f;--ln:#2c2c31;--ac2:#3a211b;--sh:0 4px 16px rgba(0,0,0,.4)}}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--tx);font:16px/1.4 -apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,sans-serif;overflow-x:clip;-webkit-text-size-adjust:100%}
body{min-height:100dvh}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;touch-action:manipulation}
button:active,.press:active{transform:scale(.96);transition:transform .08s}
#hdr{position:sticky;top:0;z-index:20;padding:calc(env(safe-area-inset-top) + 8px) 16px 8px;background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);display:flex;align-items:center;gap:8px;min-height:calc(env(safe-area-inset-top) + 56px)}
#hdr h1{font-size:32px;font-weight:800;letter-spacing:-.5px;margin:0;flex:1}
#hdr.small h1{font-size:17px;text-align:center}
.hbtn{min-width:44px;height:44px;border-radius:22px;display:grid;place-items:center;font-size:20px;color:var(--ac);font-weight:600}
#app{padding:8px 16px calc(var(--pb,24px) + env(safe-area-inset-bottom));max-width:560px;margin:0 auto;animation:fade .25s}
@keyframes fade{from{opacity:0;transform:translateY(6px)}}
body.tabs #app{--pb:calc(var(--tab) + 24px)} body.tabs.foot #app{--pb:calc(var(--tab) + 96px)} body.foot:not(.tabs) #app{--pb:100px}
#foot{position:fixed;left:0;right:0;bottom:0;z-index:25;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bg) 30%);display:none;gap:8px}
body.foot #foot{display:flex} body.tabs #foot{bottom:calc(var(--tab) + env(safe-area-inset-bottom));padding-bottom:12px}
#tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;display:none;background:color-mix(in srgb,var(--card) 88%,transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:.5px solid var(--ln);padding-bottom:env(safe-area-inset-bottom)}
body.tabs #tabs{display:flex}
#tabs button{flex:1;height:var(--tab);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;font-weight:600;color:var(--mu)}
#tabs svg{width:26px;height:26px}#tabs button.on{color:var(--ac)}
.btn{flex:1;min-height:52px;border-radius:16px;background:var(--ac);color:#fff;font-size:17px;font-weight:700;padding:0 16px;box-shadow:0 6px 16px rgba(255,90,60,.3)}
.btn.sec{background:var(--card);color:var(--tx);box-shadow:var(--sh)}.btn:disabled{opacity:.35;box-shadow:none}
.card{background:var(--card);border-radius:20px;padding:16px;margin:0 0 16px;box-shadow:var(--sh)}
.sec-t{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--mu);margin:16px 4px 8px}
.muted{color:var(--mu);font-size:14px}.tag{font-size:11px;font-weight:700;background:#ffe9a8;color:#6b4e00;padding:3px 8px;border-radius:8px;white-space:nowrap}
.seg{display:flex;background:var(--ln);border-radius:12px;padding:3px;margin-bottom:16px}.seg button{flex:1;height:38px;border-radius:9px;font-size:15px;font-weight:600;color:var(--mu)}.seg button.on{background:var(--card);color:var(--tx);box-shadow:0 1px 4px rgba(0,0,0,.12)}
.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -16px 16px;padding:0 16px}.chips::-webkit-scrollbar{display:none}
.chip{flex:none;min-height:44px;padding:0 16px;border-radius:22px;background:var(--card);box-shadow:var(--sh);font-size:15px;font-weight:600;white-space:nowrap}.chip.on{background:var(--ac);color:#fff}
.av{border-radius:50%;display:grid;place-items:center;flex:none}
/* landing */
.hero{min-height:calc(100dvh - 120px);display:flex;flex-direction:column;justify-content:center;text-align:center;padding:calc(env(safe-area-inset-top) + 24px) 8px 0}
.blob{width:200px;height:200px;margin:0 auto 32px;border-radius:40% 60% 55% 45%;background:linear-gradient(135deg,#ff8a65,#ff5a3c 50%,#ffb199);display:grid;place-items:center;font-size:110px;box-shadow:0 20px 50px rgba(255,90,60,.35);animation:bob 4s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-8px) rotate(3deg)}}
.hero h1{font-size:36px;font-weight:800;letter-spacing:-1px;margin:0 0 8px}.hero p{color:var(--mu);font-size:17px;margin:0 auto;max-width:320px}
.hero .brand{font-size:15px;font-weight:700;color:var(--ac);margin-bottom:8px}
/* onboarding */
.dots{display:flex;gap:6px;justify-content:center;flex:1}.dots i{width:8px;height:8px;border-radius:4px;background:var(--ln);transition:.3s}.dots i.on{width:24px;background:var(--ac)}
.q{font-size:28px;font-weight:800;letter-spacing:-.5px;margin:8px 0 4px}
.opt{display:flex;align-items:center;gap:16px;width:100%;text-align:left;min-height:64px;padding:16px;margin:0 0 12px;border-radius:18px;background:var(--card);box-shadow:var(--sh);border:2px solid transparent;font-size:17px;font-weight:600;transition:border-color .2s,background .2s}
.opt .ic{font-size:28px;width:48px;height:48px;border-radius:14px;background:var(--ac2);display:grid;place-items:center;flex:none}.opt small{display:block;font-weight:400;color:var(--mu);font-size:14px}
.opt.on{border-color:var(--ac);background:var(--ac2)}.opt .ck{margin-left:auto;width:24px;height:24px;border-radius:12px;border:2px solid var(--ln);flex:none}.opt.on .ck{background:var(--ac);border-color:var(--ac);box-shadow:inset 0 0 0 4px var(--card)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid2 .opt{margin:0;min-height:56px;justify-content:center;text-align:center;font-size:15px}
.big{font-size:56px;font-weight:800;text-align:center;letter-spacing:-2px;margin:24px 0 0}
input[type=range]{width:100%;height:44px;accent-color:var(--ac)}
/* discover */
.stack{position:relative;height:clamp(200px,calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 300px),560px);margin-bottom:16px}
.dcard{position:absolute;inset:0;border-radius:28px;overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.15);touch-action:pan-y;user-select:none;-webkit-user-select:none;transition:transform .3s,opacity .3s;display:flex;flex-direction:column;justify-content:flex-end;color:#fff}
.dcard.back{transform:scale(.94) translateY(14px);opacity:.7}
.dcard .art{position:absolute;inset:0;display:grid;place-items:center;font-size:min(150px,18dvh);padding-bottom:40%}
.dcard .info{position:relative;padding:80px 20px 20px;background:linear-gradient(transparent,rgba(0,0,0,.65))}
.dcard h2{margin:0;font-size:28px;font-weight:800}.dcard p{margin:4px 0 0;font-size:15px;opacity:.95}
.score{position:absolute;top:16px;right:16px;background:rgba(255,255,255,.95);color:#15803d;font-weight:800;border-radius:14px;padding:6px 12px;font-size:15px}
.dcard .tag{position:absolute;top:16px;left:16px}
.stamp{position:absolute;top:60px;font-size:32px;font-weight:900;border:4px solid;border-radius:12px;padding:4px 12px;opacity:0;transform:rotate(-12deg)}.stamp.l{left:20px;color:#4ade80}.stamp.p{right:20px;color:#f87171;transform:rotate(12deg)}
.acts{display:flex;justify-content:center;gap:32px}.round{width:72px;height:72px;border-radius:36px;background:var(--card);box-shadow:0 8px 24px rgba(0,0,0,.12);font-size:30px;display:grid;place-items:center}
.round.like{background:var(--ac);color:#fff;width:80px;height:80px;border-radius:40px}
.lrow{display:flex;gap:12px;align-items:center}.lrow .av{width:64px;height:64px;font-size:34px;border-radius:18px}.lrow b{font-size:17px}
.pill{min-height:44px;padding:0 16px;border-radius:22px;background:var(--ac);color:#fff;font-weight:700;font-size:15px}.pill.done{background:var(--ac2);color:var(--ac)}
/* sheet */
#sheet{position:fixed;inset:0;z-index:50;display:none}#sheet.open{display:block}
#sheet .scrim{position:absolute;inset:0;background:rgba(0,0,0,.4);animation:fi .2s}@keyframes fi{from{opacity:0}}
#sheet .panel{position:absolute;left:0;right:0;bottom:0;background:var(--bg);border-radius:24px 24px 0 0;padding:8px 16px calc(16px + env(safe-area-inset-bottom));animation:up .3s cubic-bezier(.2,.9,.3,1);max-height:85dvh;overflow:auto}
@keyframes up{from{transform:translateY(100%)}}.grab{width:36px;height:5px;border-radius:3px;background:var(--ln);margin:0 auto 12px}
.wrapc{display:flex;flex-wrap:wrap;gap:8px}
/* matches */
.week{display:flex;gap:6px}.day{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 0;border-radius:16px;background:var(--bg);font-size:12px;font-weight:700;color:var(--mu);min-height:76px}
.day .av{width:32px;height:32px;font-size:16px;color:#fff}.day.me .av{background:var(--ac)}.day.them .av{background:var(--bl)}
.leg{display:flex;gap:16px;font-size:13px;color:var(--mu);margin-top:12px}.leg i{display:inline-block;width:10px;height:10px;border-radius:5px;margin-right:6px}
.split{display:flex;gap:16px;align-items:center}.donut{width:96px;height:96px;border-radius:50%;flex:none;display:grid;place-items:center}.donut div{width:64px;height:64px;border-radius:50%;background:var(--card);display:grid;place-items:center;font-weight:800;font-size:15px}
.amt{font-size:22px;font-weight:800}.who{font-size:13px;color:var(--mu)}
.stp{display:flex;align-items:center;justify-content:space-between;min-height:52px;border-top:.5px solid var(--ln)}.stp:first-of-type{border:0}
.stp .c{display:flex;align-items:center;gap:12px;font-weight:700}.stp button{width:44px;height:44px;border-radius:22px;background:var(--bg);font-size:22px;font-weight:600;color:var(--ac)}
.msgs{display:flex;flex-direction:column;gap:6px;margin:12px 0}.msg{padding:10px 14px;border-radius:20px;max-width:80%;background:var(--bg);font-size:16px}.msg.me{align-self:flex-end;background:var(--ac);color:#fff}
.compose{display:flex;gap:8px}.compose input{flex:1;min-width:0;height:44px;border-radius:22px;border:1px solid var(--ln);padding:0 16px;font-size:16px;background:var(--bg);color:var(--tx)}
.compose button{width:44px;height:44px;border-radius:22px;background:var(--ac);color:#fff;font-size:20px}
.mrow{display:flex;gap:12px;overflow-x:auto;margin:0 -16px 16px;padding:4px 16px;scrollbar-width:none}.mrow::-webkit-scrollbar{display:none}
.mav{flex:none;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:13px;font-weight:600;min-width:64px}.mav .av{width:60px;height:60px;font-size:30px;border:3px solid transparent}.mav.on .av{border-color:var(--ac)}
.li{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:.5px solid var(--ln);font-size:16px}.li:first-child{border:0}.li span:first-child{color:var(--mu)}.li span:last-child{text-align:right;font-weight:600}
.ok{display:flex;align-items:center;gap:8px;color:var(--gr);font-weight:700}
.prof{text-align:center;padding:8px 0 16px}.prof .av{width:96px;height:96px;font-size:48px;margin:0 auto 8px;background:linear-gradient(135deg,#ff8a65,#ff5a3c)}
.empty{text-align:center;padding:48px 16px}.empty div{font-size:72px}
@media(max-height:600px){.round{width:60px;height:60px}.round.like{width:64px;height:64px;border-radius:32px}.dcard .info{padding-top:40px}.dcard p:last-child{display:none}}
/* v3 */
.wide{width:100%;margin-bottom:12px;flex:none;display:block}
.blob{overflow:hidden}.blob img{width:100%;height:100%;object-fit:cover}
.dcard .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.dcard .info{padding-top:120px;background:linear-gradient(transparent,rgba(0,0,0,.78))}
.tapmore{font-size:13px!important;opacity:.75!important}
.badge{display:inline-block;font-size:12px;font-weight:700;padding:3px 9px;border-radius:9px;margin-bottom:6px}.badge.own{background:#ffe3dc;color:#b3311a}.badge.co{background:#dbeafe;color:#1d4ed8}
.round.sm{width:56px;height:56px;font-size:24px;align-self:center;color:var(--bl)}.acts{align-items:center;gap:24px}
.lcard{padding:12px}.lcard .lrow{width:100%;padding:0}.th{width:72px;height:72px;border-radius:16px;object-fit:cover;flex:none}
.lrow2{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}
.sc{font-size:13px;font-weight:800;color:var(--gr)}
.week.mini{gap:2px;flex:1;max-width:150px}.week.mini .dp{height:22px;font-size:10px;border-radius:6px}
.dp{flex:1;height:36px;border-radius:10px;display:grid;place-items:center;font-size:13px;font-weight:700;background:var(--bg);color:var(--mu)}.dp.on{background:var(--ac);color:#fff}
.dp.big3{height:48px;font-size:15px}
.pill.ghost{background:var(--bg);color:var(--tx)}
#hdr sup{font-size:11px;background:var(--ac);color:#fff;border-radius:8px;padding:0 5px;margin-left:-6px}
.car{position:relative;margin:0 -16px 12px}.track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.track::-webkit-scrollbar{display:none}
.track img{flex:none;width:100%;aspect-ratio:4/3.4;object-fit:cover;scroll-snap-align:center;background:var(--ln)}
.cdots{position:absolute;bottom:12px;left:0;right:0;display:flex;justify-content:center;gap:6px}.cdots i{width:7px;height:7px;border-radius:4px;background:rgba(255,255,255,.55)}.cdots i.on{background:#fff;width:18px}
.ptitle{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:4px 0 8px}.ptitle h2{margin:0;font-size:28px;font-weight:800;letter-spacing:-.5px}
.ring{--v:50;width:68px;height:68px;border-radius:50%;flex:none;display:grid;place-content:center;text-align:center;background:radial-gradient(var(--card) 58%,transparent 60%),conic-gradient(var(--gr) calc(var(--v)*1%),var(--ln) 0);line-height:1.05}
.ring b{font-size:17px}.ring small{font-size:11px;color:var(--mu)}.ring.sm2{width:52px;height:52px}.ring.sm2 b{font-size:14px}
.meter{display:flex;gap:4px}.meter i{width:18px;height:10px;border-radius:5px;background:var(--ln)}.meter i.on{background:var(--ac)}
.li .meter{align-self:center}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.chip.sm{min-height:32px;padding:6px 12px;font-size:13px;box-shadow:none;background:var(--ac2);color:var(--ac)}
.gw{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;gap:8px}.gw div{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:14px}.gw span{font-size:26px}
.yes{color:var(--gr);font-size:13px}.no{color:#ef4444;font-size:13px}
.quote{font-size:17px;font-style:italic}
.sub2{font-size:13px;color:var(--mu);font-weight:600;margin:12px 0 8px}
.map{width:100%;height:auto;display:block;border-radius:14px;background:color-mix(in srgb,var(--bl) 8%,var(--bg))}
.river{fill:none;stroke:color-mix(in srgb,var(--bl) 35%,transparent);stroke-width:10;stroke-linecap:round}
.mdot{fill:var(--mu);opacity:.35}.mme{fill:var(--ac);stroke:#fff;stroke-width:2}.mthem{fill:var(--bl);stroke:#fff;stroke-width:2}.mline{stroke:var(--tx);stroke-width:2;stroke-dasharray:4 4;opacity:.6}
.mlab{font-size:11px;font-weight:700;fill:var(--tx);text-anchor:middle}.mlab2{font-size:10px;fill:var(--mu);font-weight:600}
.ocard{display:flex;align-items:center;gap:12px;width:100%;min-height:72px}.chev{font-size:24px;color:var(--mu)}
.av{object-fit:cover}.ini{background:linear-gradient(135deg,#ff8a65,#ff5a3c);color:#fff;font-weight:800;border-radius:50%;display:grid;place-items:center}
.vb{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:9px;background:var(--bl);color:#fff;font-size:11px}
.phero{position:relative;margin:0 -16px 12px;aspect-ratio:1/1;max-height:420px;overflow:hidden;background:var(--ln)}.phero img{width:100%;height:100%;object-fit:cover}
.phero .ini.big2{width:100%;height:100%;border-radius:0;font-size:120px}
.phov{position:absolute;left:0;right:0;bottom:0;padding:60px 16px 16px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.7))}.phov h2{margin:0;font-size:30px;font-weight:800}
.badges{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px}.vbadge{font-size:13px;font-weight:700;padding:6px 10px;border-radius:10px;background:#dcfce7;color:#166534}.vbadge.off{background:var(--ln);color:var(--mu)}.vbadge.neu{background:#dbeafe;color:#1e40af}
.cbar{display:flex;align-items:center;gap:12px;width:100%}
.prompt small{display:block;font-size:13px;font-weight:700;color:var(--ac);margin-bottom:6px}.prompt div{font-size:20px;font-weight:700;line-height:1.3}
.rsum{display:flex;align-items:center;gap:8px;margin-bottom:4px}.rsum b{font-size:28px}.st{color:#f59e0b;letter-spacing:1px}.st .dim{color:var(--ln)}
.rev{border-top:.5px solid var(--ln);padding:12px 0 0;margin-top:12px}.rev p{margin:6px 0 0}
.qa{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:8px}.qbtn{background:var(--card);box-shadow:var(--sh);border-radius:16px;min-height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:22px}.qbtn span{font-size:12px;font-weight:700}
.mav img.av{width:60px;height:60px;border:3px solid transparent}.mav.on img.av{border-color:var(--ac)}
.calh,.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.calh span{font-size:12px;font-weight:700;color:var(--mu);padding-bottom:4px}
.cd{position:relative;height:44px;border-radius:12px;font-size:15px;font-weight:700;color:#fff}.cd.me{background:var(--ac)}.cd.them{background:var(--bl)}.cd.past{opacity:.3}.cd.today{box-shadow:0 0 0 2px var(--card),0 0 0 4px var(--tx)}
.cd.ov{background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.18) 0 4px,transparent 4px 8px)}.cd i{position:absolute;top:4px;left:4px;width:7px;height:7px;border-radius:4px;background:#fff}
.day .av{width:36px;height:36px;font-size:11px}
.form .fld{display:block;margin:0 0 14px}.form .fld:last-child{margin:0}.fld>span{display:flex;justify-content:space-between;font-size:13px;font-weight:600;color:var(--mu);margin-bottom:6px}
.fld input:not([type=range]),.fld select,.fld textarea{width:100%;min-height:44px;border-radius:12px;border:1px solid var(--ln);padding:10px 12px;font:inherit;font-size:16px;background:var(--bg);color:var(--tx);-webkit-appearance:none;appearance:none}
.fld textarea{resize:vertical}.fld select{background-image:linear-gradient(45deg,transparent 50%,var(--mu) 50%),linear-gradient(135deg,var(--mu) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:32px}
.prog{height:10px;border-radius:5px;background:var(--ln);overflow:hidden}.prog i{display:block;height:100%;background:var(--gr);border-radius:5px;transition:width .3s}
.chk{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;text-align:left;border-top:.5px solid var(--ln);font-size:16px}.chk:first-child{border:0}
.chk .box{width:26px;height:26px;border-radius:8px;border:2px solid var(--ln);display:grid;place-items:center;flex:none;color:#fff;font-size:15px;font-weight:800}.chk.on .box{background:var(--gr);border-color:var(--gr)}.chk.on{color:var(--mu)}
.cpart{margin:14px 0}.cph{display:flex;justify-content:space-between;margin-bottom:6px}.cpart p{margin:6px 0 0}.good{color:var(--gr)}.mid{color:#f59e0b}.low{color:#ef4444}
.cmpw{display:flex;align-items:center;gap:8px;margin-top:8px}.cmpw>span{width:56px;font-size:13px;font-weight:700;flex:none}.cmpw .week{flex:1}
.prof .av{margin:0 auto 8px;display:grid}
#toast{position:fixed;left:50%;bottom:calc(110px + env(safe-area-inset-bottom));transform:translate(-50%,20px);background:#111;color:#fff;padding:12px 16px;border-radius:14px;font-size:15px;opacity:0;pointer-events:none;transition:.25s;z-index:99;max-width:88vw;text-align:center}
#toast.show{opacity:1;transform:translate(-50%,0)}
.links{display:flex;gap:18px;justify-content:center;margin:14px 0}.links a{color:inherit;opacity:.7;font-size:14px;min-height:44px;display:inline-flex;align-items:center}
.phrow{display:flex;align-items:center;gap:12px;margin-bottom:10px}.phrow .btn{flex:1;min-height:44px;display:flex;align-items:center;justify-content:center}
button.msg{border:0;font:inherit;text-align:left;color:inherit;cursor:pointer;min-height:44px}
.btn.apple{background:#000;color:#fff}
.avg{display:grid;grid-template-columns:30px repeat(7,1fr);gap:4px;align-items:center}
.avh{font-size:11px;text-align:center;opacity:.65;font-weight:600}
.slot{height:44px;border-radius:10px;border:1.5px solid rgba(127,127,127,.3);background:transparent;color:#fff;font-weight:700;min-width:0;padding:0}
.slot.on{background:var(--ac);border-color:var(--ac)}
.cov{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:8px 0 4px}
.covd{display:flex;flex-direction:column;gap:2px;align-items:stretch}.covd i{height:12px;border-radius:4px;background:rgba(127,127,127,.18)}
.covd i.m{background:var(--ac)}.covd i.t{background:var(--bl)}.covd i.b{background:linear-gradient(135deg,var(--ac) 50%,var(--bl) 50%)}
.covd span{font-size:11px;text-align:center;opacity:.6;margin-top:2px}
.leg i.lb{background:linear-gradient(135deg,var(--ac) 50%,var(--bl) 50%)}.leg i.lo{background:rgba(127,127,127,.18)}
.why{margin:8px 0 2px;font-size:15px}.bcard .lrow2{gap:6px}
.invite{border:1.5px dashed var(--ac)}
.fsel{width:100%;min-height:44px;border-radius:12px;padding:0 12px;font:inherit;background:transparent;color:inherit;border:1.5px solid rgba(127,127,127,.3)}
#map{height:calc(100vh - 230px - env(safe-area-inset-bottom));min-height:300px;border-radius:20px;overflow:hidden;z-index:0}
.maphint{text-align:center;font-size:13px;margin:8px 0}
.pin img{width:44px;height:44px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.35)}
.pin.real img{border-color:var(--ac)}
.pin b{position:absolute;right:-6px;bottom:-4px;background:#111;color:#fff;font-size:10px;border-radius:8px;padding:1px 4px}
.mini{display:flex;gap:10px;align-items:center;margin-bottom:8px}.mini img{width:56px;height:56px;border-radius:12px;object-fit:cover}
.leaflet-popup-content .btn{margin:0;min-height:44px}.leaflet-popup-content{font:inherit;color:#1d1d1f}
.leaflet-touch .leaflet-bar a{width:44px;height:44px;line-height:44px}
.leaflet-popup-close-button{width:44px!important;height:44px!important;font-size:22px!important;line-height:44px!important}
/* Inbox + message requests */
#tabs button{position:relative}
.tbadge{position:absolute;top:6px;left:calc(50% + 6px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font:700 11px/18px system-ui;font-style:normal}
.cbadge{display:inline-block;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font:700 11px/18px system-ui;font-style:normal;vertical-align:1px}
.mav{position:relative}.udot{position:absolute;top:2px;right:6px;width:12px;height:12px;border-radius:50%;background:#ef4444;border:2px solid var(--bg,#fff)}
.mbtns{display:flex;gap:8px}.mbtns .btn{flex:1}
#foot .btn.ic{flex:0 0 52px;padding:0;font-size:22px}#foot .btn.grow{flex:1.6}
.rq .rqb{margin:8px 0;padding:10px 12px;background:var(--ln);border-radius:12px;line-height:1.4;overflow-wrap:anywhere}
.rqa{display:flex;gap:8px}.rqa .btn{flex:1}
.lnk{display:block;margin:10px auto 0;min-height:44px;color:var(--mu);font-size:14px;text-decoration:underline}
.pill.done[disabled],.btn.done[disabled]{opacity:.7}
/* Wide screens: keep header, footer and tab bar aligned with the 560px content column */
@media (min-width:640px){#hdr,#foot{padding-left:calc((100vw - 560px)/2 + 16px);padding-right:calc((100vw - 560px)/2 + 16px)}#tabs{padding-left:calc((100vw - 560px)/2);padding-right:calc((100vw - 560px)/2)}}
/* Toast at the top so it never covers action buttons */
#toast{bottom:auto;top:calc(env(safe-area-inset-top) + 64px);transform:translate(-50%,-12px);max-width:calc(100vw - 32px);text-align:center;z-index:60}
.pin .pvb{position:absolute;left:-2px;top:-2px;width:18px;height:18px;border-radius:9px;background:var(--bl);color:#fff;font:700 11px/18px system-ui;text-align:center;font-style:normal;border:2px solid #fff}
