:root{--ink:#2B2226;--muted:#5C5257;--bg:#FBF7F2;--bg2:#F7F1EE;--card:#F1E6EC;--teal:#5E2750;--teal2:#5E2750;--plum:#5E2750;--plumdk:#4A1E3F;--sec:#8A4F7D;--link:#3E5C76;--sky:#E8D5E0;--gold:#FBF7F2;--red:#B3261E;--reddk:#7A0019;--redbg:#FBEAE8;--green:#1E6B3A;--greenbg:#E3F4E8;--amber:#6B4500;--amberbg:#F3EBDD;--yel:#FFC928;--yelink:#1A1300;--yelline:#5C4300;--yelbg:#FFF4CC;--line:#DCCAD4;--cardline:#9C8492;--field:#8F7785;--focus:#3E5C76;--r:16px}
*{box-sizing:border-box}
html{font-size:18px}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}
a{color:var(--link)}
:focus-visible{outline:4px solid var(--focus);outline-offset:2px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;min-height:44px;background:#fff;padding:8px;z-index:9}
.demo-bar{position:sticky;top:0;z-index:5;background:var(--teal);color:#fff;padding:8px 12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.demo-tag{font-size:.75rem;font-weight:700;letter-spacing:.04em;background:var(--gold);color:var(--plum);padding:2px 8px;border-radius:999px}
.switch{display:flex;gap:4px;flex-wrap:wrap}
.switch a{color:#fff;text-decoration:none;padding:6px 12px;border-radius:999px;font-weight:600;font-size:.9rem;border:2px solid transparent}
.switch a.on{background:#fff;color:var(--teal2)}
main{max-width:980px;margin:0 auto;padding:16px 16px 80px}
h1{font-size:2rem;line-height:1.2;margin:.4em 0}h2{font-size:1.4rem;margin:1.2em 0 .5em}h3{font-size:1.1rem;margin:.2em 0}
.lead{font-size:1.15rem;color:var(--muted)}
.card{background:var(--card);border:1px solid var(--cardline);border-radius:var(--r);padding:16px;margin:12px 0;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.grid{display:grid;gap:12px}
@media(min-width:720px){.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 18px;border-radius:12px;border:2px solid var(--teal);background:var(--teal);color:#fff;font-size:1rem;font-weight:700;cursor:pointer;text-decoration:none}
.btn.ghost{background:#fff;color:var(--plum)}
.btn:hover{background:var(--plumdk);border-color:var(--plumdk)}.btn.ghost:hover{background:var(--sky);color:var(--plum)}.btn.red:hover{background:#8c1d18}.btn.dark{background:var(--ink);border-color:var(--ink)}.btn.dark:hover{background:#000;border-color:#000}.btn.green:hover{background:#14532b}
.btn.red{background:var(--red);border-color:var(--red)}.btn.amber{background:var(--yel);border-color:var(--yelline);color:var(--yelink)}.btn.amber:hover{background:#f0b400;border-color:var(--yelline);color:var(--yelink)}.btn.green{background:var(--green);border-color:var(--green)}
.btn.sm{min-height:44px;padding:6px 12px;font-size:.9rem}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pill{display:inline-block;font-size:.8rem;font-weight:700;padding:2px 10px;border-radius:999px;background:var(--sky);color:var(--plum)}
.hero{background:linear-gradient(160deg,#fff 0%,var(--card) 100%);border-radius:24px;padding:24px;border:1px solid var(--cardline)}.tagline{font-size:1.2rem;font-weight:800;color:var(--plum);margin:.6em 0 0}
.price{font-size:2.2rem;font-weight:800}.price small{font-size:1rem;font-weight:600;color:var(--muted)}
.plan.best{border:3px solid var(--teal)}
ul.check{padding-left:0;list-style:none}ul.check li{padding:4px 0 4px 28px;position:relative}ul.check li:before{content:"✓";position:absolute;left:4px;color:var(--green);font-weight:800}
ul.no li:before{content:"–";color:var(--muted)}
.note{background:#fff;border-left:6px solid var(--sec);padding:12px 14px;border-radius:10px}
.note.alert{background:#fff;border-color:var(--ink);color:var(--ink)}
.note.pw{background:#fff;border-color:var(--plum)}
.fine{font-size:.85rem;color:var(--muted)}
table{width:100%;border-collapse:collapse;font-size:.95rem}th,td{text-align:left;padding:8px;border-bottom:1px solid var(--line)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 4px}
.tabs button{min-height:44px;padding:8px 14px;border-radius:999px;border:2px solid var(--teal);background:#fff;color:var(--teal);font-weight:700;font-size:.95rem;cursor:pointer}
.tabs button[aria-selected=true]{background:var(--teal);color:#fff}
.bar{height:14px;background:var(--line);border-radius:999px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--green);transition:width .3s}
details.step{border:1px solid var(--line);border-radius:12px;margin:8px 0;background:#fff}
details.step summary{list-style:none;cursor:pointer;padding:12px;display:flex;gap:12px;align-items:center}
details.step summary::-webkit-details-marker{display:none}
details.step .body{padding:0 16px 14px 52px}
details.step ol{margin:.3em 0;padding-left:1.2em}
input[type=checkbox]{width:28px;height:28px;accent-color:var(--green);flex:none}
.done-t{text-decoration:line-through;color:var(--muted)}
.verdict{font-weight:800;padding:4px 10px;border-radius:8px;display:inline-block}
.v-scam{background:var(--plum);color:#fff}.v-ok{background:var(--greenbg);color:var(--green)}.v-unsure{background:var(--amberbg);color:var(--amber)}
.msg{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-family:ui-monospace,Menlo,monospace;font-size:.9rem;white-space:pre-wrap}
.feed li{padding:8px 0;border-bottom:1px solid var(--line)}.feed{list-style:none;padding:0;margin:0}
input[type=text],input[type=email],textarea,select{font:inherit;width:100%;padding:12px;border:2px solid var(--field);border-radius:10px;background:#fff}
label{font-weight:700;display:block;margin:8px 0 4px}
/* Parent view */
.parent{max-width:560px;margin:0 auto}
.parent h1{font-size:2.2rem}
.status{font-size:1.4rem;font-weight:800;padding:16px;border-radius:16px;background:var(--greenbg);color:var(--green);text-align:center;border:3px solid var(--green)}
.status.paused{background:#eee;color:#333;border-color:#666}
.big{display:flex;align-items:center;gap:16px;width:100%;min-height:110px;margin:14px 0;padding:18px 22px;font-size:1.7rem;font-weight:800;border-radius:22px;border:4px solid #000;cursor:pointer;text-align:left;color:#fff;text-decoration:none}
.big .ic{font-size:2.6rem}
.big.scam{background:var(--plum);border-color:#3F1A36}.big.call{background:#1e6b3a;border-color:#11461f}.big.help{background:var(--link);border-color:#2A3F52}.big.info{background:#fff;color:#1d1d1f;border-color:#1d1d1f}.big.who{background:#5b3a00;border-color:#3a2500}
.answer{font-size:1.8rem;font-weight:800;text-align:center;padding:24px;border-radius:20px}
.answer.safe,.answer.verify{background:#EAF1F7;color:#1F3A52;border:4px solid var(--link)}.answer.no{background:var(--card);color:var(--plum);border:4px solid var(--plum)}
.parent p,.parent li{font-size:1.25rem}
.parent .btn{min-height:64px;font-size:1.3rem;width:100%}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:flex-end;justify-content:center;z-index:20}
.modal .sheet{background:#fff;width:100%;max-width:640px;max-height:92vh;overflow:auto;border-radius:24px 24px 0 0;padding:20px}
@media(min-width:720px){.modal{align-items:center}.modal .sheet{border-radius:24px}}
#toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:#1d1d1f;color:#fff;padding:12px 18px;border-radius:12px;font-weight:600;opacity:0;transition:opacity .2s;pointer-events:none;z-index:30;max-width:90vw}
#toast.show{opacity:1}
.shot{border:3px dashed var(--field);border-radius:14px;padding:16px;text-align:center;color:var(--muted)}
/* Call filtering tips */
.tips ul{margin:.3em 0;padding-left:1.2em}.tips li{margin:4px 0}
input[type=tel]{font:inherit;width:100%;padding:12px;border:2px solid var(--field);border-radius:10px;background:#fff}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
/* Break-glass sheet */
.bg-sheet{max-width:760px;margin:0 auto}
.bg-warn{background:#fff;border:3px solid var(--plum);color:var(--ink);border-radius:14px;padding:14px 16px;font-size:1.1rem;margin:12px 0}
.bg-row{display:flex;flex-direction:column;margin:10px 0 18px}
.bg-label{font-weight:700}
.bg-blank{display:block;height:36px;border-bottom:2px solid #1d1d1f}
.bg-tips{border:2px solid var(--line);border-radius:14px;padding:4px 16px;margin-top:16px}
@media print{
  .demo-bar,.skip,#toast,.no-print,.modal{display:none!important}
  body{background:#fff;font-size:12pt}
  main{padding:0;max-width:none}
  .bg-warn{border:3px solid #000;color:#000;background:#fff}
  .bg-blank{height:28px;border-bottom:1.5px solid #000}
  .bg-row,.bg-tips{break-inside:avoid}
  a{color:#000;text-decoration:none}
}

html{background:var(--bg)}
/* Onboarding wizard */
.wiz{max-width:640px;margin:8px auto 0}
.wiz h1{font-size:2rem}
.wiz p,.wiz li,.wiz label{font-size:1.15rem}
.wiz-kicker{font-weight:800;color:var(--plum);text-transform:uppercase;letter-spacing:.05em;font-size:.9rem!important;margin:0}
.wiz-dots{display:flex;gap:6px;list-style:none;padding:0;margin:12px 0 4px}
.wiz-dots li{flex:1;height:10px;border-radius:999px;background:var(--line);position:relative}
.wiz-dots li.done,.wiz-dots li.on{background:var(--plum)}
.wiz-dots li span{position:absolute;left:-9999px}
.wiz-count{color:var(--muted);font-weight:700;margin:4px 0 0}
.wiz-card{padding:20px}
.wiz-card input[type=text],.wiz-card select{font-size:1.2rem;min-height:56px}
.wiz-pick{display:flex;gap:14px;align-items:flex-start;border:2px solid var(--line);border-radius:14px;padding:14px;margin:10px 0;background:#fff;cursor:pointer;font-weight:400}
.wiz-pick.on{border-color:var(--teal);background:var(--bg2)}
.wiz-pick strong{font-size:1.2rem}.wiz-desc{color:var(--muted);font-size:1rem}
.wiz-nav{display:flex;justify-content:space-between;gap:12px;margin-top:16px}
.wiz-nav .btn{min-height:60px;font-size:1.2rem;padding:12px 26px}
.wiz-skip{text-align:center;margin-top:18px}
.linkish{background:none;border:0;color:var(--teal2);text-decoration:underline;font:inherit;font-weight:700;cursor:pointer;padding:10px;min-height:44px}
details.step.pick{border:3px solid var(--teal);background:var(--bg2)}
.pill.star{background:var(--amberbg);color:var(--amber);margin-left:6px}
.plan-card{border:2px solid var(--plum);background:linear-gradient(160deg,#fff 0%,var(--bg2) 100%)}
/* ---------- Installable app (PWA) polish ---------- */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overscroll-behavior-y:none}
body{-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;min-height:100vh;min-height:100dvh}
a,button,summary,label,input,select,textarea{touch-action:manipulation}
/* Notch / Dynamic Island / home-indicator safe areas */
.demo-bar{padding-top:max(8px,env(safe-area-inset-top));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
main{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:calc(80px + env(safe-area-inset-bottom))}
#toast{bottom:calc(20px + env(safe-area-inset-bottom))}
.modal .sheet{padding-bottom:calc(20px + env(safe-area-inset-bottom));overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.modal .sheet{max-height:92dvh}
/* 44px minimum tap targets */
.switch a{min-height:44px;display:inline-flex;align-items:center}
.btn.sm{min-height:44px}
details.step summary{min-height:44px}
/* No iOS zoom-on-focus: form fields at least 16px */
input,select,textarea{font-size:max(16px,1em)}
/* Install helper */
.install-btn{min-height:44px;padding:6px 14px;border-radius:999px;border:2px solid #fff;background:#fff;color:var(--plum);font-weight:800;font-size:.9rem;cursor:pointer}
.install-btn:hover{background:var(--sky)}
.install-btn[hidden],.ios-tip[hidden],[data-install-only][hidden]{display:none!important}
.ios-tip{position:fixed;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));z-index:15;display:flex;gap:12px;align-items:center;background:#fff;border:2px solid var(--teal);border-radius:18px;padding:12px 12px 12px 14px;box-shadow:0 8px 24px rgba(43,34,38,.22);max-width:560px;margin:0 auto;font-size:1rem}
.ios-tip img{border-radius:10px;flex:none}
.ios-tip>div{flex:1}
.share-ic{display:inline-flex;align-items:center;gap:2px;font-weight:700;color:var(--plum)}
.ios-tip-x{flex:none;width:44px;height:44px;border-radius:999px;border:0;background:var(--sky);color:var(--plum);font-weight:800;cursor:pointer}
.install-card{border:2px solid var(--teal);background:linear-gradient(160deg,#fff 0%,var(--bg2) 100%)}
.install-card .head{display:flex;gap:14px;align-items:center}
.install-card .head img{border-radius:14px;flex:none}
.install-card ol{margin:.3em 0 .6em;padding-left:1.3em}.install-card li{margin:4px 0}
.install-card .ok{background:var(--greenbg);color:var(--green);border-radius:10px;padding:8px 12px;font-weight:700}
@media print{.ios-tip,.install-btn{display:none!important}}
body.has-ios-tip main{padding-bottom:calc(150px + env(safe-area-inset-bottom))}
/* Parent mode (locked phone) + family PIN pad */
body.locked .switch{display:none}
.parent-foot{text-align:center;margin:28px 0 8px;padding-top:12px;border-top:1px solid var(--line)}
.parent-foot .fine{margin:0}
.linkish.quiet{font-size:.85rem;font-weight:600;color:var(--muted);text-decoration:underline}
.mom-card{border:2px solid var(--teal)}
.mom-link{margin:8px 0}
.ok-line{color:var(--green);font-weight:700}
.setup-steps li{margin:6px 0}
input.pinmask{font:inherit;width:100%;padding:12px;border:2px solid var(--field);border-radius:10px;background:#fff;-webkit-text-security:disc;text-security:disc;letter-spacing:.3em}
.pinpad{max-width:360px;margin:0 auto;text-align:center}
.pin-dots{display:flex;justify-content:center;gap:16px;margin:12px 0}
.pin-dots i{width:22px;height:22px;border-radius:50%;border:3px solid var(--teal2);display:block}
.pin-dots i.on{background:var(--teal2)}
.pin-dots.shake{animation:pshake .35s}
@keyframes pshake{0%,100%{transform:translateX(0)}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
.pin-msg{min-height:1.6em;color:var(--amber);font-weight:700;margin:4px 0}
.pin-keys{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:8px 0 12px}
.pk{min-height:64px;font-size:1.6rem;font-weight:800;border-radius:16px;border:2px solid var(--line);background:var(--bg2);color:var(--ink);cursor:pointer}
.pk:active{background:var(--sky)}
.pk.sm{font-size:1rem}
.pinpad .btn{width:100%}
/* ---------- Parent view v8: senior-friendly buttons ----------
   Targets: primary 96px+, secondary 72px+, Back 64px, tools 56px+ (WCAG 2.2 AAA 2.5.5 asks 44px; we go well past it).
   16-24px gaps between targets, icon + plain label (22px+) + one-line helper, AA contrast, strong focus ring. */
html.pfs-2{font-size:20.5px}html.pfs-3{font-size:23px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.parent{text-align:left}
.parent .status{text-align:left;font-size:1.3rem}
.parent .answer{text-align:left;font-size:1.5rem;margin:18px 0;padding:20px}
.parent .ans-about{font-size:1.1rem!important;font-weight:600;margin:10px 0 16px}
.p-backrow{margin:4px 0 8px}
.p-hi{font-size:2.3rem!important;margin:.2em 0 .3em}
.pi{width:36px;height:36px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;flex:none}
h1 .pi{width:1.1em;height:1.1em;vertical-align:-.15em}
/* Back: always labelled, arrow + word, 64px tall */
.pback{display:inline-flex;align-items:center;gap:10px;min-height:64px;min-width:132px;padding:0 22px 0 14px;border-radius:16px;border:3px solid var(--plum);background:#fff;color:var(--plum);font:inherit;font-size:1.25rem;font-weight:800;text-decoration:none;cursor:pointer;box-shadow:0 2px 0 #D9C3D0}
.pback .pi{width:30px;height:30px;stroke-width:2.6}
/* Text size + contrast tools */
.p-tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:6px 0 16px}
.p-tools-l{font-size:1.05rem;font-weight:600;color:var(--ink);flex-basis:100%}
.ptool{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:56px;min-width:72px;padding:0 16px;border-radius:14px;border:3px solid var(--plum);background:#fff;color:var(--plum);font:inherit;font-size:1.1rem;font-weight:800;cursor:pointer}
.ptool.big-a{font-size:1.35rem}
.ptool .pi{width:26px;height:26px}
.ptool[aria-pressed=true]{background:var(--plum);color:#fff}
.ptool:disabled{border-color:#B8AAB1;color:#6E6268;background:#F4EFF1;cursor:default}
/* The big buttons */
.p-main,.p-more,.p-calls,.p-choices{display:grid;grid-template-columns:1fr;gap:18px;margin:18px 0}
.p-choices{gap:22px}.p-choices.tight{gap:16px;margin-top:8px}
.pbtn{display:flex;align-items:center;gap:16px;width:100%;min-height:104px;margin:0;padding:16px 16px 16px 14px;border-radius:22px;border:3px solid transparent;color:#fff;text-align:left;font:inherit;cursor:pointer;text-decoration:none;box-shadow:0 4px 0 rgba(43,34,38,.28);transition:transform .08s,box-shadow .08s,filter .08s;-webkit-user-select:none;user-select:none}
.pbtn .pic{flex:none;width:64px;height:64px;border-radius:18px;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center}
.pbtn .pic .pi{width:40px;height:40px}
.ptx{display:flex;flex-direction:column;min-width:0;flex:1}
.pl{font-size:1.4rem;font-weight:800;line-height:1.2;overflow-wrap:anywhere}
.ph{font-size:1.02rem;font-weight:500;line-height:1.35;margin-top:4px;overflow-wrap:anywhere}
.chev{flex:none;font-size:2.2rem;line-height:1;font-weight:700;opacity:.9}
.pbtn.scam{background:var(--plum);border-color:#3F1A36}
.pbtn.call{background:#1b6436;border-color:#0f4222}
.pbtn.alert{background:var(--yel);border-color:var(--yelline);color:var(--yelink)}
.pbtn.alert .pic{background:rgba(26,19,0,.12);color:var(--yelink)}.pbtn.alert .chev{color:var(--yelink)}
.pbtn.e911{background:var(--red);border-color:var(--reddk);box-shadow:inset 0 0 0 3px #fff,0 4px 0 rgba(43,34,38,.28)}
.pbtn.sec{min-height:80px;background:#fff;color:var(--ink);border-color:var(--plum);box-shadow:0 3px 0 #D9C3D0}
.pbtn.sec .pic{width:48px;height:48px;border-radius:14px;background:var(--sky);color:var(--plum)}
.pbtn.sec .pic .pi{width:30px;height:30px}
.pbtn.sec .pl{font-size:1.25rem}.pbtn.sec .ph{font-size:.95rem;color:var(--muted)}
.pbtn.sec .chev{color:var(--plum)}
.pbtn.sec.stop{border-color:var(--plum)}.pbtn.sec.stop .pic{background:var(--sky);color:var(--plum)}
.pbtn.sec.go{border-color:#1b6436}.pbtn.sec.go .pic{background:var(--greenbg);color:#1b6436}
/* Confirm / choice buttons */
.pchoice{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:76px;padding:12px 18px;border-radius:18px;border:3px solid var(--plum);background:#fff;color:var(--plum);font:inherit;font-size:1.35rem;font-weight:800;text-align:center;cursor:pointer;text-decoration:none;box-shadow:0 3px 0 #D9C3D0;transition:transform .08s,box-shadow .08s,filter .08s}
.pchoice.yes{background:var(--plum);border-color:#3F1A36;color:#fff;box-shadow:0 4px 0 rgba(43,34,38,.28)}
.pchoice.yes.blue{background:var(--plum);border-color:#3F1A36}
.pchoice.yes.green{background:#1b6436;border-color:#0f4222}
.pchoice.yes.amber{background:var(--yel);border-color:var(--yelline);color:var(--yelink)}
/* Pressed + focus */
.pbtn:active,.pchoice:active,.pback:active,.ptool:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(43,34,38,.28);filter:brightness(.9)}
.pbtn.sec:active,.pchoice.no:active,.pback:active,.ptool:active{background:var(--sky);filter:none}
.pbtn:focus-visible,.pchoice:focus-visible,.pback:focus-visible,.ptool:focus-visible,.on-parent .linkish:focus-visible,.on-parent .pk:focus-visible{outline:5px solid #2B2226;outline-offset:3px;box-shadow:0 0 0 3px #fff,0 0 0 8px var(--focus)}
.p911{border:2px solid var(--red)!important;border-left-width:8px!important;background:var(--redbg)!important;color:#5e100c;font-weight:700;font-size:1.15rem;margin:8px 0 6px}
.p-more-h{font-size:1.4rem!important;margin:28px 0 0}
.p-never{font-size:1.1rem!important;color:var(--ink)}
.parent-foot .linkish.quiet{min-height:56px;padding:12px 18px}
.p-lead{font-size:1.35rem!important}
.p-err{color:#6b3f00;font-weight:800;min-height:1.2em;margin:8px 0}
.p-fine{font-size:1rem!important}
.p-input-big{font-size:1.5rem!important;min-height:64px}
.parent textarea{font-size:1.2rem;min-height:64px}
.parent label{font-size:1.2rem}
/* Done / confirmation screens */
.p-done{text-align:left;margin-top:8px}
.p-done-ic{display:inline-flex;width:84px;height:84px;border-radius:50%;background:var(--greenbg);color:#1b6436;align-items:center;justify-content:center;border:3px solid #1b6436}
.p-done-ic .pi{width:56px;height:56px}
.p-done h1{outline:none}
/* Full-screen parent sub-screens with a sticky Back bar */
.modal.pmodal{align-items:stretch;background:rgba(43,34,38,.55)}
.modal.pmodal .sheet{max-width:none;max-height:none;height:100%;border-radius:0;padding:0 18px calc(28px + env(safe-area-inset-bottom));background:var(--bg2)}
.pbar{position:sticky;top:0;z-index:2;background:var(--bg2);padding:max(12px,env(safe-area-inset-top)) 0 12px;margin:0 0 4px;border-bottom:2px solid var(--line)}
.psheet{max-width:640px;margin:0 auto}
.psheet h1{font-size:2rem;margin:.5em 0 .3em}
@media(min-width:720px){.modal.pmodal{align-items:center}.modal.pmodal .sheet{max-width:680px;height:auto;max-height:94dvh;border-radius:24px}}
/* Tablets and landscape phones: two columns for the main buttons */
@media(min-width:700px){
  .parent.p-home{max-width:900px}
  .p-main{grid-template-columns:1fr 1fr;gap:20px}
  .p-more{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
  .p-tools-l{flex-basis:auto;margin-right:4px}
}
@media(orientation:landscape) and (max-height:500px){.pbtn{min-height:92px}.p-hi{font-size:1.9rem!important}}
/* High contrast (optional toggle) */
html.phc,html.phc body{background:#fff}
html.phc .parent,html.phc .parent p,html.phc .parent li{color:#000}
html.phc .pbtn{border:4px solid #000;box-shadow:none}
html.phc .pbtn.scam{background:#3F1A36}html.phc .pbtn.call{background:#0b4220}html.phc .pbtn.alert{background:#ffd60a;color:#000;border:4px solid #000}html.phc .pbtn.alert .pic,html.phc .pbtn.alert .chev{color:#000}html.phc .pchoice.yes.amber{background:#ffd60a;color:#000}html.phc .answer.no{background:#fff;color:#000;border-color:#000}html.phc .pbtn.e911{background:#9e0b22;border:4px solid #000}
html.phc .pbtn.sec,html.phc .pchoice.no,html.phc .pback,html.phc .ptool{background:#fff;color:#000;border:4px solid #000}
html.phc .pbtn.sec .ph,html.phc .p-tools-l,html.phc .fine{color:#000}
html.phc .pbtn .pic{background:transparent;border:2px solid currentColor}
html.phc .ptool[aria-pressed=true]{background:#000;color:#fff}
html.phc .ptool:disabled{color:#555;border-color:#777}
html.phc .pchoice.yes{border:4px solid #000}
html.phc .status{background:#fff;color:#000;border:4px solid #000}
html.phc .note{background:#fff;color:#000;border-color:#000}
html.phc .p911{background:#fff!important;color:#000;border-color:#8a0f0a!important}
html.phc .modal.pmodal .sheet,html.phc .pbar{background:#fff}
@media (prefers-reduced-motion:reduce){
  .pbtn,.pchoice,.pback,.ptool{transition:none}
  .pbtn:active,.pchoice:active,.pback:active,.ptool:active{transform:none}
  .pin-dots.shake{animation:none}
  html{scroll-behavior:auto}
}
@media print{.p-tools,.pbar{display:none!important}}
/* Narrow phones: give the words more room (icon a bit smaller, arrow hidden; it's decorative) */
.p-tools-l{flex-basis:auto}
@media(max-width:420px){
  .pbtn{gap:14px;padding:16px 14px 16px 12px}
  .pbtn .pic{width:54px;height:54px;border-radius:16px}.pbtn .pic .pi{width:36px;height:36px}
  .pbtn .chev{display:none}
  .pbtn.sec .pic{width:46px;height:46px}
  .p-hi{font-size:2.1rem!important}
}
.ts-btns{display:inline-flex;gap:12px;flex-wrap:nowrap}
/* ---------- Emergency info card (v9) ---------- */
.ec-warn{margin:12px 0}
.ec-top{justify-content:space-between;margin-top:8px}
.ec-upd{margin:8px 0}
.ec-help{margin:4px 0 0}
.ec-cols{display:grid;grid-template-columns:1fr;gap:0 12px}
@media(min-width:640px){.ec-cols{grid-template-columns:repeat(4,1fr)}.ec-col{grid-column:span 1}.ec-col.w2{grid-column:span 2}
  .ec-row .ec-cols{grid-template-columns:2fr 1fr 2fr}.ec-row .ec-col.w2{grid-column:auto}}
.ec-row{border:1px solid var(--line);border-radius:12px;padding:4px 12px 12px;margin:10px 0;background:var(--bg2)}
.ec-rm{margin-top:10px}
.ec-actions{margin:16px 0}
.ec-errs ul{margin:.3em 0 0;padding-left:1.2em}
input[type=date]{font:inherit;width:100%;padding:12px;border:2px solid var(--field);border-radius:10px;background:#fff;min-height:52px}
.ec-print{display:none}
/* Parent: My emergency info button + read-only screen */
.pbtn.info{background:var(--link);border-color:#2A3F52}
html.phc .pbtn.info{background:#2A3F52}
@media(min-width:700px){.p-main .pbtn.info{grid-column:1/-1}}
.p-ec-sec{background:#fff;border:2px solid var(--line);border-radius:18px;padding:6px 16px 10px;margin:16px 0}
.p-ec-sec h2{font-size:1.15rem;text-transform:uppercase;letter-spacing:.04em;color:var(--plum);margin:.6em 0 .2em}
.p-ec-sec p,.p-ec-sec li{font-size:1.3rem}
.p-ec-big{font-size:1.6rem!important;font-weight:800;margin:.2em 0}
.p-ec-sec.allergy{border:4px solid var(--ink);background:#fff}
.p-ec-sec.allergy h2{color:var(--ink)}
.p-ec-meds{padding-left:1.1em;margin:.3em 0}.p-ec-meds li{margin:10px 0}.p-ec-meds span{font-size:1.1rem}
.p-ec-sec .p-calls{margin:10px 0}
.pbtn.sec.ecall .pic{background:var(--greenbg);color:#1b6436}
.p-ec-upd{font-size:1.15rem!important}
.pchoice .pi{width:30px;height:30px}
html.phc .p-ec-sec{border:3px solid #000}html.phc .p-ec-sec h2{color:#000}html.phc .p-ec-sec.allergy{border:5px solid #000;background:#fff}
/* Show this to the paramedics: full screen, black on white, very large text */
.modal.pmodal.medic{background:#fff;align-items:stretch}
.modal.pmodal.medic .sheet,html.phc .modal.pmodal.medic .sheet{background:#fff;color:#000;max-width:none;height:100%;max-height:none;border-radius:0}
.medic .pbar{background:#fff;border-bottom:3px solid #000}
.medic .pback{border:4px solid #000;color:#000}
.medic-in{max-width:900px;margin:0 auto;color:#000}
.med-kick{font-size:1.1rem;font-weight:900;letter-spacing:.08em;margin:12px 0 0}
.med-name{font-size:2.6rem!important;line-height:1.1;margin:.15em 0 .2em!important;outline:none}
.med-line{font-size:1.5rem}
.med-box{border:3px solid #000;border-radius:12px;padding:6px 16px 10px;margin:14px 0}
.med-box h2{font-size:1.1rem;font-weight:900;letter-spacing:.08em;margin:.5em 0 .2em}
.med-box p,.med-box li{font-size:1.55rem;line-height:1.35;font-weight:600}
.med-box ul{padding-left:1.1em;margin:.3em 0}.med-box li{margin:8px 0}
.med-allergy{border:6px solid #000;background:#fff}
.med-allergy p{font-size:1.9rem;font-weight:900}
.med-tel{display:inline-flex;align-items:center;min-height:56px;padding:4px 0;font-size:1.7rem;font-weight:900;color:#000;text-decoration:underline;text-underline-offset:4px}
.med-upd{font-size:1.1rem;margin:16px 0 24px}
@media(min-width:720px){.modal.pmodal.medic .sheet{max-width:none;height:100%;max-height:none;border-radius:0}}
/* Print for the fridge: one page, black on white */
@media print{
  body.on-ec main>:not(.ec-print){display:none!important}
  body.on-ec .ec-print{display:block!important}
  body.on-ec{background:#fff!important;font-size:10.5pt}
  .ec-print{color:#000;font-family:Arial,Helvetica,sans-serif;font-size:10.5pt;line-height:1.3}
  .ec-print *{color:#000!important;background:#fff!important;box-shadow:none!important}
  .ecp-911{border:3px solid #000;text-align:center;font-size:22pt;font-weight:900;letter-spacing:.04em;padding:4pt 0;margin:0 0 8pt}
  .ecp-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12pt;border-bottom:2px solid #000;padding-bottom:6pt;margin-bottom:6pt}
  .ecp-kicker{font-size:9pt;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
  .ecp-name{font-size:18pt;font-weight:900;line-height:1.1}
  .ecp-meta{font-size:11pt;margin-top:2pt}
  .ecp-upd{font-size:10pt;font-weight:700;text-align:right;white-space:nowrap}.ecp-upd span{font-weight:400;font-size:8.5pt}
  .ecp-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:0 14pt}
  .ecp-sec{break-inside:avoid;margin:0 0 6pt}
  .ecp-sec h3{font-size:9.5pt;font-weight:900;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #000;margin:4pt 0 3pt;padding-bottom:1pt}
  .ecp-sec p{margin:0}
  .ecp-sec ul{list-style:none;margin:0;padding:0}.ecp-sec li{margin:0 0 4pt}
  .ecp-allergy{font-size:12pt;font-weight:900;border:2px solid #000;padding:3pt 5pt}
  .ecp-tel{font-size:11.5pt;font-weight:700}
  .ec-print table{font-size:10pt;border-collapse:collapse;width:100%}
  .ec-print th,.ec-print td{border:1px solid #000;padding:2pt 4pt;vertical-align:top}
  .ec-print th{font-size:8.5pt;text-transform:uppercase}
  .ecp-blank{color:#000}
  .ecp-foot{font-size:8pt;border-top:1px solid #000;margin-top:6pt;padding-top:3pt}
  .ec-print.dense{font-size:9pt}.ec-print.dense table{font-size:8.5pt}.ec-print.dense .ecp-allergy{font-size:10.5pt}.ec-print.dense .ecp-911{font-size:18pt}
  .modal.medic{display:none!important}
}
[hidden]{display:none!important}
@media print{.ec-print td:nth-child(2){white-space:nowrap}}
.pchoice.yes.dark{background:var(--ink);border-color:#000}
html.phc .pchoice.yes.dark{background:#000}
.p-more .pl{overflow-wrap:break-word;word-break:normal}
/* Call 911: big red button + full-screen confirm (the phone's dialer makes the call) */
.pbtn.e911 .pic{background:#fff;color:var(--red)}.pbtn.e911 .pic .pi{width:46px;height:46px}
.modal.pmodal.e911m{align-items:stretch}
.modal.pmodal.e911m .sheet{max-width:none;height:100%;max-height:none;border-radius:0}
@media(min-width:720px){.modal.pmodal.e911m .sheet{max-width:none;height:100%;max-height:none;border-radius:0}}
.e911-in{max-width:640px;margin:0 auto;text-align:center}
.e911-in h1{font-size:2.6rem!important;color:var(--reddk);outline:none;margin:.6em 0 .2em!important}
.e911-lead{font-size:1.45rem!important;font-weight:700}
/* v14: the parent's address on the Call 911 screen: very large, black on white, to read to the dispatcher */
.e911-addr{display:block;text-align:left;border:5px solid #2B2226;border-radius:18px;background:#fff;color:#000;padding:14px 18px 16px;margin:18px 0;overflow-wrap:anywhere}
.e911-addr p{margin:.25em 0}
.e911-addr-l{font-size:1.2rem!important;font-weight:800;color:#2B2226;margin:0 0 .3em!important}
.e911-name{font-size:1.5rem!important;font-weight:700}
.e911-addr-v{font-size:2.3rem!important;line-height:1.2;font-weight:900;letter-spacing:.01em;color:#000}
.e911-addr-n{font-size:1.4rem!important;font-weight:700;border-top:2px solid #D9C3D0;padding-top:.3em}
.e911-say{font-size:1.25rem!important;font-weight:700;background:var(--bg2);border:2px solid var(--line);border-radius:10px;padding:8px 12px}
.e911-tip{font-size:1.05rem!important}
.e911-addr .pchoice{margin-top:10px;min-height:64px;font-size:1.2rem}
html.phc .e911-addr{border:6px solid #000}html.phc .e911-addr-l,html.phc .e911-addr-v{color:#000}html.phc .e911-say{background:#fff;border:3px solid #000}
.p-form label{font-size:1.3rem;margin-top:14px}
.p-form input.p-input-big,.p-form textarea.p-input-big{width:100%;min-height:64px;padding:12px 14px;border:3px solid var(--plum);border-radius:12px;background:#fff;color:#000;font:inherit;font-size:1.45rem!important}
.p-form-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:420px){html.pfs-3 .p-form-2{grid-template-columns:1fr}}
.p-warn{font-size:1.15rem;background:#fff;border:3px solid var(--ink);border-radius:12px;padding:10px 14px;margin:16px 0 8px}
.p-err ul{margin:.3em 0;padding-left:1.2em}.p-err li{font-size:1.15rem}
html.phc .p-form input.p-input-big,html.phc .p-form textarea.p-input-big{border:4px solid #000}html.phc .p-warn{background:#fff;border:4px solid #000;color:#000}
.p-ec-sec.addr .p-addr-v{line-height:1.25}
.med-addr p{font-size:1.5rem}
.ecp-addr{font-size:12pt;margin:4px 0 6px;padding:4px 8px;border:1.5px solid #000}
.ecp-addr-l{font-weight:800;text-transform:uppercase;font-size:9pt;letter-spacing:.05em}.ecp-addr-n{font-size:10pt}
.pchoice.e911-go{min-height:120px;font-size:2rem;background:var(--red);border-color:var(--reddk);color:#fff}
.pchoice.e911-go .pi{width:56px;height:40px}
html.phc .e911-in h1{color:#000}html.phc .pchoice.e911-go{background:#9e0b22;border:4px solid #000}
.medic .pchoice.e911-go{min-height:80px;font-size:1.6rem}
html.phc .pbtn.e911 .pic{color:#fff}

/* Family-side banner when the parent taps "Alert my family" (yellow, to match their button; red means 911) */
.card.fam-alert{border:3px solid var(--yelline);background:var(--yelbg)}
.card.fam-alert h3{color:#4a3000}
html.phc .pbtn.e911{box-shadow:inset 0 0 0 3px #fff}
/* ---- multi-parent (v11) ---- */
.psw{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 10px}
.psw-b{min-height:48px;padding:8px 16px;border-radius:14px;border:2px solid var(--teal2);background:#fff;color:var(--teal2);font-weight:800;font-size:1rem;cursor:pointer;max-width:100%;overflow-wrap:anywhere;text-align:left}
.psw-b.on{background:var(--teal2);color:#fff}
.psw-b.add{border-style:dashed}
.psw-b.lockd{border-color:var(--muted);color:var(--muted);border-style:dashed}
.psw-dot{display:inline-block;margin-left:4px}
.pill.ppill{background:#fff;color:var(--plum);border:1px solid var(--cardline);margin-left:6px;vertical-align:middle}
.for-line{margin:0 0 4px}
.plist{list-style:none;padding:0;margin:0 0 8px}
.plist li{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.lockcard{border:2px dashed var(--muted);border-radius:14px;padding:12px 14px;background:var(--bg2);margin-top:8px}
.lock-t{margin:0 0 6px;font-size:1.05rem}
.plan-plus{border-style:dashed}
.wiz-count-q{border:2px solid var(--line);border-radius:14px;padding:10px 14px;margin:0 0 14px}
.wiz-count-q legend{font-weight:800;padding:0 6px}
.wiz-radio{display:flex;align-items:center;gap:10px;min-height:56px;padding:8px 16px;border:2px solid var(--line);border-radius:14px;background:#fff;font-weight:700;cursor:pointer;flex:1;min-width:150px}
.wiz-radio.on{border-color:var(--teal);background:var(--bg2)}
.wiz-radio input{width:24px;height:24px}
.p-who{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 8px}
.p-who-l{font-weight:700}
.p-who .ptool.on{background:var(--teal2);color:#fff;border-color:var(--teal2)}
html.phc .p-who .ptool.on{background:#000;color:#fff;outline:4px solid #000;outline-offset:3px}
html.phc .pill.ppill{background:#000;color:#fff;border-color:#fff}
.p-ec-sec,.med-box,.ecp-addr,.e911-addr{overflow-wrap:anywhere;word-break:break-word}

/* ---------- setup guide (family side) ---------- */
.guide{max-width:720px;margin:8px auto 0}
.guide h1{font-size:1.8rem;margin:.4em 0 .2em;overflow-wrap:anywhere}
.guide p,.guide li,.guide label{font-size:1.1rem}
.guide h3{font-size:1.2rem}
.g-count{font-weight:800;color:var(--teal2);margin:4px 0 6px}
.g-card{padding:18px}
.g-why{background:var(--bg2);border-radius:10px;padding:10px 12px;margin-top:0}
.g-ol{padding-left:1.6em}.g-ol li{margin:8px 0}
.g-form input[type=text],.g-form input[type=tel],.g-form select{font-size:1.15rem;min-height:52px}
.g-os{border:2px solid var(--line);border-radius:14px;padding:6px 16px;margin:12px 0;background:#fff}
.g-os.mine{border-color:var(--teal);background:var(--bg2)}
.g-os h3{margin:.6em 0 .2em}
.g-linkbtns .btn{flex:1 1 220px}
.g-all{margin:10px 0;border:1px solid var(--line);border-radius:12px;background:#fff}
.g-all summary{min-height:44px;display:flex;align-items:center;padding:6px 14px;font-weight:700;cursor:pointer;color:var(--teal2)}
.g-all ol{list-style:none;padding:0 10px 10px;margin:0}
.g-jump{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:8px 12px;margin:4px 0;border:2px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font:inherit;font-size:1.05rem;text-align:left;cursor:pointer}
.g-jump span[aria-hidden]{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;border-radius:999px;background:var(--sky);color:var(--teal2);font-weight:800}
.g-jump.done span[aria-hidden]{background:var(--green);color:#fff}
.g-jump.skipped span[aria-hidden]{background:var(--amberbg);color:var(--amber)}
.g-jump[aria-current=step]{border-color:var(--teal);background:var(--bg2);font-weight:800}
.g-who{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}
.g-done{display:flex;align-items:center;gap:14px;min-height:60px;padding:10px 16px;margin:14px 0 6px;border:2px solid var(--green);border-radius:14px;background:#fff;font-weight:800;font-size:1.15rem;cursor:pointer}
.g-done.on{background:var(--greenbg);color:var(--green)}
.g-nav{display:flex;justify-content:space-between;gap:12px;margin:16px 0 4px}
.g-nav .btn{min-height:56px;font-size:1.15rem;flex:1 1 0;max-width:320px}
.g-nav span{flex:1 1 0}
.g-status{list-style:none;padding:0;font-weight:700}.g-status li{margin:4px 0;overflow-wrap:anywhere}
.g-recap{list-style:none;padding:0}
.g-recap li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid var(--line)}
.g-recap li.done span:first-child{color:var(--green);font-weight:700}
.g-recap li.skipped span:first-child{color:var(--amber)}
.g-home{border:3px solid var(--plum);background:linear-gradient(160deg,#fff 0%,var(--card) 100%)}
.g-home h2{margin-top:0}
.g-home .bar{margin:8px 0}
.g-return{margin:4px 0 8px}
.guide :focus-visible,.g-home :focus-visible,.g-return :focus-visible{outline:4px solid #2B2226;outline-offset:2px}
@media(max-width:400px){.guide h1{font-size:1.5rem}.g-nav .btn{font-size:1.05rem;padding:10px 12px}}
.g-fallback{margin:12px 0;border:1px dashed var(--line);border-radius:12px;padding:0 12px;background:#fff}
.g-fallback summary{min-height:44px;display:flex;align-items:center;font-weight:700;color:var(--muted);cursor:pointer}
.join .p-lead{font-size:1.4rem}
.join input[type=text]{font-size:1.3rem;min-height:60px;width:100%;box-sizing:border-box}
.join-welcome{text-align:center}
.join-welcome h1{font-size:2.4rem}
@media(min-width:720px){.g3.plans{grid-template-columns:repeat(2,1fr)}}@media(min-width:1000px){.g3.plans{grid-template-columns:repeat(4,1fr)}}

/* v19 Evenhold brand */
.brand{display:inline-flex;align-items:center;gap:8px;color:#fff;font-weight:800;font-size:1.05rem;text-decoration:none;min-height:44px}.brand img{border-radius:8px;flex:none}
.demo-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
/* v20 compact top bar: one row on phones; short labels on screen, full labels kept for screen readers */
.brand img{border-radius:8px;background:#FFFFFF;box-shadow:none}
.sm-t{display:none}
@media(max-width:600px){
  .demo-bar{flex-wrap:nowrap;gap:4px;padding-top:max(6px,env(safe-area-inset-top));padding-bottom:6px}
  .demo-left{gap:5px;flex-wrap:nowrap;flex:none}
  .brand{font-size:16px;gap:6px}
  .demo-tag{font-size:12px;padding:2px 6px;letter-spacing:.02em}
  .demo-tag .lg-t,.switch .lg-t,.install-btn .lg-t{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .demo-tag .sm-t{display:inline}
  .switch{flex-wrap:nowrap;gap:2px;flex:none}
  .switch a{padding:6px 7px;font-size:15px;min-width:44px;justify-content:center}
  .install-btn{min-width:44px;padding:6px 10px}
}
@media(max-width:385px){.brand-t{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
.addr-nudge{font-weight:700;color:var(--ink);margin:.4em 0 .6em}
/* ---------- v24: parent home fits on one phone screen ---------- */
/* Slim top bar: Back (demo only) + name + a small status pill. Text size/contrast moved under the buttons. */
.p-top{display:flex;align-items:center;gap:12px;margin:0 0 14px}
.p-top .pback{flex:none;min-height:56px;min-width:0;padding:0 16px 0 10px;font-size:1.1rem}
.p-top .pback .pi{width:26px;height:26px}
.p-id{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.p-top .p-hi{font-size:1.6rem!important;line-height:1.15;margin:0!important;overflow-wrap:anywhere}
.p-pill{display:inline-flex;align-items:center;gap:8px;margin:0!important;padding:4px 12px;border-radius:999px;border:2px solid var(--green);background:var(--greenbg);color:var(--green);font-size:1rem!important;font-weight:800;line-height:1.3}
.p-pill .p-dot{flex:none;width:12px;height:12px;border-radius:50%;background:currentColor}
.p-pill.paused{border-radius:14px;border-color:#8A5A00;background:#FFF4CC;color:#4A3600}
html.phc .p-pill{background:#fff;color:#000;border:3px solid #000}
html.phc .p-pill.paused{background:#ffd60a;color:#000}
.p-home .p-tools{margin-top:12px}
@media(max-width:699px){
  .p-home .p-main{gap:14px;margin:0 0 16px}
  .p-home .p-main .pbtn{min-height:84px;padding:10px 12px 10px 10px}
  .p-home .p-main .pl{font-size:1.3rem}
  .p-home .p-main .ph{font-size:.95rem;line-height:1.25;margin-top:2px}
}
/* Short, narrow phones (e.g. 360x640): tighter so all five main buttons still fit. Targets stay 72px+. */
@media(max-width:420px) and (max-height:760px){
  .p-top{margin-bottom:10px;gap:10px}
  .p-top .p-hi{font-size:1.45rem!important}
  .p-pill{font-size:.95rem!important;padding:3px 10px}
  .p-home .p-main{gap:10px}
  .p-home .p-main .pbtn{min-height:72px;padding:8px 10px 8px 8px;gap:10px;border-radius:18px}
  .p-home .p-main .pbtn .pic{width:44px;height:44px;border-radius:13px}
  .p-home .p-main .pbtn .pic .pi{width:30px;height:30px}
  .p-home .p-main .pbtn.e911 .pic .pi{width:38px;height:38px}
  .p-home .p-main .pl{font-size:1.22rem}
  .p-home .p-main .ph{font-size:.9rem;line-height:1.2}
}
/* Top bar as a grid: Back on the left, name over pill. When paused, the amber pill takes the full width so it stays short. */
.p-top{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;row-gap:6px;align-items:center}
.p-top .p-id{display:contents}
.p-top .pback{grid-row:1/span 2;grid-column:1}
.p-top .p-hi,.p-top .p-pill{grid-column:2;justify-self:start}
.p-top.no-back{grid-template-columns:minmax(0,1fr)}
.p-top.no-back .p-hi,.p-top.no-back .p-pill{grid-column:1}
.p-top.is-paused .pback{grid-row:1}
.p-top .p-pill.paused{grid-column:1/-1}
@media(max-width:420px) and (max-height:760px){
  html.on-parent main{padding-top:10px}
  .p-top{margin-bottom:8px;row-gap:5px}
  .p-top .pback{min-height:56px}
  .p-home .p-main{gap:9px}
  .p-pill.paused{padding:3px 10px}
}
/* The pill always gets its own full-width line, so "Your family is helping" stays on one line next to nothing. */
.p-top .pback{grid-row:1}
.p-top .p-pill{grid-column:1/-1}
/* v25 setup wizard: 5 short screens for the adult child */
.wz h1{font-size:1.6rem;line-height:1.2;margin:.15em 0 .4em}
.wz .wiz-card{padding:16px;margin-bottom:0}
.wz-lead{margin-top:0}
.wz-optl{font-weight:400;color:var(--muted)}
.wz-opt{font-weight:600}
.wz-card input[type=text],.wz-card input[type=tel],.wz-card select,.wz-card textarea{font-size:1.15rem;min-height:52px}
.wz-card label{margin-top:10px}
.wz-card label:first-of-type{margin-top:0}
.wz-photo{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}
.wz-photo img,.wz-review img{border-radius:50%;object-fit:cover}
.wz-ph{width:56px;height:56px;border-radius:50%;background:var(--card);display:inline-flex;align-items:center;justify-content:center;font-size:1.8rem;flex:none}
.wz-bar{position:sticky;bottom:0;z-index:3;background:var(--bg);margin:0 -16px;padding:10px 16px calc(4px + env(safe-area-inset-bottom));box-shadow:0 -3px 10px rgba(43,34,38,.08)}
.wz-nav{margin:0;align-items:center}
.wz-nav #w-next,.wz-nav #w-finish{flex:1}
.wz-nav .btn{min-height:60px;padding:10px 18px}
.wz .wiz-skip{margin:2px 0 0}
.wz .wiz-skip .linkish{min-height:44px;padding:6px 16px;font-size:1.05rem}
.wz-people,.wz-review{list-style:none;padding:0;margin:0 0 8px}
.wz-people li{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:44px;border-bottom:1px solid var(--line)}
.wz-people .linkish,.wz-review .linkish{min-height:44px;min-width:44px;padding:6px 8px}
.wz-add{margin-top:8px}
.wz-h2{font-size:1.15rem;margin:14px 0 4px}
.wz-when li{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.wz-when select{width:auto;min-height:48px}
.wz-inl{display:inline;margin:0!important;font-weight:400}
.wz-review li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.wz-ri{width:40px;height:40px;flex:none;display:inline-flex;align-items:center;justify-content:center;font-size:1.5rem}
.wz-rt{flex:1;min-width:0}
.wz-final{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.wz-final .btn{min-height:56px;font-size:1.1rem;width:100%}
.wz-toggle{display:flex!important;align-items:center;gap:10px;min-height:48px;cursor:pointer}
.desk-h{display:flex;align-items:center;gap:10px}
.desk-ph{border-radius:50%;object-fit:cover;flex:none}
@media (max-width:380px){.wz h1{font-size:1.4rem}.wz .wiz-kicker{font-size:.8rem!important}.wz .wiz-dots{margin:6px 0 2px}.wz-nav .btn{min-height:56px;font-size:1.1rem}}
body:has(.wz) #toast{bottom:calc(140px + env(safe-area-inset-bottom))}
@media (max-height:700px){.wz .wiz-kicker{display:none}.wz .wiz-dots{margin-top:2px}.wz h1{margin-bottom:.3em}.wz .wiz-card{padding:12px 14px}.wz-lead{font-size:1.05rem!important;margin-bottom:6px}}

/* v26: Tap and talk (voice) */
.p-voice{margin:0 0 14px}
.pbtn.voice{background:#fff;color:var(--plum);border-color:var(--plum);box-shadow:0 4px 0 #D9C3D0;min-height:92px}
.pbtn.voice .pic{background:var(--sky);color:var(--plum)}.pbtn.voice .ph{color:var(--ink)}.pbtn.voice .chev{color:var(--plum)}
.p-voice-note{font-size:1.02rem!important;color:var(--ink);margin:8px 2px 0}
.v-live{display:flex;align-items:center;gap:12px;font-size:1.35rem;font-weight:800;padding:14px 16px;border-radius:16px;background:#fff;border:3px solid var(--line);margin:12px 0}
.v-live .v-dot{flex:none;width:22px;height:22px;border-radius:50%;background:#B8AAB1}
.v-live.on{border-color:var(--plum)}.v-live.on .v-dot{background:var(--red);animation:vpulse 1.1s ease-in-out infinite}
@keyframes vpulse{0%,100%{box-shadow:0 0 0 0 rgba(179,38,30,.5)}50%{box-shadow:0 0 0 10px rgba(179,38,30,0)}}
.v-heard{font-size:1.5rem!important;font-weight:800;background:var(--yelbg);border:2px solid var(--yelline);border-radius:14px;padding:12px 14px;margin:10px 0;overflow-wrap:anywhere}
.v-list{font-size:1.25rem;margin:0 0 8px;padding-left:1.2em}.v-list li{margin:6px 0}
.v-msg{font-size:1.25rem!important;font-weight:700}
.v-type{display:grid;gap:12px;margin:12px 0;padding:14px;border:2px dashed var(--cardline);border-radius:16px;background:#fff}
.v-type input{width:100%;box-sizing:border-box}
.v-cd h1{font-size:2.1rem!important;line-height:1.2}
.v-num{display:inline-flex;align-items:center;justify-content:center;min-width:1.6em;height:1.6em;margin-left:6px;border-radius:50%;background:var(--yel);color:var(--yelink);border:4px solid var(--yelline);font-size:2.6rem;font-weight:900;vertical-align:middle}
.pchoice.v-cancel{min-height:96px;font-size:1.7rem;border-width:4px}
.v-demo{margin:10px 0}.v-demo summary{font-size:1.1rem;font-weight:700;min-height:44px;display:flex;align-items:center;cursor:pointer}
.fam-alert.by-voice .v-alert-note{font-weight:600}
html.phc .pbtn.voice{background:#fff;color:#000;border:4px solid #000}html.phc .v-heard{background:#fff;color:#000;border-color:#000}html.phc .v-num{background:#ffd60a;color:#000;border-color:#000}
@media (prefers-reduced-motion:reduce){.v-live.on .v-dot{animation:none}}

/* v27 */
.answer .ans-step{font-size:1.35rem;font-weight:700;margin:12px 0 4px;color:var(--ink)}
.answer .ans-wait{font-size:1.1rem;font-weight:600;margin:4px 0;color:var(--ink)}
html.phc .answer.verify{background:#fff;color:#000;border:4px solid #000}
.card.urgent{border:3px solid var(--plum);background:#fff}
.card.urgent h2{margin-top:0}
.urgent-list{list-style:none;margin:0;padding:0}
.urgent-list li{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--line)}
.urgent-list li:first-child{border-top:0}
.urgent-snip{color:var(--muted)}
.card.g-mini{padding:10px 16px;margin:10px 0}
.step-tips{margin-top:6px}
.step-tips .btn{white-space:normal;text-align:left}
.ps-ways .pchoice{min-height:72px}
.ps-share{border:3px solid var(--line);border-radius:16px;padding:12px 16px;margin:12px 0;background:#fff;font-size:1.15rem}
.ps-share ol{margin:6px 0 10px;padding-left:1.4em}
.ps-or{margin-top:14px}
.ps-more{margin-top:10px;font-size:1rem}
.wz-two{margin:-4px 0 10px}

/* ---------- v29: location sharing ---------- */
.card.loc h2{margin:0 0 10px;font-size:1.25rem}
.loc-map{position:relative;border-radius:14px;overflow:hidden;border:2px solid #d9d2cf;background:#EEF1E6;aspect-ratio:320/170}
.loc-svg{display:block;width:100%;height:100%}
.loc-roads path{stroke:#fff;stroke-width:9;fill:none}
.loc-minor path{stroke:#fff;stroke-width:4;fill:none;opacity:.9}
.loc-lbl{font:600 9px system-ui,sans-serif;fill:#6b6b6b}
.loc-lake{font:italic 600 10px system-ui,sans-serif;fill:#3c6f94}
.loc-pin path{fill:#5E2750;stroke:#fff;stroke-width:2}
.loc-pin .loc-pulse{fill:#5E2750;opacity:.18}
.loc-pin.stale path{fill:#8a8290}
.loc-badge{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#FFF4CC;color:#4A3600;border:2px solid #8A5A00;border-radius:999px;padding:4px 14px;font-weight:800}
.loc-place{margin:10px 0 4px;font-size:1.05rem;line-height:1.35}
.loc-place span{color:#444}
.loc-fresh{display:flex;align-items:center;gap:8px;margin:4px 0;color:var(--green);font-weight:800}
.loc-fresh .p-dot{width:10px;height:10px;border-radius:50%;background:currentColor;flex:none}
.loc-stale{margin:6px 0;padding:10px 12px;border-radius:10px;background:#F3F0F4;border:1px solid #d8cfdc;color:#3b2d39}
.card.loc.off .loc-msg,.card.loc.paused .loc-msg{margin:8px 0 0}
.alert-loc{margin:6px 0}
.p-locnote{margin:-6px 0 12px!important;font-size:.95rem!important;font-weight:700;color:#3b2d39;line-height:1.3}
.p-locnote.off{color:#4A3600}
.p-loc-ask{margin:18px 0;padding:16px;border:3px solid var(--green);border-radius:18px;background:var(--greenbg)}
.p-loc-ask h2{margin:0 0 8px;font-size:1.5rem!important}
.p-loc-ask .p-choices{margin:12px 0 0}
html.phc .p-loc-ask{background:#fff;border-color:#000}
html.phc .p-locnote{color:#000}

/* ---------- v30: Location tab (full screen) + compact overview card ---------- */
.loc-map.tall{aspect-ratio:320/400;max-width:560px;margin:0 auto;width:100%}
.loc-full .loc-place{font-size:1.25rem}
.loc-full.free .lockcard{margin-top:12px}
.loc-full .loc-msg{margin:12px 0 0}
.loc-full .loc-badge{white-space:nowrap}
.loc-mini{display:flex;align-items:center;gap:12px;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;border:2px solid #d9d2cf;background:#fff;padding:12px 14px}
.loc-mini:hover,.loc-mini:focus-visible{border-color:var(--plum)}
.loc-mini .mini-ic{font-size:1.5rem;flex:none}
.loc-mini .mini-t{flex:1;display:flex;flex-direction:column;gap:2px;line-height:1.3}
.loc-mini .mini-t span{font-size:.92rem;color:#444}
.loc-mini .mini-t .mini-fresh{color:var(--green);font-weight:700}
.loc-mini .mini-go{flex:none;font-weight:800;color:var(--plum);white-space:nowrap}
.loc-mini.free,.loc-mini.off,.loc-mini.alertonly{border-style:dashed}
.alert-loc-note{margin:-2px 0 6px}

/* v31: loved one's Settings screen */
.p-setlink{margin:4px 0 12px}
.p-settings .ps-top{margin-bottom:6px}
.p-settings .ps-top .pback{min-height:60px}
.ps-h{display:flex;align-items:center;gap:10px;font-size:1.9rem!important;margin:8px 0 4px!important}
.ps-h .pi{width:34px;height:34px}
.ps-sec{border-top:2px solid var(--line);padding-top:6px;margin-top:18px}
.ps-sec h2{font-size:1.4rem!important;margin:10px 0 6px}
.ps-state{font-size:1.15rem!important;font-weight:700;color:var(--ink);margin:4px 0 0}
.p-settings .p-more{margin:12px 0}
.p-settings .pchoice .pi{width:30px;height:30px}
html.phc .ps-state{color:#000}

/* v33: family view bottom bar (Home, Location, Checks, More) */
.bnav{position:fixed;left:0;right:0;bottom:0;z-index:10;background:#fff;border-top:2px solid #e3d9de;box-shadow:0 -4px 16px rgba(43,34,38,.08);padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
.bnav-in{display:grid;grid-template-columns:repeat(4,1fr);max-width:640px;margin:0 auto}
.bnav-b{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:64px;padding:6px 4px;border:0;background:none;color:var(--muted);font:inherit;font-weight:700;font-size:.92rem;cursor:pointer}
.bnav-ic{position:relative;font-size:1.45rem;line-height:1}
.bnav-b.on{color:var(--plum)}
.bnav-b.on .bnav-t{font-weight:800}
.bnav-b.on::before{content:"";position:absolute;top:0;left:20%;right:20%;height:4px;border-radius:0 0 4px 4px;background:var(--plum)}
.bnav-b:hover{color:var(--plum)}
.bnav-b:focus-visible{outline:4px solid #2B2226;outline-offset:-4px}
.bnav-badge{position:absolute;top:-7px;left:70%;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--plum);color:#fff;font-size:.75rem;font-weight:800;line-height:20px;text-align:center}
.bnav-badge.al{background:var(--red)}
body.has-bnav main{padding-bottom:calc(120px + env(safe-area-inset-bottom))}
body.has-bnav #toast{bottom:calc(84px + env(safe-area-inset-bottom))}
body.has-bnav .ios-tip{bottom:calc(80px + env(safe-area-inset-bottom))}
@media print{.bnav{display:none!important}body.has-bnav main{padding-bottom:0}}
.home-top{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:6px 0 4px}
.home-top .desk-h{margin:0}
.fam-sub{margin:0!important;width:100%}
.sec-h{margin:.3em 0 .4em}
.sec-for{font-weight:600;color:var(--muted);font-size:.8em}
.more-back{margin:0}
.more-back .linkish{padding:8px 4px;text-decoration:none;font-size:1.05rem}
.card.idle{padding:12px 16px;font-weight:800;color:var(--green);background:var(--greenbg);border:2px solid var(--green)}
.card.g-mini{padding:8px 12px;font-size:.88rem;line-height:1.35}
#g-mini-open{white-space:nowrap;font-weight:800}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:4px 0 10px}
.seg-b{min-height:52px;padding:6px 6px;line-height:1.2;border-radius:12px;border:2px solid var(--teal);background:#fff;color:var(--teal);font:inherit;font-weight:800;font-size:.9rem;cursor:pointer}
.seg-b.on{background:var(--teal);color:#fff}
.seg-b:focus-visible,.more-row:focus-visible{outline:4px solid #2B2226;outline-offset:2px}
.more-list{list-style:none;margin:8px 0 12px;padding:0;display:grid;gap:8px}
.more-row{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;text-align:left;font:inherit;color:inherit;background:#fff;border:2px solid #d9d2cf;border-radius:14px;padding:10px 14px;cursor:pointer;text-decoration:none;box-sizing:border-box}
.more-row:hover{border-color:var(--plum)}
.more-ic{flex:none;width:1.8em;text-align:center;font-size:1.35rem}
.more-t{flex:1;display:flex;flex-direction:column;gap:2px;line-height:1.3}
.more-t span,.more-t em{font-size:.92rem;color:#444;font-style:normal}
.more-t .addr-nudge{color:#7A4B00;font-weight:700}
.more-go{flex:none;font-size:1.5rem;font-weight:800;color:var(--plum)}
.recent-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:14px}
.recent-top h2{margin:0}
.alert-strip{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;width:100%;margin:6px 0 10px;padding:10px 14px;min-height:52px;text-align:left;font:inherit;color:#4A1A00;background:#FFF1CC;border:3px solid var(--red);border-radius:14px;cursor:pointer}
.alert-strip .as-go{margin-left:auto;font-weight:800;color:var(--red)}
.alert-strip:focus-visible{outline:4px solid #2B2226;outline-offset:2px}

/* =====================================================================
   v34 design system: one set of tokens for spacing, type, radii, shadows, color.
   Refines the Evenhold plum identity; nothing is rebranded. Loved one's side stays large-type and high-contrast.
   ===================================================================== */
:root{
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s7:32px;--s8:40px;
  --t-xs:.75rem;--t-sm:.875rem;--t-base:1rem;--t-md:1.125rem;--t-lg:1.3rem;--t-xl:1.6rem;--t-2xl:2rem;
  --r-sm:10px;--r-md:14px;--r-lg:20px;--r-xl:26px;--r-pill:999px;
  --plum-25:#FCF8FA;--plum-50:#F7EFF4;--plum-100:#EFE1EA;--plum-200:#DFC6D5;--plum-500:#7A3A6B;--plum-600:#5E2750;--plum-700:#4A1E3F;--plum-800:#3A1731;
  --ink:#231B1F;--ink2:#3F353A;--muted:#635860;--faint:#8C8088;
  --bg:#FAF7F5;--surface:#FFFFFF;--surface2:#F6F1F3;--hair:#ECE3E8;--hair2:#DDD0D7;
  --card:#FFFFFF;--cardline:#ECE3E8;--line:#ECE3E8;--sky:#F1E4EC;--bg2:#F6F1F3;
  --green:#17663A;--greenbg:#E6F4EB;--greenline:#B9DEC6;
  --sh-1:0 1px 2px rgba(35,27,31,.06),0 1px 1px rgba(35,27,31,.03);
  --sh-2:0 2px 4px rgba(35,27,31,.04),0 6px 18px rgba(35,27,31,.07);
  --sh-3:0 12px 40px rgba(35,27,31,.18);
  --ring:0 0 0 3px #fff,0 0 0 6px var(--focus);
  --ease:cubic-bezier(.2,.7,.2,1);
}
html{background:var(--bg)}
body{background:var(--bg);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
h1,h2,h3{color:var(--ink);letter-spacing:-.015em}
h1{font-weight:800}h2{font-weight:750}h3{font-weight:700}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}

/* ---- icons: one inline SVG set ---- */
.ico{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.2em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ico.ico-g{margin-right:.4em}.ico.ico-a{margin-left:.15em}
.btn .ico.ico-g{margin-right:0}
h1 .ico,h2 .ico,h3 .ico{width:1em;height:1em;vertical-align:-.12em;color:var(--plum-600)}
.fam-alert h3 .ico{color:#6B4500}

/* ---- demo top bar (prototype chrome) ---- */
.demo-bar{background:var(--plum-700);box-shadow:0 1px 0 rgba(0,0,0,.08);padding-bottom:6px}
.demo-tag{background:rgba(255,255,255,.16);color:#fff;font-weight:700;letter-spacing:.02em}
.switch{background:rgba(255,255,255,.1);border-radius:var(--r-pill);padding:3px}
.switch a{font-weight:650;border:0;transition:background .18s var(--ease),color .18s var(--ease)}
.switch a:not(.on):hover{background:rgba(255,255,255,.12)}
.switch a.on{background:#fff;color:var(--plum-700);box-shadow:var(--sh-1)}
.brand img{border-radius:9px}

/* ---- family side: calmer base type (loved one's side keeps its own larger scale) ---- */
html:not(.on-parent){font-size:17px}
html:not(.on-parent) main{padding-top:var(--s4)}
html:not(.on-parent) h1{font-size:var(--t-2xl);line-height:1.15;margin:.2em 0 .35em}
html:not(.on-parent) h2{font-size:var(--t-lg);line-height:1.25}
html:not(.on-parent) h3{font-size:var(--t-md);line-height:1.3}
.lead{color:var(--muted)}
.fine{color:var(--muted);font-size:var(--t-sm);line-height:1.45}
p{margin:.55em 0}

/* ---- cards ---- */
.card{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-lg);padding:var(--s4) var(--s5);margin:var(--s3) 0;box-shadow:var(--sh-1)}
.card>h2:first-child,.card>h3:first-child{margin-top:0}
.card h3{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}
.card h3 .ico.ico-g{margin-right:0}
.note{background:var(--surface);border:1px solid var(--hair);border-left:4px solid var(--plum-500);border-radius:var(--r-md);padding:var(--s3) var(--s4)}
.note.pw{border-left-color:var(--plum-600);background:var(--plum-25)}
.lockcard{border:1.5px dashed var(--hair2);background:var(--surface2);border-radius:var(--r-lg)}
.pill{font-size:var(--t-xs);font-weight:700;padding:3px 10px;background:var(--plum-50);color:var(--plum-700);letter-spacing:.01em}
.pill.ppill{border:1px solid var(--hair2);background:#fff}

/* ---- buttons ---- */
.btn{border-radius:var(--r-md);border-width:1.5px;font-weight:700;letter-spacing:.005em;box-shadow:0 1px 2px rgba(58,23,49,.18);transition:background .16s var(--ease),border-color .16s var(--ease),box-shadow .16s var(--ease),transform .08s}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:#fff;color:var(--plum-700);border-color:var(--hair2);box-shadow:var(--sh-1)}
.btn.ghost:hover{background:var(--plum-25);border-color:var(--plum-200);color:var(--plum-700)}
.btn.sm{border-radius:var(--r-sm);padding:6px 14px}
.btn:focus-visible,.linkish:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.linkish{color:var(--plum-600);text-underline-offset:3px;text-decoration-thickness:1.5px}
.row{gap:var(--s2)}

/* ---- chips: verdicts and status ---- */
.verdict{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-sm);font-weight:750;padding:3px 10px;border-radius:var(--r-pill);line-height:1.35;vertical-align:middle}
.verdict .ico.ico-g{margin-right:0;width:1em;height:1em}
.v-scam{background:var(--plum-600);color:#fff}
.v-ok{background:var(--greenbg);color:var(--green)}
.v-unsure{background:#FBF0D9;color:#6B4500}
.p-pill{border-width:1.5px;font-size:var(--t-sm)!important;padding:4px 12px 4px 10px}
html.on-parent .p-pill{font-size:1rem!important}

/* ---- forms ---- */
input[type=text],input[type=email],input[type=tel],input[type=date],textarea,select,input.pinmask{border:1.5px solid var(--hair2);border-radius:var(--r-md);background:#fff;transition:border-color .15s,box-shadow .15s}
input[type=text]:focus,input[type=email]:focus,input[type=tel]:focus,input[type=date]:focus,textarea:focus,select:focus{outline:none;border-color:var(--plum-600);box-shadow:0 0 0 3px rgba(94,39,80,.18)}
input::placeholder,textarea::placeholder{color:#8A7F86}
html.on-parent input[type=text],html.on-parent input[type=tel],html.on-parent textarea{border:2.5px solid var(--plum-600)}

/* ---- family Home ---- */
.home-top{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s2);margin:var(--s1) 0 var(--s4)}
.home-top .desk-h{margin:0;font-size:var(--t-2xl)}
.desk-ph{box-shadow:0 0 0 2px #fff,0 0 0 3px var(--hair2)}
.fam-sub{margin:0!important}
.card.idle{display:flex;align-items:center;gap:var(--s3);padding:var(--s4);font-size:var(--t-md);font-weight:700;color:var(--green);background:var(--greenbg);border:1px solid var(--greenline);box-shadow:none}
.card.idle .ico{width:28px;height:28px;padding:5px;border-radius:50%;background:var(--green);color:#fff;stroke-width:2.6;box-sizing:border-box}
.card.urgent{border:1px solid var(--plum-200);background:#fff;box-shadow:var(--sh-2);padding:var(--s4) var(--s5) var(--s2)}
.card.urgent h2{display:flex;align-items:center;gap:var(--s2);font-size:var(--t-md);margin:0 0 var(--s2)}
.card.urgent h2 .ico{width:30px;height:30px;padding:6px;border-radius:10px;background:var(--plum-50);box-sizing:border-box;margin:0}
.urgent-list li{padding:var(--s3) 0;border-top:1px solid var(--hair);gap:var(--s3)}
.urgent-list li>div{flex:1 1 220px;min-width:0;line-height:1.45}
.urgent-snip{display:block;color:var(--ink2);margin:4px 0 6px}
.urgent-list .btn{flex:none}
.card.fam-alert{background:#FFF7DB;border:1.5px solid #E7C25A;box-shadow:var(--sh-2);border-left:6px solid #E0A800}
.card.fam-alert h3{color:#4A3000;font-size:var(--t-md);line-height:1.35}
.card.fam-alert .row{margin-top:var(--s3)}
.loc-mini{border:1px solid var(--hair);border-radius:var(--r-lg);background:#fff;padding:var(--s3) var(--s4);box-shadow:var(--sh-1);transition:border-color .15s,box-shadow .15s}
.loc-mini:hover{border-color:var(--plum-200);box-shadow:var(--sh-2)}
.loc-mini.free,.loc-mini.off,.loc-mini.alertonly{border-style:solid;background:var(--surface2)}
.loc-mini .mini-ic{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;background:var(--plum-50);color:var(--plum-600)}
.loc-mini .mini-ic .ico{width:22px;height:22px;margin:0}
.loc-mini .mini-t span{color:var(--muted);font-size:var(--t-sm)}
.loc-mini .mini-go{font-size:var(--t-sm);color:var(--plum-600)}
.card.g-mini{display:block;line-height:1.5;background:var(--plum-25);border:1px solid var(--hair);box-shadow:none;border-radius:var(--r-md);padding:var(--s2) var(--s3);font-size:var(--t-sm);color:var(--ink2)}
.card.g-mini .ico{color:var(--plum-600);margin-right:.35em;vertical-align:-.2em}
#g-mini-open{display:inline-block;padding:11px 6px;margin:-11px -6px;text-decoration:none;white-space:nowrap}
.recent-top{margin-top:var(--s6)}
.recent-top h2{font-size:var(--t-md)}
.recent-top .linkish{text-decoration:none;font-size:var(--t-sm)}
.feed{background:#fff;border:1px solid var(--hair);border-radius:var(--r-lg);padding:0 var(--s4);margin-top:var(--s2);box-shadow:var(--sh-1)}
.feed li{padding:var(--s3) 0;border-bottom:1px solid var(--hair);line-height:1.45}
.feed li:last-child{border-bottom:0}
.feed .fine,.feed small{font-size:var(--t-xs);color:var(--muted)}

/* ---- section headers (Location, Checks, More) ---- */
.sec-h{position:sticky;top:var(--bar-h,56px);z-index:4;margin:0 calc(-1 * max(16px,env(safe-area-inset-left))) var(--s2)!important;padding:var(--s2) max(16px,env(safe-area-inset-left));background:rgba(250,247,245,.92);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px)}
.more-back{margin:0 0 -4px}
.more-back .linkish{display:inline-flex;align-items:center;min-height:44px;padding:8px 2px;font-size:var(--t-sm)}

/* ---- Checks: segmented control ---- */
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;margin:var(--s1) 0 var(--s3);background:var(--plum-50);border:1px solid var(--hair);border-radius:var(--r-md)}
.seg-b{min-height:48px;border:0;border-radius:11px;background:transparent;color:var(--plum-700);font-size:var(--t-sm);font-weight:700;padding:6px 4px;transition:background .18s var(--ease),box-shadow .18s var(--ease),color .18s}
.seg-b:hover{background:rgba(255,255,255,.6)}
.seg-b.on{background:#fff;color:var(--plum-700);box-shadow:0 1px 3px rgba(35,27,31,.12),0 0 0 1px var(--plum-200)}
#checks-line{margin:0 0 var(--s2)}

/* ---- More: one grouped list ---- */
.more-list{gap:0;background:#fff;border:1px solid var(--hair);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-1);margin:var(--s2) 0 var(--s4)}
.more-list li+li .more-row{border-top:1px solid var(--hair)}
.more-row{border:0;border-radius:0;min-height:64px;padding:var(--s3) var(--s4);background:#fff;transition:background .15s}
.more-row:hover{background:var(--plum-25)}
.more-row:focus-visible{outline-offset:-3px}
.more-ic{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--plum-50);color:var(--plum-600);font-size:1rem}
.more-ic .ico{width:21px;height:21px;margin:0}
.more-ic img{border-radius:50%}
.more-t strong{font-weight:700}
.more-t span,.more-t em{color:var(--muted);font-size:var(--t-sm)}
.more-go{display:inline-flex;color:var(--faint)}
.more-go .ico{width:20px;height:20px}
.more-t .addr-nudge{color:#7A4B00}
.more-t .addr-nudge .ico{width:1em;height:1em}

/* ---- bottom tab bar ---- */
.bnav{background:rgba(255,255,255,.94);-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);border-top:1px solid var(--hair);box-shadow:0 -1px 12px rgba(35,27,31,.05)}
.bnav-b{min-height:64px;gap:4px;padding:8px 4px 6px;color:var(--muted);font-size:var(--t-xs);font-weight:650;letter-spacing:.01em;transition:color .18s var(--ease)}
.bnav-b.on::before{display:none}
.bnav-ic{display:inline-flex;align-items:center;justify-content:center;width:56px;height:30px;border-radius:var(--r-pill);transition:background .2s var(--ease)}
.bnav-ic .ico{width:23px;height:23px;vertical-align:0}
.bnav-b.on{color:var(--plum-700)}
.bnav-b.on .bnav-ic{background:var(--plum-100)}
.bnav-b.on .bnav-ic .ico{stroke-width:2.3}
.bnav-badge{top:-3px;left:auto;right:6px;min-width:18px;height:18px;line-height:18px;font-size:11px;box-shadow:0 0 0 2px #fff}
.bnav-b:focus-visible{outline:3px solid var(--focus);outline-offset:-3px;border-radius:12px}

/* ---- alert strip outside Home ---- */
.alert-strip{background:#FFF7DB;border:1.5px solid #E7C25A;border-left:6px solid var(--red);border-radius:var(--r-md);color:#4A1A00;box-shadow:var(--sh-1)}
.alert-strip .ico{color:var(--red)}

/* ---- Location ---- */
.card.loc{padding:var(--s4)}
.card.loc h2{display:flex;align-items:center;gap:var(--s2);font-size:var(--t-md)}
.card.loc h2 .ico{margin:0}
.loc-map{border:1px solid var(--hair2);border-radius:var(--r-md);box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}
.loc-badge{border-width:1.5px;box-shadow:var(--sh-2);display:inline-flex;align-items:center;gap:6px}
.loc-badge .ico{margin:0}
.loc-place strong,.loc-full .loc-place strong{font-size:var(--t-lg)}
.loc-fresh{font-size:var(--t-sm)}

/* ---- scam check list (family) ---- */
.msg{background:var(--surface2);border:1px solid var(--hair);border-radius:var(--r-md);font-size:.85rem;line-height:1.5}
.shot{border:1.5px dashed var(--hair2);border-radius:var(--r-md);background:var(--surface2)}
.tips ul{padding-left:1.1em}

/* ---- checklist / guide ---- */
details.step{border:1px solid var(--hair);border-radius:var(--r-md);background:#fff;box-shadow:var(--sh-1)}
details.step[open]{box-shadow:var(--sh-2)}
details.step.pick{border:1.5px solid var(--plum-200);background:var(--plum-25)}
.bar{height:8px;background:var(--plum-50)}
.bar>i{background:linear-gradient(90deg,var(--green),#2E8B57);border-radius:999px}
.g-jump,.wiz-pick,.wiz-radio,.g-os{border:1.5px solid var(--hair);border-radius:var(--r-md)}
.g-jump[aria-current=step],.wiz-pick.on,.wiz-radio.on,.g-os.mine{border-color:var(--plum-600);background:var(--plum-25)}
.g-home{border:1px solid var(--plum-200);background:#fff;box-shadow:var(--sh-2)}
.g-why{background:var(--plum-25);border:1px solid var(--hair)}

/* ---- wizard ---- */
.wiz-kicker{color:var(--plum-600);font-size:.78rem!important;letter-spacing:.08em}
.wiz-dots{gap:5px}
.wiz-dots li{height:6px;background:var(--plum-100)}
.wiz-dots li.done,.wiz-dots li.on{background:var(--plum-600)}
.wiz-count{font-size:var(--t-sm);color:var(--muted)}
.wz .wiz-card{background:#fff;border:1px solid var(--hair);box-shadow:var(--sh-2)}
.wz-lead{color:var(--ink2)}
.wz-bar{background:rgba(250,247,245,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 -1px 0 var(--hair)}
.wz-ph{background:var(--plum-50);color:var(--plum-600)}
.wz-ph .ico{width:26px;height:26px;margin:0}
.wz-ri{color:var(--plum-600)}.wz-ri .ico{width:24px;height:24px;margin:0}
.wiz-pick strong .ico,.wiz-pick .ico{color:var(--plum-600)}

/* ---- sheets and toasts ---- */
.modal{background:rgba(35,27,31,.42);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .18s var(--ease)}
.modal .sheet{border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:var(--sh-3);animation:sheetUp .26s var(--ease)}
.modal:not(.pmodal) .sheet::before{content:"";display:block;width:40px;height:5px;border-radius:999px;background:var(--hair2);margin:-8px auto 14px}
@media(min-width:720px){.modal .sheet{border-radius:var(--r-xl)}.modal:not(.pmodal) .sheet::before{display:none}}
.modal.pmodal .sheet{animation:fadeIn .2s var(--ease)}
#toast{border-radius:var(--r-md);background:rgba(35,27,31,.94);box-shadow:var(--sh-3);font-weight:650;transform:translate(-50%,8px);transition:opacity .2s var(--ease),transform .2s var(--ease)}
#toast.show{transform:translate(-50%,0)}
main.v-enter>*{animation:fadeIn .2s var(--ease) both}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes sheetUp{from{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}

/* ---- loved one's side: same identity, still big and high-contrast ---- */
.pbtn{border-radius:var(--r-xl);box-shadow:0 3px 0 rgba(35,27,31,.22),0 8px 20px rgba(35,27,31,.10)}
.pbtn .pic{border-radius:16px;background:rgba(255,255,255,.18)}
.pbtn.sec,.pbtn.voice{box-shadow:0 2px 0 var(--plum-200),0 6px 16px rgba(35,27,31,.06)}
.pchoice{border-radius:var(--r-lg);box-shadow:0 2px 0 var(--plum-200)}
.pchoice.yes{box-shadow:0 3px 0 rgba(35,27,31,.25),0 6px 16px rgba(35,27,31,.10)}
.pback{border-radius:var(--r-md);border-width:2.5px;box-shadow:0 2px 0 var(--plum-200)}
.ptool{border-radius:var(--r-md);border-width:2.5px}
.pchoice .ico,.pback .ico{width:30px;height:30px;stroke-width:2.2}
.ps-h .ico,.psheet h1 .ico,.parent h1 .ico,.parent h2 .ico{color:currentColor}
.p-locnote{display:flex;align-items:center;gap:8px}
.p-locnote .ico{width:22px;height:22px;margin:0;color:var(--plum-600)}
.ps-state .ico{width:24px;height:24px;color:var(--plum-600)}
.p-pill .ico{margin:0}
.p-loc-ask{border-width:2.5px;border-radius:var(--r-xl);box-shadow:var(--sh-2)}
.p-loc-ask h2{display:flex;align-items:flex-start;gap:8px}
.p-loc-ask h2 .ico{width:30px;height:30px;flex:none;margin:2px 0 0;color:var(--green)}
.answer{border-radius:var(--r-xl)}
.answer .ico{width:1em;height:1em}
.p-ec-sec{border-radius:var(--r-lg);border-width:1.5px}
.modal.pmodal .sheet{background:var(--bg)}
.pbar{background:rgba(250,247,245,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--hair2)}
.pk{border-radius:var(--r-lg);border:1.5px solid var(--hair2);background:#fff;box-shadow:0 2px 0 var(--hair2)}
.pk .ico{width:30px;height:30px}
/* high contrast keeps its hard black edges */
html.phc .pbtn,html.phc .pchoice,html.phc .pback,html.phc .ptool{box-shadow:none}
html.phc .p-locnote .ico,html.phc .ps-state .ico,html.phc .p-loc-ask h2 .ico{color:#000}
html.phc .pbar{background:#fff}
html.phc .modal.pmodal .sheet{background:#fff}

/* ---- motion: respect reduced motion everywhere ---- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .btn:active{transform:none}
}
@media print{.sec-h{position:static;background:none;backdrop-filter:none}}
/* v34: the top bar always fits on one line (no sideways scroll on phones) */
.demo-bar{max-width:100vw}
@media(max-width:430px){.brand-t{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.switch a{padding:6px 10px}}
@media(max-width:340px){.demo-tag{display:none}}
/* headings with an icon stay normal text flow, so long titles wrap next to the icon */
.card h3{display:block}
.card h3 .ico.ico-g{margin-right:.4em}
.card.urgent h2 .ico{vertical-align:middle;margin-right:var(--s2)}
.card.fam-alert h3 .ico{width:1.15em;height:1.15em;vertical-align:-.22em;margin-right:.35em}

/* =====================================================================
   v34.1 accessibility pass (older users). Visual system unchanged; only contrast, state and wrapping fixes.
   ===================================================================== */
/* Form fields: visible edge at 4.4:1 (was 1.5:1), darker placeholder text (5.6:1) */
input[type=text],input[type=email],input[type=tel],input[type=date],input[type=number],input[type=search],textarea,select,input.pinmask{border-color:#857380}
input::placeholder,textarea::placeholder{color:#6E636A;opacity:1}
/* Ghost buttons ("I'm on it", "Call Mom", "Change"...): edge at 4.5:1 (was 1.4:1) so they read as buttons */
.btn.ghost{border-color:#8A6F80}
.btn.ghost:hover{border-color:var(--plum-600)}
/* Checks switcher: the selected choice gets a solid plum ring (3:1+), labels stay on one line at 390px */
/* (flex sizes each choice to its label, so "Scam checks (2)" fits on one line at 390px; very large text still wraps inside the button instead of overflowing) */
.seg{display:flex;flex-wrap:nowrap;gap:3px;padding:3px}
.seg-b{flex:1 1 auto;min-width:0;padding:6px 5px;min-height:48px;font-size:.84rem;letter-spacing:-.005em}
.seg-b.on{box-shadow:0 1px 3px rgba(35,27,31,.12),0 0 0 2px var(--plum-600)}
/* Bottom bar: the selected tab's pill gets a plum edge, not only a pale fill */
.bnav-b.on .bnav-ic{box-shadow:inset 0 0 0 1.5px var(--plum-600)}
/* Phone set to "Increase contrast": stronger text and edges on the caregiver side (the loved one's side has its own High contrast button) */
@media (prefers-contrast: more){
  html:not(.on-parent){--muted:#3F353A;--faint:#5C5257;--hair:#806C79;--hair2:#806C79;--cardline:#806C79;--line:#806C79}
  html:not(.on-parent) .card,html:not(.on-parent) .loc-mini,html:not(.on-parent) .more-list,html:not(.on-parent) .g-jump,html:not(.on-parent) .seg{border-color:#806C79}
  html:not(.on-parent) .more-list li+li .more-row{border-top-color:#806C79}
  html:not(.on-parent) .btn.ghost,html:not(.on-parent) input,html:not(.on-parent) select,html:not(.on-parent) textarea{border-color:var(--ink)}
  html:not(.on-parent) .bnav{border-top-color:#806C79}
  html:not(.on-parent) .bnav-b{color:var(--ink2)}
  html:not(.on-parent) .alert-strip{border-color:#8A6A00;border-left-color:var(--red)}
  html:not(.on-parent) .fine,html:not(.on-parent) .lead{color:var(--ink2)}
}
/* Windows/desktop forced colors: keep the selected state visible when backgrounds and shadows are removed */
@media (forced-colors: active){
  .seg-b.on,.bnav-b.on .bnav-ic,.switch a.on{outline:2px solid CanvasText;outline-offset:-2px}
  .bnav-b.on .bnav-t{text-decoration:underline}
}
/* Accounts phase 1: caregiver sign-in */
.auth-wrap{max-width:520px;margin:8px auto}
.auth-card h1{font-size:1.8rem}
.auth-card input{min-height:52px;font-size:1.1rem}
.auth-code-in{letter-spacing:.35em;font-size:1.5rem!important;font-variant-numeric:tabular-nums;max-width:12ch}
.auth-go{width:100%;margin-top:14px;min-height:52px}
.auth-alt{margin-top:12px}.auth-alt .btn{min-height:44px}
.auth-err{background:var(--redbg);border:2px solid var(--red);color:var(--reddk);border-radius:12px;padding:12px 14px;margin:12px 0}
.auth-err p{margin:0 0 8px}.auth-err .btn{background:var(--red);border-color:var(--red)}
.auth-dev{border-left-color:var(--yelline);background:var(--yelbg)}.auth-dev p{margin:0 0 8px}
.auth-devcode{font-family:ui-monospace,Menlo,monospace;font-weight:800;font-size:1.2rem;letter-spacing:.15em}
.auth-demo{text-align:center;margin-top:16px}.auth-demo a{display:inline-block;min-height:44px;padding:10px 4px}
input[aria-invalid=true]{border-color:var(--red)}
@media(max-width:430px){.demo-bar .switch a{padding-left:7px;padding-right:7px;font-size:.84rem}.demo-bar .switch{gap:2px}}
/* accounts phase 2: family card on the account page */
.acct-h3{font-size:1.1rem;margin:16px 0 6px}
.acct-loved{list-style:none;padding:0;margin:0 0 8px}
.acct-loved li{padding:10px 12px;border:1px solid var(--line,#e5dfe3);border-radius:12px;margin:6px 0;font-weight:600;min-height:44px;display:flex;align-items:center}
.acct-loved li.fine{font-weight:400}
#acct-family .auth-alt .btn{min-height:44px;display:inline-flex;align-items:center}
.wz .wiz-skip .btn.wz-nocheck{min-height:48px;width:100%;white-space:normal;font-size:1.05rem}
#rt-more[hidden]{display:none!important}
/* ---- v36.0 accounts phase 3: People and phones, loved-one join ---- */
.ppl-list{list-style:none;padding:0;margin:0 0 12px}
.ppl-list>li{margin:0 0 12px}
.ppl-h2{margin:20px 0 8px}
.ppl-st{font-weight:700;margin:4px 0}
.ppl-btns{gap:10px;flex-wrap:wrap;margin-top:10px}
.ppl-btns .btn{min-height:48px}
.ppl-made{border:2px dashed var(--line);border-radius:14px;padding:12px;margin:12px 0;background:var(--bg2,#faf7f9)}
.ppl-made input{width:100%;min-height:48px;font-size:1rem}
.ppl-code-l{margin:0;font-weight:700}
.ppl-code{font-size:2.2rem;font-weight:800;letter-spacing:.12em;margin:4px 0 12px;font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--ink,#2b2226)}
.ppl-cg{list-style:none;padding:0;margin:0}
.ppl-cg>li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line,#ddd);flex-wrap:wrap}
.ppl-cg>li:last-child{border-bottom:0}
.ppl-confirm{display:inline-flex;gap:8px;flex-wrap:wrap}
.btn.danger{background:#9b1c1c;border-color:#7a1414;color:#fff}
#cg-form input,#auth-lojoin{min-height:44px}
.auth-lo a,.auth-demo a{display:inline-flex;align-items:center;min-height:44px}
.ppl-join .join-tools{display:flex;justify-content:flex-end;margin-bottom:8px}
.ppl-join .ptool{min-height:56px}
.ppl-join .pchoice{min-height:76px}
.join-consent{border:3px solid var(--plum);border-radius:18px;padding:12px 18px;margin:14px 0;background:#fff;font-size:1.2rem}
.join-consent h2{margin:0 0 6px;font-size:1.35rem}
.join-consent li{margin:6px 0}
.join-lbl{font-size:1.3rem;font-weight:800;display:block;margin:12px 0 6px}
input.join-code{width:100%;min-height:64px;font-size:1.8rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;border:3px solid var(--plum);border-radius:14px;padding:8px 14px;box-sizing:border-box}
input.join-code[aria-invalid=true]{border-color:#9b1c1c}
.ppl-join .auth-err{font-size:1.2rem}
.phc .join-consent{border-color:#000;color:#000}
.phc input.join-code{border-color:#000;color:#000;background:#fff}
.phc .ppl-join{color:#000}
.phc .ppl-join .pchoice.yes.green{background:#000;border-color:#000;color:#fff}

/* v37.0 phase 4: accessibility polish */
/* Top bar: at 380px and below, the brand sits on its own line and the view links get a full-width row, so nothing is squeezed.
   With large text the links wrap instead of running off the screen. */
.demo-bar .switch{flex-wrap:wrap;max-width:100%}
@media(max-width:380px){
  .demo-bar{flex-wrap:wrap;row-gap:6px}
  .demo-bar .switch{flex:1 1 100%;justify-content:space-between;flex-wrap:wrap}
  .demo-bar .switch a{flex:1 1 auto;justify-content:center;padding-left:6px;padding-right:6px}
}
.demo-bar .switch a{white-space:nowrap}
/* Clearer card edges on the cream background */
.card{border-color:#C9B8C2;box-shadow:0 1px 3px rgba(35,27,31,.10)}
/* Long words and links never push the page sideways when text is made bigger */
main{overflow-wrap:break-word}
html{scroll-padding-top:calc(var(--bar-h,0px) + 8px)}
main input,main select,main textarea{max-width:100%}
/* Download or delete, and What we store */
.danger-card{border:2px solid var(--red)}
.danger-card h2{color:var(--reddk)}
.btn.danger{background:var(--red);color:#fff;border-color:var(--red)}
.btn.danger:hover{background:var(--reddk)}
.pv h2{font-size:1.15rem;margin:1.1em 0 .3em}
.pv-list{padding-left:1.2em;margin:.2em 0}.pv-list li{margin:.3em 0}
.pv-lo h2{font-size:1.4rem}.pv-lo p,.pv-lo li{font-size:1.2rem}
.del form label{display:block;margin-top:8px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
@media (forced-colors:active){.card,.danger-card{border:1px solid CanvasText}.btn.danger{border:2px solid ButtonText}}
main .btn{max-width:100%;white-space:normal;text-align:center}
.ppl li,.ppl li *{min-width:0}.ppl li span{overflow-wrap:anywhere}
main a[href^="mailto"],main .fine{overflow-wrap:anywhere}
.wz-nav{flex-wrap:wrap;row-gap:10px}.wz-nav .btn{flex:1 1 auto}
.loc-mini{flex-wrap:wrap}.loc-mini .mini-t{min-width:0;flex:1 1 8em}
/* Fields get the same clear focus ring as buttons (was a faint glow) */
input:focus-visible,textarea:focus-visible,select:focus-visible,input[type=text]:focus,input[type=email]:focus,input[type=tel]:focus,input[type=date]:focus,textarea:focus,select:focus{outline:3px solid var(--focus);outline-offset:2px}
.pv-lo .lead{font-size:1.2rem}
