/* Site styles. Colors, radii and type come from tokens.css (off-white, one green accent). Rules: docs/DESIGN-RULES.md */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--elev-0);color:var(--text-1);font:400 var(--fs-body)/var(--lh-body) var(--font-body)}
h1,h2,h3{font-family:var(--font-display);font-weight:700;letter-spacing:-.03em;margin:0 0 var(--s-3)}
h1{font-size:var(--fs-h1);line-height:var(--lh-h1)}h2{font-size:var(--fs-h3);line-height:var(--lh-h3)}h3{font-size:18px;line-height:26px}
p{margin:0 0 var(--s-3)}a{color:var(--accent)}a:hover{color:var(--accent-hover)}
small,.small{font-size:var(--fs-small);line-height:var(--lh-small);color:var(--text-2)}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.skip{position:absolute;left:-999px}.skip:focus{left:var(--s-4);top:var(--s-4);background:var(--elev-1);padding:var(--s-2) var(--s-3);z-index:9}
header.bar{display:flex;align-items:center;gap:var(--s-4);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line);background:var(--elev-0);position:sticky;top:0;z-index:5}
.brand{font-weight:700;letter-spacing:-.02em;color:var(--text-1);text-decoration:none;font-size:18px}
.brand b{color:var(--accent)}
nav.main{display:flex;gap:var(--s-4);margin-left:auto;align-items:center;flex-wrap:wrap}
nav.main a{color:var(--text-2);text-decoration:none;font-weight:600;font-size:15px;padding:var(--s-2) 0;border-bottom:2px solid transparent}
nav.main a[aria-current=page]{color:var(--text-1);border-color:var(--accent)}
main{max-width:880px;margin:0 auto;padding:var(--s-6) var(--s-4) var(--s-8)}
.wide{max-width:1080px}
.card{background:var(--elev-1);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s-5);margin-bottom:var(--s-4)}
.card.flat{background:transparent}
.row{display:flex;gap:var(--s-3);align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}
.stack>*+*{margin-top:var(--s-3)}
.grid{display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
label.field{display:block;font-weight:600;font-size:15px;margin-bottom:var(--s-4)}
label.field span.hint{display:block;font-weight:400;color:var(--text-2);font-size:var(--fs-small)}
input[type=text],input[type=search],input[type=url],input[type=date],input[type=email],input[type=tel],input[type=number],input[type=password],input[type=time],select,textarea{display:block;width:100%;margin-top:var(--s-1);padding:12px 14px;font:inherit;font-size:16px;color:var(--text-1);background:var(--elev-1);border:1px solid var(--line-strong);border-radius:var(--r-control)}
textarea{min-height:110px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:3px solid var(--focus);outline-offset:1px;background:var(--elev-0)}
button,.btn{font:inherit;font-weight:700;font-size:15px;border-radius:var(--r-control);padding:12px 18px;border:1px solid transparent;cursor:pointer;text-decoration:none;display:inline-block;text-align:center}
.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover);color:var(--on-accent);box-shadow:0 0 0 4px var(--glow)}
.btn-quiet{background:var(--elev-0);color:var(--text-1);border-color:var(--line-strong)}.btn-quiet:hover{background:var(--elev-2)}
.btn-danger{background:var(--elev-0);color:var(--danger);border-color:var(--danger)}
button[disabled]{opacity:.5;cursor:not-allowed}
.block{display:block;width:100%}
.pill{display:inline-block;border-radius:var(--r-pill);padding:2px 10px;font-size:13px;font-weight:600;background:var(--elev-2);color:var(--text-2)}
.pill.ok{background:var(--ok-bg);color:var(--ok-ink)}.pill.warn{background:var(--warn-bg);color:var(--warn-ink)}
/* slide switch: solid blue on, solid gray off, applies instantly */
.switch{display:flex;align-items:flex-start;gap:var(--s-3);text-align:left;background:none;border:0;padding:var(--s-2) 0;font-weight:400;width:100%;color:var(--text-1);cursor:pointer}
.switch .track{flex:none;width:46px;height:28px;border-radius:var(--r-pill);background:var(--switch-off);position:relative;transition:background var(--t-fast)}
.switch .track::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform var(--t-fast)}
.switch[aria-checked=true] .track{background:var(--switch-on)}.switch[aria-checked=true] .track::after{transform:translateX(18px)}
.switch .txt b{display:block;font-weight:600}.switch .txt span{color:var(--text-2);font-size:var(--fs-small)}
.tabs{display:flex;gap:var(--s-4);border-bottom:1px solid var(--line);margin-bottom:var(--s-5);overflow-x:auto}
.tabs button{background:none;border:0;border-bottom:3px solid transparent;border-radius:0;padding:var(--s-3) 0;color:var(--text-2)}
.tabs button[aria-selected=true]{color:var(--text-1);border-color:var(--accent)}
.logo{width:56px;height:56px;border-radius:var(--r-lg);object-fit:cover;background:var(--elev-2);border:1px solid var(--line);flex:none}
.logo.ph{display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--text-2)}
.big{font-size:32px;line-height:38px;font-weight:700;letter-spacing:-.03em}
.muted{color:var(--text-2)}
.msg{padding:var(--s-3) var(--s-4);border-radius:var(--r-lg);background:var(--elev-2);margin-bottom:var(--s-4)}
.msg.err{background:var(--err-bg);color:var(--err-ink)}.msg.good{background:var(--ok-bg);color:var(--ok-ink)}
.lead .actions{display:flex;gap:var(--s-2);flex-wrap:wrap;margin-top:var(--s-3)}
.lead .actions button{padding:9px 14px;font-size:14px}
hr{border:0;border-top:1px solid var(--line);margin:var(--s-5) 0}
.hero{padding:var(--s-7) 0 var(--s-5)}.hero h1{font-size:var(--fs-display);line-height:var(--lh-display);max-width:16ch}
.hero p{font-size:20px;line-height:30px;color:var(--text-2);max-width:46ch}
footer.site{max-width:1080px;margin:0 auto;padding:var(--s-5) var(--s-4) var(--s-7);color:var(--text-2);font-size:var(--fs-small)}
@media (max-width:640px){main{padding:var(--s-5) var(--s-4) var(--s-8)}.hero h1{font-size:40px;line-height:46px}.btn-wide-mobile{display:block;width:100%}}
.m0{margin:0}.mt2{margin-top:var(--s-2)}.mt3{margin-top:var(--s-3)}.mt5{margin-top:var(--s-5)}.grow{flex:1}
a.plain{text-decoration:none;color:inherit}a.plain:hover{background:var(--elev-0);border-color:var(--accent);color:inherit}
details{margin-bottom:var(--s-2)}summary{cursor:pointer;font-weight:600;padding:var(--s-2) 0}
/* ---- icons: one-tone line icons tinted by currentColor ---- */
.ico{display:inline-block;width:24px;height:24px;background:currentColor;-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat;flex:none}
.i-plumb{--i:url(/icons/plumb.svg)}.i-hvac{--i:url(/icons/hvac.svg)}.i-elec{--i:url(/icons/elec.svg)}.i-home{--i:url(/icons/home.svg)}.i-yard{--i:url(/icons/yard.svg)}.i-appl{--i:url(/icons/appl.svg)}.i-spark{--i:url(/icons/spark.svg)}.i-tools{--i:url(/icons/tools.svg)}.i-paint{--i:url(/icons/paint.svg)}.i-roof{--i:url(/icons/roof.svg)}.i-clean{--i:url(/icons/clean.svg)}.i-truck{--i:url(/icons/truck.svg)}.i-bug{--i:url(/icons/bug.svg)}.i-paw{--i:url(/icons/paw.svg)}.i-window{--i:url(/icons/window.svg)}.i-key{--i:url(/icons/key.svg)}.i-car{--i:url(/icons/car.svg)}.i-laptop{--i:url(/icons/laptop.svg)}.i-party{--i:url(/icons/party.svg)}.i-book{--i:url(/icons/book.svg)}.i-fence{--i:url(/icons/fence.svg)}
.i-shield{--i:url(/icons/shield.svg)}.i-pick{--i:url(/icons/pick.svg)}.i-phone{--i:url(/icons/phone.svg)}.i-star{--i:url(/icons/star.svg)}.i-chev{--i:url(/icons/chev.svg)}
/* ---- landing ---- */
main.full{max-width:none;padding:0}
.wrap{max-width:1080px;margin:0 auto;padding:0 var(--s-4)}
.band{padding:var(--s-8) 0}.band.tight{padding:var(--s-7) 0}
.top-hero{padding:var(--s-8) 0 var(--s-9);position:relative;overflow:hidden}
.top-hero h1{font-size:clamp(44px,8vw,84px);line-height:.98;letter-spacing:-.045em;font-weight:800;max-width:11ch;margin:0 0 var(--s-5)}
.top-hero p.lede{font-size:clamp(18px,2.4vw,22px);line-height:1.45;color:var(--on-spruce-2);max-width:40ch;margin:0 0 var(--s-6)}
.top-hero .ghost{position:absolute;right:-60px;top:40px;width:420px;height:420px;color:var(--spruce-2);opacity:.9;pointer-events:none}
.top-hero .ghost.two{right:240px;top:-90px;width:240px;height:240px;opacity:.55}
.finder{position:relative;z-index:2;display:grid;grid-template-columns:1.6fr 1fr auto;gap:var(--s-3);background:var(--elev-1);border-radius:20px;padding:var(--s-3);max-width:760px;color:var(--text-1)}
.finder .finder-q,.finder .finder-hint{grid-column:1/-1}.finder .finder-hint{min-height:0;font-size:14px;color:var(--text-2,#555);padding:0 var(--s-2)}.finder .finder-hint:empty{display:none}
.finder select,.finder input{margin:0;border:0;background:var(--elev-0);height:56px}
.finder button{height:56px;padding:0 var(--s-6);font-size:17px}
@media (max-width:700px){.finder{grid-template-columns:1fr}.top-hero .ghost{opacity:.4;right:-120px}}
.sec-h{font-size:clamp(28px,4vw,40px);line-height:1.08;letter-spacing:-.035em;font-weight:800;margin:0 0 var(--s-2)}
.sec-sub{color:var(--text-2);margin:0 0 var(--s-6);max-width:52ch}
.plumb{--tb:var(--t-plumb-bg);--ti:var(--t-plumb-ink)}.hvac{--tb:var(--t-hvac-bg);--ti:var(--t-hvac-ink)}.elec{--tb:var(--t-elec-bg);--ti:var(--t-elec-ink)}.soon{--tb:var(--t-soon-bg);--ti:var(--t-soon-ink)}
.steps{counter-reset:s;display:grid;gap:var(--s-4);grid-template-columns:repeat(3,1fr)}
@media (max-width:800px){.steps{grid-template-columns:1fr}}
.step{background:var(--elev-1);border:1px solid var(--line);border-radius:24px;padding:var(--s-5)}
.step b.n{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:20px;margin-bottom:var(--s-4)}
.step h3{font-size:22px;letter-spacing:-.025em;font-weight:800}
.step p{color:var(--text-2);margin:0}
.panel{border-radius:28px;padding:var(--s-7) var(--s-6);position:relative;overflow:hidden}
.panel h2{font-size:clamp(28px,4vw,38px);line-height:1.05;letter-spacing:-.035em;font-weight:800;margin:0 0 var(--s-3)}
.panel p{max-width:36ch;margin:0 0 var(--s-5)}
.panel.sand{background:var(--t-sand-bg)}.panel.spruce{background:var(--spruce);color:var(--on-spruce)}.panel.spruce p{color:var(--on-spruce-2)}
.panel .ghost{position:absolute;right:-30px;bottom:-30px;width:220px;height:220px;opacity:.12}
/* directory + pro cards as tiles */
.procard{border-radius:24px;padding:var(--s-5);gap:var(--s-4);align-items:center}
.procard:hover{transform:translateY(-3px)}
@media (max-width:520px){header.bar{flex-wrap:wrap;gap:var(--s-2) var(--s-4)}nav.main{gap:var(--s-3);margin-left:0;width:100%}nav.main a{font-size:14px}}

/* ---- one-screen landing ---- */
body.landing main.full{min-height:calc(100svh - 170px);display:flex}
body.landing .top-hero{flex:1;display:flex;align-items:center;padding:var(--s-6) 0}
body.landing .top-hero .wrap{width:100%}
body.landing .top-hero h1{font-size:clamp(36px,6vw,64px);margin:0 0 var(--s-3);max-width:14ch}
body.landing .top-hero p.lede{margin:0 0 var(--s-5)}
.quick{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:var(--s-3);margin:var(--s-4) 0 var(--s-5)}
.qk{display:inline-flex;align-items:center;gap:var(--s-2);height:44px;padding:0 var(--s-4);border-radius:var(--r-pill);background:var(--spruce-2);color:var(--on-spruce);font-weight:700;text-decoration:none}
.qk .ico{width:20px;height:20px}
.facts-row{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);list-style:none;margin:0 0 var(--s-4);padding:0;color:var(--on-spruce-2);font-size:15px}
.facts-row li{display:flex;align-items:center;gap:var(--s-2)}.facts-row .ico{width:18px;height:18px}
.pro-link{position:relative;z-index:2;margin:0;color:var(--on-spruce-2);font-size:15px}.pro-link a{font-weight:700;text-decoration:underline}
@media (max-width:700px){body.landing .top-hero{padding:var(--s-5) 0}.quick{margin:var(--s-3) 0 var(--s-4)}.qk{height:40px;padding:0 var(--s-3);font-size:15px}}
@media (max-width:700px){body.landing .top-hero .ghost{display:none}body.landing .top-hero h1{font-size:32px;line-height:36px}body.landing .top-hero p.lede{display:none}.finder{gap:var(--s-2)}.finder select,.finder input,.finder button{height:48px}.facts-row{gap:var(--s-1) var(--s-4);font-size:14px;margin-bottom:var(--s-3)}.facts-row li:nth-child(3){display:none}}
@media (max-width:700px){body.landing main.full{min-height:calc(100svh - 260px)}}
@media (max-width:700px){body.landing .top-hero{padding:var(--s-3) 0}.pro-link{font-size:14px}}

/* block-built pages (city, trade, state) */
.top-hero.compact{padding-top:var(--s-7);padding-bottom:var(--s-6)}
.top-hero.compact h1{font-size:clamp(28px,4.4vw,44px);line-height:1.05}
.crumbs{padding-top:var(--s-4);padding-bottom:0;font-size:var(--fs-small);color:var(--text-2)}
.crumbs a{color:var(--text-2)}.crumbs span[aria-current]{color:var(--text-1);font-weight:600}
.sect{padding-top:var(--s-7);padding-bottom:0}
.sect h2{font-size:clamp(22px,3vw,30px);line-height:1.1;letter-spacing:-.03em;font-weight:800;margin:0 0 var(--s-3)}
.stat{display:flex;gap:var(--s-5);align-items:flex-start;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s-5)}
.stat .num{font-size:clamp(48px,8vw,72px);line-height:1;letter-spacing:-.05em;color:var(--accent-dark)}
.stat h2{font-size:clamp(18px,2.4vw,22px);margin-bottom:var(--s-2)}
.stat p{margin:0 0 var(--s-2);max-width:60ch}
.prosl .grid{display:grid;gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.procard-mini{display:flex;gap:var(--s-3);align-items:center;padding:var(--s-3)}
.linkgrid{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2) var(--s-5);grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.linkgrid li{padding:var(--s-1) 0}
.linkgrid a{font-weight:600}
.ghosts{position:absolute;inset:0;overflow:hidden;pointer-events:none}
@media (max-width:700px){.stat{flex-direction:column;gap:var(--s-2)}.sect{padding-top:var(--s-6)}.top-hero.compact{padding-top:var(--s-5);padding-bottom:var(--s-5)}}
main.full .sect:last-child{padding-bottom:var(--s-7)}
main.full .crumbs{margin-left:auto;margin-right:auto}
.top-hero.compact h1{max-width:20ch}
main.full>.wrap.sect{width:100%}
.sticky-cta{display:none}
@media (max-width:700px){.sticky-cta{display:block;position:fixed;left:0;right:0;bottom:0;z-index:20;padding:var(--s-2) var(--s-4) calc(var(--s-2) + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line)}.sticky-cta .btn{display:block;width:100%;text-align:center}main.full{padding-bottom:64px}}
.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-small)}.tbl th{text-align:left;font-weight:700;border-bottom:1px solid var(--line-strong);padding:var(--s-2)}.tbl td{border-bottom:1px solid var(--line);padding:var(--s-2);word-break:break-word}
@media (max-width:600px){.tbl.pages thead{display:none}.tbl.pages tr{display:block;padding:var(--s-2) 0;border-bottom:1px solid var(--line)}.tbl.pages td{display:flex;justify-content:space-between;border:0;padding:2px var(--s-2)}.tbl.pages td:nth-child(1)::before{content:'Page'}.tbl.pages td:nth-child(2)::before{content:'Source'}.tbl.pages td:nth-child(3)::before{content:'Visits'}.tbl.pages td:nth-child(4)::before{content:'Requests'}.tbl.pages td:nth-child(5)::before{content:'Rate'}.tbl.pages td::before{color:var(--text-2)}}

