@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=Inter:wght@400;500;600;700;800&display=swap');

:root{
  --yellow:#ffc400;
  --yellow2:#ffb000;
  --black:#111111;
  --ink:#1c1c1c;
  --muted:#667085;
  --line:#e7e7e7;
  --cream:#fffaf0;
  --white:#fff;
  --shadow:0 18px 50px rgba(0,0,0,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--ink);background:#fff}
img{max-width:100%;display:block}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.site-header{height:104px;display:flex;align-items:center;justify-content:space-between;padding:8px 5.5%;position:sticky;top:0;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);z-index:50;border-bottom:1px solid rgba(0,0,0,.05)}
.brand img{width:260px;height:97px;object-fit:contain;object-position:center}
.nav{display:flex;align-items:center;gap:22px}
.nav a{color:#333;text-decoration:none;font-weight:600;font-size:.92rem}
.nav a:hover{color:#b87e00}
.btn{border:0;border-radius:10px;padding:12px 18px;font-weight:800;transition:.2s ease;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--yellow);color:#111;box-shadow:0 8px 18px rgba(255,196,0,.25)}
.btn-outline{background:#fff;color:#111;border:1px solid #d7d7d7}
.btn-light{background:#fff;color:#111}
.btn-dark{background:#111;color:#fff}
.btn-large{padding:16px 24px;font-size:1rem}
.btn-full{width:100%;margin-top:8px}
.menu-toggle{display:none;border:0;background:none;font-size:1.7rem}

.hero{min-height:650px;background:linear-gradient(120deg,#111 0%,#181818 58%,#28200b 100%);color:#fff;display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:center;padding:70px 8%;overflow:hidden}
.hero-copy{max-width:760px}
.eyebrow{display:inline-block;color:#bd8200;font-weight:900;font-size:.78rem;letter-spacing:.13em;margin-bottom:14px}
.hero .eyebrow{color:var(--yellow)}
h1,h2,h3{margin-top:0}
h1{font-family:"Archivo Black",Impact,sans-serif;font-size:clamp(3rem,6vw,5.8rem);line-height:.98;letter-spacing:-.04em;margin-bottom:25px}
h1 span{color:var(--yellow)}
.hero p{font-size:1.15rem;line-height:1.7;color:#d1d1d1;max-width:650px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin:32px 0}
.trust-row{display:flex;gap:35px;margin-top:30px}
.trust-row div{display:flex;flex-direction:column}
.trust-row strong{color:var(--yellow);font-size:1.1rem}
.trust-row span{font-size:.8rem;color:#aaa;margin-top:4px}
.hero-card{position:relative}
.duck-badge{position:absolute;width:190px;right:-20px;top:-75px;z-index:2;filter:drop-shadow(0 20px 25px rgba(0,0,0,.3))}
.duck-badge img{border-radius:50%;width:100%;height:100%;object-fit:cover}
.project-preview{background:#fff;color:#171717;border-radius:18px;padding:30px;box-shadow:var(--shadow);position:relative;z-index:1}
.preview-top,.preview-meta{display:flex;justify-content:space-between;gap:12px;color:#777;font-size:.82rem}
.tag{background:#fff1bd;color:#805a00;padding:6px 9px;border-radius:20px;font-weight:800}
.project-preview h3{font-size:1.6rem;margin:25px 0 10px}
.project-preview p{color:#555;font-size:.95rem;line-height:1.6}
.preview-meta{border-top:1px solid #eee;margin-top:20px;padding-top:18px}
.bids{color:#238245;font-weight:700}
.preview-button{width:100%;margin-top:25px;padding:14px;border:0;border-radius:9px;background:#111;color:#fff;font-weight:800}
.stats{display:grid;grid-template-columns:repeat(3,1fr);background:var(--yellow);padding:28px 10%;gap:20px;text-align:center}
.stats div{border-right:1px solid rgba(0,0,0,.18)}
.stats div:last-child{border:0}
.stats strong{display:block;font-family:"Archivo Black";font-size:1.25rem}
.stats span{font-size:.85rem}
.section{padding:100px 8%}
.section-heading{text-align:center;max-width:780px;margin:0 auto 55px}
.section-heading h2,.why-copy h2,.cta h2{font-family:"Archivo Black",Impact,sans-serif;font-size:clamp(2.2rem,4vw,3.8rem);line-height:1.05;letter-spacing:-.035em;margin-bottom:15px}
.section-heading p{color:var(--muted);line-height:1.7}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.step{border:1px solid var(--line);border-radius:16px;padding:32px;position:relative;transition:.2s}
.step:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.step-number{position:absolute;right:24px;top:22px;font-weight:900;color:#ddd}
.step-icon{font-size:2.3rem;margin-bottom:24px}
.step h3{font-size:1.25rem;margin-bottom:10px}
.step p{color:var(--muted);line-height:1.65;font-size:.95rem}
.projects-section{padding:90px 8%;background:#f7f7f5}
.projects-heading{max-width:none;text-align:left;display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:30px}
.projects-heading h2{margin-bottom:0}
.filters{display:flex;gap:12px;margin-bottom:26px}
.filters input,.filters select{padding:13px 15px;border:1px solid #ddd;border-radius:9px;background:#fff;width:auto;min-width:0;margin-top:0}
.filters input{flex:1 1 220px}
.filters select{flex:0 1 260px}
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.project-card{background:#fff;border:1px solid #e6e6e6;border-radius:14px;padding:23px;display:flex;flex-direction:column}
.project-card .category{font-size:.76rem;font-weight:800;color:#8a6100;text-transform:uppercase;letter-spacing:.08em}
.project-card h3{font-size:1.22rem;margin:13px 0 8px}
.project-card p{color:#667085;line-height:1.55;font-size:.9rem;flex:1}
.project-info{display:flex;justify-content:space-between;font-size:.8rem;border-top:1px solid #eee;padding-top:16px;margin-top:10px;color:#555}
.bid-count-note{flex:none!important;font-size:.72rem;color:#8a6100;margin-top:10px;font-weight:700}
.project-card button{margin-top:18px;background:#111;color:#fff;border:0;border-radius:8px;padding:12px;font-weight:800}
.project-card button[disabled]{background:#c8c8c8;cursor:not-allowed}
.why-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;align-items:center;padding:100px 12%;background:#111;color:#fff}
.why-logo img{width:280px;height:280px;border-radius:50%;object-fit:cover;box-shadow:0 20px 50px rgba(255,196,0,.12);margin:auto}
.why-copy p{color:#c5c5c5;line-height:1.8;font-size:1.05rem}
.why-copy ul{padding:0;list-style:none;margin-top:26px}
.why-copy li{padding:12px 0;border-bottom:1px solid #333;color:#eee}
.why-copy li:before{content:"✓";color:var(--yellow);font-weight:900;margin-right:12px}
.cta{background:var(--yellow);padding:65px 10%;display:flex;justify-content:space-between;align-items:center;gap:30px}
.cta .eyebrow{color:#6b4b00}
.cta h2{margin-bottom:8px}
.cta p{margin:0}
footer{padding:35px 7%;display:flex;align-items:center;justify-content:space-between;gap:25px;background:#fff;color:#666;font-size:.85rem}
.footer-brand img{width:70px;height:70px;object-fit:cover;border-radius:50%}
.footer-links{display:flex;gap:18px}
.footer-links a{color:#555;text-decoration:none}

.modal{position:fixed;inset:0;background:rgba(0,0,0,.68);display:none;align-items:center;justify-content:center;padding:20px;z-index:100}
.modal.active{display:flex}
.modal-card{width:min(680px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;padding:34px;position:relative;box-shadow:0 30px 80px rgba(0,0,0,.3)}
.close{position:absolute;right:18px;top:12px;border:0;background:none;font-size:2rem;color:#555}
.modal-card h2{font-family:"Archivo Black";font-size:2rem;margin-bottom:22px}
.modal-card p{color:#667085;line-height:1.6}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{display:block;font-size:.85rem;font-weight:700;margin:12px 0;color:#333}
input,textarea,select{display:block;width:100%;margin-top:7px;padding:13px;border:1px solid #d9d9d9;border-radius:8px;outline:none;background:#fff}
input:focus,textarea:focus,select:focus{border-color:#d8a300;box-shadow:0 0 0 3px rgba(255,196,0,.15)}
.form-note{font-size:.75rem;text-align:center;margin-bottom:0}
.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,30px);opacity:0;background:#111;color:#fff;padding:15px 22px;border-radius:9px;transition:.25s;z-index:200;font-weight:600;pointer-events:none}
.toast.show{opacity:1;transform:translate(-50%,0)}

@media(max-width:900px){
 .nav{display:none;position:absolute;top:92px;left:0;right:0;background:#fff;padding:20px;box-shadow:0 12px 25px rgba(0,0,0,.08);flex-direction:column;align-items:stretch}
 .nav.open{display:flex}
 .menu-toggle{display:block}
 .hero{grid-template-columns:1fr;padding:70px 7%}
 .hero-card{max-width:550px}
 .steps,.project-grid{grid-template-columns:1fr}
 .why-section{grid-template-columns:1fr;padding:70px 8%;gap:40px}
 .why-logo{max-width:350px;margin:auto}
 .cta{flex-direction:column;align-items:flex-start}
 .projects-heading{align-items:flex-start;flex-direction:column}
}
@media(max-width:600px){
 .site-header{height:88px;padding:6px 5%}
 .brand img{width:210px;height:78px}
 .nav{top:88px}
 .hero{min-height:auto;padding:60px 6%}
 h1{font-size:3rem}
 .trust-row{gap:15px}
 .trust-row span{font-size:.7rem}
 .stats{grid-template-columns:1fr;padding:20px}
 .stats div{border-right:0;border-bottom:1px solid rgba(0,0,0,.15);padding:10px}.stats div:last-child{border-bottom:0}
 .section,.projects-section{padding:65px 6%}
 .filters,.form-grid{grid-template-columns:1fr;display:grid}
 .duck-badge{width:120px;top:-35px;right:-5px}
 .project-preview{padding:23px}
 footer{flex-direction:column;text-align:center}
 .footer-links{flex-wrap:wrap;justify-content:center}
 .modal-card{padding:28px 20px}
}
.label-help{display:block;font-size:.72rem;color:#777;font-weight:400;margin-top:4px}
.range-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.photo-preview{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:10px 0 4px}
.photo-thumb{border:1px solid #e4e4e4;border-radius:9px;overflow:hidden;background:#f7f7f5;min-width:0}
.photo-thumb img{display:block;width:100%;height:82px;object-fit:cover}
.photo-thumb span{display:block;padding:6px;font-size:.66rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#666}
.project-detail{display:flex;justify-content:space-between;gap:12px;font-size:.78rem;color:#555;margin-top:12px;padding-top:12px;border-top:1px solid #eee}
.project-detail strong{font-weight:700;text-align:right}
@media(max-width:700px){.photo-preview{grid-template-columns:repeat(2,1fr)}.range-grid{grid-template-columns:1fr 1fr}}
.text-link{border:0;background:none;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}.dash-item{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid rgba(0,0,0,.1)}.dash-item span{opacity:.7;font-size:.92rem}

/* Contractor portal */
.contractor-page{min-height:70vh}.contractor-hero{padding-bottom:1rem}.contractor-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:2rem;align-items:start}.contractor-form-card,.contractor-side-card,.review-card{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:18px;padding:2rem;box-shadow:0 10px 30px rgba(0,0,0,.06)}.contractor-form-card form{display:grid;gap:1rem}.contractor-form-card label{display:grid;gap:.45rem;font-weight:600}.contractor-form-card input,.contractor-form-card select,.contractor-form-card textarea{width:100%;padding:.85rem;border:1px solid #cfd5dc;border-radius:8px;font:inherit}.check-row{display:flex!important;grid-template-columns:22px 1fr;align-items:start;font-size:.92rem;font-weight:400!important}.check-row input{width:18px!important;margin-top:.15rem}.rating-box{padding:1rem;border-radius:10px;background:#f4f6f8;min-height:60px}.contractor-side-card{position:sticky;top:1rem}.contractor-side-card li{margin:.8rem 0}.contractor-reviews{max-width:1000px}.review-card{margin:.75rem 0}.legal-page{max-width:950px;margin:0 auto}.legal-page h2{margin-top:2rem}.legal-page p{line-height:1.7}.site-footer{padding:2rem;text-align:center}.contractor-nav{display:flex;align-items:center;gap:1rem}
@media(max-width:800px){.contractor-layout{grid-template-columns:1fr}.contractor-side-card{position:static}.contractor-nav{display:none}}
/* Customer and contractor dashboards */
.customer-page{min-height:70vh}.customer-hero{padding-bottom:25px}.portal-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.customer-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:25px}.customer-stats>div{background:#fff;border:1px solid #e5e1d8;border-radius:14px;padding:20px}.customer-stats b{display:block;font-size:30px}.customer-stats span{color:#667085}.portal-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:24px}.portal-card{background:#fff;border:1px solid #e5e1d8;border-radius:16px;padding:22px;margin-bottom:16px}.project-head{display:flex;justify-content:space-between;gap:20px}.project-head h3{margin:8px 0 5px}.project-head p{color:#667085}.project-status .steps{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0}.project-status .steps span{padding:7px 10px;border-radius:18px;background:#eee;color:#737b83;font-size:11px}.project-status .steps .done{background:#dfeadf;color:#35613a}.project-status .steps .current{background:#f4d36e;color:#332800;font-weight:800}.project-actions{display:flex;gap:8px;flex-wrap:wrap}.conversation-link{display:block;width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid #eee;padding:14px 0;cursor:pointer}.conversation-link strong,.conversation-link small{display:block}.conversation-link small{color:#777;margin-top:4px}.bid-row{border:1px solid #e5e1d8;border-radius:12px;padding:18px;margin:12px 0}.bid-row>strong{font-size:25px}.bid-row-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}.bid-row-actions .badge{background:#dfeadf;color:#35613a;border-radius:18px;padding:6px 12px;font-size:12px;font-weight:700}.bid-row-actions .badge.muted{background:#eee;color:#737b83}.message-thread{max-height:430px;overflow:auto;padding:5px}.message-bubble{max-width:78%;background:#f0f0ec;border-radius:12px;padding:11px 13px;margin:9px 0}.message-bubble.mine{margin-left:auto;background:#fff0b5}.message-bubble small{display:block;color:#777;font-size:10px;margin-top:6px}.chat-card form{margin-top:15px}.chat-card textarea{width:100%;margin-bottom:10px}.legal-page{max-width:950px;margin:0 auto}.legal-page h2{margin-top:2rem}.legal-page p{line-height:1.7}@media(max-width:800px){.portal-grid,.customer-stats{grid-template-columns:1fr}.project-head{display:block}}

/* v3.4 additions: billing add-ons + review reply UI */
.billing-addons{margin-top:18px;border-top:1px solid #e5e1d8;padding-top:14px}
.billing-addon-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0}
.billing-addon-row+.billing-addon-row{border-top:1px solid #f0ede4}
.billing-addon-row p{margin:2px 0 0}
.billing-addon-row button{white-space:nowrap}
.token-pack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:4px}
.token-pack-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px}
.token-pack-btn .pack-size{font-size:.8rem;font-weight:600}
.token-pack-btn .pack-price{font-size:.95rem;font-weight:800;color:#151210}
.review-reply{margin-top:.75rem;padding:.85rem 1rem;background:#f4f6f8;border-radius:10px;border-left:3px solid #cfd5dc}
.review-reply strong{display:block;margin-bottom:.25rem;font-size:.85rem}
.review-reply-form{margin-top:.6rem;display:flex;gap:8px;flex-wrap:wrap}
.review-reply-form textarea{flex:1 1 220px;min-width:200px;padding:.6rem;border:1px solid #cfd5dc;border-radius:8px;font:inherit}
.star-picker{display:flex;gap:6px;font-size:1.6rem;margin:.5rem 0}
.star-picker button{background:none;border:0;cursor:pointer;color:#d8d8d8;padding:0;line-height:1}
.star-picker button.active{color:#f4d36e}

/* v3.4 additions: about-us section */
.about-us{max-width:900px;margin:0 auto;text-align:center}
.about-lead{font-size:1.15rem;line-height:1.75;color:#3a3a3a;margin-top:1rem}

/* v3.4 additions: upfront contractor pricing section */
.pricing-card{max-width:640px;margin:0 auto;background:#fff;border:1px solid #e5e1d8;border-radius:20px;padding:40px;box-shadow:0 10px 30px rgba(0,0,0,.06);text-align:center}
.pricing-card-main{margin-bottom:22px}
.pricing-amount{font-size:3.2rem;font-weight:800;display:block}
.pricing-amount small{font-size:1.1rem;font-weight:600;color:#667085}
.pricing-card-main p{margin-top:6px;color:#3a3a3a}
.pricing-list{text-align:left;list-style:none;padding:0;margin:0 0 26px;display:grid;gap:14px}
.pricing-list li{padding-left:26px;position:relative;color:#3a3a3a;line-height:1.5}
.pricing-list li::before{content:"✓";position:absolute;left:0;color:var(--yellow2,#ffb000);font-weight:800}
@media(max-width:600px){.pricing-card{padding:28px 22px}.pricing-amount{font-size:2.6rem}}

.founding-callout{max-width:640px;margin:28px auto 0;background:#151210;border:2px solid #f2a900;border-radius:20px;padding:28px 32px;display:flex;align-items:flex-start;gap:22px}
.founding-callout .founder-badge-lg{height:90px;flex-shrink:0;background:#fffdf8;border-radius:14px;padding:8px}
.founding-callout h3{color:#f2a900;margin:0 0 8px;font-size:1.3rem}
.founding-callout p{color:#fff;margin:0 0 10px}
.founding-callout p.form-note{color:#c9c3b6;margin:0}
.founding-callout a{color:#f2a900;font-weight:700}
@media(max-width:600px){.founding-callout{flex-direction:column;align-items:center;text-align:center;padding:24px 20px}}

/* v3.8 additions: CSRA service-area banner */
.service-area-banner{background:#1a1a1a;color:#fff;text-align:center;font-size:.8rem;font-weight:600;padding:8px 5%;letter-spacing:.02em}
.trust-row{flex-wrap:wrap}
@media(max-width:600px){.service-area-banner{font-size:.7rem;padding:7px 5%}}

/* Keep the "I'm a Contractor" nav link visually identical to the button-element nav CTAs beside it */
.nav a.btn{font-weight:800;text-decoration:none}
.nav a.btn-outline{color:#111}

/* v3.10 additions: contact page */
.contact-page{max-width:640px}
.contact-form{background:#fff;border:1px solid #e5e1d8;border-radius:20px;padding:36px;box-shadow:0 10px 30px rgba(0,0,0,.06)}
.contact-form input[type=text],.contact-form input[type=email]{width:100%;padding:.85rem;border:1px solid #cfd5dc;border-radius:8px;font:inherit}
.contact-form button{margin-top:10px}
.contact-form .form-note{margin-top:12px;min-height:1.2em}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

/* v3.10 additions: terms/privacy page metadata + lists */
.legal-updated{color:#8a8a8a;font-size:.85rem;margin-top:-.5rem}
.legal-callout{border:2px solid #d9822b;border-left-width:6px;border-radius:8px;background:#fdf6ec;padding:1.25rem 1.5rem;margin:1.5rem 0 2rem}
.legal-callout h2{margin-top:0}
.legal-callout p:last-child{margin-bottom:0}
.legal-crosslinks{font-size:.9rem}
.legal-page ul{line-height:1.7;padding-left:1.4rem;margin:.5rem 0 1rem}
.legal-page li{margin-bottom:.3rem}
.legal-disclaimer-note{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid #e5e1d8;font-size:.85rem;color:#8a8a8a}

/* v3.10 additions: multi-column site footer */
.site-footer-full{background:#1a1a1a;color:#c9c9c9;padding:56px 7% 28px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.site-footer-full .footer-col-brand img{height:36px;object-fit:contain;margin-bottom:10px}
.site-footer-full .footer-col-brand p{font-size:.85rem;line-height:1.5;color:#9a9a9a;max-width:220px}
.site-footer-full h3{color:#fff;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:14px}
.site-footer-full .footer-col{display:flex;flex-direction:column;gap:10px}
.site-footer-full .footer-col a{color:#c9c9c9;text-decoration:none;font-size:.9rem}
.site-footer-full .footer-col a:hover{color:#ffc400}
.site-footer-full .footer-bottom{grid-column:1/-1;border-top:1px solid #333;margin-top:24px;padding-top:20px;font-size:.8rem;color:#8a8a8a}
@media(max-width:800px){
  .site-footer-full{grid-template-columns:1fr 1fr;padding:44px 7% 24px}
  .site-footer-full .footer-col-brand{grid-column:1/-1;margin-bottom:10px}
}
@media(max-width:480px){
  .site-footer-full{grid-template-columns:1fr}
}

/* v3.11 additions: terms acceptance checkbox */
.terms-checkbox[hidden],[hidden]{display:none!important}
.terms-checkbox{display:flex!important;flex-direction:row;align-items:flex-start;gap:.5rem;font-weight:400;font-size:.85rem;margin:10px 0}
.terms-checkbox input[type=checkbox]{width:18px!important;height:18px;min-width:18px;padding:0;margin:.2rem 0 0;flex:0 0 auto;display:inline-block}
.terms-checkbox span{line-height:1.4}

/* v3.11 additions: 404 page */
.not-found-page{text-align:center;max-width:520px;margin:60px auto;padding:60px 20px}
.not-found-page h1{margin:.5rem 0}
.not-found-page p{color:#555;margin-bottom:1.8rem}

/* v3.14 additions: admin panel */
.admin-page{max-width:640px}
.founding-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;background:#fff;border:1px solid #e5e1d8;border-radius:14px;padding:16px 20px;margin-bottom:12px}
.founding-row strong{margin-right:8px}
.founding-status{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#8a8a8a}
.founding-row p{margin:.3rem 0 0}
.founding-row button{white-space:nowrap;flex-shrink:0}

/* v3.29: founder badge - gold pill with icon + real HTML text (not baked into the image),
   so it stays legible at any size, plus a hover tooltip that doesn't shift surrounding layout */
.founder-pill{position:relative;display:inline-flex;align-items:center;gap:7px;background:#f2a900;color:#151210;padding:4px 12px 4px 5px;border-radius:999px;font-size:.8rem;font-weight:700;letter-spacing:.2px;cursor:default;vertical-align:middle}
.founder-pill img{width:26px;height:26px;display:block}
.founder-pill .tip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(4px);background:#151210;color:#fff;font-size:.72rem;font-weight:500;line-height:1.4;padding:8px 12px;border-radius:8px;width:220px;text-align:center;opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease;z-index:20}
.founder-pill .tip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:#151210}
.founder-pill:hover .tip{opacity:1;transform:translateX(-50%) translateY(0)}
.founder-badge-lg{height:120px;width:auto;object-fit:contain;vertical-align:middle}
.founder-status-header{display:flex;align-items:center;gap:10px}
.opt{font-weight:400;font-size:.8rem;color:#8a8a8a}

/* v3.39 additions: contractor portfolio, references, and public mini-page */
.form-note-left{font-size:.8rem;color:var(--muted);text-align:left;margin:4px 0 0}
.portfolio-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-top:14px}
.portfolio-thumb{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;border:1px solid #e5e1d8}
.portfolio-thumb img{width:100%;height:100%;object-fit:cover}
.thumb-delete{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;background:rgba(17,17,17,.75);color:#fff;border:0;font-size:16px;line-height:1;cursor:pointer}
.reference-form{display:grid;gap:.85rem;margin-bottom:18px}
.reference-form label{display:grid;gap:.4rem;font-weight:600;font-size:.92rem}
.reference-form input{padding:.75rem;border:1px solid #cfd5dc;border-radius:8px;font:inherit}
.references-list{display:grid;gap:10px}
.reference-card{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border:1px solid #e5e1d8;border-radius:10px;padding:14px}
.reference-card p{margin:4px 0;color:var(--muted);font-size:.88rem}
.reference-card small{color:#8a8a8a}
.reference-card .thumb-delete{position:static;flex-shrink:0}

/* Public contractor mini-page (opened from a bid row) */
.mini-page .modal-card{max-width:760px}
.mini-page-header{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.mini-page-tagline{font-size:1.05rem;color:var(--muted);margin:0 0 18px}
.mini-page-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:20px}
.mini-page-facts div{background:#f4f6f8;border-radius:10px;padding:12px}
.mini-page-facts span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:3px}
.skill-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.skill-tags span{background:#fff4d6;color:#5a4200;border-radius:999px;padding:5px 12px;font-size:.82rem;font-weight:600}
.mini-page h3{margin:22px 0 10px;font-size:1.05rem}
.pricing-flexible-row{margin-top:10px}
.quote-pending{font-size:1rem;font-weight:700;color:var(--muted)}

/* ============================================================================
   HammerDuck app shell — added for the mobile build (also improves the website)
   Bump the ?v= on every stylesheet link when this file changes. See
   deploy-incident-stretched-images-2026-09-12: HTML and CSS must never desync.
   ========================================================================== */

/* --- iOS safe areas -------------------------------------------------------
   The app runs full-bleed, so without these the sticky header sits under the
   status bar / notch and the last row of any list hides behind the home
   indicator. viewport-fit=cover in the HTML is what makes env() resolve. */
:root{
  --hd-safe-top:env(safe-area-inset-top,0px);
  --hd-safe-bottom:env(safe-area-inset-bottom,0px);
  --hd-safe-left:env(safe-area-inset-left,0px);
  --hd-safe-right:env(safe-area-inset-right,0px);
  --hd-kb:0px;
}
.site-header{
  padding-top:calc(8px + var(--hd-safe-top));
  height:auto;min-height:104px;
  padding-left:max(5.5%,var(--hd-safe-left));
  padding-right:max(5.5%,var(--hd-safe-right));
}
body{padding-bottom:var(--hd-safe-bottom)}

/* --- touch ergonomics -----------------------------------------------------
   :hover on a touchscreen sticks after a tap, leaving buttons visibly lifted
   until you tap elsewhere. Restrict the lift to real pointers. */
@media (hover:hover) and (pointer:fine){
  .btn:hover{transform:translateY(-2px)}
}
@media (hover:none){
  .btn:hover{transform:none}
  .btn:active{transform:scale(.985)}
}
/* 44px is the documented minimum comfortable target on both platforms. */
@media(max-width:800px){
  .btn,.conversation-link,.thumb-delete,[data-bid],[data-bids],[data-award]{min-height:44px}
  .btn{padding:13px 18px}
}
/* Any input smaller than 16px makes iOS zoom the whole page on focus, which
   then leaves the layout scrolled sideways. */
input,select,textarea{font-size:max(16px,1rem)}
/* Momentum scrolling inside the message thread and modals. */
.modal-card,.message-thread,.hd-notify-list{-webkit-overflow-scrolling:touch}

/* A phone loses ~30% of the first screen to a 104px header and a 260px logo. */
@media(max-width:600px){
  .site-header{min-height:auto;padding-top:calc(6px + var(--hd-safe-top));padding-bottom:6px}
  .brand img{width:168px;height:62px}
}

/* --- keyboard ------------------------------------------------------------- */
body.hd-kb-open .chat-card form,
body.hd-kb-open .message-composer{padding-bottom:var(--hd-kb)}
body.hd-kb-open .message-thread{max-height:min(430px,40vh)}

/* --- offline banner ------------------------------------------------------- */
.hd-offline{
  position:fixed;left:0;right:0;bottom:0;z-index:300;
  background:#8a2b2b;color:#fff;font-weight:600;font-size:.86rem;
  padding:calc(10px + var(--hd-safe-bottom)) 16px 10px;text-align:center;
}
.hd-offline[hidden]{display:none}

/* --- skeleton loading -----------------------------------------------------
   Shows the shape of what's coming rather than a bare spinner. */
.hd-skel-card{background:#fff;border:1px solid #e5e1d8;border-radius:16px;padding:22px;margin-bottom:16px}
.hd-skel-line{height:12px;border-radius:6px;margin:10px 0;
  background:linear-gradient(90deg,#eee 25%,#f6f6f6 37%,#eee 63%);
  background-size:400% 100%;animation:hd-shimmer 1.4s ease infinite}
.hd-skel-line.w90{width:90%}.hd-skel-line.w60{width:60%}.hd-skel-line.w40{width:40%}
@keyframes hd-shimmer{0%{background-position:100% 50%}100%{background-position:0 50%}}
@media (prefers-reduced-motion:reduce){
  .hd-skel-line{animation:none}
  .btn{transition:none}
}

/* --- empty / error states ------------------------------------------------- */
.hd-empty h3,.hd-error-state h3{margin-bottom:6px}
.hd-empty p,.hd-error-state p{color:var(--muted);margin-bottom:14px}

/* --- confirm dialog (replaces window.confirm, which wedges the webview) ---- */
.hd-confirm-card{width:min(420px,100%);padding:26px}
.hd-confirm-card h2{font-size:1.35rem;margin-bottom:10px}
.hd-confirm-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px;flex-wrap:wrap}
.hd-confirm-actions .btn{flex:1 1 auto;min-width:120px}
.btn-danger{background:#8a2b2b;color:#fff}

/* --- notifications -------------------------------------------------------- */
.hd-notify-wrap{position:relative;display:inline-flex}
.hd-bell{position:relative;border:0;background:none;color:#333;padding:8px;border-radius:10px;display:inline-flex;min-height:44px;min-width:44px;align-items:center;justify-content:center}
.hd-bell:hover{background:#f3f3f3}
.hd-bell-dot{position:absolute;top:4px;right:4px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#c0392b;color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}
.hd-bell-dot[hidden]{display:none}
.hd-notify-panel{position:absolute;top:calc(100% + 8px);right:0;width:min(360px,92vw);max-height:70vh;overflow:auto;background:#fff;border:1px solid #e5e1d8;border-radius:14px;box-shadow:var(--shadow);z-index:120}
.hd-notify-panel[hidden]{display:none}
.hd-notify-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid #eee;position:sticky;top:0;background:#fff}
.hd-link{border:0;background:none;color:#b87e00;font-weight:700;font-size:.82rem;padding:6px}
.hd-notify-item{display:flex;gap:12px;padding:14px 16px;border-bottom:1px solid #f2f2f2;cursor:pointer;text-align:left}
.hd-notify-item:hover{background:#fcfbf7}
.hd-notify-item.unread{background:#fffaf0}
.hd-notify-item.unread strong::after{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:#c0392b;margin-left:7px;vertical-align:middle}
.hd-notify-item p{margin:3px 0 4px;color:var(--muted);font-size:.86rem;line-height:1.45}
.hd-notify-item small{color:#999;font-size:.74rem}
.hd-notify-icon{flex-shrink:0;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#f0f0ec;font-weight:800}
.hd-notify-icon.k-bid_won{background:#dfeadf;color:#35613a}
.hd-notify-icon.k-bid_lost{background:#eee;color:#737b83}
.hd-notify-icon.k-token_refunded{background:#fff0b5;color:#5a4200}
.hd-notify-empty{padding:26px 18px;color:var(--muted);text-align:center;font-size:.9rem}
@media(max-width:600px){
  /* The header's backdrop-filter makes it the containing block for fixed descendants, so a
     position:fixed bottom sheet ended up anchored to the header and opened upward off-screen.
     Anchor the panel under the header instead: the wrap goes static so the sticky header is
     the positioning parent, and the panel spans the full width beneath it. */
  .site-header > .hd-notify-wrap{position:static}
  .hd-notify-panel{position:absolute;top:100%;bottom:auto;right:0;left:0;width:100%;max-height:min(70vh,calc(100dvh - 104px));border-radius:0 0 16px 16px;padding-bottom:var(--hd-safe-bottom)}
}

/* --- contact unlock ------------------------------------------------------- */
.hd-contact-card{border:1px solid #e5e1d8;border-radius:12px;padding:16px;margin:12px 0;background:#fcfbf7}
.hd-contact-card h4{margin:0 0 10px;font-size:.95rem}
.hd-contact-card dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:.9rem}
.hd-contact-card dt{color:var(--muted)}
.hd-contact-card dd{margin:0;font-weight:600}
.hd-contact-locked{display:flex;gap:10px;align-items:flex-start;border:1px dashed #d6d0c2;border-radius:12px;padding:14px;margin:12px 0;color:var(--muted);font-size:.88rem;line-height:1.5}
.hd-contact-locked strong{color:var(--ink)}

/* --- match badges on the open board --------------------------------------- */
.hd-match{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 10px;font-size:.72rem;font-weight:800;letter-spacing:.02em}
.hd-match.strong{background:#dfeadf;color:#35613a}
.hd-match.county{background:#fff0b5;color:#5a4200}
.hd-match.weak{background:#f0f0ec;color:#737b83}
.hd-board-toggle{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 14px}
.hd-board-toggle label{display:inline-flex;gap:7px;align-items:center;font-weight:600;font-size:.88rem;color:#444;min-height:44px}

/* --- AI assist ------------------------------------------------------------ */
.hd-ai-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:8px 0 0}
.hd-ai-btn{border:1px solid #e0d6b8;background:#fffaf0;color:#5a4200;border-radius:10px;padding:10px 14px;font-weight:700;font-size:.85rem;min-height:44px}
.hd-ai-btn[disabled]{opacity:.55}
.hd-ai-quota{color:var(--muted);font-size:.76rem}
.hd-ai-out{border-left:3px solid var(--yellow);background:#fffdf6;padding:12px 14px;margin-top:10px;border-radius:0 10px 10px 0;font-size:.9rem;line-height:1.6;white-space:pre-wrap}
.hd-ai-out[hidden]{display:none}

/* --- private details fieldset on the post-a-project form ------------------- */
.hd-private-fieldset{border:1px solid #e5e1d8;border-radius:14px;padding:18px;margin:18px 0;background:#fcfbf7}
.hd-private-fieldset legend{font-weight:800;padding:0 8px;display:flex;align-items:center;gap:8px}
.hd-private-pill{background:#dfeadf;color:#35613a;border-radius:999px;padding:3px 10px;font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.hd-private-fieldset .form-note{margin:0 0 14px}

/* --- open board card header (category + match badge) ---------------------- */
.project-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.project-card-top .category{margin:0}

/* --- trade / county pickers on the contractor profile --------------------- */
.hd-picker{border:1px solid #e5e1d8;border-radius:14px;padding:18px;margin:18px 0;background:#fcfbf7}
.hd-picker legend{font-weight:800;padding:0 8px}
.hd-picker .form-note{margin:0 0 12px}
.hd-check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px}
.hd-check{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:9px;font-size:.9rem;font-weight:500;min-height:44px;cursor:pointer}
.hd-check:hover{background:#fff}
.hd-check input{width:18px;height:18px;flex-shrink:0;accent-color:#b87e00}
@media(max-width:600px){.hd-check-grid{grid-template-columns:1fr 1fr}.hd-check{font-size:.84rem}}

/* --- back link ------------------------------------------------------------ */
.hd-back{display:inline-flex;align-items:center;min-height:44px;color:#b87e00;font-weight:700;text-decoration:none;font-size:.9rem;margin-bottom:6px}
.hd-back:hover{text-decoration:underline}

/* Hamburger was a 34px target; both platforms document 44px as the minimum. */
.menu-toggle{min-width:44px;min-height:44px;display:none;align-items:center;justify-content:center}
@media(max-width:900px){.menu-toggle{display:flex}}

/* --- mobile layout corrections -------------------------------------------
   The 800px rule collapsed the stat row to a single column, so four short
   numbers ate roughly a full phone screen of scrolling before any content.
   They are small enough to sit side by side. */
@media(max-width:800px){
  .customer-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .customer-stats>div{padding:14px}
  .customer-stats b{font-size:24px}
  .customer-stats span{font-size:.8rem}
}
@media(max-width:380px){
  .customer-stats{grid-template-columns:1fr 1fr}
}
/* The match filters wrapped one word per line inside a narrow flex item. */
.hd-board-toggle{gap:14px}
.hd-board-toggle label{flex:0 1 auto;white-space:nowrap}
@media(max-width:600px){
  .hd-board-toggle{gap:10px}
  .hd-board-toggle label{font-size:.82rem}
  .hd-board-toggle .hd-ai-quota{flex:1 1 100%}
}
/* Action rows: full-width buttons on a phone read as a list, not a jumble. */
@media(max-width:520px){
  .project-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .project-actions .btn{width:100%}
  .project-actions .badge{grid-column:1/-1;text-align:center}
}

/* The bell lives in the header, never inside the collapsible nav — below 900px .nav is
   display:none, which hid notifications entirely on every phone. */
.site-header > .hd-notify-wrap{margin-left:auto;margin-right:6px}
@media(max-width:900px){
  .site-header > .hd-notify-wrap{margin-right:4px;position:static}
  .site-header > .hd-notify-wrap .hd-notify-panel{position:absolute;top:100%;bottom:auto;left:0;right:0;width:100%;max-height:min(70vh,calc(100dvh - 104px))}
}

/* The injected hamburger sits between the bell and the nav. .menu-toggle was
   display:block from 900px down; flex centring keeps the glyph in the middle of the
   44px target. */
.menu-toggle{font-size:1.7rem;line-height:1;border:0;background:none;color:#111;border-radius:10px}
.menu-toggle:hover{background:#f3f3f3}
@media(max-width:900px){
  .menu-toggle{display:inline-flex}
  .nav{z-index:60}
}

/* .hd-link is a real action ("Select the whole CSRA", "Mark all read"), so it needs a
   proper target even though it is styled as a link. The checkbox INPUTs elsewhere are
   18px by design - their wrapping label is the 44px target, which is what a finger hits. */
.hd-link{min-height:44px;display:inline-flex;align-items:center}
.check-row{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}
.check-row input{width:18px;height:18px;flex-shrink:0;accent-color:#b87e00}

/* Project photos (v20260913a) */
.hd-photo-strip{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 12px}
.hd-photo-thumb{display:block;width:84px;height:84px;border-radius:10px;overflow:hidden;border:1px solid #e5e1d8;background:#f4f2ec;flex:0 0 auto}
.hd-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.hd-lightbox{display:flex;align-items:center;justify-content:center;padding:16px}
.hd-lightbox-card{position:relative;max-width:min(96vw,1100px);max-height:92vh}
.hd-lightbox-card img{max-width:100%;max-height:92vh;border-radius:12px;display:block;background:#111}
.hd-lightbox-card .close{position:absolute;top:8px;right:8px;background:#fff;border-radius:50%;width:38px;height:38px;border:0;font-size:22px;line-height:1;cursor:pointer}
#bidPhotos .hd-photo-strip{margin-top:0}

/* Scheduling (v20260914a) ------------------------------------------------- */
.hd-notify-icon.k-visit_proposed{background:#fff0b5;color:#5a4200}
.hd-notify-icon.k-visit_accepted{background:#dfeadf;color:#35613a}
.hd-notify-icon.k-visit_declined,.hd-notify-icon.k-visit_cancelled{background:#eee;color:#737b83}

.hd-sched-section{border-top:1px solid #eee;margin-top:14px;padding-top:12px}
.hd-sched-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.hd-sched-head h4{margin:0;font-size:.95rem}
.hd-sched-empty{color:var(--muted);font-size:.9rem;margin:6px 0 10px}
.hd-pill{display:inline-block;border-radius:18px;padding:5px 11px;font-size:.76rem;font-weight:700;line-height:1.2;background:#eee;color:#737b83}
.hd-pill.ok{background:#dfeadf;color:#35613a}
.hd-pill.waiting{background:#fff0b5;color:#5a4200}
.hd-pill.muted{background:#eee;color:#737b83}
.hd-batch{border:1px solid #e5e1d8;border-radius:12px;padding:12px 14px;margin:8px 0;background:#fcfbf7}
.hd-batch.is-dead{opacity:.72;background:#fafafa}
.hd-batch-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:6px}
.hd-batch-head strong{font-size:.9rem}
.hd-batch-head small{color:var(--muted)}
.hd-appt{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:9px 0;border-top:1px dashed #e5e1d8}
.hd-appt:first-of-type{border-top:0}
.hd-appt-main{display:flex;flex-direction:column;gap:4px;min-width:0}
.hd-appt-main strong{font-size:.98rem}
.hd-appt.s-declined .hd-appt-main strong,.hd-appt.s-cancelled .hd-appt-main strong{text-decoration:line-through;color:#8a8f96}
.hd-appt-note{color:var(--muted);font-size:.86rem;margin:0}
.hd-appt-actions{display:flex;gap:8px;flex-wrap:wrap}
.hd-appt-actions .btn{padding:9px 14px;font-size:.86rem;min-height:40px}
.hd-propose-btn{margin-top:8px}
.hd-avail-hint{background:#fff7d6;border-radius:10px;padding:10px 12px;font-size:.9rem;color:#5a4200!important}

/* propose modal */
.hd-sched-modal .modal-card form{display:grid;gap:12px}
.hd-sched-modal .modal-card label{display:grid;gap:6px;font-weight:600}
.hd-sched-modal input,.hd-sched-modal select,.hd-sched-modal textarea{width:100%;padding:.8rem;border:1px solid #cfd5dc;border-radius:8px;font:inherit;background:#fff}
.hd-slots{display:grid;gap:10px}
.hd-slot{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}
.hd-slot label{font-weight:600}
.hd-slot-remove{width:44px;height:44px;border:1px solid #d7d7d7;border-radius:8px;background:#fff;font-size:20px;cursor:pointer}
.hd-sched-modal .hd-link{justify-self:start;background:none;border:0;color:#bd8200;font-weight:700;cursor:pointer;padding:0}
#hdSchedWarn{background:#fff0b5;padding:10px 12px;border-radius:8px;color:#5a4200!important}
@media(max-width:600px){.hd-slot{grid-template-columns:1fr 1fr auto;gap:8px}.hd-slot label{font-size:.85rem}}

/* calendar */
.hd-cal{background:#fff;border:1px solid #e5e1d8;border-radius:14px;padding:14px}
.hd-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.hd-cal-nav strong{font-size:1rem}
.hd-cal-btn{width:44px;height:44px;border:1px solid #e5e1d8;border-radius:10px;background:#fff;font-size:22px;cursor:pointer;line-height:1}
.hd-cal-btn:hover{background:#f7f5ef}
.hd-cal-dow,.hd-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.hd-cal-dow span{text-align:center;font-size:.72rem;font-weight:800;color:#8a8f96;text-transform:uppercase;padding:4px 0}
.hd-cal-cell{position:relative;min-height:48px;border:1px solid transparent;border-radius:10px;background:#faf9f5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;font:inherit;padding:4px 0}
.hd-cal-cell.empty{background:transparent;cursor:default}
.hd-cal-cell.today{border-color:#f4d36e}
.hd-cal-cell.has{background:#fff7d6}
.hd-cal-cell.selected{background:#151210;color:#fff}
.hd-cal-cell:not(.empty):hover{border-color:#bd8200}
.hd-cal-num{font-size:.9rem;font-weight:700}
.hd-cal-dots{display:flex;gap:3px}
.hd-cal-dots i,.hd-cal-key i{display:inline-block;width:8px;height:8px;border-radius:50%}
.hd-cal-dots i.ok,.hd-cal-key i.ok{background:#35613a}
.hd-cal-dots i.wait,.hd-cal-key i.wait{background:#e3a900}
.hd-cal-cell.selected .hd-cal-dots i.ok{background:#9be0a2}
.hd-cal-key{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:.78rem;color:var(--muted)}
.hd-cal-key span{display:inline-flex;align-items:center;gap:6px}
.hd-agenda{margin-top:14px}
.hd-agenda-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 0;border-top:1px solid #eee}
.hd-agenda-row p{margin:2px 0 0;color:var(--muted);font-size:.86rem}
.hd-agenda-row strong{font-size:.95rem}
@media(max-width:600px){.hd-cal{padding:10px}.hd-cal-cell{min-height:42px}.hd-cal-num{font-size:.82rem}}

/* availability editor (Pro profile) */
.hd-avail-grid{display:grid;gap:6px}
.hd-avail-row{display:grid;grid-template-columns:150px 1fr;gap:10px;align-items:center;padding:4px 0;border-bottom:1px solid #f0efe9}
.hd-avail-row .check-row{font-weight:600!important;min-height:44px}
.hd-avail-times{display:flex;align-items:center;gap:8px}
.hd-avail-times select{flex:1 1 120px;min-width:0;padding:.6rem;border:1px solid #cfd5dc;border-radius:8px;font:inherit}
.hd-avail-times span{color:var(--muted);font-size:.85rem}
@media(max-width:600px){.hd-avail-row{grid-template-columns:1fr}.hd-avail-times{padding-left:28px}}
.hd-avail-summary{background:#fcfbf7;border:1px solid #e5e1d8;border-radius:10px;padding:10px 12px;font-size:.9rem;margin-top:8px}
.portal-card > .hd-sched-section{border-top:0;margin-top:0;padding-top:0}
#messageSchedule .hd-sched-section{margin-bottom:10px}
.hd-mini-avail{background:#fcfbf7;border:1px solid #e5e1d8;border-radius:12px;padding:12px 14px;margin:12px 0}
.hd-mini-avail h3{margin:0 0 6px;font-size:1rem}
.hd-mini-avail p{margin:0;color:#444}
@media(max-width:600px){.hd-slot{grid-template-columns:1fr 1fr 36px}.hd-slot-remove{width:36px;height:44px}.hd-slot select,.hd-slot input{padding:.75rem .5rem}}

/* Membership self-service (v20260914a) */
.hd-membership-actions{display:grid;gap:8px;margin:10px 0 6px}
.hd-membership-actions .btn{width:100%}
.hd-membership-actions .btn-cancel{background:#fff;border:1px solid #d7d7d7;color:#8a1c1c}
.hd-membership-actions .btn-cancel:hover{background:#fff5f5;border-color:#c0392b}
.hd-ending-notice{background:#fff7d6;border:1px solid #f4d36e;border-radius:12px;padding:12px 14px;font-size:.9rem;line-height:1.5;color:#3d2c00}
.hd-ending-notice strong{display:block;margin-bottom:4px}
.hd-ended-notice{background:#fdecec;border:1px solid #f3b8b8;border-radius:12px;padding:12px 14px;font-size:.9rem;line-height:1.5;color:#5a1a1a}
.hd-ended-notice strong{display:block;margin-bottom:4px}
.hd-board-gate{background:#fff;border:1px dashed #d7d7d7;border-radius:16px;padding:22px;margin-bottom:16px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.hd-board-gate span.lock{font-size:1.6rem}
.hd-board-gate p{margin:0;color:#444;flex:1 1 320px}
.project-grid.is-locked .project-card{opacity:.55}
.project-grid.is-locked .project-card button{background:#eee;color:#666;box-shadow:none}

/* v3.66 - a pack that would go over the per-period or balance limit */
.token-pack-btn:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.6)}

/* v20260918a - legal-compliance round */
.hd-agree-card{max-width:560px}
.hd-agree-card p,.hd-agree-card li{line-height:1.55}
.hd-agree-list{margin:.5rem 0 1rem;padding-left:1.3rem}
.hd-agree-list li{margin:.3rem 0}
.hd-agree-card .check-row{display:flex!important;gap:.6rem;align-items:flex-start;font-weight:400!important;margin:.75rem 0}
.hd-agree-card .check-row input{width:18px!important;margin-top:.2rem;flex:0 0 auto}
.hd-agree-card form{display:grid;gap:.75rem}
.hd-agree-card form label:not(.check-row){display:grid;gap:.35rem;font-weight:600}
.hd-agree-card form input{width:100%;padding:.75rem;border:1px solid #cfd5dc;border-radius:8px;font:inherit}
.hd-renewal-disclosure{border:1px solid #d9822b;border-left-width:5px;border-radius:8px;background:#fdf6ec;padding:.85rem 1rem;margin:.75rem 0;font-size:.9rem;line-height:1.55}
.hd-diligence{margin-top:.75rem;padding:.75rem 1rem;background:#f4f6f8;border-radius:8px;line-height:1.5}
.hd-contact-rules{margin:.75rem 0 0;padding-top:.6rem;border-top:1px dashed #cfd5dc;font-size:.85rem;line-height:1.5}
.legal-page .notice.legal-callout{font-size:.95rem}
.legal-page .updated{color:#667085;font-size:.95rem}
.legal-page h3{margin-top:1.5rem}
.legal-list{list-style:none;padding:0}
.legal-list li{margin:0 0 1rem;line-height:1.6}
.legal-list a{font-weight:700}
.legal-page h1,.legal-page h2,.legal-page h3{overflow-wrap:anywhere}
.legal-page{overflow-x:hidden}

/* ---- Español switch (hd-i18n.js) --------------------------------------------------
   The switch sits in the header itself, never inside the collapsible nav, for the same
   reason the bell does: below 900px .nav is hidden, and a Spanish reader has to be able
   to find this without first reading an English menu. */
html.hd-i18n-wait body{visibility:hidden}
.hd-lang{appearance:none;-webkit-appearance:none;border:1.5px solid #151210;background:#fff;color:#151210;font:inherit;font-weight:800;font-size:.85rem;line-height:1;padding:.6rem .85rem;border-radius:999px;cursor:pointer;min-height:40px;white-space:nowrap;flex:0 0 auto}
.hd-lang:hover,.hd-lang:focus-visible{background:#f2a900;border-color:#f2a900}
.site-header > .hd-lang{margin-left:auto;margin-right:14px}
.site-header > .hd-notify-wrap + .hd-lang{margin-left:0}
@media(max-width:900px){.site-header > .hd-lang{margin-right:6px;padding:.55rem .7rem;font-size:.8rem;min-height:44px}}
.hd-lang-floating{position:fixed;left:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:70;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.hd-i18n-legal-note{background:#fff8e1;border:1px solid #f2a900;border-radius:12px;padding:14px 16px;margin:0 0 24px;font-size:.95rem;line-height:1.6;color:#151210}
.hd-i18n-legal-note .hd-link{display:inline;min-height:0;padding:0;margin-left:4px;font-size:inherit;text-decoration:underline;cursor:pointer}
/* Wide screens: the switch goes last, after the nav links, where people look for it. */
@media(min-width:901px){
  .site-header > .hd-lang{order:9;margin-left:18px;margin-right:0}
  .site-header > .brand + .hd-lang ~ .nav{margin-left:auto}
}
/* Spanish labels run longer than the English ones; keep the header on one line. */
@media(min-width:901px){
  .nav a,.nav button{white-space:nowrap}
  html[lang="es"] .nav{gap:16px}
  html[lang="es"] .nav .btn{padding-left:16px;padding-right:16px}
}
@media(min-width:901px) and (max-width:1180px){
  html[lang="es"] .site-header{padding-left:3%;padding-right:3%}
  html[lang="es"] .nav{gap:12px}
  html[lang="es"] .nav a,html[lang="es"] .nav button{font-size:.86rem}
}

/* Build 2026-09-20a: account deletion control (HD.mountDeleteAccount) and delete-account.html */
.hd-delete-account{margin-top:16px;padding-top:14px;border-top:1px solid #e5e1d8}
.hd-delete-account .form-note{margin:0 0 10px}
.hd-delete-account-btn{color:#8a2b2b}
.hd-delete-page ol{line-height:1.7;padding-left:1.4rem;margin:.5rem 0 1rem}
.hd-delete-page .eyebrow{display:block}

/* Build 2026-09-25b: launch-offer notes shown only until billing starts (HD.mountPrebilling) */
.pricing-launch-note,.hd-prebilling-note{background:#fff6dc;border-left:4px solid #f2a900;padding:10px 12px;border-radius:6px}
.pricing-card-main .pricing-launch-note{margin-top:12px}
/* Build 2026-09-25e: new-job alerts open the job on the board; email switches in the Account card. */
.project-card{scroll-margin-top:96px}
.hd-focus{outline:3px solid #f2a900;outline-offset:3px;box-shadow:0 0 0 8px rgba(242,169,0,.22);transition:box-shadow .3s,outline-color .3s}
.project-status,#billingCard{scroll-margin-top:96px}
.hd-notify-icon.k-project_posted{background:#fff4d6;color:#805600}
.hd-email-prefs{margin:.75rem 0 1rem;padding-top:.75rem;border-top:1px solid #eee}
.hd-email-prefs-title{margin:0 0 .25rem}
.hd-email-prefs .check-row{align-items:flex-start;font-size:.92rem;margin:.15rem 0;min-height:40px}
.hd-email-prefs .check-row input{margin-top:.2rem}
.hd-email-prefs .form-note{text-align:left;margin:.35rem 0 0;color:#6b655b}

/* Build 2026-10-02l: why the sign-up form came first ("Post a project", account first). */
.hd-auth-intro{background:#fff7d6;color:#5a4200;border-radius:10px;padding:10px 12px;margin:0 0 14px;text-align:left;font-size:.9rem;line-height:1.45}

/* Build 2026-10-02l: Facebook footer link, Meta primary logo shown alone (official file, unaltered). */
.fb-link{display:inline-block;line-height:0;margin:7px 0;text-decoration:none!important}
.fb-link{flex:0 0 auto}
.fb-link img{display:block;width:28px;height:28px;max-width:none}
.fb-link-sm{margin:6px 0}
.fb-link-sm img{width:24px;height:24px}
.site-footer-full .fb-link{margin-top:10px}
.footer-links .fb-link{margin:0 4px 0 0;align-self:center}
.site-footer .fb-row{margin:4px 0 0}


/* ---------------------------------------------------------------- build 2026-10-03o: job board */
.hd-board{padding-top:40px}
.hd-pro-stats{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:14px;margin:0 0 34px}
.hd-pro-stats>div{background:#fff;border:1px solid #e5e1d8;border-radius:14px;padding:16px 18px}
.hd-pro-stats b{display:block;font-size:28px;line-height:1.1}
.hd-pro-stats b small{font-size:15px;color:#667085;font-weight:700}
.hd-pro-stats span{color:#667085;font-size:.88rem}
.hd-meter{display:flex;gap:4px;margin:10px 0 6px}
.hd-meter i{flex:1;height:8px;border-radius:4px;background:#ece8de}
.hd-meter i.on{background:#111}
.hd-board-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 16px}
.hd-board-head .eyebrow{margin-bottom:6px}
.hd-board-head h2{font-family:"Archivo Black",Impact,sans-serif;font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:-.02em;line-height:1.05;margin:0}
.hd-tabs{display:flex;gap:6px;background:#ece8de;border-radius:12px;padding:4px;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.hd-tabs button{border:0;background:transparent;padding:9px 14px;min-height:40px;border-radius:9px;font:inherit;font-weight:700;font-size:.9rem;color:#444;white-space:nowrap;cursor:pointer}
.hd-tabs button.on{background:#fff;color:#111;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.hd-tabs em{font-style:normal;background:#cfc9bb;color:#333;border-radius:999px;padding:1px 8px;font-size:.75rem;margin-left:4px}
.hd-tabs button.on em{background:#111;color:#fff}
.hd-board-tools{margin-bottom:10px}
.hd-board-summary{margin:0 0 18px}
.hd-chips{display:flex;gap:6px;flex-wrap:wrap}
.hd-chip{border-radius:999px;padding:3px 9px;font-size:.7rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}
.hd-chip.new{background:#111;color:#ffc400}
.hd-chip.soon{background:#fde2d2;color:#9a3412}
.hd-job.is-closing{border-color:#f3b896}
.hd-job.is-full{opacity:.75}
.hd-job-match{margin:4px 0 0}
.project-card .hd-job-desc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:none;margin-bottom:10px}
.project-card .hd-job-when{flex:none;font-size:.82rem;margin-top:6px}
.hd-job .project-info{margin-top:auto}
.hd-job-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid #eee;font-size:.78rem;color:#8a6100;font-weight:700}
.hd-slots{display:inline-flex;gap:3px}
.hd-slots i{width:9px;height:9px;border-radius:50%;background:#e6e1d4}
.hd-slots i.on{background:#bd8200}
.hd-job-age{margin-left:auto;color:#8c8c8c;font-weight:600}
.hd-board-more{display:flex;gap:10px 22px;flex-wrap:wrap;justify-content:center;margin:20px 0 0;color:#555;font-size:.9rem}
.hd-board-more a,.hd-linkbtn{color:#111;font-weight:800;text-decoration:underline}
.hd-linkbtn{background:none;border:0;padding:0 2px;font:inherit;font-weight:800;cursor:pointer;min-height:32px}
.hd-work-head{margin-bottom:14px}
#work .portal-grid>*{min-width:0}
.hd-state{display:inline-block;border-radius:999px;padding:4px 10px;font-size:.72rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}
.hd-state.wait{background:#fff0b5;color:#5a4200}
.hd-state.visit{background:#e3ecfb;color:#1e40af}
.hd-state.reply{background:#dfeadf;color:#35613a}
.hd-state.closed{background:#f0f0ec;color:#737b83;text-transform:none;letter-spacing:0}
.hd-closes-line{font-size:.86rem;color:#8a6100;font-weight:600;margin:6px 0 0}
.hd-closed-row{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;border:1px dashed #d8d3c6;border-radius:12px;padding:12px 16px;margin:0 0 8px}
.hd-closed-row strong,.hd-closed-row small{display:block}
.hd-closed-row small{color:#667085;margin-top:3px}
.hd-closed-note{margin-top:6px}
@media(max-width:900px){
  .hd-pro-stats{grid-template-columns:1fr 1fr}
  .hd-pro-stats>div.hd-stat-meter{grid-column:1/-1}
}
@media(max-width:600px){
  .hd-board{padding-top:24px}
  .hd-pro-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:24px}
  .hd-pro-stats>div{padding:11px 12px}
  .hd-pro-stats b{font-size:21px}
  .hd-pro-stats span{font-size:.74rem;line-height:1.25;display:block}
  .hd-pro-stats>div.hd-stat-meter{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}
  .hd-pro-stats>div.hd-stat-meter .hd-meter{margin:0}
  .hd-board-tools.filters{grid-template-columns:1fr 1fr;gap:8px}
  .hd-board-tools.filters input{grid-column:1/-1}
  .hd-board-tools.filters select{font-size:.85rem;padding:11px 10px}
  .hd-board-head{align-items:flex-start;flex-direction:column}
  .hd-tabs{width:100%}
  .hd-tabs button{flex:1 0 auto;padding:9px 10px}
  .hd-closed-row{flex-direction:column;align-items:flex-start}
}
.portal-card .btn-full{white-space:normal;line-height:1.25;height:auto}

/* build 2026-10-04p: long confirm buttons wrap inside the card instead of running off it */
.hd-confirm-actions .btn{white-space:normal;line-height:1.25;max-width:100%;text-align:center}

/* ---------- build 2026-10-05r: share a finished job ---------- */
.hd-share-card h2{margin-bottom:14px}
.hd-share-preview{display:grid;grid-template-columns:1fr;border:1px solid #dde1e6;border-radius:12px;overflow:hidden;background:#f0f2f5}
.hd-share-preview img{display:block;width:100%;height:auto;aspect-ratio:1200/630;object-fit:cover}
.hd-share-preview div{display:grid;gap:2px;padding:10px 14px 12px;min-width:0}
.hd-share-preview small{font-size:.72rem;color:#65676b;letter-spacing:.02em}
.hd-share-preview strong{font-size:1rem;line-height:1.25;color:#050505;overflow-wrap:anywhere}
.hd-share-preview span{font-size:.85rem;color:#65676b}
.hd-share-review{margin-top:12px}
.hd-share-caption{margin-top:12px;border:1px dashed #cfd5dc;border-radius:10px;padding:10px 12px;background:#fffdf6}
.hd-share-caption span{display:block;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#8a6a00}
.hd-share-caption p{margin:4px 0 0;font-weight:600;overflow-wrap:anywhere}
.hd-share-actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 6px}
.hd-share-actions .btn{flex:1 1 auto;white-space:normal}
.hd-fb-btn{background:#1877F2;color:#fff;border:0}
.hd-fb-btn:hover,.hd-fb-btn:focus-visible{background:#0f63d6;color:#fff}
.hd-share-linkbox{width:100%;margin:6px 0;padding:.7rem;border:1px solid #cfd5dc;border-radius:8px;font:inherit;font-size:.9rem}
.link-btn{background:none;border:0;padding:0;font:inherit;color:#8a5a00;text-decoration:underline;cursor:pointer}
.btn.hd-done-btn{background:#1f7a3f;color:#fff;border:0}
.btn.hd-done-btn:hover{background:#18632f;color:#fff}
@media (max-width:520px){.hd-share-actions .btn{flex:1 1 100%}}

/* Build t (2026-10-13): Account page and the "Check your email" dialog after sign-up */
.account-page{max-width:760px;margin:0 auto}
.account-page h1{margin:.25rem 0 .5rem}
.account-card{margin-top:1.25rem}
.account-card h2{margin-top:0;font-size:1.25rem}
.account-card .form-note{margin:0}
.account-card form{display:grid;gap:1rem}
.account-card form .btn{justify-self:start}
.hd-check-email .hd-confirm-card,.hd-check-email .hd-confirm-card p{text-align:left}
.hd-check-email .eyebrow{display:block;margin-bottom:.35rem}
.hd-check-email-addr{font-size:1.15rem;word-break:break-all;margin:.25rem 0 .75rem}

/* build 2026-10-13v: on a phone the second button in a card's action row ("Mark work as
   started", "Share this job") ran past the card edge, because .btn is nowrap inside the
   two-column .project-actions grid. Let those labels wrap inside their cell. */
@media(max-width:520px){.project-actions .btn{white-space:normal;min-width:0}}

/* build aa (14 Oct 2026): sign-up errors shown inside the form, not only as a toast under the phone keyboard */
.hd-auth-status{display:block;margin:0 0 10px;padding:10px 12px;border-radius:8px;background:#fff3f3;border:1px solid #e4a9a9;color:#7a1f1f;font-size:.85rem;line-height:1.4;text-align:left;font-weight:600}
.hd-auth-status[hidden]{display:none}
/* Build ae: Pro company logo (Pro page band, profile editor, dashboard brand) */
.hd-pro-logo{display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e5e1d8;border-radius:14px;padding:14px 18px;margin:0 40px 18px 0;min-height:96px}
.hd-pro-logo img{display:block;max-width:100%;max-height:140px;width:auto;height:auto;object-fit:contain}
.hd-logo-editor{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:6px 0 18px;padding:16px;border:1px solid #e5e1d8;border-radius:14px;background:#fcfbf7}
.hd-logo-preview{flex:0 0 auto;width:180px;height:110px;display:flex;align-items:center;justify-content:center;background:#fff;border:2px dashed #cbc5b6;border-radius:12px;overflow:hidden;color:#98a2b3;font-size:.85rem;font-weight:700;text-align:center;padding:8px}
.hd-logo-preview.has-logo{border-style:solid;border-color:#e5e1d8}
.hd-logo-preview img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.hd-logo-copy{flex:1 1 240px;min-width:0}
.hd-logo-copy strong{display:block;font-size:1rem;margin-bottom:2px}
.hd-logo-copy .form-note-left{margin:4px 0 10px}
.hd-logo-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.hd-dash-brand{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 18px}
.hd-dash-brand img{display:block;max-height:88px;max-width:240px;width:auto;height:auto;object-fit:contain;background:#fff;border:1px solid #e5e1d8;border-radius:12px;padding:8px 12px}
.hd-dash-brand-empty{width:150px;height:80px;display:flex;align-items:center;justify-content:center;border:2px dashed #cbc5b6;border-radius:12px;color:#98a2b3;font-weight:700;font-size:.85rem;background:#fff}
.hd-dash-brand strong{display:block;font-size:1.1rem}
.hd-dash-brand a{font-weight:700;font-size:.9rem}
.hd-dash-brand span{display:block;color:#667085;font-size:.85rem}
@media(max-width:560px){.hd-pro-logo{margin-right:34px;min-height:80px}.hd-pro-logo img{max-height:110px}.hd-logo-preview{width:100%;height:120px}}
/* Build af: Google business search on the Pro profile */
.hd-gfind{margin:6px 0 14px;padding:14px;border:1px solid #e5e1d8;border-radius:12px;background:#fcfbf7}
.hd-gfind-label{margin:0 0 8px}.hd-gfind-label strong{display:block}.hd-gfind-label span{display:block;color:#667085;font-size:.88rem}
.hd-gfind-row{display:flex;gap:8px;flex-wrap:wrap}.hd-gfind-row input{flex:1 1 220px;min-width:0;padding:.85rem;border:1px solid #cfd5dc;border-radius:8px;font:inherit}
.hd-gfind-results{margin-top:8px;display:grid;gap:8px}
.hd-gfind-pick{display:grid;gap:2px;text-align:left;width:100%;padding:10px 12px;border:1px solid #e5e1d8;border-radius:10px;background:#fff;cursor:pointer;font:inherit;color:#151210}
.hd-gfind-pick:hover,.hd-gfind-pick:focus{border-color:#151210}
.hd-gfind-pick span{color:#667085;font-size:.85rem}.hd-gfind-pick em{font-style:normal;color:#8a5d00;font-weight:700;font-size:.85rem}
.hd-howto{margin:6px 0 12px;font-size:.9rem}.hd-howto summary{cursor:pointer;font-weight:700;color:#8a5d00}.hd-howto ol{margin:8px 0 6px 1.2rem;padding:0}.hd-howto li{margin:3px 0}.hd-howto p{margin:4px 0 0;color:#667085;font-size:.85rem}
/* Build ag: numbered steps for adding a Google rating */
.hd-gsteps{margin:4px 0 10px 1.25rem;padding:0;font-size:.92rem;line-height:1.45;color:#3a3a3a}
.hd-gsteps li{margin:5px 0;padding-left:2px}
.hd-gsteps strong{color:#151210}
.hd-gsteps-intro{margin:0 0 6px}

/* Build ah: sign-in rescue (no account yet) and the new Pro's first step */
.hd-auth-status.hd-auth-rescue{background:#fffaf0;border-color:#e3c46b;color:#151210;font-weight:500}
.hd-auth-status.hd-auth-info{background:#f2f7f2;border-color:#9cc59f;color:#1f4d23;font-weight:500}
.hd-rescue-line{display:block;margin:0 0 8px}
.hd-rescue-head{font-weight:800}
.hd-rescue-foot{margin:10px 0 0;color:#5a5348;font-size:.82rem}
.hd-auth-rescue .hd-rescue-pro{margin:4px 0 6px;min-height:44px}
.hd-auth-rescue .hd-rescue-home{display:block;margin:0 auto;font-size:.85rem;min-height:36px}
/* Build al: reset link first in the rescue, create-account second */
.hd-auth-rescue .hd-rescue-reset{margin:4px 0 6px;min-height:46px}
.hd-rescue-tip{color:#5a5348;font-size:.82rem}
.hd-rescue-need-email{color:#8a2b2b;font-weight:700}
.hd-rescue-need-email[hidden]{display:none}
.hd-rescue-new{margin-top:12px;padding-top:12px;border-top:1px solid #ecdcae}
.hd-first-actions{margin:0 0 22px}
.hd-first-step{margin:4px 0 12px;padding:12px 14px;border-left:4px solid #f2a900;background:#fffaf0;border-radius:0 10px 10px 0;color:#151210;max-width:60ch}

/* Build aj: Show / Hide on password boxes (hd-core.js HD.passwordToggles) */
.hd-pw{position:relative;display:block;margin-top:7px}
.hd-pw > input{margin-top:0!important;padding-right:4.6rem!important}
.hd-pw-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#151210;font:inherit;font-size:.85rem;font-weight:800;text-decoration:underline;text-underline-offset:2px;padding:0 10px;min-height:40px;min-width:44px;cursor:pointer;border-radius:6px}
.hd-pw-toggle:hover,.hd-pw-toggle:focus-visible{background:#fff4d6;outline:2px solid #f2a900;outline-offset:0}

/* Build ak: live chat with HammerDuck (hd-support.js, supabase v3.94) */
.hd-sup-launch{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:90;display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;background:#151210;color:#fff;font:inherit;font-weight:800;font-size:.92rem;padding:12px 18px 12px 15px;min-height:48px;box-shadow:0 10px 26px rgba(0,0,0,.28);cursor:pointer}
.hd-sup-launch svg{color:var(--yellow);flex:none}
.hd-sup-launch:hover,.hd-sup-launch:focus-visible{background:#2a241f;outline:3px solid var(--yellow);outline-offset:2px}
.hd-sup-launch.has-unread{animation:hd-sup-nudge 1.6s ease-in-out 2}
.hd-sup-badge{position:absolute;top:-6px;right:-4px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#c62828;color:#fff;font-size:.75rem;font-weight:800;line-height:22px;text-align:center;box-shadow:0 0 0 2px #fff}
.hd-sup-badge[hidden]{display:none}
.hd-sup-panel{position:fixed;right:16px;bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:91;width:min(380px,calc(100vw - 32px));height:min(540px,calc(100vh - 110px));display:flex;flex-direction:column;background:#fff;border:1px solid #e5e1d8;border-radius:18px;box-shadow:0 24px 60px rgba(0,0,0,.28);overflow:hidden}
.hd-sup-panel[hidden]{display:none}
.hd-sup-panel.hd-sup-pop{animation:hd-sup-pop .32s ease-out}
.hd-sup-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:14px 14px 12px 16px;background:#151210;color:#fff}
.hd-sup-head strong{display:block;font-size:1rem}
.hd-sup-head small{display:block;color:#d9d3c7;font-size:.78rem;margin-top:3px;line-height:1.35}
.hd-sup-close{border:0;background:transparent;color:#fff;font-size:1.6rem;line-height:1;width:40px;height:40px;border-radius:10px;cursor:pointer;flex:none}
.hd-sup-close:hover,.hd-sup-close:focus-visible{background:rgba(255,255,255,.12);outline:2px solid var(--yellow)}
.hd-sup-thread{flex:1;overflow-y:auto;padding:14px;background:#faf8f3;display:flex;flex-direction:column;gap:8px}
.hd-sup-empty{color:var(--muted);font-size:.9rem;line-height:1.5;margin:auto 4px;text-align:center}
.hd-sup-msg{max-width:86%;padding:10px 12px;border-radius:14px;font-size:.92rem;line-height:1.45}
.hd-sup-msg.mine{align-self:flex-end;background:var(--yellow);color:#151210;border-bottom-right-radius:4px}
.hd-sup-msg.from-hd{align-self:flex-start;background:#fff;border:1px solid #e5e1d8;border-bottom-left-radius:4px}
.hd-sup-body{white-space:pre-wrap;word-break:break-word}
.hd-sup-msg small{display:block;margin-top:5px;font-size:.72rem;opacity:.72}
.hd-sup-form{display:flex;gap:8px;align-items:flex-end;padding:10px;border-top:1px solid #eee;background:#fff}
.hd-sup-form textarea{flex:1;resize:none;min-height:46px;max-height:120px;border:1px solid #d6d1c4;border-radius:12px;padding:11px 12px;font:inherit;font-size:16px;line-height:1.35}
.hd-sup-form textarea:focus{outline:2px solid #f2a900;outline-offset:0;border-color:#f2a900}
.hd-sup-send{min-height:46px;padding:10px 16px}
.hd-sup-status{margin:0;padding:0 12px 10px;color:#8a2b2b;font-size:.84rem;font-weight:600;background:#fff}
.hd-sup-status:empty{display:none}
.hd-sup-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
body.hd-sup-on{padding-bottom:84px}
body.hd-kb-open .hd-sup-launch{display:none}
@keyframes hd-sup-pop{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
@keyframes hd-sup-nudge{0%,100%{transform:none}20%{transform:translateY(-4px)}40%{transform:none}60%{transform:translateY(-2px)}}
@media (max-width:560px){
  .hd-sup-launch{right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));padding:11px 15px 11px 13px;font-size:.88rem}
  .hd-sup-panel{left:8px;right:8px;width:auto;bottom:calc(8px + env(safe-area-inset-bottom,0px));height:min(560px,calc(100dvh - 24px))}
  .hd-sup.is-open .hd-sup-launch{display:none}
}
@media (prefers-reduced-motion:reduce){.hd-sup-panel.hd-sup-pop,.hd-sup-launch.has-unread{animation:none}}
/* Build am: a Pro's website and social media pages (profile form + the Pro page homeowners see) */
.hd-social-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px}
.hd-social-grid label{margin:6px 0}
.hd-field-err{display:block;color:#b42318;font-size:.78rem;font-weight:600;line-height:1.35}
.hd-social-field input[aria-invalid=true]{border-color:#d92d20!important;box-shadow:0 0 0 3px rgba(217,45,32,.12)}
.hd-social-moved{background:#fff7db;border:1px solid #f5d77a;border-radius:10px;padding:10px 12px;color:#5a4200}
.hd-pro-links{margin:0 0 20px}
.hd-pro-links h3{margin:0 0 10px}
.hd-pro-link-row{display:flex;flex-wrap:wrap;gap:8px}
.hd-pro-link{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px;border:1px solid #d9d4c7;border-radius:999px;background:#fff;color:#151210;font-weight:700;font-size:.9rem;text-decoration:none;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hd-pro-link:hover,.hd-pro-link:focus-visible{border-color:#151210;background:#fffaf0}
.hd-pro-link:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
.hd-pro-link-arrow{color:#8a6a00;font-weight:800}
.hd-pro-links .form-note-left{margin-top:8px}
@media(max-width:600px){.hd-social-grid{grid-template-columns:1fr}}
