﻿:root {
      --ink: #102d2a;
      --muted: #647772;
      --line: #d9e6e2;
      --brand: #128064;
      --brand-dark: #0f6b5a;
      --brand-soft: #e8fff7;
      --gold: #f5b847;
      --danger: #c5533e;
      --white: #ffffff;
      --bg: #f4faf8;
      --panel: #ffffff;
      --shadow: 0 18px 45px rgba(18, 58, 51, 0.12);
      --shadow-soft: 0 12px 28px rgba(18, 58, 51, 0.09);
      --radius-lg: 28px;
      --radius-md: 20px;
      --radius-sm: 13px;
      --max: 1220px;
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      color: var(--ink);
      background: var(--bg);
    }

    button, input, select, textarea { font: inherit; }
    button { cursor: pointer; }
    a { color: inherit; }

    .site-header {
      position: sticky;
      top: 0;
      z-index: 10;
      backdrop-filter: blur(16px);
      background: rgba(244, 250, 248, .82);
      border-bottom: 1px solid rgba(217, 230, 226, .75);
    }

    .nav {
      max-width: var(--max);
      margin: 0 auto;
      padding: 14px 22px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 18px;
    }

    .brand {
      display: flex;
      align-items: center;
      gap: 12px;
      text-decoration: none;
      min-width: 210px;
    }

    .brand-logo {
      width: 210px;
      height: auto;
      display: block;
    }

    .nav-links {
      display: flex;
      align-items: center;
      gap: 18px;
      color: var(--muted);
      font-weight: 750;
      font-size: 14px;
    }

    .nav-links a {
      text-decoration: none;
      white-space: nowrap;
    }

    .nav-actions {
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .btn {
      border: 0;
      border-radius: 999px;
      padding: 11px 16px;
      background: var(--brand);
      color: white;
      font-weight: 850;
      box-shadow: 0 10px 20px rgba(18, 128, 100, .22);
      transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      text-decoration: none;
    }

    .btn:hover { transform: translateY(-1px); box-shadow: 0 12px 26px rgba(18, 128, 100, .27); }
    .btn.secondary {
      background: #ecf6f3;
      color: var(--brand-dark);
      box-shadow: none;
      border: 1px solid #d5e9e4;
    }
    .btn.secondary:hover { box-shadow: 0 8px 18px rgba(18, 58, 51, .09); }
    .btn.ghost {
      background: transparent;
      color: var(--brand-dark);
      box-shadow: none;
      border: 1px solid #cfe4df;
    }
    .btn.gold {
      background: #ffe7a8;
      color: #614709;
      box-shadow: none;
    }
    .btn.danger-soft {
      background: #fff0ec;
      color: var(--danger);
      border: 1px solid #ffd5cb;
      box-shadow: none;
    }
    .btn.full { width: 100%; }
    .btn.small { padding: 8px 11px; font-size: 13px; }

    .container {
      max-width: var(--max);
      margin: 0 auto;
      padding: 0 22px;
    }

    .page-main {
      padding-top: 34px;
      padding-bottom: 72px;
    }

    .landing-main {
      padding-bottom: 70px;
    }

    .landing-hero {
      position: relative;
      height: clamp(210px, 25vh, 340px);
      min-height: 210px;
      overflow: hidden;
      background: #12342e;
    }

    .landing-hero img {
      width: 100%;
      height: 100%;
      display: block;
      object-fit: cover;
      object-position: center;
    }

    .hero-shadow {
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(16,45,42,.08), rgba(16,45,42,.42));
      pointer-events: none;
    }

    .landing-logo {
      position: absolute;
      inset: 0;
      display: grid;
      place-items: center;
      pointer-events: none;
    }

    .hero-logo-image {
      width: min(760px, 72vw);
      height: auto;
      filter:
        drop-shadow(0 16px 34px rgba(0,0,0,.48))
        drop-shadow(0 0 18px rgba(255,255,255,.5));
    }

    .landing-content {
      padding-top: 46px;
      display: grid;
      gap: 38px;
    }

    .landing-copy {
      max-width: 900px;
    }

    .landing-copy h1 {
      margin-top: 0;
      margin-bottom: 18px;
    }

    .cta-large {
      padding: 15px 24px;
      font-size: 17px;
      margin-top: 4px;
    }

    .seo-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 18px;
    }

    .seo-grid article {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--radius-md);
      padding: 22px;
      box-shadow: var(--shadow-soft);
    }

    .seo-grid h2 {
      margin: 0 0 10px;
      font-size: 22px;
      letter-spacing: -.6px;
    }

    .seo-grid p {
      margin: 0;
      color: var(--muted);
      line-height: 1.6;
    }

    .hero {
      display: grid;
      grid-template-columns: minmax(0, 1.08fr) minmax(320px, .72fr);
      gap: 32px;
      align-items: center;
      padding: 56px 0 28px;
    }

    .eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      padding: 8px 12px;
      border: 1px solid #d1e8e2;
      background: rgba(255,255,255,.72);
      border-radius: 999px;
      color: var(--brand-dark);
      font-size: 13px;
      font-weight: 850;
    }

    .pulse-dot {
      width: 9px;
      height: 9px;
      border-radius: 50%;
      background: var(--gold);
      box-shadow: 0 0 0 6px rgba(245,184,71,.2);
    }

    h1 {
      margin: 18px 0 14px;
      font-size: clamp(42px, 7vw, 76px);
      line-height: .94;
      letter-spacing: -4px;
      max-width: 850px;
    }

    .hero-copy {
      color: #4f6761;
      font-size: 19px;
      line-height: 1.6;
      max-width: 680px;
      margin: 0 0 24px;
    }

    .search-card {
      background: rgba(255,255,255,.9);
      border: 1px solid rgba(217, 230, 226, .95);
      box-shadow: var(--shadow-soft);
      border-radius: 24px;
      padding: 14px;
      display: grid;
      grid-template-columns: 1.15fr .95fr auto;
      gap: 10px;
      max-width: 840px;
    }

    .field {
      display: grid;
      gap: 7px;
    }

    .field label,
    .label {
      color: var(--muted);
      font-size: 12px;
      font-weight: 850;
      letter-spacing: .4px;
      text-transform: uppercase;
    }

    input, select, textarea {
      width: 100%;
      border: 1px solid #d4e4e0;
      border-radius: 14px;
      background: #fbfffe;
      color: var(--ink);
      padding: 12px 13px;
      outline: 0;
    }

    textarea { min-height: 92px; resize: vertical; }
    input:focus, select:focus, textarea:focus { border-color: #82cdbb; box-shadow: 0 0 0 4px rgba(25,185,142,.13); }

    .popular {
      display: flex;
      flex-wrap: wrap;
      gap: 9px;
      margin-top: 16px;
    }

    .chip {
      border: 1px solid #d4e6e1;
      background: rgba(255,255,255,.78);
      color: var(--brand-dark);
      padding: 8px 11px;
      border-radius: 999px;
      font-weight: 820;
      font-size: 13px;
    }

    .hero-panel {
      position: relative;
      min-height: 480px;
      border-radius: var(--radius-lg);
      padding: 22px;
      overflow: hidden;
      box-shadow: var(--shadow);
      border: 1px solid rgba(255,255,255,.6);
      background:
        linear-gradient(135deg, rgba(16,45,42,.92), rgba(15,107,90,.86)),
        radial-gradient(circle at 80% 10%, rgba(245,184,71,.58), transparent 16rem),
        #0f6b5a;
      color: white;
    }

    .hero-panel:before {
      content: "";
      position: absolute;
      inset: -40px -60px auto auto;
      width: 260px;
      height: 260px;
      border-radius: 50%;
      background: rgba(255,255,255,.1);
    }

    .hero-panel-inner { position: relative; z-index: 1; display: grid; gap: 18px; }
    .mini-label { color: rgba(255,255,255,.7); font-size: 12px; font-weight: 850; letter-spacing: 1.4px; text-transform: uppercase; }
    .hero-panel h2 { margin: 0; font-size: 30px; letter-spacing: -1.1px; }
    .hero-panel p { margin: 0; color: rgba(255,255,255,.77); line-height: 1.55; }

    .quote-box {
      background: rgba(255,255,255,.12);
      border: 1px solid rgba(255,255,255,.18);
      border-radius: 22px;
      padding: 16px;
      display: grid;
      gap: 12px;
    }

    .quote-row {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 12px;
      align-items: center;
      padding-bottom: 10px;
      border-bottom: 1px solid rgba(255,255,255,.12);
    }

    .quote-row:last-child { border-bottom: 0; padding-bottom: 0; }
    .quote-row strong { font-size: 18px; }
    .quote-row span { color: rgba(255,255,255,.72); font-size: 13px; }
    .quote-price { color: #fff2bd; font-weight: 950; }

    .trust-strip {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
      margin-top: 8px;
    }

    .trust-item {
      border-radius: 18px;
      padding: 14px;
      background: rgba(255,255,255,.12);
      border: 1px solid rgba(255,255,255,.16);
    }
    .trust-item strong { display:block; font-size: 23px; }
    .trust-item span { color: rgba(255,255,255,.72); font-size: 12px; font-weight: 750; }

    .section-head {
      display: flex;
      justify-content: space-between;
      gap: 20px;
      align-items: end;
      margin: 40px 0 18px;
    }

    .section-head.compact {
      margin: 0 0 18px;
    }

    .section-head h2 {
      margin: 0;
      font-size: clamp(28px, 4vw, 44px);
      letter-spacing: -1.8px;
    }
    .section-head h1 {
      margin: 0;
      font-size: clamp(36px, 5vw, 58px);
      letter-spacing: -2.4px;
      line-height: 1;
    }
    .section-head p { margin: 8px 0 0; color: var(--muted); line-height: 1.55; max-width: 680px; }

    .app-grid {
      display: grid;
      grid-template-columns: 300px minmax(0, 1fr);
      gap: 20px;
      align-items: start;
    }

    .filters {
      position: sticky;
      top: 92px;
      background: rgba(255,255,255,.88);
      border: 1px solid var(--line);
      border-radius: var(--radius-md);
      padding: 18px;
      box-shadow: var(--shadow-soft);
    }

    .filters h3 { margin: 0 0 14px; font-size: 20px; letter-spacing: -.5px; }
    .filter-stack { display: grid; gap: 14px; }
    .check-row { display:flex; align-items:center; gap:10px; color:#415954; font-weight:750; }
    .check-row input { width: auto; }
    .range-value { display:flex; justify-content:space-between; color:var(--muted); font-size:13px; font-weight:750; }

    .results-top {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      margin-bottom: 14px;
    }
    .results-count { color: var(--muted); font-weight: 780; }
    .sort-wrap { min-width: 220px; }

    .listing-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 18px;
    }

    .listing-card {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: 26px;
      overflow: hidden;
      box-shadow: 0 8px 26px rgba(18, 58, 51, .07);
      display: flex;
      flex-direction: column;
      min-height: 100%;
    }

    .hero-visual {
      position: relative;
      height: 174px;
      overflow: hidden;
      background:
        linear-gradient(135deg, rgba(16,45,42,.1), rgba(18,128,100,.2)),
        #dff4ee;
    }

    .hero-visual img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      z-index: 1;
    }

    .hero-visual:before,
    .hero-visual:after {
      content: "";
      position: absolute;
      inset: 0;
      transition: opacity .3s ease;
    }

    .hero-visual.not-partner:before,
    .hero-visual.not-partner:after {
      display: none;
    }

    .hero-visual.tile:before {
      background:
        linear-gradient(135deg, rgba(15,107,90,.7), rgba(25,185,142,.35)),
        repeating-linear-gradient(45deg, rgba(255,255,255,.2) 0 18px, transparent 18px 36px),
        linear-gradient(90deg, #cfded8, #f0f6f3);
    }
    .hero-visual.roof:before {
      background:
        linear-gradient(135deg, rgba(16,45,42,.76), rgba(84,116,107,.25)),
        repeating-linear-gradient(135deg, #7b8f8a 0 18px, #98aaa5 18px 37px);
    }
    .hero-visual.graffiti:before {
      background:
        radial-gradient(circle at 25% 35%, rgba(245,184,71,.9), transparent 6rem),
        radial-gradient(circle at 75% 60%, rgba(25,185,142,.8), transparent 7rem),
        linear-gradient(135deg, rgba(16,45,42,.78), rgba(109,91,160,.62)),
        #d4d4d4;
    }
    .hero-visual.facade:before {
      background:
        linear-gradient(135deg, rgba(18,128,100,.58), rgba(255,255,255,.1)),
        repeating-linear-gradient(90deg, #e9e2d7 0 32px, #d4cabc 32px 35px);
    }
    .hero-visual.solar:before {
      background:
        linear-gradient(135deg, rgba(15,107,90,.45), rgba(245,184,71,.2)),
        repeating-linear-gradient(90deg, #213f52 0 40px, #284f68 40px 43px),
        repeating-linear-gradient(0deg, transparent 0 34px, rgba(255,255,255,.2) 34px 36px);
    }

    .premium .hero-visual:after {
      opacity: 0;
      animation: crossfade 5.5s ease-in-out infinite;
      background:
        radial-gradient(circle at 70% 35%, rgba(255,255,255,.6), transparent 5rem),
        linear-gradient(135deg, rgba(245,184,71,.44), rgba(18,128,100,.42)),
        repeating-linear-gradient(90deg, #d8e6df 0 32px, #f8fbfa 32px 64px);
    }

    @keyframes crossfade {
      0%, 40% { opacity: 0; }
      52%, 86% { opacity: .95; }
      100% { opacity: 0; }
    }

    .hero-badge-row {
      position: absolute;
      inset: 14px 14px auto 14px;
      display: flex;
      gap: 8px;
      justify-content: space-between;
      align-items: flex-start;
      z-index: 2;
    }

    .badge {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      border-radius: 999px;
      padding: 7px 10px;
      font-size: 12px;
      font-weight: 850;
      background: rgba(255,255,255,.88);
      color: var(--brand-dark);
      border: 1px solid rgba(255,255,255,.4);
      backdrop-filter: blur(10px);
    }
    .badge.dark { color: white; background: rgba(16,45,42,.7); border-color: rgba(255,255,255,.2); }
    .badge.gold { color: #674a06; background: rgba(255,234,178,.94); }
    .badge.gray { color:#566966; background: rgba(255,255,255,.88); }

    .card-body { padding: 18px; display:grid; gap:14px; flex:1; }
    .title-row { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
    .title-row h3 { margin:0; font-size:22px; letter-spacing:-.6px; }
    .rating { color:#765500; background:#fff4d4; border-radius:999px; padding:7px 10px; font-weight:900; white-space:nowrap; }
    .meta { color:var(--muted); display:flex; flex-wrap:wrap; gap:8px 12px; font-weight:750; font-size:13px; }
    .tag-row { display:flex; flex-wrap:wrap; gap:7px; }
    .tag { padding:7px 9px; border-radius:999px; background:#eff8f5; border:1px solid #d9ece7; color:#315f56; font-size:12px; font-weight:820; }

    .price-list { display:grid; gap:8px; }
    .price-line {
      display:flex;
      justify-content:space-between;
      gap:12px;
      align-items:center;
      padding:10px 11px;
      background:#f7fbfa;
      border:1px solid #e1eeea;
      border-radius:14px;
    }
    .price-line span { color:var(--muted); font-size:13px; font-weight:750; }
    .price-line strong { white-space:nowrap; }

    .card-actions {
      display:grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap:9px;
      margin-top:auto;
    }
    .card-actions .claim { grid-column:1 / -1; }

    .flow-section {
      margin: 58px 0 72px;
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
    }

    .info-panel {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      padding: 24px;
      box-shadow: var(--shadow-soft);
    }

    .info-panel h2, .info-panel h3 { margin-top: 0; letter-spacing: -1px; }
    .info-panel p { color: var(--muted); line-height: 1.6; }
    .step-list { display:grid; gap:12px; margin-top: 18px; }
    .step {
      display:grid;
      grid-template-columns: 36px 1fr;
      gap: 12px;
      align-items: start;
      padding: 13px;
      border-radius: 18px;
      background: #f7fbfa;
      border: 1px solid #e1eeea;
    }
    .step-num {
      width:36px;height:36px;border-radius:50%;
      display:grid;place-items:center;
      background:var(--brand-soft); color:var(--brand-dark); font-weight:950;
    }
    .step strong { display:block; margin-bottom:3px; }
    .step span { color:var(--muted); font-size:14px; line-height:1.45; }

    .premium-grid { display:grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 16px; }
    .premium-tile {
      padding: 14px;
      border-radius: 18px;
      border: 1px solid #dfecea;
      background: linear-gradient(180deg,#fff,#f8fcfb);
    }
    .premium-tile strong { display:block; margin-bottom: 6px; }
    .premium-tile span { color: var(--muted); font-size: 13px; line-height: 1.45; }

    .calendar-demo {
      border-radius: 22px;
      border: 1px solid #dfecea;
      overflow: hidden;
      background: #f7fbfa;
      margin-top: 16px;
    }
    .calendar-head { display:flex; align-items:center; justify-content:space-between; padding:14px 16px; background:white; border-bottom:1px solid #dfecea; }
    .calendar-grid { display:grid; grid-template-columns: repeat(7, 1fr); gap:1px; background:#dfecea; }
    .cal-cell { min-height:82px; background:white; padding:8px; font-size:12px; color:var(--muted); }
    .cal-cell strong { display:block; color:var(--ink); margin-bottom:6px; }
    .booking-pill { display:block; border-radius:999px; padding:5px 7px; margin-top:5px; background:#e8fff7; color:#0f6b5a; font-weight:850; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .booking-pill.gold { background:#fff4d4; color:#715000; }

    .modal-backdrop {
      position: fixed;
      inset: 0;
      z-index: 50;
      display: grid;
      place-items: center;
      padding: 20px;
      background: rgba(8, 28, 25, .54);
      backdrop-filter: blur(8px);
    }
    .modal-backdrop[aria-hidden="true"] { display:none; }

    .modal {
      width: min(920px, 100%);
      max-height: min(92vh, 900px);
      overflow: auto;
      background: white;
      border-radius: 28px;
      box-shadow: 0 30px 90px rgba(0,0,0,.25);
      border: 1px solid rgba(255,255,255,.5);
    }
    .modal.narrow { width: min(650px, 100%); }
    .modal-header {
      position: sticky;
      top: 0;
      z-index: 2;
      padding: 18px 20px;
      display:flex;
      justify-content:space-between;
      gap:16px;
      align-items:center;
      background: rgba(255,255,255,.92);
      backdrop-filter: blur(10px);
      border-bottom: 1px solid var(--line);
    }
    .modal-header h2 { margin:0; font-size:25px; letter-spacing:-.8px; }
    .modal-subtitle { margin:6px 0 0; color:var(--muted); font-size:14px; font-weight:750; }
    .modal-content { padding: 20px; display:grid; gap:18px; }
    .close-btn {
      border:0;
      width:42px; height:42px; border-radius:50%;
      background:#f0f6f3; color:var(--ink); font-size:22px; font-weight:800;
    }

    .form-grid { display:grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
    .form-grid .span-2 { grid-column: 1 / -1; }
    .success-box {
      border:1px solid #bfeadf;
      background:#effff9;
      color:#0f6b5a;
      padding:15px;
      border-radius:18px;
      font-weight:800;
      display:none;
    }
    .success-box.is-visible { display:block; }

    .company-map-modal { width: min(880px, 100%); }
    .company-map {
      position: relative;
      width: 100%;
      height: min(62vh, 520px);
      min-height: 360px;
      overflow: hidden;
      border-radius: 20px;
      border: 1px solid #dfecea;
      background: #dce8e4;
    }
    .osm-tile {
      position: absolute;
      width: 256px;
      height: 256px;
      max-width: none;
      user-select: none;
    }
    .map-pointer {
      position: absolute;
      left: 50%;
      top: 50%;
      width: 30px;
      height: 30px;
      transform: translate(-50%, -100%) rotate(45deg);
      border-radius: 50% 50% 50% 4px;
      background: var(--brand);
      border: 3px solid white;
      box-shadow: 0 10px 24px rgba(16,45,42,.32);
      z-index: 3;
    }
    .map-pointer:after {
      content: "";
      position: absolute;
      inset: 7px;
      border-radius: 50%;
      background: white;
    }
    .osm-attribution {
      position: absolute;
      right: 8px;
      bottom: 8px;
      z-index: 4;
      padding: 4px 7px;
      border-radius: 8px;
      background: rgba(255,255,255,.88);
      color: #315f56;
      font-size: 11px;
      font-weight: 750;
    }

    .estimate-card {
      display:grid;
      grid-template-columns: 1fr 300px;
      gap: 18px;
      align-items:start;
    }
    .estimate-result {
      position: sticky;
      top: 82px;
      border-radius: 24px;
      padding: 18px;
      background: linear-gradient(135deg, #102d2a, #128064);
      color: white;
      display:grid;
      gap: 14px;
    }
    .estimate-result small { color: rgba(255,255,255,.7); font-weight:780; }
    .estimate-price { font-size: 42px; font-weight: 950; letter-spacing:-1.5px; }
    .breakdown { display:grid; gap:9px; }
    .breakdown div { display:flex; justify-content:space-between; gap:12px; color:rgba(255,255,255,.78); border-bottom:1px solid rgba(255,255,255,.14); padding-bottom:8px; }
    .breakdown div:last-child { border-bottom:0; }

    .dashboard-grid { display:grid; grid-template-columns: 1fr 1fr; gap:18px; }
    .dashboard-card {
      border:1px solid var(--line);
      background:#fbfffe;
      border-radius:22px;
      padding:16px;
    }
    .dashboard-card h3 { margin-top:0; }
    .table-like { display:grid; gap:8px; }
    .table-row { display:grid; grid-template-columns: 1fr auto; gap:12px; padding:10px; border-radius:14px; background:#f4faf8; border:1px solid #e1eeea; }
    .table-row span { color:var(--muted); font-size:13px; }

    .toast {
      position: fixed;
      z-index: 70;
      right: 18px;
      bottom: 18px;
      min-width: 260px;
      max-width: min(420px, calc(100vw - 36px));
      background: #102d2a;
      color: white;
      border-radius: 18px;
      padding: 14px 16px;
      box-shadow: var(--shadow);
      transform: translateY(120%);
      opacity: 0;
      transition: transform .2s ease, opacity .2s ease;
      font-weight: 780;
    }
    .toast.is-visible { transform: translateY(0); opacity: 1; }

    .empty-state {
      border:1px dashed #b9d4cd;
      background: rgba(255,255,255,.75);
      border-radius:24px;
      padding:30px;
      text-align:center;
      color:var(--muted);
    }

    .inline-actions {
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      margin-top: 14px;
    }

    .provider-list {
      grid-template-columns: repeat(4, minmax(0, 1fr));
      margin-top: 12px;
    }

    .coverage-status {
      display: grid;
      grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr);
      gap: 14px;
      align-items: center;
      padding: 14px;
      border: 1px solid #dfecea;
      border-radius: 16px;
      background: #fbfefd;
      margin: 12px 0 16px;
    }
    .coverage-status strong { display:block; }
    .coverage-status span { color: var(--muted); font-size: 13px; font-weight: 800; }
    .coverage-status.is-complete {
      background: #e8fff7;
      border-color: #bfeadf;
    }
    .coverage-chips {
      display: flex;
      flex-wrap: wrap;
      gap: 7px;
      justify-content: flex-end;
    }
    .coverage-chip {
      border-radius: 999px;
      padding: 7px 9px;
      background: #fff7e4;
      color: #765500;
      border: 1px solid #f3dca4;
      font-size: 12px;
      font-weight: 850;
    }
    .coverage-chip.done {
      background: #e8fff7;
      color: var(--brand-dark);
      border-color: #bfeadf;
    }
    .assignment-panel {
      display: grid;
      gap: 12px;
      margin: 0 0 18px;
      padding: 14px;
      border: 1px solid #dfecea;
      border-radius: 16px;
      background: #fbfefd;
    }
    .assignment-head {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      align-items: center;
    }
    .assignment-head h4 {
      margin: 0;
      font-size: 18px;
    }
    .assignment-head span {
      display: block;
      margin-top: 2px;
      color: var(--muted);
      font-size: 13px;
      font-weight: 800;
    }
    .assignment-grid {
      display: grid;
      gap: 8px;
    }
    .assignment-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(220px, .6fr) 118px;
      gap: 10px;
      align-items: center;
      padding: 10px;
      border: 1px solid #e1eeea;
      border-radius: 12px;
      background: white;
    }
    .assignment-row.is-assigned {
      border-color: #bfeadf;
      background: #f2fffb;
    }
    .assignment-row.is-ambiguous {
      border-color: #efd68f;
      background: #fffaf0;
    }
    .assignment-row.is-missing {
      border-color: #efc0bd;
      background: #fff6f5;
    }
    .assignment-task strong {
      display: block;
      line-height: 1.2;
    }
    .assignment-task span,
    .assignment-state {
      display: block;
      color: var(--muted);
      font-size: 12px;
      font-weight: 800;
      line-height: 1.35;
      margin-top: 2px;
    }
    .assignment-row select {
      width: 100%;
      min-width: 0;
      border: 1px solid var(--line);
      border-radius: 10px;
      padding: 9px 10px;
      background: white;
      font-weight: 800;
      color: var(--ink);
    }
    .assignment-state {
      text-align: right;
      margin-top: 0;
    }
    .provider-match-group {
      display: grid;
      gap: 10px;
      margin-top: 16px;
    }
    .provider-group-head {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      align-items: end;
      border-bottom: 1px solid #edf4f2;
      padding-bottom: 8px;
    }
    .provider-group-head h4 {
      margin: 0;
      font-size: 18px;
    }
    .provider-group-head span {
      color: var(--muted);
      font-size: 13px;
      font-weight: 850;
    }
    .provider-list-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 12px;
    }

    .provider-mini-card {
      min-height: 330px;
      border: 1px solid var(--line);
      border-radius: 16px;
      overflow: hidden;
      background: white;
      box-shadow: 0 8px 22px rgba(18,58,51,.08);
      display: grid;
      grid-template-rows: 150px 1fr;
      transition: opacity .18s ease, transform .18s ease, border-color .18s ease;
    }
    .provider-mini-card.is-selected {
      border-color: rgba(18,128,100,.65);
      box-shadow: 0 10px 28px rgba(18,128,100,.16);
    }
    .provider-mini-card.is-faded {
      opacity: .42;
    }
    .provider-mini-image {
      position: relative;
      overflow: hidden;
      background: #dff4ee;
    }
    .provider-mini-image img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    .provider-mini-image .hero-badge-row {
      inset: 10px 10px auto 10px;
    }
    .provider-mini-body {
      padding: 12px;
      display: grid;
      gap: 8px;
      align-content: start;
    }
    .provider-mini-body h3 {
      margin: 0;
      font-size: 17px;
      line-height: 1.12;
      letter-spacing: 0;
    }
    .provider-mini-meta {
      display: flex;
      justify-content: space-between;
      gap: 8px;
      color: var(--muted);
      font-size: 12px;
      font-weight: 850;
    }
    .provider-mini-match {
      color: var(--brand-dark);
      background: var(--brand-soft);
      border: 1px solid #c7e8df;
      border-radius: 999px;
      padding: 5px 8px;
      font-size: 12px;
      font-weight: 900;
      width: fit-content;
    }
    .provider-mini-tags {
      min-height: 28px;
      display: flex;
      flex-wrap: wrap;
      gap: 5px;
      align-content: start;
    }
    .provider-mini-tags .tag {
      padding: 5px 7px;
      font-size: 11px;
    }
    .provider-mini-actions {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 7px;
      margin-top: auto;
    }

    .booking-panel {
      margin-bottom: 0;
    }

    .booking-panel .section-head {
      margin-top: 0;
    }

    .company-page {
      display: grid;
      gap: 22px;
    }

    .company-hero {
      display: flex;
      align-items: end;
      justify-content: space-between;
      gap: 22px;
      padding: 28px;
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      background: linear-gradient(135deg, #ffffff, #eff8f5);
      box-shadow: var(--shadow-soft);
    }

    .company-hero h1 {
      margin: 0 0 10px;
      font-size: clamp(38px, 5vw, 64px);
      letter-spacing: -2.6px;
      line-height: 1;
    }

    .company-hero p {
      margin: 0;
      max-width: 650px;
      color: var(--muted);
      line-height: 1.55;
      font-size: 18px;
    }

    .company-status {
      min-width: 190px;
      display: grid;
      gap: 7px;
      justify-items: end;
      color: var(--muted);
      font-weight: 800;
    }

    .company-status strong {
      color: var(--ink);
      font-size: 44px;
      line-height: 1;
    }

    .company-shell {
      display: grid;
      grid-template-columns: 220px minmax(0, 1fr);
      gap: 18px;
      align-items: start;
    }

    .company-sidebar {
      position: sticky;
      top: 92px;
      display: grid;
      gap: 8px;
      padding: 12px;
      border: 1px solid var(--line);
      border-radius: var(--radius-md);
      background: white;
      box-shadow: var(--shadow-soft);
    }

    .portal-tab {
      width: 100%;
      border: 1px solid transparent;
      border-radius: 14px;
      background: transparent;
      color: var(--muted);
      padding: 12px 13px;
      text-align: left;
      font-weight: 850;
    }

    .portal-tab.is-active {
      color: var(--brand-dark);
      background: var(--brand-soft);
      border-color: #c7e8df;
    }

    .company-workspace {
      min-width: 0;
    }

    .portal-panel {
      display: none;
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      box-shadow: var(--shadow-soft);
      padding: 24px;
    }

    .portal-panel.is-active {
      display: block;
    }

    .static-calendar .cal-cell {
      min-height: 96px;
    }

    @media (max-width: 1020px) {
      .hero { grid-template-columns: 1fr; }
      .hero-panel { min-height: auto; }
      .app-grid { grid-template-columns: 1fr; }
      .filters { position: static; }
      .listing-grid { grid-template-columns: 1fr; }
      .provider-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .flow-section { grid-template-columns: 1fr; }
      .estimate-card { grid-template-columns: 1fr; }
      .estimate-result { position: static; }
      .seo-grid { grid-template-columns: 1fr; }
      .company-shell { grid-template-columns: 1fr; }
      .company-sidebar { position: static; grid-template-columns: repeat(4, minmax(0, 1fr)); }
      .company-hero { align-items: start; }
    }

    @media (max-width: 720px) {
      .nav { align-items:flex-start; }
      .nav-links { display:none; }
      .nav-actions { display:none; }
      .search-card { grid-template-columns: 1fr; }
      .section-head { display:block; }
      .results-top { display:block; }
      .sort-wrap { margin-top:12px; min-width:0; }
      .card-actions { grid-template-columns: 1fr; }
      .provider-list { grid-template-columns: 1fr; }
      .task-line-row { grid-template-columns: 28px 1fr; align-items: start; }
      .task-line-actions { grid-column: 1 / -1; justify-content: start; }
      .form-grid, .dashboard-grid, .premium-grid { grid-template-columns: 1fr; }
      .form-grid .span-2 { grid-column:auto; }
      .calendar-grid { grid-template-columns: repeat(2, 1fr); }
      h1 { letter-spacing: -2.6px; }
      .landing-content { padding-top: 30px; }
      .hero-logo-image { width: min(620px, 82vw); }
      .company-hero { display: grid; padding: 20px; }
      .company-status { justify-items: start; }
      .company-sidebar { grid-template-columns: 1fr 1fr; }
    }

    .task-builder { margin: 0 0 72px; }
    .task-shell { display: grid; grid-template-columns: 1.05fr .95fr; gap: 22px; align-items: start; }
    .task-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); padding: 24px; }
    .task-card h3 { margin: 0 0 8px; font-size: 1.25rem; }
    .task-card p { margin: 0 0 18px; color: var(--muted); line-height: 1.55; }
    .provider-card-panel { grid-column: 1 / -1; }
    .provider-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .task-steps { display: grid; gap: 14px; }
    .is-hidden { display: none !important; }
    .address-box { position: relative; }
    .address-results { position: absolute; z-index: 20; inset: calc(100% + 6px) 0 auto 0; background: white; border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); overflow: hidden; display: none; max-height: 280px; overflow-y: auto; }
    .address-results.is-visible { display: block; }
    .address-option { width: 100%; display: block; text-align: left; padding: 12px 14px; border: 0; background: white; color: var(--ink); cursor: pointer; border-bottom: 1px solid #edf4f2; }
    .address-option:hover, .address-option:focus, .address-option.is-active { background: var(--brand-soft); outline: none; }
    .address-status { font-size: .85rem; color: var(--muted); min-height: 1.2em; margin-top: 8px; }
    .segmented { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
    .segmented button, .option-grid button { border: 1px solid var(--line); background: white; border-radius: 14px; padding: 11px 12px; color: var(--ink); cursor: pointer; font-weight: 800; }
    .segmented button.is-active, .option-grid button.is-active { border-color: rgba(18,128,100,.55); background: var(--brand-soft); color: var(--brand-dark); }
    .option-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
    .service-actions button { text-align: left; }
    .detail-panel {
      display: grid;
      gap: 10px;
      padding: 13px;
      border: 1px solid var(--line);
      border-radius: 18px;
      background: #fbfefd;
    }
    .compact-grid { grid-template-columns: .6fr 1fr .8fr; }
    .mini-list, .task-items { display: grid; gap: 8px; }
    .task-action-slot { display: grid; margin-bottom: 12px; }
    .mini-row, .task-item-row {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 10px;
      align-items: center;
      padding: 10px;
      border: 1px solid #e1eeea;
      border-radius: 14px;
      background: white;
    }
    .mini-row span, .task-item-row span {
      display: block;
      color: var(--muted);
      font-size: 13px;
      margin-top: 2px;
    }
    .task-line-row {
      display: grid;
      grid-template-columns: 36px minmax(0, 1fr) minmax(110px, .35fr) auto;
      gap: 10px;
      align-items: center;
      padding: 10px 12px;
      border: 1px solid #e1eeea;
      border-radius: 12px;
      background: white;
    }
    .task-line-row span {
      display: block;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.35;
      margin-top: 2px;
    }
    .task-line-actions { display: flex; gap: 6px; justify-content: flex-end; flex-wrap: wrap; }
    .task-empty-line {
      border: 1px dashed #c9ddd7;
      border-radius: 12px;
      padding: 12px;
      color: var(--muted);
      background: #fbfefd;
      font-weight: 750;
    }
    .measure-wrap { background: linear-gradient(135deg, #dde8e0, #b8cbbb); border: 1px solid var(--line); border-radius: 22px; overflow: hidden; position: relative; min-height: 360px; }
    .measure-toolbar { display: flex; gap: 8px; flex-wrap: wrap; padding: 10px; background: rgba(255,255,255,.88); border-bottom: 1px solid var(--line); }
    .measure-canvas { display:block; width:100%; height:auto; aspect-ratio: 760 / 460; cursor: crosshair; touch-action: none; }
    .measure-note { position:absolute; left:12px; bottom:12px; right:12px; background:rgba(255,255,255,.9); border-radius:14px; padding:10px; color:var(--muted); font-size:.88rem; }
    .measure-wrap.is-fullscreen {
      position: fixed;
      z-index: 80;
      inset: 18px;
      border-radius: 24px;
      box-shadow: 0 24px 80px rgba(0,0,0,.38);
      min-height: 0;
      background: #102d2a;
    }
    .measure-wrap.is-fullscreen .measure-toolbar { position: relative; z-index: 2; }
    .measure-wrap.is-fullscreen .measure-canvas {
      height: calc(100vh - 132px);
      aspect-ratio: auto;
    }
    body.map-modal-open { overflow: hidden; }
    .task-summary { display:grid; gap:10px; }
    .summary-line { display:flex; justify-content:space-between; gap:14px; border-bottom:1px solid #edf4f2; padding:10px 0; }
    .summary-line span { color: var(--muted); }
    .wait-box { display:flex; gap:10px; align-items:flex-start; padding:13px; border:1px solid var(--line); border-radius:16px; background:#fbfefd; }
    .request-auth {
      display: grid;
      gap: 10px;
      margin-top: 14px;
      padding: 14px;
      border: 1px solid var(--line);
      border-radius: 18px;
      background: #fbfefd;
    }
    .request-status {
      display: none;
      padding: 10px 12px;
      border-radius: 12px;
      background: #e8fff7;
      color: var(--brand-dark);
      font-weight: 800;
    }
    .request-status.is-visible { display: block; }
    .provider-gate { border: 1px dashed rgba(18,128,100,.45); background: var(--brand-soft); border-radius: 18px; padding: 14px; color: var(--brand-dark); font-weight: 800; }
    .provider-gate.is-hidden { display:none; }
    @media (max-width: 900px) { .task-shell { grid-template-columns:1fr; } .segmented, .option-grid { grid-template-columns:1fr; } }
    @media (max-width: 1020px) { .provider-list, .provider-list-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
    @media (max-width: 720px) {
      .provider-list, .provider-list-grid { grid-template-columns: 1fr; }
      .coverage-status { grid-template-columns: 1fr; }
      .coverage-chips { justify-content: flex-start; }
      .assignment-row { grid-template-columns: 1fr; }
      .assignment-state { text-align: left; }
      .task-line-row { grid-template-columns: 28px 1fr; align-items: start; }
      .task-line-actions { grid-column: 1 / -1; justify-content: start; }
    }