.factors{margin:0 0 16px}.factors dt{font-weight:700;margin-top:12px}.factors dd{margin:2px 0 0;color:var(--text-2,var(--text-2));max-width:70ch}.fine{font-size:.85rem;color:var(--text-2,var(--text-2));margin-top:8px}
/* Ratings */
[hidden]{display:none!important}
.stars{display:flex;gap:6px}
.star{background:none;border:0;padding:2px;font-size:26px;line-height:1;color:var(--line-strong);cursor:pointer;min-width:36px;min-height:36px}
.stars.big .star{font-size:44px;min-width:52px;min-height:52px}
.star.on{color:#d9962b}
.star:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.rate-detail{margin-top:var(--s-4);border-top:1px solid var(--line);padding-top:var(--s-4)}
.rate-row{padding:var(--s-2) 0}
.pick.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.card textarea{width:100%}

/* ===== Light theme v2 (2026-10-19). Loaded last; overrides the older dark hero. ===== */
body{background:var(--elev-0)}
header.bar{background:#F4F7F8eb;backdrop-filter:saturate(1.4) blur(8px)}
.brand{font-size:19px}
nav.main a{border-radius:var(--r-pill);padding:var(--s-2) var(--s-3);border-bottom:0}
nav.main a:hover{background:var(--elev-2);color:var(--text-1)}
nav.main a[aria-current=page]{background:var(--spruce);color:var(--accent-hover)}
@media (max-width:700px){
  header.bar{flex-wrap:wrap;gap:var(--s-2);padding:var(--s-3) var(--s-4) var(--s-2)}
  nav.main{width:100%;margin:0 calc(-1 * var(--s-4));padding:0 var(--s-4) var(--s-1);flex-wrap:nowrap;overflow-x:auto;gap:var(--s-1);scrollbar-width:none}
  nav.main::-webkit-scrollbar{display:none}
  nav.main a,.svc-menu>summary{flex:none;font-size:14px;padding:6px 12px;background:var(--elev-1);border:1px solid var(--line)}
}
/* hero */
.hero2{padding:var(--s-7) 0 var(--s-6)}
.hero2-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--s-7);align-items:center}
.hero2-copy h1{font-size:clamp(38px,5.4vw,64px);line-height:1.02;letter-spacing:-.045em;font-weight:800;margin:0 0 var(--s-4);max-width:13ch;color:var(--text-1)}
.hero2-lede{font-size:clamp(18px,2vw,21px);line-height:1.5;color:var(--text-2);max-width:38ch;margin:0 0 var(--s-5)}
.hero2 .finder{background:var(--elev-1);border:1px solid var(--line);box-shadow:var(--lift);grid-template-columns:1.4fr 1fr auto;max-width:640px}
.hero2 .finder select,.hero2 .finder input{background:var(--elev-0);border:1px solid var(--line)}
.hero2 .quick{margin:var(--s-4) 0}
.hero2 .qk{background:var(--elev-1);color:var(--text-1);border:1px solid var(--line);font-weight:600}
.hero2 .qk:hover{border-color:var(--accent);color:var(--accent-hover)}
.hero2 .qk .ico{color:var(--accent)}
.hero2 .facts-row{color:var(--text-2)}
.hero2 .facts-row .ico{color:var(--accent)}
.hero2-media{position:relative;margin:0;aspect-ratio:4/3.4;border-radius:var(--r-sheet);background:var(--spruce);overflow:visible}
.hero2-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:var(--r-sheet)}
.hero2-fallback{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);align-items:center;justify-items:center;padding:var(--s-7);color:var(--accent);border-radius:var(--r-sheet);overflow:hidden}
.hero2-fallback .ico{width:72%;height:auto;aspect-ratio:1;opacity:.22}
.hero2-fallback .ico:nth-child(2){opacity:.35;transform:translateY(-18%)}
.hero2-badge{position:absolute;left:calc(-1 * var(--s-5));bottom:var(--s-6);display:flex;gap:var(--s-3);align-items:center;background:var(--elev-1);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s-3) var(--s-4);box-shadow:var(--lift)}
.hero2-badge .disc{width:40px;height:40px;border-radius:50%;background:var(--spruce);color:var(--accent);display:flex;align-items:center;justify-content:center}
.hero2-badge b{display:block;font-size:15px}.hero2-badge small{display:block;color:var(--text-2);font-size:13px;line-height:18px}
@media (max-width:900px){
  .hero2{padding:var(--s-5) 0 var(--s-4)}
  .hero2-grid{grid-template-columns:1fr;gap:0}
  .hero2-copy{display:contents}
  .hero2 .finder{order:-2;margin:0 0 var(--s-5);max-width:none}
  .hero2-media{order:-1;aspect-ratio:16/10;margin:0 0 var(--s-5)}
  .hero2-media.noimg{display:none}
  .hero2-badge{left:var(--s-3);bottom:var(--s-3)}
  .hero2 .finder{grid-template-columns:1fr}
}
/* trade cards */
.sect .sec-h{font-size:clamp(26px,3.4vw,38px)}
.tcards{display:grid;gap:var(--s-5);grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.tcards{grid-template-columns:1fr;gap:var(--s-4)}}
.tcard{display:flex;flex-direction:column;background:var(--elev-1);border:1px solid var(--line);border-radius:var(--r-sheet);overflow:hidden;text-decoration:none;color:var(--text-1);transition:transform var(--t-fast),border-color var(--t-fast)}
.tcard:hover{transform:translateY(-3px);border-color:var(--accent);color:var(--text-1)}
.tcard-media{position:relative;aspect-ratio:4/3;background:var(--spruce);display:flex;align-items:center;justify-content:center}
.tcard-media img,.proband-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tcard-fb{color:var(--accent);display:flex}.tcard-fb .ico{width:64px;height:64px;opacity:.5}
.tcard-body{padding:var(--s-4) var(--s-5) var(--s-5)}
.tcard-body h3{font-size:21px;margin:0 0 var(--s-1);letter-spacing:-.02em}
.tcard-body p{color:var(--text-2);margin:0 0 var(--s-3);font-size:16px;line-height:24px}
.tcard-go{font-weight:700;color:var(--accent);font-size:15px}
@media (max-width:900px){.tcard{flex-direction:row}.tcard-media{flex:0 0 38%;aspect-ratio:auto;min-height:120px}.tcard-body{padding:var(--s-4)}.tcard-body p{font-size:15px;line-height:22px}}
/* steps */
.steps{gap:var(--s-5)}
.step{background:transparent;border:0;border-top:2px solid var(--line);border-radius:0;padding:var(--s-5) 0 0}
.step b.n{background:var(--spruce);color:var(--accent-hover);width:40px;height:40px;font-size:18px}
/* pro band */
.proband{display:grid;grid-template-columns:1.1fr .9fr;gap:0;background:var(--spruce);border-radius:var(--r-sheet);overflow:hidden}
.proband-copy{padding:var(--s-7) var(--s-6)}
.proband-copy h2{font-size:clamp(26px,3.4vw,38px);line-height:1.08;letter-spacing:-.035em;font-weight:800;margin:0 0 var(--s-3)}
.proband-copy p{color:var(--on-spruce-2);max-width:40ch}
.checks{list-style:none;padding:0;margin:0 0 var(--s-5);display:grid;gap:var(--s-2)}
.checks li{display:flex;gap:var(--s-2);align-items:center;font-weight:600}.checks .ico{color:var(--accent);width:20px;height:20px}
.proband-media{position:relative;min-height:320px;display:flex;align-items:center;justify-content:center;background:var(--spruce-2)}
.proband-media .tcard-fb .ico{width:96px;height:96px;opacity:.35}
@media (max-width:900px){.proband{grid-template-columns:1fr}.proband-media{order:-1;min-height:200px}.proband-copy{padding:var(--s-5)}}
/* footer */
footer.site{border-top:1px solid var(--line);margin-top:var(--s-8);padding-top:var(--s-6)}
.foot-top{display:flex;flex-wrap:wrap;gap:var(--s-4) var(--s-6);align-items:center;justify-content:space-between;margin-bottom:var(--s-4)}
.foot-links{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5)}
.foot-links a{color:var(--text-2);text-decoration:none;font-weight:600}.foot-links a:hover{color:var(--accent)}
.foot-note{max-width:70ch;margin:0}
/* light bands used on city, service and guide pages */
.band.spruce{background:var(--spruce);color:var(--text-1)}
.band.spruce a{color:var(--accent-hover)}
.top-hero .ghost{color:#B8C7D6;opacity:1}
.top-hero p.lede{color:var(--on-spruce-2)}
.band.spruce .qk{background:var(--elev-1);color:var(--text-1);border:1px solid var(--line)}
.band.spruce .finder{border:1px solid var(--line);box-shadow:var(--lift)}
.panel.spruce{background:var(--spruce);color:var(--text-1)}.panel.spruce p{color:var(--on-spruce-2)}
.btn-light{background:var(--accent);color:var(--on-accent)}.btn-light:hover{background:var(--accent-hover);color:var(--on-accent)}
/* forms and inner pages */
main:not(.full) .hero{padding-top:var(--s-6)}
main:not(.full) .hero h1{font-size:clamp(34px,4.6vw,52px);line-height:1.05;letter-spacing:-.04em;font-weight:800}
.card{box-shadow:0 1px 2px #10203A0a}
.card h2{font-size:20px;letter-spacing:-.02em}
.card.flat{box-shadow:none}
.hero2-media img,.tcard-media img,.proband-media img{color:transparent;font-size:0}
.noimg img{display:none}
.hero2 .wrap{max-width:1180px}
.hero2 .quick{gap:var(--s-2)}
.hero2 .qk{height:40px;padding:0 var(--s-3);font-size:15px}
.hero2 .facts-row{gap:var(--s-2) var(--s-4);font-size:14px}
.wrap{max-width:1180px}footer.site{max-width:1180px}
/* request form: photo of the chosen service */
.req-photo{display:block;width:calc(100% + 2 * var(--s-5));max-width:none;margin:calc(-1 * var(--s-5)) calc(-1 * var(--s-5)) var(--s-5);aspect-ratio:3/1;object-fit:cover;border-radius:var(--r-card) var(--r-card) 0 0}
.req-photo{height:auto}
/* matching: top match highlight */
.card.flat.top-match{border-color:var(--accent);background:var(--mint)}
.card.flat .pill{margin-bottom:var(--s-1)}
/* Trust points (home) */
.trust{list-style:none;margin:var(--s-4) 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-4)}
.trust-item{display:flex;gap:var(--s-4);align-items:flex-start;background:var(--elev-1);border:1px solid var(--line);border-radius:24px;padding:var(--s-5)}
.trust-item .disc{flex:none;width:48px;height:48px;border-radius:50%;background:var(--spruce);color:var(--accent);display:flex;align-items:center;justify-content:center}
.trust-item .disc .ico{width:24px;height:24px}
.trust-item h3{font-size:20px;letter-spacing:-.02em;font-weight:800;margin:0 0 var(--s-1)}
.trust-item p{color:var(--text-2);margin:0}
.trust-link{margin:var(--s-4) 0 0;font-weight:600}
.trust-link a{color:var(--accent-hover)}
@media (max-width:700px){.trust{grid-template-columns:1fr;gap:var(--s-3)}.trust-item{padding:var(--s-4)}}
/* For Pros starter */
.join-start-wrap{position:relative;max-width:640px}
.join-start{grid-template-columns:1.6fr 1fr}
.join-sugg{position:relative;z-index:3;margin-top:var(--s-2);background:var(--elev-1);border:1px solid var(--line);border-radius:16px;box-shadow:var(--lift);padding:var(--s-2);display:grid;gap:2px}
.join-opt{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);text-align:left;background:none;border:0;border-radius:12px;padding:var(--s-3);font:inherit;color:var(--text-1);cursor:pointer;min-height:44px}
.join-opt:hover,.join-opt:focus-visible{background:var(--elev-0)}
.join-opt small{color:var(--text-2)}
.join-more{margin-top:var(--s-4)}
@media (max-width:700px){.join-start{grid-template-columns:1fr}}
/* Services menu (header) */
.svc-menu{position:static}
.svc-menu>summary{list-style:none;cursor:pointer;white-space:nowrap;color:var(--text-2);font-weight:600;font-size:15px;padding:var(--s-2) var(--s-3);border-radius:var(--r-pill)}
.svc-menu>summary::-webkit-details-marker{display:none}
.svc-menu>summary::after{content:'';display:inline-block;width:7px;height:7px;margin-left:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-3px) rotate(45deg)}
.svc-menu[open]>summary{color:var(--text-1);background:var(--spruce)}
.svc-panel{position:absolute;top:calc(100% + 4px);right:16px;z-index:20;display:grid;grid-template-columns:repeat(3,minmax(200px,1fr));gap:var(--s-5);width:min(760px,calc(100vw - 32px));background:var(--elev-1);border:1px solid var(--line);border-radius:20px;box-shadow:var(--lift);padding:var(--s-5)}
.svc-col h3{font-size:13px;font-weight:700;color:var(--text-2);margin:0 0 var(--s-2)}
.svc-col ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.svc-col a{display:block;padding:6px 0;color:var(--text-1);text-decoration:none;font-weight:500;font-size:15px}
.svc-col a:hover{color:var(--accent-hover)}
.svc-all{grid-column:1/-1;margin:0;border-top:1px solid var(--line);padding-top:var(--s-3)}
.svc-all a{color:var(--accent-hover);font-weight:600}
@media (max-width:900px){.svc-panel{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.svc-panel{left:16px;right:16px;width:auto;grid-template-columns:1fr;max-height:70vh;overflow:auto}}
/* Category icon row (home) */
.cat-icons{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:var(--s-3)}
.cat-icons a{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);text-align:center;padding:var(--s-4) var(--s-2);border-radius:20px;color:var(--text-1);text-decoration:none;font-weight:600;font-size:15px;line-height:1.25}
.cat-icons a:hover{background:var(--elev-1)}
.cat-ico{width:56px;height:56px;border-radius:50%;background:var(--spruce);color:var(--accent);display:flex;align-items:center;justify-content:center}
.cat-ico .ico{width:28px;height:28px}
@media (max-width:900px){.cat-icons{grid-template-columns:repeat(4,1fr)}}
@media (max-width:520px){.cat-icons{grid-template-columns:repeat(3,1fr);gap:var(--s-1)}.cat-icons a{font-size:14px;padding:var(--s-3) 2px}}
/* Finder: category and service side by side, full width */
.finder .finder-pick{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3)}
.finder .finder-pick select:disabled{opacity:.6}
@media (max-width:520px){.finder .finder-pick{grid-template-columns:1fr;gap:var(--s-2)}}
.qk[aria-pressed=true]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
button.qk{border:1px solid var(--line);cursor:pointer;font:inherit;font-weight:600}
/* Referral welcome (one time) */
.ref-splash{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(20,30,25,.45);opacity:1;transition:opacity .3s}
.ref-splash.ref-out{opacity:0}
.ref-card{background:var(--elev-1);border-radius:24px;box-shadow:var(--lift);padding:var(--s-6);max-width:420px;width:100%;display:grid;gap:var(--s-3);justify-items:center;text-align:center}
.ref-card .logo,.ref-card img{width:72px;height:72px}
@media (prefers-reduced-motion:reduce){.ref-splash{transition:none}}
.list-sec{font-size:15px;color:var(--text-2);margin-top:var(--s-3)}
.ref-preview{display:flex;gap:var(--s-4);align-items:center;margin-top:var(--s-3);text-decoration:none;color:var(--text-1)}
.ref-phone{flex:none;width:96px;height:170px;border-radius:18px;border:3px solid var(--text-1);background:rgba(20,30,25,.35);display:flex;align-items:center;justify-content:center;padding:6px}
.ref-mini{background:var(--elev-1);border-radius:10px;padding:8px 6px;display:grid;gap:3px;justify-items:center;text-align:center;font-size:9px;line-height:1.2;width:100%}
.ref-mini .logo,.ref-mini img{width:26px;height:26px;font-size:12px}
.ref-mini b{font-size:10px}
.ref-mini-btn{background:var(--accent);color:var(--on-accent);border-radius:999px;padding:2px 8px;font-weight:700}
.staff-msg{border-color:var(--accent)}
.stat-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--s-2)}
.stat-row .stat{background:var(--elev-0);border-radius:12px;padding:var(--s-2) var(--s-3);display:grid}
.stat-row .stat small{color:var(--text-2)}
@media (max-width:700px){.stat-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
.price-in{max-width:140px}
.once-box code.once{display:block;word-break:break-all;padding:8px 10px;margin:8px 0;background:var(--surface-2,var(--elev-2));border-radius:8px;font-size:.9rem}
.doc{max-width:860px}
.doc-body h2{margin-top:2rem}
.doc-body h3{margin-top:1.4rem}
.doc-code{background:var(--navy);color:var(--mist);padding:14px 16px;border-radius:12px;overflow-x:auto;font-size:.88rem;line-height:1.5}
.doc-body p code,.doc-body li code,.doc-body td code{background:var(--elev-2);padding:1px 5px;border-radius:4px;font-size:.9em}
.doc-table{overflow-x:auto}
.doc-table table{border-collapse:collapse;width:100%;font-size:.94rem}
.doc-table th,.doc-table td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.doc-table th{background:var(--elev-2)}
.doc-note{border-left:4px solid var(--accent);background:var(--elev-1);padding:10px 14px;border-radius:0 12px 12px 0}
.doc-toc{border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:1rem;background:var(--elev-1)}
.doc-toc ul{margin:.4rem 0 0;padding-left:1.1rem}
/* Lead ids box (0057) and pro help forum (help.js) */
.btn-sm{min-height:34px;padding:4px 12px;font-size:14px}
.btn[aria-pressed="true"]{background:var(--ok-bg);border-color:var(--accent);color:var(--ok-ink)}
.lead-ids{border-top:1px solid var(--line);margin-top:var(--s-4);padding-top:var(--s-3);gap:var(--s-2)}
.lead-ids code{font-size:13px}
.f-bar{display:flex;gap:var(--s-3);align-items:center;margin-bottom:var(--s-3)}
.f-bar input[type=search]{flex:1;min-width:0}
.f-chips{display:flex;gap:var(--s-2);overflow-x:auto;padding-bottom:var(--s-2);margin-bottom:var(--s-4);scrollbar-width:thin}
.f-chips .btn{white-space:nowrap;flex:0 0 auto}
.f-list{border:1px solid var(--line);border-radius:var(--r-card);background:var(--elev-1);overflow:hidden}
.f-topic{display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-4) var(--s-5);color:var(--text-1);text-decoration:none;border-top:1px solid var(--line)}
.f-topic:first-child{border-top:0}
.f-topic:hover{background:var(--elev-2)}
.f-topic:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.f-title{font-weight:700;font-size:17px;line-height:1.35}
.f-meta{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center}
.f-h1{font-size:30px;line-height:1.2;letter-spacing:-.02em;margin-bottom:var(--s-1)}
.f-who{display:inline-flex;gap:var(--s-2);align-items:center}
.f-post.answer{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.f-post.hidden-post{opacity:.6}
.f-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:var(--s-3) 0}
@media (max-width:560px){.f-bar{flex-direction:column;align-items:stretch}.f-topic{padding:var(--s-3) var(--s-4)}}
.f-bar input[type=search]{margin-top:0}
/* Pro reports tiles (0058) */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--s-3);margin:var(--s-4) 0}
.tile{background:var(--elev-2);border-radius:var(--r-lg);padding:var(--s-4);display:flex;flex-direction:column;gap:2px}
.tile b{font-size:26px;line-height:1.1;letter-spacing:-.02em}
.tile span{font-size:14px;color:var(--text-2)}
.tile small{font-size:13px;color:var(--text-3)}
.mt3{margin-top:var(--s-3)}

