/* Shared structure for public pages, account tools and administration. */
:root { --radius-lg: 14px; --radius: 10px; --ease-spring: cubic-bezier(.2,.7,.2,1); }
:root,:root[data-theme=dark],:root[data-theme=system] { background-image: none; }
body { line-height: 1.55; background-image:none; }
h1,h2,h3 { text-wrap: balance; }
p { text-wrap: pretty; }
.main,.main.main--wide { max-width:none; width:100%; padding:2rem clamp(1rem,2.4vw,3rem) 3rem; }
.flow-shell,.flow-narrow,.resume-list,.main .legal,.main.admin-main,.main.landing-main,.site-footer-inner { max-width:none; width:100%; }
.main .mq-section,.main .mq-trust,.main .mq-hero-inner { max-width:none; width:100%; margin-inline:0; padding-inline:0; }
.main .pay-wrap { max-width:none !important; }
.auth-wrap { width:100%; padding:clamp(1rem,2.4vw,3rem); }
.auth-card.auth-card { max-width:none; width:100%; }
@media(min-width:900px) {
  .auth-card.auth-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:clamp(2rem,5vw,5rem); padding:clamp(2rem,3vw,3rem); align-items:start; }
  .auth-card>div,.auth-card>p,.auth-card>h1,.auth-card>a { grid-column:1; }
  .auth-card>form:not(.verification-resend) { grid-column:2; grid-row:1/span 7; }
  .auth-card>.verification-resend { grid-column:2; grid-row:8; }
  .auth-card>.auth-link { grid-column:2; grid-row:9; }
}
.settings-body .form-group { max-width:none; }
.navbar { border-bottom: 1px solid var(--border); box-shadow: none; }
.navbar .brand-logo--full { height: 38px; }
/* The mobile menu belongs to the header, with the same type and surfaces as the site. */
.mobile-nav .mobile-close-label { display:none; }
@media(max-width:767px) {
  .navbar { gap:16px; padding-inline:16px; min-height:66px; height:66px; flex:0 0 auto; }
  .navbar .brand { min-width:0; }
  .navbar .nav-right { display:none !important; }
  .navbar .mobile-nav { display:block; position:static; top:auto; right:auto; flex:0 0 auto; z-index:60; }
  .navbar .mobile-nav summary { display:flex; align-items:center; justify-content:center; gap:10px; min-height:42px; min-width:90px; padding:9px 12px; border:1px solid var(--border-2); border-radius:7px; background:transparent; color:var(--text); font:600 .82rem/1 var(--font-body); list-style:none; cursor:pointer; }
  .mobile-nav summary::-webkit-details-marker { display:none; }
  .navbar .mobile-nav summary span { margin:0; }
  .mobile-nav summary:hover,.mobile-nav[open] summary { color:var(--accent); border-color:var(--accent); background:color-mix(in srgb,var(--accent) 6%,var(--surface)); }
  .mobile-nav[open] .mobile-menu-label { display:none; }
  .mobile-nav[open] .mobile-close-label { display:inline; }
  .mobile-menu-icon path { transform-origin:12px 12px; transition:transform .18s,opacity .18s; }
  .mobile-nav[open] .mobile-menu-icon path:nth-child(1) { transform:translateY(5px) rotate(45deg); }
  .mobile-nav[open] .mobile-menu-icon path:nth-child(2) { opacity:0; }
  .mobile-nav[open] .mobile-menu-icon path:nth-child(3) { transform:translateY(-5px) rotate(-45deg); }
  .navbar .mobile-nav .mobile-nav-panel { position:absolute; top:calc(100% + 8px); right:16px; width:min(355px,calc(100vw - 32px)); min-width:0; max-height:calc(100dvh - 100px); padding:10px; overflow-y:auto; overscroll-behavior:contain; background:var(--surface); border:1px solid var(--border); border-radius:12px; box-shadow:0 14px 35px #0b211824; }
  .mobile-nav-heading { padding:14px 12px 17px; margin-bottom:4px; border-bottom:1px solid var(--border); }
  .mobile-nav-heading>span { display:block; color:var(--text); font-weight:650; font-size:1.07rem; letter-spacing:-.02em; overflow-wrap:anywhere; }
  .mobile-nav-heading small { display:block; color:var(--muted); font-size:.76rem; margin-top:3px; }
  .navbar .mobile-nav a { display:flex; align-items:center; gap:12px; min-height:46px; padding:11px 12px; border-radius:7px; color:var(--text); font-size:.88rem; line-height:1.4; text-decoration:none; }
  .mobile-nav a .ic { flex:0 0 auto; color:var(--muted); }
  .mobile-nav a[aria-current=page] { background:color-mix(in srgb,var(--accent) 9%,var(--surface)); color:var(--accent); }
  .mobile-nav a[aria-current=page] .ic { color:var(--accent); }
  .mobile-nav-divider { height:1px; background:var(--border); margin:7px 12px; }
  .mobile-nav-footer { display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--border); margin:8px 2px 0; padding-top:7px; }
  .mobile-nav-footer>span { color:var(--muted); font-size:.66rem; padding-right:10px; }
  .navbar .mobile-nav .mobile-nav-signin { justify-content:space-between; margin:8px 2px 2px; background:#087E89; color:white; }
  .mobile-nav .mobile-nav-signin .ic { color:white; }
}
@media(prefers-reduced-motion:reduce) { .mobile-menu-icon path { transition:none; } }
.nav-links { gap: 1.5rem; }
.nav-link { font-size: .88rem; }
.page-header { margin-bottom: 1.6rem; align-items: start; gap: 1rem; }
.page-title { letter-spacing: -.035em; line-height: 1.2; }
.settings-section,.flow-main,.pay-wrap,.auth-card,.provider-card,.booking-card,.stat-card,.chart-card { box-shadow: none; }
.settings-section,.booking-card { border-radius: 12px; }
.settings-nav { padding: .8rem; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
.settings-nav a { padding: .7rem .8rem; border-radius: 7px; }
.settings-body { min-width: 0; }
.settings-page-head { padding-bottom: 1rem; border-bottom: 1px solid var(--border); margin-bottom: 1.6rem; }
.btn { min-height: 40px; gap: .5rem; font-weight: 600; border-radius: 7px; }
:root .btn.btn-primary { background: #087E89; color:#FFFFFF; }
:root .btn.btn-primary:hover { background:#066A73; }
.btn-sm { min-height: 36px; }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not(.code-input),select,textarea { border-color: var(--border-2); border-radius: 7px; }
input::placeholder,textarea::placeholder { color: var(--muted); opacity: .85; }
label { text-transform: none; letter-spacing: 0; font-family: var(--font-body); font-size: .82rem; font-weight: 600; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.admin-nav { display:flex; overflow-x:auto; margin:0 0 1.25rem; padding: .55rem; background: var(--surface); border: 1px solid var(--border); border-radius: 10px; gap: .3rem; }
.admin-nav .btn { flex:0 0 auto; white-space:nowrap; }
.admin-main { max-width:none; }
.admin-main .kpi-card { background:var(--surface); padding:1.25rem; border-radius:10px; }
.admin-main .kpi-label { font-size:.76rem; text-transform:none; letter-spacing:0; }
.admin-main .kpi-value { font-weight:600; letter-spacing:-.04em; font-size:2rem; }
.admin-main .admin-table { width:100%; border-collapse:collapse; font-size:.84rem; }
.admin-main .admin-table th,.admin-main .admin-table td { padding:.85rem .8rem; vertical-align:top; }
.admin-main .admin-table thead { background:var(--surface-2); }
.admin-main .admin-table tbody tr:hover { background:var(--surface-2); }
.admin-main .table-wrap { overflow-x:auto; }
@media(max-width:760px) {
  .admin-main table { min-width:640px; }
  .admin-main .admin-table td { overflow-wrap:normal; word-break:normal; }
  .admin-main .settings-section,.admin-main .chart-card { overflow-x:auto; }
}
.kpi-grid,.stats-grid { gap: 1rem; }
.kpi-card,.stat-card,.conversion-card { border-radius: 10px; padding: 1.25rem; }
.chart-card { border: 1px solid var(--border); }
table { font-variant-numeric: tabular-nums; }
thead th { color: var(--soft); font-weight: 600; }
tbody tr { border-bottom: 1px solid var(--border); }
.legal { max-width:none; line-height: 1.8; }
.legal h2 { margin-top: 2rem; letter-spacing: -.025em; }
.site-footer { background: var(--surface-2); border-top: 1px solid var(--border); }
.email-access-card { border-top: 3px solid var(--accent); }
.account-menu { position: relative; }
.account-menu summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: .5rem; padding: .6rem; border-radius: 7px; }
.account-menu summary::-webkit-details-marker { display: none; }
.account-menu[open] summary { background: var(--surface-2); }
.account-menu-panel { position: absolute; right: 0; top: calc(100% + 10px); width: 230px; padding: .5rem; background: var(--surface); border: 1px solid var(--border); border-radius: 10px; box-shadow: var(--shadow-md); z-index: 1000; }
.account-menu-panel a { display: block; padding: .65rem .75rem; text-decoration: none; font-size: .85rem; color: var(--text); border-radius: 6px; }
.account-menu-panel a:hover { background: var(--surface-2); }
.account-menu-panel hr { border: 0; border-top: 1px solid var(--border); margin: .5rem; }
.main.landing-main { padding-top:0; }
.landing-hero { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:clamp(2rem,4vw,4rem); align-items:center; padding:clamp(2rem,4vh,3.5rem) 0 clamp(2rem,4vh,3rem); }
.landing-kicker { color: var(--soft); font-size: .78rem; font-weight: 600; margin: 0 0 1.1rem; }
.landing-intro h1 { font-size:clamp(3.5rem,6vw,5.75rem); letter-spacing:-.075em; line-height:1.02; font-weight:600; margin:0 0 1.4rem; }
.landing-intro h1 span { color: var(--accent-press); }
:root[data-theme=dark] .landing-intro h1 span { color: var(--accent); }
.landing-lead { font-size: 1.06rem; line-height: 1.75; max-width: 440px; margin: 0 0 1.75rem; color: var(--soft); }
.landing-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; }
.landing-actions .btn { padding: .85rem 1.15rem; }
.landing-text-link { display: inline-flex; align-items: center; gap: .6rem; color: var(--text); text-decoration: none; font-size: .9rem; font-weight: 600; }
.landing-text-link:hover { color: var(--accent-press); }
.landing-note { font-size: .8rem; color: var(--muted); margin: 1.1rem 0 0; }
.landing-search { position:relative; overflow:hidden; background:#103633; color:#F4EEE1; padding:clamp(1.5rem,3vw,2.25rem); border-radius:14px; }
.landing-search-number { display: block; font-size: .64rem; font-weight: 600; letter-spacing: .08em; color: #9AC5BC; margin-bottom: 1.5rem; }
.landing-search h2 { font-size: 2rem; letter-spacing: -.045em; line-height: 1.1; margin: 0 0 1.8rem; color: #F4EEE1; }
.landing-search form { position: relative; z-index: 1; }
.landing-search label { color: #DAE5DC; margin-top: 1rem; }
.landing-search input,.landing-search select { width: 100%; min-height: 48px; color: #182320; background: #FFFFFF; font-size: .95rem; }
.landing-search input::placeholder { color: #69766F; }
.landing-search .btn.btn-primary { margin-top: 1.4rem; min-height: 48px; background: #E5EBCF; color: #123C37 !important; }
.landing-search p { position: relative; z-index: 1; margin: 1.3rem 0 0; color: #BDD0C8; font-size: .8rem; line-height: 1.6; }
.landing-duck { position: absolute; bottom: -15px; right: 10px; width: 118px; height: auto; opacity: .12; filter: brightness(0) invert(1); transform: rotate(-12deg); }
.landing-assurance { display: flex; gap: 1.7rem; flex-wrap: wrap; padding: 1.35rem 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); color: var(--soft); font-size: .81rem; }
.landing-assurance span,.landing-assurance a { display: inline-flex; align-items: center; gap: .6rem; }
.landing-assurance a { color: var(--soft); text-decoration: none; }
.landing-section { padding:clamp(2rem,3.5vw,3.5rem) 0; }
.landing-section-head { display: flex; gap: 2rem; align-items: end; justify-content: space-between; margin-bottom: 1.9rem; }
.landing-section h2,.landing-business h2 { font-size: clamp(1.8rem,3.2vw,2.6rem); line-height: 1.15; letter-spacing: -.045em; margin: 0; }
.landing-categories { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid var(--border); }
.landing-categories>a { display: flex; align-items: center; gap: .9rem; padding: 1.05rem .9rem 1.05rem 0; border-bottom: 1px solid var(--border); text-decoration: none; color: var(--text); font-size: .9rem; }
.landing-categories>a:hover { color: var(--accent-press); }
.landing-category-icon { color: var(--accent-press); display: inline-flex; }
.landing-category-arrow { color: var(--muted); margin-left: auto; padding-right: .8rem; }
.landing-how { border-top: 1px solid var(--border); }
.landing-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2.5rem; padding: 0; margin: 2rem 0; list-style: none; }
.landing-steps li>span { display: block; color: var(--accent-press); font-size: .85rem; margin-bottom: 1.4rem; }
.landing-steps h3 { font-size: 1.15rem; margin: 0 0 .7rem; letter-spacing: -.02em; }
.landing-steps p { color: var(--soft); font-size: .9rem; line-height: 1.7; margin: 0; }
.landing-business { display: grid; grid-template-columns: 1.2fr 1fr; gap: 3.5rem; padding: 3rem; border-radius: 14px; background: var(--surface); border: 1px solid var(--border); }
.landing-business p { color: var(--soft); font-size: .95rem; line-height: 1.7; margin-top: 0; }
.landing-business-note { font-size: .77rem !important; margin: 1rem 0 0; }
.landing-business-note a { color: var(--soft); }
.landing-faq { display: grid; grid-template-columns: 1fr 1.3fr; gap: 3.5rem; }
.landing-faq>div>p { color: var(--soft); line-height: 1.7; font-size: .9rem; }
.landing-faq details { border-bottom: 1px solid var(--border); padding: 1rem 0; }
.landing-faq summary { cursor: pointer; color: var(--text); font-size: .95rem; font-weight: 600; }
.landing-faq details p { color: var(--soft); line-height: 1.7; font-size: .88rem; margin: 1rem 0 .25rem; }
@media(min-width:1400px) { .landing-categories { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:900px) { .landing-hero { gap: 2.5rem; padding-top: 3.5rem; } .landing-search { padding: 2rem; } .landing-business { padding: 2rem; gap: 2rem; } }
@media(max-width:720px) { .main { padding-top: 1.3rem; } .landing-main { padding: 0 1.25rem 1.5rem; } .landing-hero,.landing-business,.landing-faq { grid-template-columns: 1fr; gap: 2rem; } .landing-hero { padding: 2.5rem 0; } .landing-intro h1 { font-size: 4.5rem; } .landing-search { padding: 1.7rem; } .landing-section { padding: 2.75rem 0; } .landing-categories { grid-template-columns: 1fr 1fr; } .landing-categories>a { font-size: .8rem; gap: .6rem; } .landing-category-arrow { display: none; } .landing-steps { grid-template-columns: 1fr; gap: 1.7rem; } .landing-steps li { padding-left: 2.5rem; position: relative; } .landing-steps li>span { position: absolute; left: 0; top: .15rem; } .landing-section-head { align-items: start; flex-direction: column; gap: 1rem; } .landing-assurance { gap: 1rem; } .landing-business { padding: 1.7rem; } .settings-nav { padding: .5rem; } .btn { min-height: 44px; } }
@media(max-width:380px) { .landing-intro h1 { font-size: 3.6rem; } .landing-actions { gap: 1rem; } .landing-categories { grid-template-columns: 1fr; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition: none !important; } }
/* Guided owner setup and private document review use the same site surfaces. */
.owner-review-summary,.document-card-head,.owner-next,.flow-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.owner-review-summary h2,.document-card h2{font-size:1.15rem;letter-spacing:-.025em;margin:.2rem 0}
.owner-review-summary p,.document-card p,.review-notice p{line-height:1.6;color:var(--soft);margin:.45rem 0}
.document-status{padding:1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);margin:.8rem 0}
.document-status>strong,.document-status>span{display:block}
.document-status ul,.review-notice ul{padding-left:1.2rem;font-size:.86rem;line-height:1.65;color:var(--soft)}
.document-help,.document-camera{margin:.8rem 0}
.document-help summary,.document-camera summary{cursor:pointer;font-weight:600;font-size:.85rem;color:var(--accent)}
.document-upload{display:grid;gap:.65rem;margin-top:1rem}
.document-upload button{justify-self:start}
.document-file label,.document-camera label{display:block;font-size:.85rem;margin:.5rem 0;color:var(--text)}
.document-file input,.document-camera input{max-width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.65rem;background:var(--bg);color:var(--text)}
.document-file input::file-selector-button,.document-camera input::file-selector-button{border:0;border-radius:5px;padding:.5rem .7rem;margin-right:.7rem;background:var(--accent);color:var(--bg);font:inherit;cursor:pointer}
.document-withdraw{margin-top:.75rem}
.document-review-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:1.2rem}
.document-preview{display:block;width:100%;height:auto;max-height:80vh;object-fit:contain;border:1px solid var(--border);border-radius:8px;background:#fff}
.review-filter{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.review-filter select{max-width:20rem}
.review-notice{border:1px solid var(--border);padding:1rem;border-radius:var(--radius-sm);margin:.9rem 0;background:var(--bg)}
.review-history{padding-left:1.2rem;line-height:1.6;font-size:.86rem}
.review-history li{padding:.4rem 0;color:var(--soft)}
.review-history p{margin:.25rem 0}
.table-scroll{overflow-x:auto}
.owner-stages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin:0;padding:0;list-style:none}
.owner-stages a{display:block;height:100%;border:1px solid var(--border);padding:.9rem;border-radius:var(--radius-sm);font-size:.83rem;color:var(--soft)}
.owner-stages .is-done a{border-color:var(--accent);color:var(--text)}
.owner-stages strong{display:block;margin:.35rem 0 0}
.owner-next{border-top:1px solid var(--border);margin-top:1rem;padding-top:1.1rem}
.owner-next p{color:var(--soft);font-size:.86rem;margin:.35rem 0;max-width:60ch}
.price-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0}
.price-preview>div{border:1px solid var(--border);padding:1rem;border-radius:var(--radius-sm);background:var(--bg)}
.price-preview dt{color:var(--soft);font-size:.83rem}
.price-preview dd{margin:0 0 .6rem;font-weight:600;font-variant-numeric:tabular-nums}
.hours-editor{display:grid;gap:.5rem;margin:.8rem 0}
.hours-editor>div{display:grid;grid-template-columns:minmax(6.5rem,1fr) 1fr 1fr;align-items:center;gap:.6rem}
.hours-editor label{margin:0;font-size:.85rem}
.hours-editor input[type=time]{min-width:0;width:100%}
.flow-actions{justify-content:flex-start}
.owner-metric-list{margin:.8rem 0}
.owner-metric-list>div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--border);padding:.55rem 0;font-size:.85rem}
.owner-metric-list dd{font-weight:700;margin:0;font-variant-numeric:tabular-nums}
@media(max-width:767px){.document-review-layout,.price-preview{grid-template-columns:1fr}.owner-stages{grid-template-columns:repeat(2,minmax(0,1fr))}.hours-editor>div{grid-template-columns:5.5rem 1fr 1fr;gap:.4rem}.hours-editor label{font-size:.8rem}.document-card-head{align-items:flex-start}}
