/* LWVlife App - Senior Favorites, Register Guest, share (2026-10-19). Large text, 48px+ targets, high contrast. */
.sf-home{margin:12px 12px 0;border-radius:18px;background:#fff8e1;border:2px solid #ffe082;padding:8px}
.sf-hhead{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:6px 8px;border:0;background:none;font:inherit;color:#4e3400;text-align:left;cursor:pointer;border-radius:12px}
.sf-hhead .ic{font-size:1.8rem}
.sf-hhead b{display:block;font-size:1.08rem}
.sf-hhead small{display:block;font-size:.9rem;font-weight:600;color:#6d5313}
.sf-hhead .chev{margin-left:auto;font-size:1.6rem}
.sf-pins{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:6px}
.sf-pin{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:84px;padding:6px 4px;border-radius:14px;border:2px solid #ffe082;background:#fff;color:#1b2a4a;font:inherit;font-weight:800;font-size:.92rem;line-height:1.2;text-align:center;cursor:pointer;word-break:keep-all;overflow-wrap:anywhere}
.sf-pin .ic{font-size:1.7rem}
.sf-hhead:focus-visible,.sf-pin:focus-visible,.sf-tile:focus-visible,.sf-b:focus-visible,.sf-c:focus-visible,.sf-share:focus-visible{outline:4px solid #1565c0;outline-offset:2px}

.sf-page{position:fixed;inset:0;z-index:2400;background:#f3f6fb;overflow-y:auto;-webkit-overflow-scrolling:touch;color:#14254a}
.sf-page[hidden]{display:none}
body.sf-open{overflow:hidden}
.sf-top{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:8px 10px;background:linear-gradient(90deg,#1565c0,#1e88e5);color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.sf-top h2{margin:0;font-size:1.25rem;text-align:center;color:#fff;outline:none;word-break:keep-all}
.sf-top .sf-b{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.55);color:#fff}
.sf-top .sf-b.pri{background:#ffd54f;border-color:#ffd54f;color:#3e2a00}
.sf-body{max-width:640px;margin:0 auto;padding:12px 12px 120px}
.sf-sub{margin:0 0 10px;color:#46546b;font-weight:600}
.sf-offline{margin:0;padding:10px 14px;background:#fff3cd;border-bottom:2px solid #f2b705;font-weight:800;color:#5b4100}
.sf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.sf-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:118px;padding:10px 8px;border-radius:18px;border:2px solid #d9e1ec;background:#fff;color:#14254a;font:inherit;font-weight:800;font-size:1.02rem;line-height:1.25;text-align:center;cursor:pointer;box-shadow:0 2px 8px rgba(20,37,74,.08);word-break:keep-all;overflow-wrap:anywhere}
.sf-tile .ic{font-size:2.1rem}
.sf-tile .bd{font-size:.82rem;font-weight:800;padding:2px 8px;border-radius:999px;background:#fdecea;color:#8e1b1b}
.sf-tile.st-custom .bd{background:#e8eaf6;color:#283593}
.sf-tile.st-review .bd{background:#fff3cd;color:#5b4100}
.sf-tile.st-unavailable{opacity:.75;border-style:dashed}
.sf-tile .pn{position:absolute;top:6px;right:8px;font-size:1rem}
.sf-tile.edit{cursor:default;padding-bottom:8px}
.sf-ctl{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;width:100%;margin-top:4px}
.sf-c{min-height:48px;min-width:0;border-radius:10px;border:2px solid #d9e1ec;background:#f4f7fc;font:inherit;font-weight:800;font-size:.95rem;cursor:pointer;color:#14254a;padding:0}
.sf-c[disabled]{opacity:.35;cursor:default}
.sf-c[aria-pressed="true"]{background:#e3f2fd;border-color:#64b5f6}
.sf-c.red{background:#fdecea;border-color:#ef9a9a}
.sf-grid.editing{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.sf-b{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:50px;padding:6px 14px;border-radius:14px;border:2px solid #c5d0e0;background:#fff;color:#14254a;font:inherit;font-weight:800;cursor:pointer;text-decoration:none}
.sf-b.wide{display:flex;width:100%;margin:8px 0}
.sf-b.pri{background:#1565c0;border-color:#1565c0;color:#fff}
.sf-b.red{background:#c62828;border-color:#c62828;color:#fff}
.sf-file{cursor:pointer}
.sf-card{background:#fff;border:1px solid #d9e1ec;border-radius:16px;padding:12px;margin:12px 0}
.sf-card h3{margin:0 0 6px;font-size:1.1rem}
.sf-note{color:#46546b;font-size:.95rem;margin:6px 0}
.sf-empty{text-align:center;padding:20px;background:#fff;border:2px dashed #c5d0e0;border-radius:16px;margin-bottom:12px;font-weight:700}
.sf-field{display:block;margin:0 0 12px}
.sf-field span{display:block;font-weight:800;margin-bottom:4px}
.sf-field input{width:100%;min-height:52px;padding:8px 12px;border-radius:12px;border:2px solid #9fb1c9;font:inherit;font-size:1.05rem;background:#fff;color:#14254a}
.sf-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;margin-bottom:8px;scrollbar-width:thin}
.sf-tabs button{flex:0 0 auto;min-height:48px;padding:4px 14px;border-radius:999px;border:2px solid #c5d0e0;background:#fff;font:inherit;font-weight:800;color:#14254a;cursor:pointer;white-space:nowrap}
.sf-tabs button[aria-selected="true"]{background:#1565c0;border-color:#1565c0;color:#fff}
.sf-row{display:flex;align-items:center;gap:10px;min-height:68px;padding:8px 10px;background:#fff;border:1px solid #d9e1ec;border-radius:14px;margin-bottom:8px}
.sf-row .ic{font-size:1.7rem;flex:0 0 auto}
.sf-row .t{flex:1 1 auto;min-width:0}
.sf-row .t b{display:block;word-break:keep-all;overflow-wrap:anywhere}
.sf-row .t small{display:block;color:#46546b;font-weight:600;font-size:.9rem}
.sf-row.off{opacity:.7}
.sf-row .sf-b{flex:0 0 auto}
.sf-ok{flex:0 0 auto;font-weight:800;color:#1b5e20}
.sf-dlg{position:fixed;inset:0;z-index:4000;background:rgba(10,20,35,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.sf-dbox{width:100%;max-width:460px;max-height:90vh;overflow:auto;background:#fff;border-radius:18px;padding:16px;color:#14254a;box-shadow:0 12px 30px rgba(0,0,0,.3)}
.sf-dbox h2{margin:0 0 10px;font-size:1.25rem}
.sf-dbox p{margin:0 0 10px}
.sf-host{display:inline-block;font-weight:700;color:#1565c0;word-break:break-all}
.sf-tag{font-weight:800;background:#eef3fb;border-radius:10px;padding:8px 10px}
.sf-dacts{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:8px}
.sf-dacts .sf-b{flex:1 1 140px}
.sf-err{color:#b71c1c;font-weight:800;min-height:1.2em}
.sf-toast{position:fixed;left:50%;bottom:110px;transform:translateX(-50%);z-index:4100;max-width:min(92vw,520px);background:#14254a;color:#fff;padding:12px 16px;border-radius:14px;font-weight:800;box-shadow:0 8px 20px rgba(0,0,0,.3);text-align:center}
.sf-share{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;margin:10px 0;border-radius:14px;border:2px solid #fbc02d;background:#fee500;color:#3c1e1e;font:inherit;font-weight:900;cursor:pointer}
#lv-main .dl-row b{display:block}
#lv-main .dl-row small{display:block;font-weight:600;color:var(--muted)}
#lv-main .dl-row .ic{font-size:1.6rem}
@media (prefers-reduced-motion:reduce){.sf-page,.sf-dlg,.sf-toast{transition:none!important;animation:none!important}}
@media (prefers-color-scheme:dark){.sf-page{background:#f3f6fb}}
/* QA fixes 2026-10-19: contrast + large text (150-200%) */
.foot a{color:#0d47a1}
#s-home .tiles .tile span{max-width:100%}
.bigfs #s-home .tiles .tile span{overflow-wrap:break-word}
.bigfs #s-home .tiles{grid-template-columns:repeat(2,1fr)}
.bigfs #s-home .tiles .tile,.bigfs #s-home .tiles .tile.big{grid-column:span 1;font-size:min(1rem,6.4vw)}
.sf-top{grid-template-columns:auto minmax(0,1fr) auto}
.sf-top h2{overflow-wrap:anywhere;min-width:0}
.sf-top .sf-b{font-size:min(1rem,5vw);padding:4px 10px}
.sf-hhead>span{min-width:0;overflow-wrap:anywhere}
.lv-btn.tel{flex-wrap:wrap;row-gap:2px}
.lv-btn.tel b{margin-left:auto}
.lv-btn{overflow-wrap:anywhere}
.sf-row{flex-wrap:wrap}
.sf-row .t{flex:1 1 160px}
.sf-tile .t,.sf-pin .t{max-width:100%}
.sf-tile,.sf-pin,.sf-top h2,.sf-hhead>span,.lv-btn{overflow-wrap:break-word}
.bigfs .sf-grid,.bigfs .sf-grid.editing{grid-template-columns:1fr}
.bigfs .sf-tile{flex-direction:row;justify-content:flex-start;text-align:left;min-height:84px}
.bigfs .sf-pins{grid-template-columns:1fr 1fr}
.bigfs .sf-top h2{font-size:min(1.25rem,6.5vw)}
.bigfs .sf-hhead{flex-wrap:wrap}
.bigfs .lv-btn.tel b{white-space:normal}
.bigfs .sf-ctl{grid-template-columns:repeat(3,1fr)}
.sf-grid>*,.sf-pins>*{min-width:0;max-width:100%}
.sf-tile .t,.sf-pin .t{min-width:0;flex:0 1 auto}
.bigfs .sf-tile .t{flex:1 1 auto}
.bigfs .sf-tile .pn{position:static}
.sf-row .sf-b{max-width:100%}
/* narrow phones (<=370px): let the three Village phone labels wrap instead of being cut */
@media (max-width:370px){.hero-phones a span{white-space:normal;line-height:1.1;text-align:center;overflow-wrap:break-word}.hero-phones a b{font-size:max(.78rem,14.3px)!important;letter-spacing:-.4px}}