/* Public pro profile (0061), Thumbtack-style layout */
.pp-hero{margin-bottom:var(--s-4)}
.pp-head{display:flex;gap:var(--s-4);align-items:flex-start;margin-top:var(--s-3)}
.pp-head .logo{width:88px;height:88px}
.pp-id{flex:1;min-width:0}
.pp-id h1{font-size:clamp(28px,4vw,40px);line-height:1.1;letter-spacing:-.03em}
.pp-rating{display:flex;gap:var(--s-2);align-items:center;margin-top:var(--s-2)}
.pp-stars{color:#d9a400;letter-spacing:1px;font-size:18px}.pp-stars span{color:var(--line-strong)}.pp-stars span.on{color:#d9a400}
.pp-badges{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-3)}
.pp-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--s-5);align-items:start}
.pp-side{position:sticky;top:var(--s-4)}
.pp-request{display:flex;flex-direction:column;gap:var(--s-3)}
.pp-request select,.pp-request input{margin-top:0}
.pp-tabs{display:flex;gap:var(--s-4);overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:var(--s-4);padding-bottom:var(--s-2)}
.pp-tabs a{font-weight:700;color:var(--text-2);text-decoration:none;white-space:nowrap}.pp-tabs a:hover{color:var(--text-1)}
.pp-bio{white-space:pre-wrap}.pp-bio.clamp{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.btn-link{background:none;border:0;padding:0;color:var(--accent);font-weight:700;cursor:pointer}
.pp-cols{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5);margin-top:var(--s-4)}
.pp-facts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-3)}
.pp-facts li{display:flex;gap:var(--s-3);align-items:flex-start}
.pp-ico{flex:none;width:28px;height:28px;border-radius:50%;background:var(--elev-2);display:inline-flex;align-items:center;justify-content:center;font-size:14px}
.pp-ico.ok{background:var(--ok-bg);color:var(--ok-ink)}
.pp-hours{margin-top:var(--s-3)}.pp-hours summary{font-weight:700;cursor:pointer}
.pp-svc h3{margin:var(--s-3) 0 var(--s-2);font-size:16px}
.pp-chips{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.pp-chips .chip{display:inline-block;padding:6px 12px;border:1px solid var(--line-strong);border-radius:var(--r-pill);color:var(--text-1);text-decoration:none;font-size:14px;background:var(--elev-0)}
.pp-chips .chip:hover{border-color:var(--accent)}
.pp-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--s-2)}
.pp-photos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r-md);display:block}
.pp-summary{display:grid;grid-template-columns:160px 1fr;gap:var(--s-5);align-items:center;margin-bottom:var(--s-3)}
.pp-score{display:flex;flex-direction:column;gap:4px}
.pp-bar{display:grid;grid-template-columns:16px 1fr 44px;gap:var(--s-2);align-items:center;margin:2px 0}
.pp-bar .track{height:8px;background:var(--elev-2);border-radius:var(--r-pill);overflow:hidden}
.pp-bar .track i{display:block;height:100%;background:#d9a400}
.pp-bar .track i.w0{width:0%}.pp-bar .track i.w5{width:5%}.pp-bar .track i.w10{width:10%}.pp-bar .track i.w15{width:15%}.pp-bar .track i.w20{width:20%}.pp-bar .track i.w25{width:25%}.pp-bar .track i.w30{width:30%}.pp-bar .track i.w35{width:35%}.pp-bar .track i.w40{width:40%}.pp-bar .track i.w45{width:45%}.pp-bar .track i.w50{width:50%}.pp-bar .track i.w55{width:55%}.pp-bar .track i.w60{width:60%}.pp-bar .track i.w65{width:65%}.pp-bar .track i.w70{width:70%}.pp-bar .track i.w75{width:75%}.pp-bar .track i.w80{width:80%}.pp-bar .track i.w85{width:85%}.pp-bar .track i.w90{width:90%}.pp-bar .track i.w95{width:95%}.pp-bar .track i.w100{width:100%}
.pp-review{border-top:1px solid var(--line);padding-top:var(--s-3);display:flex;flex-direction:column;gap:var(--s-2)}
.pp-faq{border-top:1px solid var(--line);padding:var(--s-3) 0}.pp-faq summary{font-weight:700;cursor:pointer}
.pp-sticky{display:none}
@media (max-width:860px){.pp-layout{grid-template-columns:1fr}.pp-side{display:none}.pp-cols,.pp-summary{grid-template-columns:1fr}
  .pp-sticky{display:block;position:fixed;left:0;right:0;bottom:0;padding:var(--s-3) var(--s-4) calc(var(--s-3) + env(safe-area-inset-bottom));background:var(--elev-0);border-top:1px solid var(--line);z-index:20}
  main:has(.pp-sticky){padding-bottom:96px}}
@media (max-width:600px){.pp-head .logo{width:56px;height:56px}.pp-id h1{font-size:26px}}
.pf-photo{display:flex;flex-direction:column;gap:4px}.pf-photo img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r-md)}
.pf-day{padding:var(--s-2) 0;border-top:1px solid var(--line)}.pf-day .row{margin-top:var(--s-2)}
.crm-row{border-top:1px solid var(--line);padding-top:var(--s-3)}.crm-row summary{cursor:pointer}
/* Owner Health tab (0064) */
.hl-status.ok{border-left:4px solid var(--accent)}.hl-status.warn{border-left:4px solid #c98a00}
.hl-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--s-2);margin-top:var(--s-3)}
.hl-tile{display:flex;flex-direction:column;gap:2px;padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--elev-0)}
.hl-tile b{font-size:24px;line-height:1.1}
.hl-tile.warn{border-color:#e0b44a;background:#fdf6e3}.hl-tile.bad{border-color:#d9534f;background:#fbeaea}
.hl-chart{display:flex;align-items:flex-end;gap:3px;height:140px;margin-top:var(--s-4);padding-bottom:18px;position:relative}
.hl-col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;position:relative;min-width:0}
.hl-bar{display:block;width:100%;background:var(--accent);border-radius:3px 3px 0 0;min-height:2px}
.hl-lbl{position:absolute;bottom:-18px;font-size:10px;color:var(--text-2);white-space:nowrap}
.hl-col:nth-child(even) .hl-lbl{visibility:hidden}
.hl-cols{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4);margin-top:var(--s-3)}
.hl-table{width:100%;border-collapse:collapse;font-size:14px}.hl-table td,.hl-table th{text-align:left;padding:6px 4px;border-top:1px solid var(--line);vertical-align:top}
.hl-table td:last-child{text-align:right;white-space:nowrap}
.hl-alert{border-top:1px solid var(--line);padding-top:var(--s-2)}.hl-alert.new b{color:var(--text-1)}.hl-alert:not(.new){opacity:.7}
.hl-err{border-top:1px solid var(--line);padding-top:var(--s-2);display:flex;flex-direction:column;gap:4px}
.pre{white-space:pre-wrap}.err-text{color:#a33}.pill.bad{background:#fbeaea;color:#a33}
@media (max-width:600px){.hl-cols{grid-template-columns:1fr}}
.hl-bar.hh0{height:0%}.hl-bar.hh5{height:5%}.hl-bar.hh10{height:10%}.hl-bar.hh15{height:15%}.hl-bar.hh20{height:20%}.hl-bar.hh25{height:25%}.hl-bar.hh30{height:30%}.hl-bar.hh35{height:35%}.hl-bar.hh40{height:40%}.hl-bar.hh45{height:45%}.hl-bar.hh50{height:50%}.hl-bar.hh55{height:55%}.hl-bar.hh60{height:60%}.hl-bar.hh65{height:65%}.hl-bar.hh70{height:70%}.hl-bar.hh75{height:75%}.hl-bar.hh80{height:80%}.hl-bar.hh85{height:85%}.hl-bar.hh90{height:90%}.hl-bar.hh95{height:95%}.hl-bar.hh100{height:100%}
.hl-err .btn,.stack>.btn-sm{align-self:flex-start}
.owner-gate{max-width:560px}.mfa-qr{display:block;margin:var(--s-2) 0;background:#fff;padding:8px;border-radius:var(--r-md)}.mfa-key{word-break:break-all;font-size:15px}
.audit-row{border-top:1px solid var(--line);padding:var(--s-2) 0}.audit-row summary{cursor:pointer}.audit-pre{white-space:pre-wrap;word-break:break-word;background:var(--elev-2);padding:8px;border-radius:var(--r-md);font-size:12px;max-height:300px;overflow:auto}
/* Admin console shell (0067): left navigation on desktop, horizontal on phones */
body.adm main{max-width:none;padding:0;margin:0}
.adm-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:70vh}
.adm-side{border-right:1px solid var(--line);padding:var(--s-4) var(--s-3);display:flex;flex-direction:column;gap:var(--s-3);background:var(--elev-1)}
.adm-brand{font-weight:800;font-size:18px;letter-spacing:-.02em}
.adm-nav{display:flex;flex-direction:column;gap:2px}
.adm-group{font-size:11px;letter-spacing:.04em;color:var(--text-2);margin:var(--s-3) var(--s-2) 2px;font-weight:700}
.adm-link{display:block;padding:7px 10px;border-radius:var(--r-md);color:var(--text-1);text-decoration:none;font-weight:600;font-size:14px}
.adm-link:hover{background:var(--elev-2)}.adm-link[aria-current="true"]{background:var(--accent);color:#fff}
.adm-who{margin-top:auto;display:flex;flex-direction:column;gap:4px;font-size:13px;word-break:break-all}
.adm-view{padding:var(--s-4) var(--s-5);min-width:0}
.adm-title{margin:0 0 var(--s-4);font-size:26px;letter-spacing:-.02em}
.hl-table td.left{text-align:left;white-space:normal}
@media (max-width:860px){.adm-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}.adm-side{border-right:0;border-bottom:1px solid var(--line);padding:var(--s-3)}
  .adm-side{min-width:0;overflow:hidden}.adm-nav{flex-direction:row;overflow-x:auto;gap:var(--s-1);padding-bottom:4px;min-width:0;max-width:100%;-webkit-overflow-scrolling:touch}.adm-group{display:none}.adm-link{white-space:nowrap;flex:0 0 auto}
  .adm-who{margin-top:0;flex-direction:row;align-items:center;gap:var(--s-2)}.adm-view{padding:var(--s-4)}}
body.adm>header.bar,body.adm>footer{display:none}
body.adm{background:var(--elev-0)}
.join-start.join-one{grid-template-columns:1fr}
.finder .finder-sugg{grid-column:1/-1}.finder .finder-sugg:empty{display:none}
.mode-switch{display:flex;gap:var(--s-2);margin-top:var(--s-3)}
.preview-bar{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4);align-items:center;justify-content:space-between;padding:10px 16px;background:#fff4d6;border-bottom:1px solid #e8d48a;color:#3d3200;font-size:14px;position:sticky;top:0;z-index:60}
.preview-links{display:flex;flex-wrap:wrap;gap:var(--s-3)}.preview-links a{color:#3d3200;font-weight:600}.preview-links a.on{text-decoration:underline;text-underline-offset:3px}

/* Guide screenshots (pro guides, 2026-10-23): phone-width, framed. */
figure.shot{margin:1rem 0 0;max-width:360px}figure.shot img{display:block;width:100%;height:auto;border:1px solid var(--line,#ddd);border-radius:16px;box-shadow:0 6px 24px rgba(0,0,0,.08)}figure.shot figcaption{font-size:.9rem;color:var(--muted,#666);margin-top:.5rem}

/* Report a business (0079): honeypot field is off-screen for people, visible to bots that fill every field. */
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.pp-report summary{cursor:pointer;color:var(--muted,#666)}.pp-report[open]>*:not(summary){margin-top:.6rem}.pp-report select,.pp-report textarea{width:100%}

/* Header nav: the Services dropdown (a <details> summary) and the plain links share one box model so their text sits on the same line. */
nav.main a,.svc-menu>summary{display:inline-flex;align-items:center;line-height:1.25;box-sizing:border-box;min-height:36px}
.svc-menu{display:flex;align-items:center}
.svc-menu>summary::after{transform:translateY(-2px) rotate(45deg)}
nav.main>.svc-menu{margin:0;padding:0;height:36px;align-self:center}

.state-chips{gap:var(--s-2);margin:var(--s-3) 0}.state-chips .btn{border-radius:var(--r-pill)}
/* Area picker (2026-10-23): state, county, cities, single ZIP chips, file upload */
.area-picker select{max-width:260px}
.area-picker .row.wrap{flex-wrap:wrap;gap:var(--s-2)}
.area-picker input[type=search]{max-width:260px}
.city-list{max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:var(--r-2,10px);padding:0 var(--s-3)}
.city-list:empty{display:none}
.city-row{border-bottom:1px solid var(--line);padding:var(--s-1) 0}
.city-row .txt>span{display:block}
.city-zips{white-space:normal;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.city-row:last-child{border-bottom:0}
.city-row details{margin:0 0 var(--s-2) 58px}
.switch.part .track{background:linear-gradient(90deg,var(--switch-on) 50%,var(--switch-off) 50%)}
.zip-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--s-2)}
.zip-chips .chip{padding:4px 10px;border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--elev-0);font-size:13px;color:var(--text-1);cursor:pointer}
.zip-chips .chip[aria-pressed=true]{background:var(--switch-on);border-color:var(--switch-on);color:#fff}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Services card: search to add, price per service on the right */
.svc-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);border-bottom:1px solid var(--line)}
.svc-row:last-child{border-bottom:0}
.svc-row .switch{flex:1;width:auto}
.svc-price{display:flex;align-items:center;gap:6px;flex:none}
.svc-price input{width:96px;text-align:right}
.svc-price .small{white-space:nowrap}
.svc-head{display:flex;justify-content:space-between;align-items:end;gap:var(--s-3)}
/* Pro mode (2026-10-23): its own deep-green bar, Leads and Messages first, a home screen like a pro app */
header.bar.pro-bar{background:var(--navy);border-bottom:0;backdrop-filter:none;color:#fff;gap:var(--s-4)}
.pro-bar .brand{display:flex;align-items:center;gap:var(--s-2);color:#fff;text-decoration:none;font-weight:800;font-size:18px}
.pro-bar .pro-tag{background:var(--coral);color:var(--navy);font-size:12px;font-weight:800;border-radius:var(--r-pill);padding:2px 8px}
.pro-nav{display:flex;align-items:center;gap:var(--s-1);margin-left:auto;flex-wrap:wrap}
.pro-nav>a,.pro-acct>summary{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 var(--s-3);border-radius:var(--r-pill);color:#C9D6E3;text-decoration:none;font-weight:600;font-size:15px;cursor:pointer;list-style:none}
.pro-acct>summary::-webkit-details-marker{display:none}
.pro-nav>a:hover,.pro-acct>summary:hover{background:#ffffff1f;color:#fff}
.pro-nav>a[aria-current=page]{background:#fff;color:var(--navy)}
.pro-nav>a.pro-hire{background:var(--coral);color:var(--navy);font-weight:800}
.pro-nav>a.pro-hire:hover{background:#fff;color:var(--navy)}
.pro-badge{background:#e5484d;color:#fff;border-radius:var(--r-pill);font-size:12px;font-weight:800;padding:0 7px;line-height:18px}
.pro-acct{position:relative}
.pro-acct-panel{position:absolute;right:0;top:44px;min-width:240px;background:var(--elev-1);color:var(--text-1);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px #10203A26;padding:var(--s-3);display:flex;flex-direction:column;gap:2px;z-index:10}
.pro-acct-panel a{color:var(--text-1);text-decoration:none;padding:var(--s-2);border-radius:8px;font-weight:600}
.pro-acct-panel a:hover{background:var(--elev-2)}
.pro-acct-panel p{padding:var(--s-2);border-bottom:1px solid var(--line);margin-bottom:var(--s-1)}
.pro-hero{background:var(--navy);color:#fff;border-radius:16px;padding:var(--s-5) var(--s-5)}
.pro-hero h1{color:#fff;font-size:32px;line-height:40px}
.pro-hero p{color:#C9D6E3}
.pro-activity{gap:0}
.pro-activity h2{margin-bottom:var(--s-2)}
.pro-stat{display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:var(--s-3);padding:var(--s-3) 0;border-top:1px solid var(--line);color:var(--text-1);text-decoration:none}
.pro-stat .n{font-size:32px;font-weight:800;line-height:1}
.pro-stat b{display:block;color:var(--accent);font-size:17px}
.pro-stat .chev{color:var(--text-3);font-weight:700}
.pro-stat:hover b{text-decoration:underline}
.pro-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--s-3)}
.pro-tool{display:flex;flex-direction:column;gap:4px;padding:var(--s-4);border:1px solid var(--line);border-radius:12px;background:var(--elev-0);color:var(--text-1);text-decoration:none}
.pro-tool:hover{border-color:var(--accent)}
@media (max-width:720px){header.bar.pro-bar{flex-wrap:wrap;gap:var(--s-2)}.pro-nav{margin-left:0;width:100%;overflow-x:auto;flex-wrap:nowrap}.pro-nav>a,.pro-acct>summary{font-size:14px;padding:0 var(--s-2);white-space:nowrap}.pro-acct-panel{position:fixed;right:12px;top:auto}}
.flash{outline:3px solid var(--focus);outline-offset:4px;transition:outline-color 1.2s}
/* Settings side panel (2026-10-23) */
.side-layout{display:grid;grid-template-columns:220px 1fr;gap:var(--s-5);align-items:start}
.side-nav{position:sticky;top:96px;display:flex;flex-direction:column;gap:2px;padding:var(--s-2);background:var(--elev-1);border:1px solid var(--line);border-radius:12px}
.side-nav button,.side-nav a{display:block;text-align:left;background:none;border:0;padding:10px 12px;border-radius:8px;font-weight:600;color:var(--text-2);text-decoration:none;cursor:pointer;font-size:15px}
.side-nav button:hover,.side-nav a:hover{background:var(--elev-2);color:var(--text-1)}
.side-nav button[aria-current=true]{background:var(--navy);color:#fff}
.side-nav a{border-top:1px solid var(--line);border-radius:0;margin-top:2px;font-weight:500}
.side-body{min-width:0}
@media (max-width:760px){.side-layout{grid-template-columns:1fr;gap:var(--s-3)}.side-nav{position:static;flex-direction:row;overflow-x:auto;white-space:nowrap}.side-nav a{border-top:0;margin-top:0}}
.switch.mini{width:auto;padding:0;gap:6px;align-items:center}
.switch.mini .txt span{font-size:13px;color:var(--text-2)}
.svc-price{gap:var(--s-3)}
@media (max-width:560px){.svc-row{flex-wrap:wrap}.svc-price{width:100%;justify-content:flex-end;padding-bottom:var(--s-2)}}
.addons{margin-top:var(--s-4)}
.addons .qk[aria-pressed=true]{background:var(--switch-on);color:#fff;border-color:var(--switch-on)}
.addons .qk[aria-pressed=true]::before{content:"\2713  "}
.filter-bar{gap:var(--s-2);flex-wrap:wrap}.filter-bar input,.filter-bar select{width:auto;min-width:140px;flex:1}.filter-bar .w-zip{max-width:110px;flex:0}
.svc-price .typ{white-space:nowrap}
.cust-card{border-top:1px solid var(--line);margin-top:var(--s-3);padding-top:var(--s-3)}
.cust-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--s-2) var(--s-3)}
.cust-grid .field{margin:0}
/* Pro inbox (2026-10-23): conversations, chat, lead panel */
body.pro-mode main{max-width:1320px}
.inbox{display:grid;grid-template-columns:260px minmax(0,1fr) 320px;gap:0;border:1px solid var(--line);border-radius:14px;background:var(--elev-1);min-height:640px;overflow:hidden}
.inbox-list{border-right:1px solid var(--line);overflow:auto;max-height:78vh;display:flex;flex-direction:column}
.inbox-list button{display:flex;flex-direction:column;gap:2px;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:12px 14px;cursor:pointer;color:var(--text-1)}
.inbox-list button:hover{background:var(--elev-2)}
.inbox-list button[aria-current=true]{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--navy)}
.inbox-list .clip{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inbox-chat{display:flex;flex-direction:column;min-width:0;padding:12px 16px}
.inbox-head{border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:8px}
.inbox-chat .chat{display:flex;flex-direction:column;flex:1;min-height:0}
.inbox-chat .msgs{flex:1;max-height:58vh;overflow:auto}
.bub.sys{background:var(--elev-2);max-width:85%;align-self:flex-start}
.center{text-align:center}
.req-card{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.inbox-side{border-left:1px solid var(--line);padding:16px;overflow:auto;max-height:78vh}
.side-sec{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:6px}
.side-sec summary{cursor:pointer;list-style:none}
.comp-row{display:grid;grid-template-columns:36px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.comp-row .av{width:32px;height:32px;border-radius:50%;background:var(--accent-soft);display:grid;place-items:center;font-weight:700;font-size:12px;color:var(--navy)}
.mk{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.mk small{display:block;color:var(--text-2)}
.compose{display:flex;gap:8px;align-items:flex-end}
.compose textarea{flex:1}
.btn.block{width:100%;justify-content:center}
@media (max-width:1000px){.inbox{grid-template-columns:220px minmax(0,1fr)}.inbox-side{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);max-height:none}}
@media (max-width:640px){.inbox{grid-template-columns:1fr}.inbox-list{max-height:200px;border-right:0;border-bottom:1px solid var(--line)}}
.svc-group{display:flex;flex-direction:column}
.svc-glabel{font-size:13px;font-weight:700;color:var(--text-2);margin:8px 0 4px}
.svc-item{border-bottom:1px solid var(--line)}
.svc-item>summary{display:flex;justify-content:space-between;align-items:center;padding:14px 4px;cursor:pointer;list-style:none}
.svc-item>summary::-webkit-details-marker{display:none}
.svc-item>summary b{display:block}
.svc-item>summary .chev{color:var(--text-3);font-weight:700;transition:transform .15s}
.svc-item[open]>summary .chev{transform:rotate(90deg)}
.svc-body{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:0 4px 14px}
.rec-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:1px dashed var(--line-strong);border-radius:10px}
.rec-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.rec-card{display:flex;flex-direction:column;gap:8px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--elev-0)}.rec-card .btn{align-self:flex-start;margin-top:auto}
/* Compact leads (2026-10-23): one line each, arrow opens details */
.card.lead{padding:10px 14px}
.lead-row{display:flex;align-items:center;gap:12px;cursor:pointer;min-height:44px}
.lead-chev{background:none;border:0;font-weight:800;color:var(--text-3);width:28px;height:28px;border-radius:50%;cursor:pointer;transition:transform .15s;flex:none}
.lead-chev:hover{background:var(--elev-2);color:var(--text-1)}
.card.lead.open .lead-chev{transform:rotate(90deg)}
.lead-main{display:flex;flex-direction:column;min-width:0;flex:1}
.lead-main .small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lead-meta{display:flex;align-items:center;gap:8px;flex:none}
.lead-body{padding:4px 0 6px 40px}
.card.lead+.card.lead{margin-top:6px}
@media (max-width:640px){.lead-row{flex-wrap:wrap}.lead-meta{width:100%;justify-content:flex-end}.lead-body{padding-left:0}}
.card.lead .lead-row>.lead-chev{display:grid;place-items:center;padding:0;margin:0;min-height:0;font-size:24px;line-height:1;align-self:center}
.card.lead .lead-chev>span{display:block;transform:translateY(-1px)}
.own-preview{background:#fff4d6;border:1px solid #e9c46a;margin-bottom:16px}
/* Pro badges (0100) */
.badges{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 2px}
.badges .rating{display:inline-flex;align-items:center;gap:4px;margin-right:4px;font-size:14px}
.badges .stars{color:#e8a317;letter-spacing:1px}
.bdg{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;background:var(--elev-2);color:var(--text-2)}
.bdg.ok{background:var(--accent-soft);color:var(--ok-ink)}
.bdg.ok::before{content:"\2713";margin-right:4px}
.bdg.gold{background:#fdf0cf;color:#7a5200}
.bdg.gold::before{content:"\2605";margin-right:4px}
.bdg.fast{background:#e7effd;color:#1f4fa8}
.pp-hero .pp-badges .badges .rating{display:none}
/* Quick look on pro cards (0101) */
.ql-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px 16px;margin-top:4px}
.ql-row>a{padding-top:4px}
.ql{flex:1 1 100%;order:0}
.ql>summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:14px;font-weight:600;color:var(--accent);list-style:none;padding:4px 0}
.ql>summary::-webkit-details-marker{display:none}
.ql>summary::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .15s}
.ql[open]>summary::after{transform:translateY(1px) rotate(-135deg)}

.ql-body{display:flex;flex-direction:column;gap:8px;margin-top:6px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--elev-0);max-height:420px;overflow:auto}
.ql-facts{margin:0;padding-left:18px;columns:2;gap:16px;font-size:14px}
.ql-bars{display:flex;flex-direction:column;gap:3px;max-width:320px}
.ql-bar{display:grid;grid-template-columns:34px 1fr 28px;align-items:center;gap:8px;font-size:12px}
.ql-bar .track{height:8px;border-radius:4px;background:var(--elev-2);overflow:hidden}
.ql-bar .fill{display:block;height:100%;background:#e8a317}
.ql-rev{border-top:1px solid var(--line);padding-top:8px}
.ql-rev .stars{color:#e8a317;font-size:13px;letter-spacing:1px}
@media (max-width:560px){.ql-facts{columns:1}}
.ql-row{position:relative}
.ql-row>a{position:absolute;left:130px;top:4px;padding-top:0}
.bdg.new{background:#efe7fb;color:#5b2c9a}
/* Deals (0105) */
.deal-filters input{max-width:180px}.deal-filters select{max-width:260px}
.card.deal{display:flex;flex-direction:column;gap:10px;border-left:6px solid #e8a317}
.deal-offer h2{font-size:26px;line-height:32px;color:var(--navy)}
.deal-tag{display:inline-block;font-size:12px;font-weight:700;color:#7a5200;background:#fdf0cf;border-radius:999px;padding:2px 10px;margin-bottom:6px}
.deal-pro{gap:12px;align-items:center}
.deal-report summary{cursor:pointer}
.deal-claim{border-left:6px solid #e8a317;display:flex;flex-direction:column;gap:4px;margin-bottom:12px}
.deal-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:10px 0}.deal-row .switch{width:auto}
.deal-cta{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px}
.deal-foot{display:flex;gap:24px;flex-wrap:wrap;align-items:flex-start}
.deal-foot details>summary{cursor:pointer;padding:2px 0}
.card.deal{gap:8px}
.deal-price{font-size:40px;line-height:44px;font-weight:800;color:var(--navy)}.deal-offer h2{font-size:20px;line-height:26px}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.kpi{display:flex;flex-direction:column;gap:2px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--elev-1)}
.kpi b{font-size:24px}
.tbl-wrap{overflow:auto}
.tbl tr.click{cursor:pointer}.tbl tr.click:hover{background:var(--elev-2)}

/* Admin find (2026-10-23) */
.adm-find input{width:100%;min-height:40px;border-radius:var(--r-2,10px)}
.find-row{display:block;width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit}
.find-row:hover,.find-row:focus-visible{border-color:var(--accent,var(--accent))}
/* Remote pros (0116) */
.zip-row{display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:var(--s-3,12px);align-items:end}
.zip-row .remote-sw{padding-bottom:6px}
@media (max-width:640px){.zip-row{grid-template-columns:1fr}}
.side-by-side{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4,16px);align-items:start}
@media (max-width:860px){.side-by-side{grid-template-columns:1fr}}
.remote-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--s-2,8px)}
.remote-item{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:inherit}
.remote-item:hover,.remote-item:focus-visible{border-color:var(--accent,var(--accent))}
/* ---- infinibell layer (2026-10-23): white cards on mist, teal actions, one coral main action, navy pro bar ---- */
body{-webkit-font-smoothing:antialiased}
h1,h2,h3{letter-spacing:-.015em;font-weight:800}
.top-hero h1,.hero h1{letter-spacing:-.025em}
a{color:var(--accent-ink)}
.ib-logo{display:inline-flex;align-items:baseline;font-family:var(--font-display);font-weight:800;font-size:30px;line-height:1;letter-spacing:-.035em;color:var(--navy)}
.ib-i{position:relative;display:inline-block}
.ib-bell{position:absolute;left:50%;bottom:.6em;width:.5em;height:.5em;margin-left:-.2em;color:var(--coral)}
.brand{display:inline-flex;align-items:center;padding-top:6px}
footer.site .ib-logo{font-size:22px}
header.bar{background:#FFFFFFeb;border-bottom:1px solid var(--line)}
.card{background:var(--elev-1);border-color:var(--line);box-shadow:var(--lift)}
.card.flat{box-shadow:none}
.btn-primary{background:var(--accent);color:var(--on-accent)}
.btn-primary:hover{background:var(--accent-hover)}
.btn-quiet{background:var(--elev-1)}
.btn-cta,.btn.btn-cta{background:var(--cta);color:var(--on-cta);font-size:19px;font-weight:800;padding:14px 26px}
.btn-cta:hover{background:var(--cta-hover);color:var(--on-cta);box-shadow:0 0 0 4px #FF6B5733}
.pill{background:var(--elev-2);color:var(--text-2)}
.pill.ok{background:var(--ok-bg);color:var(--ok-ink)}
.pill.new{background:var(--coral-soft);color:var(--coral-ink)}
input[type=text],input[type=search],input[type=url],input[type=date],input[type=email],input[type=tel],input[type=number],input[type=password],input[type=time],select,textarea{background:#fff;border-color:var(--line-strong)}
input:focus,select:focus,textarea:focus{background:#fff;border-color:var(--teal)}
.pro-bar .ib-logo{color:#fff;font-size:24px}
.pro-bar .pro-tag{background:var(--coral);color:var(--navy)}
.pro-nav>a[aria-current=page]{background:transparent;color:#fff;box-shadow:inset 0 -3px 0 var(--teal);border-radius:0}
.pro-badge{background:var(--coral);color:var(--navy)}
.pro-hero{background:var(--navy)}
.pro-tool{background:#fff;box-shadow:var(--lift)}
.pro-stat b{color:var(--accent-ink)}
.side-nav{background:#fff;box-shadow:var(--lift)}
.side-nav button[aria-current=true]{background:var(--accent-soft);color:var(--accent-ink);box-shadow:inset 3px 0 0 var(--teal)}
.inbox-list button[aria-current=true]{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--teal)}
nav.main a[aria-current=page]{border-color:var(--teal)}
.top-hero h1{color:var(--navy)}
/* Reading pages (guides, help, blog, legal): text column under 72 characters, FAQ and link lists as cards */
.sect>p,.sect>div>p,.sect ul.asks,.sect ol,.sect .lede-dark,.sect>div>h3{max-width:70ch}
.sect>details{max-width:780px;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 18px;margin:0 0 var(--s-2);box-shadow:var(--lift)}
.sect>details>summary{cursor:pointer;font-weight:700;color:var(--navy)}
.sect>details[open]>summary{margin-bottom:var(--s-2)}
.sect>details>p{max-width:68ch;color:var(--text-2)}
ul.linkgrid{list-style:none;padding:0}
ul.linkgrid li a{display:block;height:100%;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;text-decoration:none;font-weight:700;color:var(--navy);box-shadow:var(--lift)}
ul.linkgrid li a:hover,ul.linkgrid li a:focus-visible{border-color:var(--teal);color:var(--accent-ink)}
.crumbs a{color:var(--text-2)}
/* Badges in brand tints */
.bdg.ok{background:var(--accent-soft);color:var(--ok-ink)}
.bdg.fast{background:var(--accent-soft);color:var(--ok-ink)}
.bdg.fast::before{content:"\26A1";margin-right:3px;font-size:11px}
.bdg.new{background:var(--coral-soft);color:var(--coral-ink)}
.bdg.gold{background:#FFF1D6;color:#7A4B00}
/* Request page (screen 01) */
main.req-page{max-width:1240px}
.req-head{padding:var(--s-2) 0 var(--s-4)}
.req-head h1{margin:0 0 var(--s-1)}
.req-head p{color:var(--text-2);margin:0}
.req-form{display:flex;flex-direction:column;gap:var(--s-4)}
.req-form>.card{margin:0}
.req-job-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.3fr) minmax(0,1.4fr);gap:var(--s-4);align-items:start}
.req-job-row label.field{margin-bottom:var(--s-2)}
.req-job .zip-row{display:flex;gap:var(--s-3);align-items:flex-end}
.req-job .zip-row>label{flex:0 0 120px}
.req-job .remote-sw{flex:1;padding-bottom:var(--s-2)}
.req-job .remote-sw .switch{align-items:center}
.req-job .remote-sw .txt span{display:none}
.req-job .req-photo{display:none}
.req-pros>h2[hidden]+div:empty{display:none}
.req-pros{display:flex;flex-direction:column;gap:var(--s-3)}
.req-pros>.stack,.pick-col{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s-5);box-shadow:var(--lift)}
.side-by-side{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4);align-items:start}
.req-pros .side-by-side .pick-col{margin:0}
.req-pros>.stack:has(>.side-by-side){background:none;border:0;padding:0;box-shadow:none}
.pick-head{margin-bottom:var(--s-2)}
.pro-pick{display:flex;gap:var(--s-3);align-items:flex-start;padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:#fff}
.pro-pick+.pro-pick{margin-top:0}
.pro-pick:has(.switch[aria-checked=true]){border-color:var(--teal);box-shadow:0 0 0 1px var(--teal)}
.pro-pick .logo{width:64px;height:64px}
.pro-pick .grow{min-width:0;flex:1;display:flex;flex-direction:column;gap:6px}
.pro-pick .switch{flex-direction:row-reverse;justify-content:space-between;align-items:center;padding:0}
.pro-pick .switch .txt b{font-size:17px;font-weight:800;color:var(--navy)}
.pro-pick .switch .txt span{display:block}
.pro-pick .badges,.pro-pick .bdgs{display:flex;flex-wrap:wrap;gap:6px}
.pro-pick .pp-tags{display:flex;gap:6px}
.pro-pick .ql-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:var(--s-2);margin-top:2px}
.pro-pick.top-match{border-color:var(--line)}
.req-contact h2{margin-bottom:var(--s-3)}
.req-contact>.stack:first-of-type{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}
.req-contact .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.req-send{display:flex;gap:var(--s-4);align-items:center;background:var(--elev-0);border-radius:var(--r-lg);padding:var(--s-3) var(--s-3) var(--s-3) var(--s-4);margin-top:var(--s-3)}
.req-send>div{flex:1}
.req-send .btn-cta{width:auto;flex:none;min-width:240px}
@media (max-width:980px){.req-job-row{grid-template-columns:1fr}.side-by-side{grid-template-columns:1fr}.req-contact>.stack:first-of-type{grid-template-columns:1fr}}
@media (max-width:640px){.req-send{flex-direction:column;align-items:stretch}.req-send .btn-cta{width:100%;min-width:0}.req-contact .grid{grid-template-columns:1fr}.pro-pick .logo{width:48px;height:48px}}
.logo.ph{background:var(--accent-soft);color:var(--accent-ink);font-weight:800;font-size:22px;border:0}
.req-pros>.stack:not(:has(>.side-by-side)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3)}
.req-pros>.stack:not(:has(>.side-by-side))>*{margin:0}
.req-pros>.stack:not(:has(>.side-by-side))>:not(.pro-pick){grid-column:1/-1}
.req-pros>.stack>.stack:not([hidden]){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3)}
.pick-col>.stack:not([hidden]){display:flex;flex-direction:column}
.pick-head{gap:var(--s-3);align-items:flex-start;margin-bottom:var(--s-1)}
.pick-count{font-weight:700;color:var(--accent-ink);white-space:nowrap}
.pro-pick .ql-row a{color:var(--accent-ink);font-weight:700;text-decoration:none;font-size:14px}
.pro-pick .ql summary{color:var(--accent-ink);font-weight:700;font-size:14px}
.pick-col .pro-pick{margin:0}
@media (max-width:980px){.req-pros>.stack:not(:has(>.side-by-side)),.req-pros>.stack>.stack:not([hidden]){grid-template-columns:1fr}}
.req-pros .pick-col{display:flex!important;flex-direction:column;gap:var(--s-3)}
.req-pros>.stack>.pick-col{border:0;padding:0;box-shadow:none;background:none}
.pro-pick .ql-row{align-items:flex-start}
.pro-pick .ql>summary{padding:0;line-height:21px}
.pro-pick .ql-row>a{line-height:21px}
.req-people{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-3);margin-top:var(--s-4)}
.req-people label.field{margin-bottom:var(--s-2)}
@media (max-width:980px){.req-people{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.req-people{grid-template-columns:1fr}}
/* Header: five links and one teal "Request a pro" button */
nav.main a.nav-cta{background:var(--accent);color:#fff;padding:var(--s-2) var(--s-4)}
nav.main a.nav-cta:hover,nav.main a.nav-cta[aria-current=page]{background:var(--accent-hover);color:#fff}
nav.main a[aria-current=page]{background:var(--accent-soft);color:var(--accent-ink)}
/* Homepage (2026-10-23): each section has one job and its own surface */
.hero3{padding:var(--s-7) 0 var(--s-7)}
.hero3-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--s-7);align-items:center}
.hero3-copy h1{font-size:clamp(40px,5vw,62px);line-height:1.04;letter-spacing:-.03em;margin:0 0 var(--s-3);max-width:12ch}
.hero3-lede{font-size:20px;line-height:30px;color:var(--text-2);max-width:40ch;margin:0 0 var(--s-5)}
.hero3-form{display:grid;grid-template-columns:1fr 130px auto;gap:var(--s-2);background:#fff;border:1px solid var(--line);border-radius:16px;padding:var(--s-2);box-shadow:0 2px 4px #10203A0d,0 16px 40px #10203A1a;max-width:640px}
.hero3-form input{margin:0;border:0;background:var(--elev-0);height:54px}
.hero3-q{position:relative;display:block}
.hero3-q .ico{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--text-3);pointer-events:none}
.hero3-q input{padding-left:44px}
.hero3-form .btn-cta{height:54px;padding:0 26px;font-size:18px}
.hero3-facts{list-style:none;padding:0;margin:var(--s-4) 0 0;display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);color:var(--text-2);font-size:14px}
.hero3-facts li{display:flex;align-items:center;gap:6px}
.hero3-facts .ico{width:18px;height:18px;color:var(--teal)}
.hero3-media{position:relative;margin:0;aspect-ratio:5/4;border-radius:24px;overflow:hidden;background:var(--accent-soft)}
.hero3-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero3-media.noimg img{display:none}
/* Full-width bands without wrappers */
.cat-icons-sect,.remote-row{position:relative}
.cat-icons-sect{background:#fff;box-shadow:0 0 0 100vmax #fff;clip-path:inset(0 -100vmax);padding-top:var(--s-7);padding-bottom:var(--s-7)}
.cat-icons a{border:1px solid transparent}
.cat-icons a:hover{background:var(--elev-0);border-color:var(--line)}
.cat-ico{background:var(--accent-soft);color:var(--accent-ink)}
.sec-row{margin-bottom:var(--s-4);align-items:flex-end;gap:var(--s-4)}
.sec-more{font-weight:700;text-decoration:none;white-space:nowrap}
.deal-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-4)}
.deal-mini{display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s-4);text-decoration:none;color:var(--text-1);box-shadow:var(--lift)}
.deal-mini:hover{border-color:var(--teal)}
.deal-mini .deal-tag{align-self:flex-start}
.deal-mini-price{font-size:34px;line-height:40px;font-weight:800;color:var(--navy);margin-top:var(--s-2)}
.deal-mini-offer{font-weight:700}
.deal-mini-pro{color:var(--accent-ink);font-weight:600;font-size:14px;margin-top:auto;padding-top:var(--s-2)}
.remote-row{background:var(--accent-soft);box-shadow:0 0 0 100vmax var(--accent-soft);clip-path:inset(0 -100vmax);padding-top:var(--s-7);padding-bottom:var(--s-7)}
.remote-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-3)}
.remote-tiles a{display:flex;align-items:center;gap:var(--s-3);background:#fff;border-radius:var(--r-lg);padding:var(--s-3) var(--s-4);text-decoration:none;color:var(--navy);font-weight:700;border:1px solid transparent}
.remote-tiles a:hover{border-color:var(--teal)}
.remote-tiles .cat-ico{width:40px;height:40px;flex:none}
.remote-tiles .cat-ico .ico{width:20px;height:20px}
/* How it works: plain numbered columns, no cards */
main.full .steps{gap:var(--s-6)}
main.full .step{background:none;border:0;border-top:3px solid var(--line);border-radius:0;padding:var(--s-4) 0 0}
main.full .step b.n{background:var(--coral);color:var(--navy);width:36px;height:36px;font-size:17px}
/* Pro band: navy */
.proband{background:var(--navy);color:#fff;border-radius:24px}
.proband-copy h2{color:#fff}
.proband-copy p{color:#C9D6E3}
.proband .checks li{color:#E6EDF3}
.proband .checks .ico{color:var(--coral)}
.proband .btn-primary{background:var(--coral);color:var(--navy)}
.proband .btn-primary:hover{background:#FF8574;color:var(--navy)}
.proband-media{background:#1B2F4F}
@media (max-width:980px){.hero3-grid{grid-template-columns:1fr;gap:var(--s-5)}.hero3-media{aspect-ratio:16/9}.deal-strip,.remote-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.hero3{padding:var(--s-5) 0}.hero3-form{grid-template-columns:1fr 1fr}.hero3-q{grid-column:1/-1}.hero3-media{display:none}.cat-icons{grid-template-columns:repeat(3,1fr)}.deal-strip{grid-template-columns:1fr}}
.i-search{--i:url(/icons/search.svg)}
.deals-row{padding-bottom:var(--s-7)}
.deal-strip{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
/* Pro home (screen 03) */
.pro-home>.card{margin:0}
.pro-welcome{align-items:flex-end;gap:var(--s-3);padding:var(--s-2) 0}
.pro-welcome h1{font-size:34px;line-height:40px}
.warn-line{color:var(--warn-ink);font-weight:600;margin-top:4px}
.pro-home-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4);align-items:stretch}
.pro-home-grid.wide-left{grid-template-columns:2fr 1fr}
.pro-home-grid>.card{margin:0}
.ov-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-3);margin-top:var(--s-3)}
.ov-tile{border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-3) var(--s-4);display:flex;flex-direction:column;gap:2px}
.ov-tile b{font-size:28px;line-height:34px;font-weight:800;color:var(--navy)}
.ov-tile span{font-size:14px;color:var(--text-2)}
.ov-tile:last-child{grid-column:span 2}
.pro-home .rec-cards{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.rec-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg)}
.pro-tool .ico{color:var(--accent-ink);width:26px;height:26px;margin-bottom:var(--s-2)}
.pro-tools{grid-template-columns:repeat(4,minmax(0,1fr))}
.pro-stat .n{color:var(--navy)}
@media (max-width:900px){.pro-home-grid,.pro-home-grid.wide-left{grid-template-columns:1fr}.pro-tools{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ov-tile b.txt{font-size:20px}.side-stack>.card{margin:0}.side-stack{gap:var(--s-4)}
/* Customer account (screen 02) */
main.cust-main{max-width:1180px}
.cust-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--s-5);align-items:start;margin-top:var(--s-4)}
.cust-nav{position:sticky;top:88px;display:flex;flex-direction:column;gap:var(--s-2);background:#fff;border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s-3);box-shadow:var(--lift)}
.cust-nav .cust-new{font-size:15px;padding:10px 14px;text-align:center;margin-bottom:var(--s-2)}
.cust-nav .tabs{display:flex;flex-direction:column;gap:2px;border:0;margin:0;padding:0}
.cust-nav .tabs button{text-align:left;border:0;border-radius:8px;padding:10px 12px;font-weight:600;color:var(--text-2);background:none;box-shadow:none}
.cust-nav .tabs button:hover{background:var(--elev-0);color:var(--text-1)}
.cust-nav .tabs button[aria-selected=true]{background:var(--accent-soft);color:var(--accent-ink);box-shadow:inset 3px 0 0 var(--teal)}
.cust-view>div>.card{margin-bottom:var(--s-3)}
.cust-view .who-btn{display:none}
.cust-view .row.between.mt2{padding:var(--s-2) 0;border-top:1px solid var(--line)}
@media (max-width:860px){.cust-layout{grid-template-columns:1fr}.cust-nav{position:static;flex-direction:row;align-items:center;overflow-x:auto;padding:var(--s-2)}.cust-nav .tabs{flex-direction:row}.cust-nav .cust-new{margin:0;flex:none}.cust-nav .tabs button{white-space:nowrap}}
/* Creators page */
main.creators-page{max-width:1080px}
.cr-hero{padding:var(--s-5) 0 var(--s-4)}.cr-hero h1{max-width:18ch}.cr-hero .lede{font-size:19px;line-height:29px;color:var(--text-2);max-width:60ch}
.cr-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-5);margin:var(--s-4) 0 var(--s-6)}
.cr-step{border-top:3px solid var(--line);padding-top:var(--s-4)}.cr-step b.n{display:inline-flex;width:34px;height:34px;border-radius:50%;background:var(--coral);color:var(--navy);align-items:center;justify-content:center;margin-bottom:var(--s-2)}
.cr-step p{color:var(--text-2);margin:0}
.cr-rules ul{padding-left:20px;margin:0 0 var(--s-3)}.cr-rules li{margin-bottom:var(--s-2);max-width:72ch}
.cr-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:0 var(--s-4)}
.cr-linkrow{flex-wrap:wrap;gap:var(--s-2)}.cr-linkrow select{width:auto;margin:0}.cr-link{background:var(--elev-0);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:14px;flex:1;min-width:220px;word-break:break-all}
.cr-tiles .ov-tile:last-child{grid-column:auto}.cr-note{margin-top:var(--s-3)}
.cr-earn{list-style:none;padding:0;margin:0}.cr-earn li{padding:var(--s-2) 0;border-top:1px solid var(--line)}
@media (max-width:760px){.cr-steps{grid-template-columns:1fr}}
.rate-in{max-width:110px;display:inline-block}
/* Affiliate pages */
main.aff-main{max-width:1180px}
.aff-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--s-6);align-items:start}
.aff-nav{position:sticky;top:88px;display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s-3);box-shadow:var(--lift)}
.aff-nav a{padding:10px 12px;border-radius:8px;text-decoration:none;color:var(--text-2);font-weight:600;font-size:15px}
.aff-nav a:hover{background:var(--elev-0);color:var(--text-1)}
.aff-nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent-ink);box-shadow:inset 3px 0 0 var(--teal)}
.aff-nav a.aff-apply{margin-top:var(--s-2);background:var(--cta);color:#fff;text-align:center}
.aff-nav a.aff-apply[aria-current=page]{background:var(--cta-hover);color:#fff;box-shadow:none}
.aff-body{min-width:0}.aff-body>h1{margin-top:0}
.aff-body .lede{font-size:19px;line-height:29px;color:var(--text-2);max-width:62ch}
.aff-body>p,.aff-body section p,.aff-body li{max-width:70ch}
.aff-tiers{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}
.aff-steps{padding-left:22px}.aff-steps li{margin-bottom:var(--s-3)}.aff-steps.big li{margin-bottom:var(--s-4)}
.aff-rules{padding-left:22px}.aff-rules li{margin-bottom:var(--s-4)}.aff-rules h3{margin:0 0 4px}
.aff-examples{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}.aff-examples .card.ok{border-top:4px solid var(--teal)}.aff-examples .card.bad{border-top:4px solid var(--cta)}
.aff-examples ul{padding-left:20px;margin:0}
.aff-cta{display:flex;justify-content:space-between;align-items:center;gap:var(--s-4);background:var(--navy);color:#fff;border-radius:var(--r-card);padding:var(--s-5);margin-top:var(--s-6)}
.aff-cta p{color:#C9D6E3}.aff-cta .btn-cta{flex:none}
.aff-calc{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5)}
.aff-calc-out{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3);align-content:start}.aff-calc-out .full{grid-column:1/-1}
.aff-q{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 18px;margin-bottom:var(--s-2);max-width:780px}
.aff-q summary{font-weight:700;cursor:pointer}.aff-q p{margin:var(--s-2) 0 0;color:var(--text-2)}
.aff-ack .switch{border-top:1px solid var(--line);padding:var(--s-3) 0}
.aff-ack .switch .txt span{max-width:70ch;display:block}
.aff-tier-pick{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3)}
.aff-tier-btn{display:flex;flex-direction:column;gap:4px;text-align:left;cursor:pointer;margin:0;font-weight:400}
.aff-tier-btn[aria-checked=true]{border-color:var(--teal);box-shadow:0 0 0 2px var(--teal)}
.aff-table{width:100%;border-collapse:collapse;font-size:15px}.aff-table th,.aff-table td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line)}.aff-table th{color:var(--text-2);font-weight:600}
.cr-linkrow input{flex:1;min-width:200px;margin:0}
@media (max-width:860px){.aff-layout{grid-template-columns:1fr}.aff-nav{position:static;flex-direction:row;overflow-x:auto;white-space:nowrap}.aff-tiers,.aff-examples,.aff-calc,.aff-tier-pick{grid-template-columns:1fr}.aff-cta{flex-direction:column;align-items:flex-start}}
.aff-table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--lift)}
.aff-table-wrap .aff-table td,.aff-table-wrap .aff-table th{padding:10px 12px;white-space:nowrap}
.aff-howto ol{padding-left:20px;margin:var(--s-2) 0 0}.aff-howto li{margin-bottom:var(--s-2)}
.pill.warn{background:var(--warn-bg);color:var(--warn-ink)}
.aff-ladder{max-width:520px;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg)}
.big-rate{font-size:30px;color:var(--navy)}
.ladder-bar{display:flex;gap:6px;flex-wrap:wrap}.ladder-bar span{padding:6px 10px;border-radius:var(--r-pill);background:var(--elev-2);color:var(--text-2);font-size:13px;font-weight:600}.ladder-bar span.on{background:var(--accent-soft);color:var(--accent-ink)}
.aff-code{width:100%;font:13px/1.45 ui-monospace,Menlo,Consolas,monospace;background:var(--elev-0);border:1px solid var(--line);border-radius:10px;padding:10px 12px;resize:vertical}
.aff-preview{border:1px dashed var(--line-strong);border-radius:var(--r-lg);padding:var(--s-3);background:var(--elev-0)}
.aff-prev-search{display:flex;flex-wrap:wrap;gap:8px;max-width:560px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff;margin-top:6px}
.aff-prev-search input{flex:2 1 200px;margin:0}.aff-prev-search input[name=zip]{flex:1 1 90px}.aff-prev-search .btn-cta{flex:1 1 120px;font-size:16px;padding:12px}.aff-prev-search p{flex-basis:100%}
.aff-prev-row{display:flex;flex-wrap:wrap;gap:var(--s-4);align-items:flex-start}
.aff-prev-card{display:flex;flex-direction:column;gap:8px;width:300px;height:250px;box-sizing:border-box;padding:22px;border-radius:14px;background:var(--navy);color:#fff;text-decoration:none}
.aff-prev-card .ib-name{font-size:24px}.aff-prev-card .t{font-size:21px;font-weight:700;margin-top:10px}.aff-prev-card .s{font-size:14px;color:#C9D6E3}.aff-prev-card .c{align-self:flex-start;margin-top:auto;padding:10px 16px;border-radius:10px;background:var(--cta);font-weight:700}
.aff-prev-card:hover{color:#fff}
/* Mobile hero: the photo becomes the background behind the headline (Andy 2026-10-23 "Need background photo") */
@media (max-width:640px){
  .hero3{position:relative;padding:var(--s-6) 0 var(--s-5);background:linear-gradient(180deg,#10203Acc 0%,#10203Ab3 55%,#10203Ae6 100%),url(/img/hero.webp) 62% center/cover no-repeat;color:#fff}
  .hero3-copy h1{color:#fff}
  .hero3-lede{color:#E6EDF3}
  .hero3-facts{color:#E6EDF3}.hero3-facts .ico{color:#7FD6D6}
  .hero3-form{box-shadow:0 8px 30px #0006}
}
.deal-zip-form{gap:var(--s-2);margin-bottom:var(--s-3)}.deal-zip-form input{width:120px;margin:0}
.deal-tabs{display:flex;gap:var(--s-2);margin-bottom:var(--s-3)}.deal-tabs button{border:1px solid var(--line);background:#fff;border-radius:var(--r-pill);padding:8px 16px;font-weight:700;color:var(--text-2)}.deal-tabs button[aria-selected=true]{background:var(--accent-soft);border-color:var(--teal);color:var(--accent-ink)}.deal-filters input.dim{opacity:.5}.deal-filters select{width:auto}
/* ===== Homepage v2: matches brand/infinibell-site-mockup-v4.png (Andy 2026-10-23) ===== */
.i-users{--i:url(/icons/users.svg)}.i-check{--i:url(/icons/check.svg)}.i-building{--i:url(/icons/building.svg)}.i-palette{--i:url(/icons/palette.svg)}.i-heart{--i:url(/icons/heart.svg)}.i-dots{--i:url(/icons/dots.svg)}
/* Header: links after the logo, Log in + Get started at the right */
nav.main{flex:1;justify-content:flex-start;margin-left:var(--s-6)}
.nav-end{margin-left:auto;display:flex;gap:var(--s-2);align-items:center}
nav.main a.nav-login{border:1px solid var(--line-strong);background:#fff;color:var(--text-1);padding:var(--s-2) var(--s-4)}
nav.main a.nav-login:hover{border-color:var(--text-2);background:#fff}
nav.main a.nav-cta{background:var(--cta);color:#fff;padding:var(--s-2) var(--s-4);font-weight:700}
nav.main a.nav-cta:hover,nav.main a.nav-cta[aria-current=page]{background:var(--cta-hover);color:#fff}
/* Hero: navy band, photo fades in from the right */
.hero4{position:relative;overflow:hidden;background:var(--navy);color:#fff;min-height:500px;display:flex;align-items:center}
.hero4-photo{position:absolute;inset:0 0 0 38%;margin:0}
.hero4-photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.hero4-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--navy) 0%,#10203Ad9 22%,#10203A66 50%,#10203A1a 100%)}
.hero4-photo.noimg{display:none}
.hero4-in{position:relative;z-index:1;width:100%;padding-top:var(--s-8);padding-bottom:var(--s-8)}
.hero4-copy{max-width:640px}
.hero4 h1{margin:0 0 var(--s-4);font-size:clamp(40px,5.4vw,68px);line-height:1.04;letter-spacing:-.03em;font-weight:800;color:#fff}
.hero4 h1 span{display:block}.hero4 h1 .hl{color:#2EC4B6}
.hero4-lede{font-size:20px;line-height:30px;color:#E1E9F0;max-width:34ch;margin:0 0 var(--s-5)}
.hero4-form{display:flex;align-items:stretch;background:#fff;border-radius:var(--r-lg);box-shadow:0 12px 40px #0000004d;max-width:620px;overflow:hidden}
.hero4-q{position:relative;flex:1 1 auto;display:block}
.hero4-q .ico{position:absolute;left:18px;top:50%;transform:translateY(-50%);width:22px;height:22px;color:var(--text-2);pointer-events:none}
.hero4-form input{margin:0;border:0;border-radius:0;background:#fff;height:62px;font-size:18px;box-shadow:none}
.hero4-q input{padding-left:52px;width:100%}
.hero4-zip{flex:0 0 96px;border-left:1px solid var(--line)}.hero4-zip input{width:100%;padding:0 14px}
.hero4-form input:focus{outline:2px solid var(--focus);outline-offset:-2px}
.hero4-form .btn-cta{flex:none;border-radius:0;height:auto;padding:0 30px;font-size:19px;margin:0}
.hero4-facts{list-style:none;padding:0;margin:var(--s-4) 0 0;display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);color:#C9D6E3;font-size:14px}
.hero4-facts li{display:flex;align-items:center;gap:6px}.hero4-facts .ico{width:18px;height:18px;color:#7FD6D6}
/* Group icon row: white band right under the hero, outline icons, no tiles */
.cat-band{padding-top:var(--s-6)!important;padding-bottom:var(--s-6)!important}
.cat-band .cat-icons{grid-template-columns:repeat(6,1fr)}
.cat-band .cat-ico{background:none;width:auto;height:auto;color:var(--teal)}
.cat-band .cat-ico .ico{width:38px;height:38px}
.cat-band .cat-icons a{font-weight:600;font-size:16px;color:var(--text-1)}
/* How it works: three columns, big outline icons, dividers, mist band */
.hiw-band{background:var(--mist)}
.hiw{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr)}
.hiw-step{display:flex;gap:var(--s-4);align-items:flex-start;padding:var(--s-2) var(--s-5)}
.hiw-step+.hiw-step{border-left:1px solid var(--line-strong)}
.hiw-step:first-child{padding-left:0}
.hiw-ico{color:var(--teal);flex:none}.hiw-ico .ico{width:52px;height:52px}
.hiw-step h3{margin:0 0 var(--s-1);font-size:20px;line-height:1.3;font-weight:700;color:var(--text-1)}
.hiw-step p{margin:0;color:var(--text-2);font-size:15px;line-height:1.5}
/* Popular categories: photo cards */
.pcats-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-4)}
.pcats-more{font-weight:700;color:var(--accent-ink);text-decoration:none;white-space:nowrap}.pcats-more:hover{text-decoration:underline}
.pcats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:var(--s-4)}
.pcat{display:block;text-decoration:none;color:var(--text-1)}
.pcat-media{position:relative;margin:0 0 var(--s-2);aspect-ratio:1/1;border-radius:var(--r-lg);overflow:hidden;background:var(--accent-soft);display:flex;align-items:center;justify-content:center}
.pcat-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform var(--t-fast)}
.pcat:hover .pcat-media img{transform:scale(1.03)}
.pcat-fb{color:var(--teal)}.pcat-fb .ico{width:48px;height:48px}
.pcat-media.noimg img{display:none}
.pcat-label{font-weight:700;font-size:15px;line-height:1.3}
/* Pro band: full-width navy */
.proband2{background:var(--navy);color:#fff;margin-top:var(--s-7)}
.proband2-in{display:grid;grid-template-columns:1.2fr .8fr;gap:var(--s-6);align-items:center;padding-top:var(--s-7);padding-bottom:var(--s-7)}
.proband2-copy h2{margin:0 0 var(--s-2);font-size:clamp(28px,3.2vw,38px);line-height:1.1;letter-spacing:-.025em;color:#fff}
.proband2-copy p{color:#C9D6E3;max-width:46ch;margin:0 0 var(--s-4)}
.proband2-pts{list-style:none;padding:0;margin:0 0 var(--s-5);display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);color:#E1E9F0;font-size:15px}
.proband2-pts li{display:flex;gap:6px;align-items:center}.proband2-pts .ico{width:18px;height:18px;color:#7FD6D6}
.proband2-btns{display:flex;flex-wrap:wrap;gap:var(--s-3)}
.btn-ghost-light{border:1px solid #FFFFFF80;color:#fff;background:transparent}.btn-ghost-light:hover{border-color:#fff;color:#fff;background:#FFFFFF14}
.proband2-media{margin:0;border-radius:var(--r-xl);overflow:hidden;aspect-ratio:3/2}
.proband2-media img{width:100%;height:100%;object-fit:cover}.proband2-media.noimg{display:none}
/* Footer: four columns */
footer.site2{max-width:none;margin-top:0;border-top:1px solid var(--line);background:#fff;padding:var(--s-7) 0 var(--s-5)}
.foot2,.foot2-bottom{max-width:1180px;margin:0 auto;padding:0 var(--s-4)}
.foot2{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:var(--s-5)}
.foot2-tag{margin:var(--s-2) 0 0;color:var(--text-2)}
.foot2-col h3{font-size:15px;margin:0 0 var(--s-3);color:var(--text-1)}
.foot2-col ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2)}
.foot2-col a{color:var(--text-2);text-decoration:none;font-size:14px}.foot2-col a:hover{color:var(--accent-ink)}
.foot2-bottom{margin-top:var(--s-6);padding-top:var(--s-4);border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-3);font-size:13px;color:var(--text-3)}
.foot2-bottom .foot-note{max-width:80ch}.foot2-copy{margin:0}
@media (max-width:980px){
  .pcats{grid-template-columns:repeat(3,1fr)}
  .proband2-in{grid-template-columns:1fr}.proband2-media{display:none}
  .foot2{grid-template-columns:repeat(2,1fr)}.foot2-brand{grid-column:1/-1}
  .hiw{grid-template-columns:1fr;gap:var(--s-4)}.hiw-step{padding:0}.hiw-step+.hiw-step{border-left:0;border-top:1px solid var(--line-strong);padding-top:var(--s-4)}
}
@media (max-width:640px){
  .hero4{min-height:0}
  .hero4-photo{inset:0}
  .hero4-photo::after{background:linear-gradient(180deg,#10203Ad9 0%,#10203Ab3 55%,#10203Aee 100%)}
  .hero4-in{padding-top:var(--s-6);padding-bottom:var(--s-6)}
  .hero4 h1{font-size:40px}
  .hero4-lede{font-size:17px;line-height:26px}
  .hero4-form{flex-wrap:wrap;background:transparent;box-shadow:none;gap:var(--s-2);overflow:visible}
  .hero4-q{flex:1 1 100%}.hero4-q input,.hero4-zip input{border-radius:var(--r-lg);height:56px}
  .hero4-zip{flex:1 1 0;border-left:0}
  .hero4-form .btn-cta{flex:1.4 1 0;border-radius:var(--r-lg);height:56px;padding:0 16px}
  .cat-band .cat-icons{grid-template-columns:repeat(3,1fr)}
  .pcats{grid-template-columns:repeat(2,1fr);gap:var(--s-3)}
  .nav-end{order:0}
  nav.main a.nav-login{display:none}
}
.foot2-col{display:block}.foot2-col ul{align-content:start}
.hiw{width:100%;max-width:none!important}.hiw-step>div{flex:1;min-width:0}.hiw-step p{max-width:34ch}
footer.site2 .foot2-col{display:block!important;flex-direction:column}
footer.site2 .foot2-col ul{display:flex;flex-direction:column;gap:10px}
footer.site2 .foot2-col li{display:block;padding:0;margin:0;min-height:0}
footer.site2 .foot2-col a{display:inline-block;min-height:0;padding:0;line-height:1.4}
/* Leads table (brand/ui/04-pro-leads.png) */
.page-head{margin:0 0 var(--s-4)}.page-head h1{margin:0;font-size:var(--fs-h1);line-height:var(--lh-h1)}.page-head p{margin:var(--s-1) 0 0;font-size:18px}
.leads-bar{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center;justify-content:space-between;margin:0 0 var(--s-4)}
.leads-tabs{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.leads-tab{border:1px solid var(--line-strong);background:#fff;color:var(--text-1);border-radius:var(--r-control);padding:10px 18px;font-weight:600;font-size:15px;cursor:pointer}
.leads-tab[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}
.leads-search{flex:0 1 380px;margin:0;height:46px;padding-left:40px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A5A6E' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E") 12px center/18px no-repeat}
.leads-table{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden}
.leads-cols,.leads-table .card.lead>.lead-row{display:grid;grid-template-columns:28px 32px minmax(160px,2fr) 1.2fr 1fr 1.1fr 1.1fr 70px 130px;gap:var(--s-3);align-items:center}
.leads-cols{padding:12px 16px;font-size:13px;color:var(--text-2);border-bottom:1px solid var(--line)}.leads-cols span:nth-child(2){grid-column:3}
.leads-cols span:first-child{grid-column:1/3}
.leads-table .card.lead{border:0;border-radius:0;box-shadow:none;margin:0;padding:10px 16px;background:#fff}
.leads-table .card.lead+.card.lead{border-top:1px solid var(--line);margin-top:0}
.leads-table .card.lead.open{background:var(--elev-0)}
.lead-ico{color:var(--teal);display:grid;place-items:center}.lead-ico .ico{width:22px;height:22px}
.leads-table .lead-sub{display:none}
.lead-c{font-size:14px;color:var(--text-1)}.lead-who{font-weight:600}
.lead-st{display:flex;gap:4px;flex-wrap:wrap}
.pill.st-new{background:var(--coral-soft);color:var(--coral-ink)}.pill.st-active{background:var(--accent-soft);color:var(--accent-ink)}
.pill.st-follow{background:#E4EEFB;color:#1D4E89}.pill.st-done{background:var(--ok-bg);color:var(--ok-ink)}
.lead-price{font-size:16px}
.lead-act .btn{width:100%;justify-content:center}
.leads-empty{padding:var(--s-5);margin:0}
.leads-table .lead-body{padding:0 0 var(--s-3) 72px}
@media (max-width:900px){
  .leads-cols{display:none}
  .leads-table .card.lead>.lead-row{grid-template-columns:24px 28px 1fr auto;row-gap:6px}
  .leads-table .lead-sub{display:block}
  .leads-table .lead-c{display:none}
  .lead-st{grid-column:3}.lead-price{grid-column:4;grid-row:1;text-align:right}.lead-act{grid-column:3/5}
  .leads-search{flex:1 1 100%}
  .leads-table .lead-body{padding-left:0}
}
/* Pro inbox (brand/ui/05-pro-messages.png) */
.inbox{grid-template-columns:340px minmax(0,1fr) 320px;gap:var(--s-4);border:0;background:transparent;overflow:visible}
.inbox-list,.inbox-chat,.inbox-side{background:#fff;border:1px solid var(--line)!important;border-radius:var(--r-xl);box-shadow:var(--lift)}
.inbox-list{padding:var(--s-4) var(--s-3) var(--s-2);max-height:none}
.inbox-title{margin:0 var(--s-2) var(--s-3);font-size:30px;line-height:36px}
.inbox-search{flex:none;width:auto;margin:0 var(--s-2) var(--s-3)}
.inbox-fs{display:flex;gap:var(--s-4);margin:0 var(--s-2);border-bottom:1px solid var(--line)}
.inbox-f{background:none!important;border:0!important;border-bottom:2px solid transparent!important;padding:8px 2px!important;font-weight:600;color:var(--text-2)!important;flex-direction:row!important;cursor:pointer}
.inbox-f[aria-pressed=true]{color:var(--text-1)!important;border-bottom-color:var(--teal)!important}
.m-list{overflow:auto;max-height:70vh}
.inbox-list button.m-row{flex-direction:row;align-items:flex-start;gap:var(--s-3);border-radius:var(--r-lg);border-bottom:0;margin:4px 0;padding:12px}
.inbox-list button.m-row[aria-current=true]{box-shadow:none;background:var(--accent-soft)}
.m-av{flex:none;width:44px;height:44px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;font-weight:800;font-size:18px}
.m-row[aria-current=true] .m-av{background:#fff}
.m-txt{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.m-svc{color:var(--text-1)}
.m-dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--cta);margin-top:30px}
.inbox-chat{padding:var(--s-4)}
.inbox-head2{display:flex;align-items:center;gap:var(--s-3);padding-bottom:var(--s-3);border-bottom:1px solid var(--line);margin-bottom:var(--s-3)}
.inbox-head2 .grow{flex:1;min-width:0}.ih-name{font-size:20px}.inbox-head2 .m-av{width:52px;height:52px;font-size:20px}
.req-card2{border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-3) var(--s-4);margin-bottom:var(--s-4);display:grid;gap:4px}
.req-tag{display:inline-flex;align-items:center;gap:6px;color:var(--cta);font-weight:700;font-size:15px}.req-tag .ico{width:18px;height:18px}
.req-title{font-size:18px}
.bubw{display:flex;flex-direction:column;align-items:flex-start;margin:0 0 var(--s-3);max-width:78%}
.bubw.mine{align-items:flex-end;margin-left:auto}
.bub-meta{color:var(--text-3);font-size:12px;margin:0 4px 4px}
.bubw .bub{background:var(--elev-2);color:var(--text-1);border-radius:14px;padding:12px 16px;max-width:100%;margin:0}
.bubw .bub.mine{background:#DDF2F0;color:var(--text-1)}
.inbox-chat .compose{border-top:1px solid var(--line);padding-top:var(--s-3)}
.inbox-chat .compose textarea{border-radius:var(--r-lg)}
.inbox-side{padding:var(--s-4)}
@media (max-width:1100px){.inbox{grid-template-columns:300px minmax(0,1fr)}.inbox-side{grid-column:1/-1}}
@media (max-width:700px){.inbox{grid-template-columns:1fr}.m-list{max-height:260px}}
.m-list{overflow-x:hidden}.inbox-list button.m-row{width:100%;box-sizing:border-box;overflow:hidden}.m-txt .clip{display:block;max-width:100%}
.inbox-search{box-sizing:border-box;width:calc(100% - 16px)}
/* Customer requests (brand/ui/02-customer-requests.png) */
.creq-row{display:flex;align-items:center;gap:var(--s-4)}
.creq-thumb{flex:none;width:96px;height:72px;border-radius:var(--r-md);object-fit:cover;background:var(--accent-soft)}
.creq-fb{display:grid;place-items:center;color:var(--teal)}.creq-fb .ico{width:30px;height:30px}
.creq-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.creq .pill{flex:none}
.page-head.row{align-items:center}
/* Remote catalog (brand/ui/10-remote-catalog.png) */
.rem-search{max-width:none;margin:0 0 var(--s-4);border:1px solid var(--line);box-shadow:var(--lift)}
.remote-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4)}
.remote-item2{display:flex;gap:var(--s-4);align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--s-3);text-decoration:none;color:var(--text-1);box-shadow:var(--lift)}
.remote-item2:hover{border-color:var(--teal);color:var(--text-1)}
.rem-thumb{flex:none;width:120px;height:100px;border-radius:var(--r-lg);object-fit:cover;background:var(--accent-soft)}
.rem-fb{display:grid;place-items:center;color:var(--teal)}.rem-fb .ico{width:36px;height:36px}
.rem-txt{display:flex;flex-direction:column;gap:4px;min-width:0}
.rem-top{display:flex;gap:var(--s-2);align-items:center;flex-wrap:wrap}.rem-top b{font-size:18px}
.rem-pros{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text-2);margin-top:var(--s-2)}.rem-pros .ico{width:18px;height:18px}
@media (max-width:1000px){.remote-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.remote-grid{grid-template-columns:1fr}.rem-thumb{width:88px;height:76px}}
main:has(.remote-grid){max-width:1180px}
main:has(.remote-grid) .quick .qk{font-size:14px;padding:6px 14px;min-height:0}
main:has(.deal-tabs){max-width:1180px}
/* Settings side nav with icons (brand/ui/06-pro-settings.png) */
.side-nav button{display:flex;align-items:center;gap:var(--s-3)}
.side-nav button .ico{width:20px;height:20px;color:var(--text-2)}
.side-nav button[aria-current=true] .ico{color:var(--accent-ink)}
@media (min-width:761px){.side-layout{grid-template-columns:250px minmax(0,1fr)}}.side-nav button{white-space:nowrap}
/* Support work queue (admin.js workQueue, 0119). Chips are aria-pressed buttons, never checkboxes. */
.tri-filters{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.tri-search{flex:1 1 260px;min-width:200px;min-height:40px}
.tri-chips{display:flex;flex-wrap:wrap;gap:4px}
.tri-chip,.tri-pick{font:inherit;font-size:13px;font-weight:600;padding:5px 12px;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--elev-0);color:var(--text-1);cursor:pointer}
.tri-chip[aria-pressed=true],.tri-pick[aria-pressed=true]{background:var(--switch-on);border-color:var(--switch-on);color:#fff}
.tri-chip:focus-visible,.tri-pick:focus-visible,.tri-head:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.tri-line{display:flex;gap:var(--s-3);align-items:flex-start}
.tri-pick{flex:none;min-width:84px;margin-top:2px}
.tri-head{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;text-align:left;background:none;border:0;padding:0;font-weight:400;color:var(--text-1);cursor:pointer}
.tri-title{font-weight:700;overflow-wrap:anywhere}
.tri-pills{display:flex;flex-wrap:wrap;gap:4px}.tri-pills .pill{margin:0}
.pill.tri-high{background:var(--navy);color:#fff}.pill.tri-low{background:transparent;border:1px solid var(--line-strong);color:var(--text-2)}
.pill.tri-kind{background:var(--elev-2);color:var(--text-2);font-weight:500}
.tri-row>.stack{margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--line)}
.kpi.tri-kpi-warn{border-color:#e0b44a;background:var(--warn-bg)}
.tri-bar{position:sticky;bottom:0;z-index:15;display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:var(--s-3);background:var(--elev-1);border:1px solid var(--line-strong);border-radius:16px;box-shadow:0 -4px 16px rgba(16,32,58,.12)}
.tri-bar input{width:auto;min-width:180px;flex:1}.tri-bar-n{margin-right:var(--s-2)}
.hold-btn{position:relative;overflow:hidden}
.hold-btn::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--danger)}
.hold-btn.holding::after{width:100%;transition:width var(--hold-ms,.6s) linear}
.hold-btn{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
@media (max-width:600px){.tri-line{flex-direction:column;gap:var(--s-2)}.tri-bar{border-radius:16px 16px 0 0}}
/* Pro lead flow (0130): new lead notices with Accept and Hold to decline, request details as the first bubble, pinned lead panel */
.lead-notices{gap:var(--s-2)}
.card.lead-notice{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;border-left:4px solid var(--coral);padding:var(--s-3) var(--s-4)}
.lead-notice-main{display:flex;flex-direction:column;gap:2px;color:var(--text-1);text-decoration:none;min-width:0;flex:1 1 260px}
.lead-notice-main:hover b{text-decoration:underline}
.lead-notice-main .pill{align-self:flex-start}
.lead-notice-actions{gap:var(--s-2);flex-wrap:wrap;align-items:center}
.card.lead-notice.done{border-left-color:var(--line-strong)}
.reason-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.reason-chips .qk,.qk.qk-sm{height:32px;padding:0 12px;font-size:14px;background:var(--elev-1);color:var(--text-1);border:1px solid var(--line)}
.privacy-line{border-left:3px solid var(--line-strong);padding-left:var(--s-2)}
.bub.req-bub{display:flex;flex-direction:column;gap:4px;max-width:88%;background:var(--elev-1);color:var(--text-1);border:1px solid var(--line-strong)}
.bub.req-bub.mine{background:var(--elev-1);color:var(--text-1)}
.req-tag{align-self:flex-start;font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--text-2);background:var(--elev-2);border-radius:4px;padding:1px 6px}
.req-svc{font-size:16px}
.req-qa{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:4px 0 0;font-size:14px}
.req-qa dt{color:var(--text-2)}.req-qa dd{margin:0;font-weight:600}
.req-photos{display:flex;gap:6px;flex-wrap:wrap}.req-photos img{width:96px;height:72px;object-fit:cover;border-radius:8px}
.req-foot{display:flex;gap:12px;flex-wrap:wrap;color:var(--text-2);opacity:1}
.inbox{overflow:clip}
.inbox-side{position:sticky;top:var(--pro-bar-h,64px);align-self:start;max-height:calc(100vh - var(--pro-bar-h,64px) - 16px)}
.lead-mini{display:none}
@media (max-width:1000px){
  .inbox-side{position:static;max-height:none}
  .lead-mini{display:block;position:sticky;top:var(--pro-bar-h,64px);z-index:3;background:var(--elev-1);border:1px solid var(--line);border-radius:12px;padding:8px 12px;margin-bottom:8px}
  .lead-mini summary{cursor:pointer;list-style:none;display:flex;flex-wrap:wrap;gap:4px;align-items:baseline}
  .lead-mini summary::after{content:"\203A";margin-left:auto;transform:rotate(90deg);font-size:20px;line-height:1}
  .lead-mini[open] summary::after{transform:rotate(-90deg)}
  .lead-mini>div{margin-top:8px}
}
/* Desktop: the inbox fills the screen under the pro bar; the list, the conversation and the lead panel scroll on their own,
   so the lead panel stays in view however long the conversation gets. */
@media (min-width:1001px){
  body.pro-mode .inbox{height:calc(100vh - var(--pro-bar-h,64px) - 24px);min-height:520px;position:sticky;top:calc(var(--pro-bar-h,64px) + 12px)}
  body.pro-mode .inbox-list,body.pro-mode .inbox-side{max-height:none;height:100%;overflow:auto}
  body.pro-mode .inbox-chat{min-height:0;overflow:hidden}
  body.pro-mode .inbox-chat .msgs{max-height:none;min-height:0}
}
/* Notification bell (pop-down) in the pro bar */
.bell{position:relative;display:flex;align-items:center;margin-left:auto}
.bell-btn{position:relative;background:none;border:0;color:inherit;padding:8px;border-radius:999px;cursor:pointer;display:flex}
.bell-btn:hover{background:rgba(255,255,255,.12)}.bell-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.bell-ico{display:block;width:22px;height:22px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 8a6 6 0 1 1 12 0c0 7 3 9 3 9H3s3-2 3-9M10.3 21a1.94 1.94 0 0 0 3.4 0'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 8a6 6 0 1 1 12 0c0 7 3 9 3 9H3s3-2 3-9M10.3 21a1.94 1.94 0 0 0 3.4 0'/%3E%3C/svg%3E") center/contain no-repeat}
.bell-btn .pro-badge{position:absolute;top:2px;right:0}
.bell-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(400px,calc(100vw - 24px));max-height:75vh;overflow:auto;z-index:50;color:var(--text-1);box-shadow:0 12px 32px rgba(0,0,0,.18)}
.bell-panel .notice-wrap{margin:0}.bell-panel .lead-notice{box-shadow:none}
@media (max-width:600px){.bell-panel{position:fixed;left:12px;right:12px;width:auto;top:calc(var(--pro-bar-h,64px) + 6px)}}
/* Sign-in page (email and password, code, Google, Apple) */
.login-card{max-width:440px}
.login-modes{margin-bottom:var(--s-1)}
.pw-wrap{display:flex;gap:6px;align-items:center}.pw-wrap input{flex:1}.pw-show{flex:none}
.linkish{background:none;border:0;padding:4px 0;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline}
.or-line{display:flex;align-items:center;gap:10px;text-align:center}.or-line::before,.or-line::after{content:'';flex:1;border-top:1px solid var(--line)}
.apple-btn{padding:0;overflow:hidden;background:#fff;border:0;min-height:44px}.apple-btn-img{display:block;margin:0 auto;height:44px;width:auto;max-width:100%}
.gsi-slot{display:flex;justify-content:center;min-height:44px}
.login-modes{display:flex;gap:6px}.login-modes button{flex:1;border-radius:var(--r-pill);padding:10px 14px;font:inherit;font-weight:700;border:1px solid var(--line-strong);background:var(--elev-0);color:var(--text-1);cursor:pointer}
.login-modes button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}
.login-card .switch{width:auto;padding-left:0}
/* Pro home (brand/ui/03-pro-home.png) */
.pro-stat2{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-lg);text-decoration:none;color:var(--text-1);margin-top:var(--s-3);background:#fff}
.pro-stat2:hover{border-color:var(--teal);color:var(--text-1)}
.ps-ico{flex:none;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-ink)}
.ps-ico.coral{background:var(--coral-soft);color:var(--cta)}.ps-ico .ico{width:24px;height:24px}
.ps-txt{flex:1;display:flex;flex-direction:column;gap:2px}.ps-txt b{font-size:17px}
.pro-stat2 .chev{color:var(--text-3);font-size:24px}
.ov-tile.ov2{display:flex;justify-content:space-between;align-items:center;gap:var(--s-2)}
.ov-tile.ov2>span:first-child{display:flex;flex-direction:column}
.ov-tile.ov2>.ico{width:30px;height:30px;color:var(--teal);flex:none}
.pro-tools .pro-tool .ico{width:30px;height:30px;color:var(--teal);margin-bottom:var(--s-2)}
.pro-tools .pro-tool{display:flex;flex-direction:column;align-items:flex-start}
.ov-tile.ov2{flex-direction:row!important;text-align:left!important;align-items:center!important;justify-content:space-between!important;padding:var(--s-3) var(--s-4)}.ov-tile.ov2>span:first-child{align-items:flex-start}
.pro-nav>a{display:inline-flex;align-items:center;gap:6px}.pro-nav>a .ico{width:18px;height:18px;opacity:.85}
.pro-acct>summary{display:inline-flex;align-items:center;gap:8px}
.pro-av{width:32px;height:32px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font-weight:800;font-size:15px}
.pro-acct-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
@media (max-width:1100px){.pro-nav>a .ico{display:none}.pro-acct-name{display:none}}
.i-chat{--i:url(/icons/chat.svg)}.i-chart{--i:url(/icons/chart.svg)}.i-clock{--i:url(/icons/clock.svg)}
/* Admin (brand/ui/08-admin.png) */
@media (min-width:861px){.adm-shell{grid-template-columns:250px minmax(0,1fr)}}   /* desktop only: phones keep the stacked layout */
.adm-side{background:#fff}
.adm-brand{display:flex;align-items:center;gap:var(--s-2);padding:0 var(--s-2)}.adm-brand .ib-logo{font-size:26px}
.adm-group{display:flex;align-items:center;gap:var(--s-2);font-size:15px;letter-spacing:0;color:var(--text-1);font-weight:700;margin:var(--s-4) var(--s-2) 4px}
.adm-group .ico{width:20px;height:20px;color:var(--text-2)}
.adm-link{padding:8px 10px 8px 38px;font-weight:500;color:var(--text-2)}
.adm-link[aria-current="true"]{background:var(--accent-soft);color:var(--accent-ink);font-weight:700}
.adm-view{padding:var(--s-5) var(--s-6)}
.adm-title{font-size:var(--fs-h1);line-height:var(--lh-h1);margin:0 0 var(--s-4)}
.hl-tile{background:#fff;border-radius:var(--r-xl);padding:var(--s-4);box-shadow:var(--lift)}
.hl-tile b{font-size:30px;line-height:1.15;color:var(--text-1)}
.adm-side .adm-find input{background:var(--elev-0)}
body:has(.preview-bar) .adm-view{padding-top:var(--s-7)}
@media (max-width:860px){.adm-group .ico{display:none}.adm-link{padding-left:10px}.adm-view{padding:var(--s-4)}}
.hl-top select{width:auto;min-width:200px}
.kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--s-3)}
.kpi{display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--s-4);box-shadow:var(--lift)}
.kpi .ico{width:28px;height:28px;color:var(--teal);margin-bottom:var(--s-2)}.kpi.coral .ico{color:var(--cta)}
.kpi-l{font-size:14px;color:var(--text-2)}.kpi b{font-size:30px;line-height:1.1;color:var(--text-1)}
@media (max-width:1100px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Pro profile (brand/ui/09-public-pro-profile.png) */
.pp-cover{height:220px;border-radius:var(--r-xl) var(--r-xl) 0 0;overflow:hidden;background:linear-gradient(120deg,var(--navy),#1C3A5E);margin-top:var(--s-3)}
.pp-cover img{width:100%;height:100%;object-fit:cover;display:block}
.pp-cover+.pp-head{background:#fff;border:1px solid var(--line);border-top:0;border-radius:0 0 var(--r-xl) var(--r-xl);padding:0 var(--s-5) var(--s-4);align-items:flex-end;box-shadow:var(--lift)}
.pp-cover+.pp-head>.logo,.pp-cover+.pp-head>img,.pp-cover+.pp-head>span:first-child{margin-top:-56px;width:120px;height:120px;border-radius:var(--r-xl);border:4px solid #fff;background:#fff;box-shadow:var(--lift);font-size:44px;flex:none}
.pp-cta{display:flex;flex-direction:column;align-items:flex-end;gap:var(--s-2);margin-left:auto;padding-top:var(--s-3)}
.pp-cta .btn-cta{padding:12px 28px;font-size:17px}
@media (max-width:700px){.pp-cover{height:150px}.pp-cover+.pp-head{flex-wrap:wrap;padding:0 var(--s-4) var(--s-4)}.pp-cta{width:100%;align-items:stretch}.pp-cover+.pp-head>.logo,.pp-cover+.pp-head>img,.pp-cover+.pp-head>span:first-child{width:88px;height:88px}}
.pp-cover+.pp-head{margin-top:0!important;gap:var(--s-4)}
.pp-cover+.pp-head>:first-child{margin-top:-56px!important;width:120px!important;height:120px!important;border-radius:var(--r-xl);border:4px solid #fff;box-shadow:var(--lift);flex:none}
.pp-cover+.pp-head h1{font-size:34px;line-height:40px;padding-top:var(--s-3)}
main:has(.pp-layout){max-width:1180px}
/* Request page (brand/ui/01-customer-request.png) */
main:has(.req-form){max-width:1180px}
.req-form textarea#details{min-height:64px}
.req-send .btn-cta{font-size:19px;padding:16px}
.req-head h1{font-size:var(--fs-h1);line-height:var(--lh-h1)}
/* Refund request (brand/ui/07) */
.refund-card{border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-3) var(--s-4);background:#fff;margin-bottom:var(--s-3)}
.refund-charge{border-top:1px solid var(--line);margin-top:var(--s-2);padding-top:var(--s-2)}
.btn-ghost-teal{border:2px solid var(--teal);color:var(--accent-ink);background:#fff;font-weight:700}.btn-ghost-teal:hover{background:var(--accent-soft)}
/* Phone bottom tab bar for pros */
.pro-tabbar{display:none}
@media (max-width:700px){
  .pro-tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:20;background:#fff;border-top:1px solid var(--line);padding:6px 0 calc(6px + env(safe-area-inset-bottom))}
  .cust-tabbar{grid-template-columns:repeat(4,1fr)} /* homeowner bar: Home, Requests, Messages, Profile */
  .pro-tabbar a{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12px;font-weight:600;color:var(--text-2);text-decoration:none}
  .pro-tabbar a[aria-current=page]{color:var(--accent-ink)}
  .pro-tabbar .ico{width:24px;height:24px}
  .pro-tabbar .pro-badge{position:absolute;top:-4px;left:calc(50% + 6px)}
  body.pro-mode{padding-bottom:72px}
}
@media (max-width:700px){
  .pro-welcome h1{font-size:28px;line-height:34px}
  .ov-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .leads-tab{padding:8px 12px;font-size:14px}
  .page-head h1{font-size:30px;line-height:36px}
}
@media (max-width:700px){body.has-tabbar{padding-bottom:72px}}
@media (max-width:560px){.creq-row{display:grid;grid-template-columns:72px 1fr;gap:var(--s-2) var(--s-3)}.creq-thumb{width:72px;height:56px}.creq .pill{grid-column:2;justify-self:start}}
/* Public page heroes match the homepage: navy band, white text, white search card */
.band.spruce.top-hero,.join-hero{background:var(--navy)!important;color:#fff}
.join-hero{box-shadow:0 0 0 100vmax var(--navy);clip-path:inset(0 -100vmax);padding:var(--s-8) 0 var(--s-7)!important;margin-bottom:var(--s-6)}
.band.spruce.top-hero h1,.join-hero h1{color:#fff}
.band.spruce.top-hero p.lede,.band.spruce.top-hero .lede,.join-hero>p{color:#E1E9F0!important}
.band.spruce.top-hero a,.join-hero a{color:#7FD6D6}
.band.spruce.top-hero .facts-row,.band.spruce.top-hero .facts-row li{color:#C9D6E3}
.band.spruce.top-hero .facts-row .ico{color:#7FD6D6}
.band.spruce.top-hero .ghost{color:#FFFFFF;opacity:.08!important}
.band.spruce.top-hero .finder{background:#fff;border:0;box-shadow:0 12px 40px #0000004d}
.band.spruce.top-hero .crumbs,.band.spruce.top-hero .crumbs a{color:#C9D6E3}
.band.spruce.top-hero .qk{background:#FFFFFF1a;color:#fff;border-color:#FFFFFF33}
.join-hero .small.muted{color:#C9D6E3!important}
.join-hero input,.join-hero select{background:#fff}
main:has(.join-hero){max-width:1180px}
@media (max-width:640px){main:has(.remote-grid) .quick{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}main:has(.remote-grid) .quick .qk{flex:none}}
/* Services menu opens under the Services button, not at the right edge. Small screens keep the full-width panel. */
@media (min-width:1001px){nav.main>.svc-menu{position:relative}.svc-menu>.svc-panel{left:0;right:auto;top:calc(100% + 8px)}}
@media (max-width:1000px){.svc-menu>.svc-panel{left:16px;right:16px;width:auto}}
/* Sign-in page matches the public heroes: navy band, white card, coral main button. */
.login-hero{background:var(--navy);color:#fff;box-shadow:0 0 0 100vmax var(--navy);clip-path:inset(0 -100vmax);padding:var(--s-7) 0 var(--s-8);margin:calc(-1 * var(--s-6)) 0 var(--s-6);display:flex;flex-direction:column;align-items:center;text-align:center}
.login-hero h1{color:#fff;margin-bottom:var(--s-2)}
.login-hero .lede{color:#E1E9F0;margin:0 0 var(--s-5)}
.login-hero .login-card{width:100%;max-width:440px;text-align:left;color:var(--text-1);background:#fff;border:0;box-shadow:0 12px 40px #0000004d}
.login-hero .login-card a{color:var(--accent-ink)}
.login-hero>.note,.login-hero>div:last-child{max-width:440px;width:100%;text-align:left}
.login-card .btn-cta{font-size:17px;padding:12px 20px}
.login-modes button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.login-card .apple-btn-img{width:100%;max-width:400px;height:auto}
.login-hero{margin-bottom:0}
/* Remote tiles: text stays inside the card on phones */
.remote-tiles a>span:last-child{min-width:0;overflow-wrap:break-word;hyphens:auto;line-height:1.25}
@media (max-width:520px){.remote-tiles{gap:var(--s-2)}.remote-tiles a{gap:var(--s-2);padding:var(--s-3);font-size:15px}.remote-tiles .cat-ico{width:32px;height:32px}.remote-tiles .cat-ico .ico{width:16px;height:16px}}

/* Block bar under the message box (0132) */
.block-bar{margin-top:6px;gap:8px}
.block-bar .row{gap:12px}
.linkish.danger{color:var(--danger)}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
/* Admin sign-in (home screen app) */
body.adm-signin{background:var(--navy)}
body.adm-signin>header.bar,body.adm-signin>footer{display:none}
.adm-login{max-width:420px;margin:0 auto;padding:var(--s-8) var(--s-4);text-align:center;color:#fff}
.adm-login h1{color:#fff;margin:var(--s-3) 0 var(--s-1)}.adm-login p.muted{color:#C9D6E3}
.adm-login .card{text-align:left;margin-top:var(--s-5)}
.adm-login-icon{border-radius:18px}
.adm-login .card{color:var(--text-1)}
/* Ratings on other sites (0136) */
.outside-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);padding:var(--s-2) 0;border-bottom:1px solid var(--line)}
.outside-row .btn{margin-left:auto}
.outside-add{display:grid;grid-template-columns:150px minmax(0,1fr) 90px 100px;gap:var(--s-2);align-items:end}
@media (max-width:640px){.outside-add{grid-template-columns:1fr 1fr}.outside-add .grow{grid-column:1/-1}}
.pp-outside{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--s-3);margin-bottom:var(--s-3)}
.pp-out{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-3)}
.pp-out-score{font-size:22px;font-weight:800;display:flex;align-items:center;gap:6px}
.pp-g{display:inline-flex;align-items:center;gap:4px}.pp-g img{display:inline-block}
.pp-g-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
/* Marketing tab and award page (0138) */
.code-box{width:100%;font:13px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;padding:8px;border:1px solid var(--line,#D6DEE2);border-radius:8px;background:#fff;resize:vertical}
.award-art{display:block;margin:12px 0}

/* Chip icons (badge-icons.js) replace the old text symbols */
.bdg{gap:4px}.bdg .bdg-ico{flex:none;width:14px;height:14px}
.bdg.ok::before,.bdg.gold::before,.bdg.fast::before{content:none}

/* Pro in customer view: one-tap way back to the business side */
header.bar a.nav-back-biz{background:var(--accent);color:#fff;border-radius:999px;padding:6px 14px;font-weight:700}
header.bar a.nav-back-biz:hover{background:var(--accent-hover);color:#fff}

/* Service area grouped by county (area.js) */
.county-group{border-bottom:1px solid var(--line,#E2E8EC)}
.county-group>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;cursor:pointer;list-style:none}
.county-group>summary::-webkit-details-marker{display:none}
.county-group>summary .chev{transition:transform .15s;color:var(--text-2)}
.county-group[open]>summary .chev{transform:rotate(90deg)}
.county-cities{padding-left:20px}
/* Billing (0141) */
.bill-balance{font-size:40px;font-weight:700;line-height:1.1;margin:4px 0 8px}
.bill-receipt{text-decoration:none;color:inherit}
.bill-table-wrap{overflow-x:auto;margin-top:12px}
.bill-table-wrap td{white-space:nowrap}
a.bill-receipt:hover{border-color:var(--line-strong)}
.receipt-page main{max-width:860px;margin:24px auto;padding:0 16px}
.receipt .receipt-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin:16px 0}
.receipt-table{width:100%;border-collapse:collapse}
.receipt-table th,.receipt-table td{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.receipt-table .num{text-align:right;white-space:nowrap}
.receipt-table tfoot td{border-bottom:0}
.receipt-table tfoot .total td{font-weight:700;border-top:2px solid var(--line-strong)}
.receipt-foot{margin-top:24px}
@media print{.no-print,header.bar,.pro-tabbar{display:none!important}.receipt-page main{margin:0;max-width:none}.receipt.card{box-shadow:none;border:0}}
.tax-bar{width:120px;height:8px;border-radius:4px;background:var(--line);overflow:hidden}
.tax-bar span{display:block;height:100%;background:var(--brand,#0f766e)}
.tax-bar span.near{background:#d97706}.tax-bar span.over{background:#dc2626}
.tax-permit{width:160px}
.tax-rule{max-width:200px;font-weight:400}
/* Agreements (0144) */
.ag-terms{margin:0;padding-left:1.2em;display:grid;gap:.35em}
.agree-need{border-left:4px solid var(--coral,#FF6B57)}
/* Profile completeness (0144) */
.pc-bar{height:10px;border-radius:999px;background:var(--line,#D6DEE2);overflow:hidden}
.pc-bar>span{display:block;height:100%;background:var(--teal,#0E8C8C)}
.pc-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.pc-row{display:flex;align-items:center;gap:8px}
.pc-row.done{color:var(--muted,#5b6b7a)}
.pc-mark{width:20px;height:20px;border-radius:50%;border:2px solid var(--line,#D6DEE2);display:inline-grid;place-items:center;font-size:12px;flex:none}
.pc-row.done .pc-mark{background:var(--teal,#0E8C8C);border-color:var(--teal,#0E8C8C);color:#fff}
.pc-req{color:var(--danger,#A3301F);font-weight:700;font-size:12px}

/* Opportunities (0147): pro tab cards and the customer's ask and interested pros. */
.opp-list{display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(420px,1fr))}
.opp-card{display:flex;flex-direction:column;gap:var(--s-3);margin:0}
.opp-top{display:flex;gap:var(--s-3);align-items:flex-start}
.opp-top .grow{flex:1;min-width:0}
.opp-price{text-align:right;display:flex;flex-direction:column;align-items:flex-end}
.opp-price b{font-size:28px;line-height:32px;color:var(--text-1)}
.opp-details{margin:0;padding:var(--s-3);background:var(--elev-0);border:1px solid var(--line);border-radius:var(--r-lg);font-size:15px;line-height:22px}
.opp-foot{display:flex;flex-direction:column;gap:var(--s-2);border-top:1px solid var(--line);padding-top:var(--s-3);margin-top:auto}
.opp-btns{gap:var(--s-2);flex-wrap:wrap}
.opp-note{padding:var(--s-2) var(--s-3);border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 var(--r-md) var(--r-md) 0;white-space:pre-wrap}
.opp-alert{border:2px solid var(--cta);background:var(--coral-soft);display:flex;flex-direction:column;gap:var(--s-2)}
.opp-alert h2{font-size:20px;line-height:28px}
.opp-box{display:flex;flex-direction:column;gap:var(--s-2);margin:var(--s-3) 0}
.opp-ask{padding:var(--s-4);border:2px solid var(--cta);background:var(--coral-soft);border-radius:var(--r-xl)}
.opp-int{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-xl);background:var(--elev-1)}
.opp-int-head{display:flex;gap:var(--s-3);align-items:flex-start}
.opp-int-head .grow{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--s-1)}
@media (max-width:640px){.opp-list{grid-template-columns:1fr}.opp-price b{font-size:22px;line-height:28px}.opp-btns .btn{flex:1 1 100%}.opp-ask .row .btn{flex:1 1 100%}}
/* Facebook sign-in button (Meta brand: #1877F2, white f logo) */
.fb-btn{background:#1877F2;color:#fff;border:0;border-radius:22px;min-height:44px;font-weight:600}.fb-btn:hover{background:#166FE5;color:#fff}
.fb-in{display:inline-flex;align-items:center;justify-content:center;gap:10px}.fb-logo{width:20px;height:20px;flex:none}
/* Pro bar on one line (Andy 2026-10-24 "Gross looking top"): never wrap on desktop; icons and the account name drop out first
   as the window narrows, and the account menu stays a round avatar at the right. Phones keep the scrolling row above. */
@media (min-width:721px){
  .pro-nav{flex-wrap:nowrap;min-width:0;gap:2px}
  .pro-nav>a,.pro-acct>summary{white-space:nowrap;padding:0 10px}
  .pro-acct{margin-left:var(--s-2)}
}
@media (min-width:721px) and (max-width:1500px){.pro-acct-name{display:none}}
@media (min-width:721px) and (max-width:1320px){.pro-nav>a .ico{display:none}}
@media (min-width:721px) and (max-width:1060px){
  header.bar.pro-bar{flex-wrap:wrap;row-gap:0}
  .pro-bar>.bell{margin-left:auto}
  .pro-nav{order:3;width:100%;margin-left:0;overflow-x:auto;padding-bottom:6px}
  .pro-nav>a,.pro-acct>summary{padding:0 9px;font-size:14px}
}
/* Phones (Andy 2026-10-24: could not find Log in on the home page). Log in sits top right next to the logo; the menu pills scroll on their own row below. */
@media (max-width:640px){
  header.bar{flex-wrap:wrap;row-gap:var(--s-2)}
  header.bar>nav.main{flex:1 1 100%;width:100%;margin:0;padding:0 0 var(--s-1);position:static}
  nav.main a.nav-login{display:inline-flex;position:absolute;top:12px;right:16px;min-height:36px;padding:6px 14px;font-size:14px}
}
/* Admin on phones (Andy 2026-10-24 "Off center buttons"): no group headings mixed into the sideways menu, every section is the same pill;
   filters sit in an even two-column grid with one control height and no stray top margin. */
.filter-bar{padding-left:0;padding-right:0}
.filter-bar>input,.filter-bar>select{margin:0;height:44px;box-sizing:border-box;padding-top:0;padding-bottom:0}
@media (max-width:860px){
  .adm-nav .adm-group{display:none}
  .adm-nav{align-items:center}
  .adm-link{padding:8px 14px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--elev-0)}
  .adm-link[aria-current="true"]{border-color:var(--teal)}
  .adm-who{flex-wrap:wrap}
}
@media (max-width:640px){
  .filter-bar{display:grid;grid-template-columns:1fr 1fr}
  .filter-bar>input,.filter-bar>select,.filter-bar>.w-zip{width:100%;min-width:0;max-width:none}
  .filter-bar>:first-child:nth-last-child(odd){grid-column:1/-1}
}
/* Health: every number and problem opens its place (Andy 2026-10-24 05:11) */
button.kpi.go,button.hl-tile.go{font:inherit;color:inherit;text-align:left;cursor:pointer;width:100%;position:relative}
button.kpi.go:hover,button.hl-tile.go:hover{border-color:var(--accent);box-shadow:0 2px 10px rgba(16,32,58,.08)}
button.kpi.go::after,button.hl-tile.go::after{content:"\203A";position:absolute;right:12px;top:10px;font-size:20px;line-height:1;color:var(--muted,#6b7a8a)}
.hl-problems{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.hl-problem{font:inherit;text-align:left;background:none;border:0;padding:8px 0;min-height:44px;color:var(--accent-ink,#0B7676);text-decoration:underline;cursor:pointer}
/* Admin menu on phones (Andy 2026-10-24 05:12): hamburger drop-down, never a sideways-scrolling strip. Desktop keeps the side list. */
.adm-menu-btn{display:none}
@media (max-width:860px){
  .adm-shell,.adm-side,.adm-view{min-width:0;max-width:100vw;overflow-x:hidden}
  .adm-menu-btn{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:10px 14px;font:inherit;font-weight:700;font-size:16px;text-align:left;
    border:1px solid var(--line);border-radius:12px;background:var(--elev-0);color:var(--text-1);cursor:pointer}
  .adm-burger{display:inline-flex;flex-direction:column;gap:4px;width:20px}.adm-burger i{display:block;height:2px;border-radius:2px;background:currentColor}
  .adm-menu-btn[aria-expanded="true"]{border-color:var(--teal)}
  .adm-nav{display:none}
  .adm-nav.open{display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;overflow:visible;gap:2px;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--elev-0)}
  .adm-nav.open .adm-group{display:flex;margin:10px 8px 2px;font-size:13px;color:var(--text-2)}
  .adm-nav.open .adm-link{display:block;text-align:left;white-space:normal;border:0;border-radius:8px;padding:12px 12px;min-height:44px;background:none;flex:none}
  .adm-nav.open .adm-link[aria-current="true"]{background:var(--accent-soft);color:var(--accent-ink)}
  .adm-who{flex-wrap:wrap;min-width:0}.adm-who b{overflow-wrap:anywhere}
}
/* Signed-in devices as cards (never wider than the screen) */
.dev-list{display:flex;flex-direction:column;gap:10px;margin:var(--s-3) 0}
.dev-card{border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;min-width:0}
.dev-ua{overflow-wrap:anywhere;color:var(--text-2)}
/* State requirements panel (requirements.js, 2026-10-24) */
.req-panel{background:#F4FAFA;border-color:#CDEAE8;gap:var(--s-3);display:flex;flex-direction:column}
.req-panel.compact{padding:var(--s-3)}
.req-panel.compact h3{font-size:15px}
.req-panel.compact{gap:var(--s-2);font-size:14px}
.req-panel.compact .req-toggle{display:flex;align-items:flex-start;gap:8px;width:100%;background:none;border:0;padding:0;margin:0;text-align:left;font:inherit;color:inherit;cursor:pointer;min-height:32px}
.req-panel.compact .req-toggle>.row{flex:1;min-width:0;flex-wrap:wrap;gap:4px 8px}
.req-panel.compact .req-toggle .small{font-size:12px}
.req-panel.compact .req-arrow{font-size:14px;line-height:22px;color:var(--soft,#4A5B70);flex:none}
.req-panel.compact .req-body{display:flex;flex-direction:column;gap:var(--s-2)}
.req-panel.compact .req-trade h4{font-size:14px}
.req-panel.compact .pill{font-size:12px;padding:2px 8px}
.req-trade{border-top:1px solid var(--line);padding-top:var(--s-2);display:flex;flex-direction:column;gap:4px}
.req-trade h4{font-size:15px}
.req-creds{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.req-checks{margin-top:var(--s-2);padding:var(--s-2) var(--s-3);background:#fff;border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:2px}
.req-check{display:flex;flex-direction:column}.req-check .switch{padding:6px 0}.req-who{padding-left:58px;margin-top:-4px}

/* Audit: contain provider buttons and long developer URLs on narrow screens. */
.gsi-slot{width:100%;min-width:0;max-width:100%;overflow:hidden}
.doc,.doc-body{min-width:0;overflow-wrap:anywhere}
.doc-code,.doc pre{max-width:100%;overflow-x:auto}
/* Admin menu (Andy 2026-10-26: a real menu screen on the left, desktop and phone). Overrides the older phone drop-down above. */
.adm-top,.adm-scrim,.adm-close{display:none}
@media (min-width:861px){
  body.adm .adm-side{position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain;align-self:start}
  body.adm:has(.preview-bar) .adm-side{height:calc(100vh - 48px)}
  body.adm .adm-menu-btn{display:none}
}
@media (max-width:860px){
  body.adm .adm-shell{display:block}
  body.adm .adm-top{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid var(--line);padding:8px 12px}
  body.adm .adm-top .adm-menu-btn{display:flex;flex:1;min-width:0;min-height:44px;border:1px solid var(--line);border-radius:12px;background:var(--elev-0)}
  body.adm .adm-menu-cur{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body.adm .adm-top-pill{flex:none}
  body.adm .adm-side{position:fixed;top:0;left:0;bottom:0;z-index:50;width:min(86vw,330px);max-width:none;transform:translateX(-105%);transition:transform .22s ease;
    overflow-y:auto;overscroll-behavior:contain;border-right:1px solid var(--line);border-bottom:0;box-shadow:0 0 40px #10203a33;padding:var(--s-4) var(--s-3) calc(var(--s-5) + env(safe-area-inset-bottom))}
  body.adm-menu-open .adm-side{transform:none}
  body.adm .adm-scrim{position:fixed;inset:0;z-index:40;background:#10203a73}
  body.adm-menu-open .adm-scrim{display:block}
  body.adm-menu-open{overflow:hidden}
  body.adm .adm-brand{justify-content:flex-start}
  body.adm .adm-close{display:grid;place-items:center;margin-left:auto;width:40px;height:40px;border:0;border-radius:10px;background:var(--elev-2,#eef2f4);font-size:24px;line-height:1;color:var(--text-1);cursor:pointer}
  /* Inside the drawer the list is a normal vertical menu, with group headings. */
  body.adm .adm-nav,body.adm .adm-nav.open{display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;overflow:visible;gap:2px;padding:0;border:0;background:none}
  body.adm .adm-nav .adm-group{display:flex;margin:14px 8px 2px;font-size:13px;color:var(--text-2)}
  body.adm .adm-nav .adm-link{display:block;text-align:left;white-space:normal;border:0;border-radius:10px;padding:12px;min-height:44px;background:none;font-size:16px}
  body.adm .adm-nav .adm-link[aria-current="true"]{background:var(--accent-soft);color:var(--accent-ink);font-weight:700}
  body.adm .adm-who{margin-top:var(--s-3);flex-direction:column;align-items:flex-start}
  body.adm .adm-view{padding:var(--s-4)}
}
@media (max-width:860px) and (prefers-reduced-motion:reduce){body.adm .adm-side{transition:none}}
/* overflow hidden on an ancestor stops position:sticky; clip keeps the no-sideways-scroll rule and lets the bar and sidebar stay put */
body.adm .adm-shell,body.adm .adm-view{overflow-x:clip}
@media (max-width:860px){body.adm .adm-side{overflow-x:hidden}
  body.adm:has(.preview-bar) .adm-top{top:var(--preview-h,82px)}}
@media (min-width:861px){body.adm:has(.preview-bar) .adm-side{top:48px}}

/* Admin PIN lock (Andy 2026-10-26 13:45) */
.adm-lock{position:fixed;inset:0;z-index:1000;background:var(--navy);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;overflow-y:auto}
.adm-lock .pin-card,.adm-login .pin-card{width:100%;max-width:380px}
body.adm-locked{overflow:hidden}
.pin-in{font-size:1.5rem;letter-spacing:.4em;text-align:center}

/* Admin > Growth > Pro outreach (0163) */
.out-tiles{gap:var(--s-2)}.out-tile{flex:1 1 30%;min-width:96px;display:flex;flex-direction:column;align-items:flex-start;padding:var(--s-3)}.out-tile b{font-size:24px;letter-spacing:-.5px}
.out-row{display:flex;justify-content:space-between;align-items:center;gap:var(--s-2)}.out-row p{word-break:break-all}

/* No-license review card (0172): every detail the pro submitted, on one card. */
.review-card .facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--s-2) var(--s-3)}
.review-card .fact>span{display:block}
.review-pics{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.review-pics img{width:96px;height:96px;object-fit:cover;border-radius:8px;border:1px solid var(--line,#ddd);display:block}

/* Approvals (0174, redesigned 2026-10-27 after Andy: "looks awful"): summary first, label and value rows, sections split by a line. */
.approval-card{gap:var(--s-4)}
.approval-card h4{margin:0 0 var(--s-2);font-size:15px;font-weight:700;color:var(--text-1,#10203A)}
.ap-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-3);flex-wrap:wrap}
.ap-head h3{font-size:22px;letter-spacing:-.01em}
.sum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--elev-0)}
.sum-item{padding:var(--s-3);display:flex;flex-direction:column;gap:2px;border-right:1px solid var(--line);min-width:0}
.sum-item:last-child{border-right:0}
.sum-k{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2)}
.sum-v{font-size:15px;font-weight:600;overflow-wrap:anywhere}.sum-v.good{color:var(--ok-ink)}.sum-v.bad{color:var(--err-ink)}
.ap-sec{border-top:1px solid var(--line);padding-top:var(--s-4)}
.approval-card .req-table{width:100%;border-collapse:collapse;font-size:14px}
.approval-card .req-table th{text-align:left;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);padding:0 12px 6px 0;border-bottom:1px solid var(--line)}
.approval-card .req-table td{padding:10px 12px 10px 0;border-bottom:1px solid var(--line);vertical-align:top}
.approval-card .req-table tr:last-child td{border-bottom:0}
.approval-card .req-table tr.pending td{background:var(--warn-bg)}
.approval-card .tick{display:inline-block;min-width:38px;text-align:center;border-radius:var(--r-pill);padding:1px 8px;margin-right:6px;font-size:12px;font-weight:700;background:var(--elev-2);color:var(--text-2)}
.approval-card .tick.yes{background:var(--ok-bg);color:var(--ok-ink)}.approval-card .tick.no{background:var(--err-bg);color:var(--err-ink)}
.approval-card .facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--s-3)}
.approval-card .fact{display:flex;flex-direction:column;gap:2px;min-width:0}.approval-card .fact>div{font-size:15px;font-weight:600;overflow-wrap:anywhere}
.approval-card .fact>span{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.approval-card .fact .good{color:var(--ok-ink)}.approval-card .fact .bad{color:var(--err-ink);font-weight:600}
.dl{margin:0;display:grid;gap:0}
.dl-row{display:grid;grid-template-columns:160px 1fr;gap:var(--s-3);padding:8px 0;border-bottom:1px solid var(--line)}
.dl-row:last-child{border-bottom:0}
.dl dt{font-size:13px;color:var(--text-2);font-weight:600}.dl dd{margin:0;overflow-wrap:anywhere}
.zips summary{cursor:pointer}.zips p{margin-top:6px}
.bio{margin:var(--s-3) 0 0;padding:var(--s-3);background:var(--elev-0);border-radius:12px;border:1px solid var(--line);font-size:15px;line-height:1.5}
.faqs{display:grid;gap:var(--s-2);margin-top:var(--s-3)}
.review-pics{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-3)}
.review-pics img{width:104px;height:104px;object-fit:cover;border-radius:12px;border:1px solid var(--line);display:block;background:var(--elev-0)}
.ins-block .facts{margin-top:var(--s-2)}
.coi-viewer iframe,.coi-viewer img{width:100%;height:70vh;min-height:420px;border:1px solid var(--line);border-radius:12px;background:#fff;display:block}
.coi-viewer img{height:auto;min-height:0}
.decision .dec-fields{display:flex;flex-wrap:wrap;gap:var(--s-3)}
.decision label{display:flex;flex-direction:column;gap:4px}
.decision label input{width:100%}
.decision .dec-btns{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center}
.decision .dec-btns .btn-primary{flex:1 1 240px;min-height:48px;font-size:16px}
@media (max-width:700px){
  .sum{grid-template-columns:1fr 1fr}.sum-item:nth-child(2){border-right:0}.sum-item:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .dl-row{grid-template-columns:1fr;gap:2px}
  .approval-card .req-table thead{display:none}.approval-card .req-table td{display:block;border:0;padding:2px 0}.approval-card .req-table tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}
  .coi-viewer iframe{height:60vh}.decision .dec-btns .btn{flex:1 1 100%}}

/* Profile shown inside the Approvals card (pro.js ?embed=1): page content only. */
html.embedded body>header,html.embedded body>footer,html.embedded .site-header,html.embedded .site-footer,html.embedded .pp-sticky{display:none!important}
.customer-view summary{cursor:pointer;font-weight:700}
.customer-view iframe{width:100%;height:80vh;min-height:560px;border:1px solid var(--line);border-radius:12px;background:var(--elev-0);display:block;margin-top:var(--s-3)}

.saved-tag{font-weight:600}.decision label>span.row{gap:var(--s-2)}
.cl-line{margin-top:4px}.cl-line.warn{color:var(--warn-ink)}.cl-line.bad{color:var(--err-ink)}
/* Pro profile on phones (Andy 2026-10-28 "the mobile view looks nasty", "scroll left and right", "so much white space").
   The page column could grow past the screen (grid 1fr = min-content of the tab row); it is held to the screen now. The header
   is one compact block: small logo beside the name, badges under it, Share only (the sticky bar carries Request). */
.pp-main{min-width:0}
.pp-adminbar{background:var(--elev-0);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-2) var(--s-3);margin-bottom:var(--s-2)}
@media (max-width:860px){
  .pp-layout{grid-template-columns:minmax(0,1fr)!important}
  .pp-tabs{max-width:100%}
}
@media (max-width:700px){
  main:has(.pp-layout){padding-top:var(--s-2)}
  .pp-hero .crumbs{margin:0 0 var(--s-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pp-cover{height:120px;margin-top:0}
  .pp-cover+.pp-head{display:grid!important;grid-template-columns:72px minmax(0,1fr);column-gap:var(--s-3);row-gap:var(--s-2);align-items:end;padding:0 var(--s-4) var(--s-4)}
  .pp-cover+.pp-head>:first-child{margin-top:-36px!important;width:72px!important;height:72px!important;font-size:30px;border-width:3px;align-self:start}
  .pp-cover+.pp-head h1{font-size:24px;line-height:28px;padding-top:var(--s-2)}
  .pp-cover+.pp-head .pp-id{display:contents}
  .pp-cover+.pp-head .pp-id>h1{grid-column:2;align-self:center}
  .pp-cover+.pp-head .pp-rating,.pp-cover+.pp-head .pp-badges{grid-column:1/-1;margin-top:0}
  .pp-cover+.pp-head .pp-cta{grid-column:1/-1;padding-top:0;flex-direction:row}
  .pp-cover+.pp-head .pp-cta .btn-cta{display:none}
  .pp-cover+.pp-head .pp-cta .btn{flex:1}
}
/* Phone header (Andy 2026-10-28 "I like the chips but ... not so much white empty space"): tighter rows, same chips. */
@media (max-width:640px){
  header.bar{padding:var(--s-2) var(--s-4) 6px;row-gap:6px}
  nav.main a,.svc-menu>summary{min-height:32px;padding:4px 12px}
  nav.main a.nav-login{top:8px}
  main{padding-top:var(--s-4)}
}
/* Guides card in Help (2026-10-29): two columns of links on wide screens, one on phones. */
.guide-links{list-style:none;padding:0;margin:4px 0 10px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 16px}.guide-links a{display:inline-block;padding:6px 0;min-height:32px}
/* Guide reviews (0229) */
.reviewed-by{margin-top:.25rem;margin-bottom:.25rem;color:var(--ink-2,inherit)}
.guide-review .gr-actions{gap:.5rem;flex-wrap:wrap}
.guide-review .gr-form{margin-top:.75rem}
.guide-review .gr-sec{gap:.5rem;display:flex;flex-direction:column}
.guide-review .gr-sec p.small.muted{max-height:9rem;overflow:auto;white-space:pre-line}
.guide-review .gr-list{margin:.25rem 0 .75rem}
button.kpi.click{text-align:left;cursor:pointer;font:inherit;color:inherit;align-items:flex-start;width:100%}
button.kpi.click:hover,button.kpi.click:focus-visible{border-color:var(--accent,#2e7d4f)}
.reviewed-by-box{margin:.75rem auto;padding:.75rem 1rem;border:1px solid var(--line);border-left:4px solid var(--accent,#1f7a5c);border-radius:10px;background:var(--elev-1,#fff)}
.reviewed-by-box p+p{margin-top:.25rem}
.gr-hist{margin:.25rem 0 1rem;padding-left:1.1rem}.gr-hist li{margin:.2rem 0}
/* C1: "Get quotes from 2 other pros" on the profile and the request page */
.pp-cta .pp-more{padding:10px 20px;font-size:15px;white-space:normal}
.pp-sticky .btn+.btn{margin-top:var(--s-2)}
@media (max-width:860px){main:has(.pp-sticky .btn+.btn){padding-bottom:156px}}
.more-pros{background:var(--elev-0);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-4);min-width:0}
.more-pros .pro-pick{margin-top:var(--s-3)}
.more-pros-go{justify-self:start;white-space:normal}
@media (max-width:640px){.more-pros{padding:var(--s-3)}.more-pros-go{width:100%}}
@media (max-width:700px){.pp-cover+.pp-head .pp-cta .pp-more{display:none}}
@media (max-width:640px){.more-pros .pro-pick{padding:var(--s-3)}.more-pros .pro-pick .logo{width:40px;height:40px;font-size:18px}}

/* Phone header with a menu (Andy 2026-11-02 "make it menu with log in separate. No scrolling sideways"). Loaded last. */
header.bar .nav-toggle,header.bar .nav-login-m{display:none}
@media (max-width:700px){
  header.bar{flex-wrap:nowrap;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-4);row-gap:0}
  header.bar .nav-login-m{display:inline-flex;align-items:center;margin-left:auto;min-height:40px;padding:6px 16px;border:1px solid var(--line-strong);border-radius:var(--r-pill);background:#fff;color:var(--text-1);font-weight:700;font-size:15px;text-decoration:none;white-space:nowrap}
  header.bar .nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0;cursor:pointer;flex:none}
  .nav-burger{display:flex;flex-direction:column;gap:5px;width:20px}
  .nav-burger>span{display:block;height:2px;border-radius:2px;background:var(--text-1);transition:transform .15s,opacity .15s}
  header.bar.open .nav-burger>span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  header.bar.open .nav-burger>span:nth-child(2){opacity:0}
  header.bar.open .nav-burger>span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  header.bar>nav.main{display:none}
  header.bar.open>nav.main{display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;position:absolute;left:0;right:0;top:100%;width:auto;margin:0;padding:var(--s-2) var(--s-4) var(--s-4);gap:2px;overflow:visible;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 12px 24px rgba(16,32,58,.12);max-height:calc(100vh - 70px);overflow-y:auto}
  header.bar.open>nav.main>a,header.bar.open>nav.main .svc-menu>summary{display:flex;width:100%;min-height:48px;padding:12px 4px;font-size:17px;background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;color:var(--text-1)}
  header.bar.open>nav.main>.svc-menu{height:auto;width:100%;align-self:stretch}
  header.bar.open>nav.main .svc-menu>summary{justify-content:space-between}
  header.bar.open>nav.main>.nav-end{align-self:stretch;width:100%;margin-left:0}
  header.bar.open>nav.main>.svc-menu{display:block}
  header.bar.open>nav.main .svc-menu>.svc-panel{position:static!important;left:auto!important;right:auto!important;width:100%!important;box-sizing:border-box;box-shadow:none;border:0;border-radius:0;padding:var(--s-2) 0 var(--s-3);grid-template-columns:1fr;gap:var(--s-3);max-height:none;background:none}
  header.bar.open>nav.main .nav-end{display:flex;flex-direction:column;gap:var(--s-2);margin-top:var(--s-3)}
  header.bar.open>nav.main .nav-end a.nav-login{display:none!important}
  header.bar.open>nav.main .nav-end a.nav-cta{display:flex;justify-content:center;position:static;min-height:48px;font-size:17px;border-radius:var(--r-pill)}
}
/* Login: homeowner or pro (Andy 2026-11-02). Teal for the role, navy for sign in / create account, so the two rows read apart. */
.login-roles{display:flex;gap:6px;padding:4px;border-radius:var(--r-pill);background:var(--elev-1);border:1px solid var(--line)}
.login-roles button{flex:1;border:0;border-radius:var(--r-pill);padding:10px 12px;font:inherit;font-weight:700;background:none;color:var(--text-2);cursor:pointer;min-height:44px}
.login-roles button[aria-pressed=true]{background:var(--teal,#0E8C8C);color:#fff}
/* Premium motion (Andy 2026-11-02, from the "why premium apps feel fast" video). site/motion.js holds the script half. */
/* 1. Sink, then spring: a press shrinks to 95 percent, release springs back past 100 and settles. */
.btn,button.btn,a.btn,nav.main a,.login-roles button,.login-modes button,.state-chips button,.nav-toggle,.nav-login-m,.switch{transition:transform .45s cubic-bezier(.34,1.56,.64,1)}
.btn:active,nav.main a:active,.login-roles button:active,.login-modes button:active,.state-chips button:active,.nav-toggle:active,.nav-login-m:active,.switch:active{transform:scale(.95);transition-duration:.08s}
/* 3. Roll, don't jump: digits roll into place, 100 ms apart (motion.js). */
.roll-d{display:inline-block;height:1.15em;line-height:1.15em;overflow:hidden;vertical-align:bottom}
.roll-strip{display:flex;flex-direction:column;transition:transform .8s cubic-bezier(.16,1,.3,1)}
.roll-strip>span{height:1.15em;line-height:1.15em;text-align:center}
.roll-c{display:inline-block;line-height:1.15em}
/* 4. Fast, then slow: panels open with an ease-out over 350 ms. */
@keyframes open-ease{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}
.svc-menu[open]>.svc-panel,header.bar.open>nav.main,.req-body:not([hidden]),.more-pros,.gr-panel>*,.pp-qlook,details[open]>:not(summary){animation:open-ease .35s cubic-bezier(.16,1,.3,1) both}
/* 5. Draw the win: circle, then tick, 470 ms. */
.success-mark{width:64px;height:64px;display:block;margin:0 auto var(--s-3)}
.success-mark .sm-circle{fill:none;stroke:var(--accent,#1d7a54);stroke-width:3;stroke-dasharray:145;stroke-dashoffset:145;animation:sm-draw .3s cubic-bezier(.16,1,.3,1) forwards}
.success-mark .sm-tick{fill:none;stroke:var(--accent,#1d7a54);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:sm-draw .17s ease-out .3s forwards}
.hero .success-mark{margin:0 0 var(--s-3)}
@keyframes sm-draw{to{stroke-dashoffset:0}}
/* 2. Pull to refresh (phone app). */
.ptr{position:fixed;top:calc(env(safe-area-inset-top,0px) + 70px);left:50%;transform:translateX(-50%);z-index:30;opacity:0;pointer-events:none;transition:opacity .15s}
.ptr-ring{display:block;width:26px;height:26px;border-radius:50%;border:3px solid var(--line-strong,#cbc8bc);border-top-color:var(--accent,#1d7a54)}
.ptr.ready .ptr-ring{border-color:var(--accent,#1d7a54)}
.ptr.busy .ptr-ring{animation:ptr-spin .7s linear infinite}
@keyframes ptr-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
  .btn,nav.main a,.switch,.login-roles button,.login-modes button,.state-chips button,.nav-toggle,.nav-login-m{transition:none}
  .btn:active,nav.main a:active{transform:none}
  .svc-menu[open]>.svc-panel,header.bar.open>nav.main,.req-body:not([hidden]),.more-pros,.gr-panel>*,.pp-qlook,details[open]>:not(summary){animation:none}
  .success-mark .sm-circle,.success-mark .sm-tick{animation:none;stroke-dashoffset:0}
}
/* Second motion video (Andy 2026-11-02 21:40). */
/* 6. Toggle: the knob stretches while pressed, springs past its spot and settles. */
.switch .track::after{transition:transform .45s cubic-bezier(.34,1.56,.64,1),width .18s ease-out}
.switch:active .track::after{width:28px}
.switch[aria-checked=true]:active .track::after{transform:translateX(12px)}
/* 7. Wrong password: the form shakes no. */
@keyframes shake-no{0%,100%{transform:none}15%{transform:translateX(-8px)}30%{transform:translateX(7px)}45%{transform:translateX(-5px)}60%{transform:translateX(4px)}75%{transform:translateX(-2px)}}
.shake{animation:shake-no .42s cubic-bezier(.36,.07,.19,.97) both}
.shake input{border-color:var(--danger,#c0392b)}
/* 8. Menus grow out of the button that opened them. */
header.bar.open>nav.main{transform-origin:top right}
.svc-menu[open]>.svc-panel{transform-origin:top left}
@keyframes grow-in{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
header.bar.open>nav.main,.svc-menu[open]>.svc-panel{animation:grow-in .3s cubic-bezier(.16,1,.3,1) both}
/* 9. Tab bar: one pill slides to the tab you tapped. */
.pro-tabbar{position:fixed}
.pro-tabbar .tab-pill{position:absolute;top:4px;left:0;height:30px;border-radius:var(--r-pill);background:var(--accent-soft,#e3f1ea);opacity:0;transition:transform .35s cubic-bezier(.34,1.3,.64,1),width .35s cubic-bezier(.16,1,.3,1),opacity .2s;pointer-events:none;z-index:0}
.pro-tabbar a{z-index:1}
/* 10. A deleted row closes the gap smoothly. */
.row-out{opacity:0;margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important;transition:height .3s cubic-bezier(.16,1,.3,1),opacity .2s,margin .3s,padding .3s}
@media (prefers-reduced-motion:reduce){.switch .track::after{transition:none}.shake{animation:none}header.bar.open>nav.main,.svc-menu[open]>.svc-panel{animation:none}.pro-tabbar .tab-pill{transition:none}}

/* Work steps while a request goes out, and the request tracker (Andy 2026-11-02, labor illusion video). */
.ws{padding:var(--s-3,16px) var(--s-4,20px)}
.ws-list,.req-track{list-style:none;margin:0;padding:0}
.ws-row{display:flex;align-items:center;gap:10px;padding:6px 0;color:var(--muted,#51605a);transition:color .2s}
.ws-row.on,.ws-row.done{color:var(--text,#14201b)}
.ws-dot{width:16px;height:16px;border-radius:999px;border:2px solid var(--line-strong,#cbc8bc);flex:none;position:relative;transition:background .2s,border-color .2s}
.on>.ws-dot{border-color:var(--accent,#1d7a54);border-right-color:transparent;animation:ws-spin .8s linear infinite}
.done>.ws-dot{background:var(--accent,#1d7a54);border-color:var(--accent,#1d7a54);animation:none}
.done>.ws-dot::after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
@keyframes ws-spin{to{transform:rotate(360deg)}}
.req-track{display:flex;justify-content:center;gap:var(--s-3,16px);margin:0 auto var(--s-3,16px);flex-wrap:wrap;font-size:.9rem}
.req-track li{display:flex;align-items:center;gap:6px;margin-right:4px;color:var(--muted,#51605a)}
.req-track li.done,.req-track li.on{color:var(--text,#14201b);font-weight:600}
@media (prefers-reduced-motion: reduce){.on>.ws-dot{animation:none;border-right-color:var(--accent,#1d7a54)}}
.req-track li.on>.ws-dot{animation:none;border-color:var(--accent,#1d7a54);box-shadow:inset 0 0 0 3px #fcfbf8;background:var(--accent,#1d7a54)}
/* Keyboard up: bottom bars step aside so they never sit on top of the field (motion.js 11). */
body.kb-open .pro-tabbar,body.kb-open .sticky-cta,body.kb-open .pp-sticky{display:none!important}

/* Pros you viewed recently (home page, lib.js recentPros) */
.recent-row{display:flex;gap:var(--s-3,16px);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px}
.recent-pro{flex:0 0 min(300px,82%);scroll-snap-align:start;display:flex;flex-direction:column;gap:12px}
.recent-pro .row{gap:10px;align-items:center}
.recent-x{background:none;border:0;font-size:22px;line-height:1;color:var(--muted,#51605a);min-width:44px;min-height:44px;cursor:pointer}
.recent-row{align-items:flex-start}
.recent-pro>.row{flex-wrap:nowrap}
.recent-pro>.row:first-child>.row{flex:1;min-width:0}
.recent-pro>.row:last-child .btn{flex:1;text-align:center;white-space:nowrap}
.recent-img{width:56px;height:56px;border-radius:12px;object-fit:cover;flex:none}
.foot2-brand .app-store{display:inline-block;margin-top:var(--s-2,8px);font-weight:600}
.in-app .app-store{display:none}
