﻿: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; }
    [hidden] { display: none !important; }
    .bot-field {
      position: absolute !important;
      left: -10000px !important;
      width: 1px !important;
      height: 1px !important;
      overflow: hidden !important;
      opacity: 0 !important;
      pointer-events: none !important;
    }
    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; }

    .install-card {
      position: fixed;
      right: 18px;
      bottom: 18px;
      z-index: 80;
      width: min(380px, calc(100vw - 28px));
      display: grid;
      grid-template-columns: 46px 1fr auto 30px;
      align-items: center;
      gap: 12px;
      padding: 12px;
      border: 1px solid rgba(213, 233, 228, .95);
      border-radius: 16px;
      background: rgba(255, 255, 255, .96);
      box-shadow: var(--shadow-soft);
      backdrop-filter: blur(14px);
    }

    .install-card-icon {
      width: 46px;
      height: 46px;
      border-radius: 12px;
      display: grid;
      place-items: center;
      background: linear-gradient(145deg, #128064, #0f6b5a);
      color: #e8fff7;
      font-weight: 950;
      letter-spacing: 0;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.22);
    }

    .install-card-copy {
      display: grid;
      gap: 2px;
      min-width: 0;
    }

    .install-card-copy strong {
      font-size: 14px;
      line-height: 1.2;
    }

    .install-card-copy span {
      color: var(--muted);
      font-size: 12px;
      line-height: 1.35;
    }

    .install-close {
      width: 30px;
      height: 30px;
      border: 0;
      border-radius: 999px;
      background: #ecf6f3;
      color: var(--brand-dark);
      font-size: 20px;
      line-height: 1;
      display: grid;
      place-items: center;
    }

    .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-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; }
    .pricing-card { grid-column: 1 / -1; }
    .micro-copy {
      margin: 12px 0 0;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.45;
      font-weight: 750;
    }

    .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-grid > .span-2 { grid-column: 1 / -1; }
    .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; }
    .table-row-actions {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 8px;
      flex-wrap: wrap;
      text-align: right;
    }
    .price-rule-row {
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: center;
    }
    .pricing-builder-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .media-uploader {
      display: grid;
      gap: 14px;
    }
    .upload-row {
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      align-items: center;
    }
    .image-preview {
      min-height: 180px;
      border: 1px dashed #b9d4cd;
      border-radius: 18px;
      overflow: hidden;
      background: #f4faf8;
      display: grid;
      place-items: center;
      color: var(--muted);
      font-weight: 850;
    }
    .image-preview img,
    .gallery-grid img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }
    .gallery-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
    }
    .gallery-item {
      position: relative;
      overflow: hidden;
      min-height: 118px;
      border: 1px solid var(--line);
      border-radius: 14px;
      background: #f4faf8;
    }
    .gallery-item .btn {
      position: absolute;
      right: 8px;
      top: 8px;
      min-height: 32px;
      padding: 6px 9px;
      box-shadow: 0 8px 20px rgba(16,45,42,.16);
    }

    .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;
    }

    .business-public {
      max-width: var(--max);
      margin: 0 auto;
      padding: 34px 22px 90px;
      display: grid;
      gap: 34px;
    }

    .business-article-hero {
      display: grid;
      grid-template-columns: minmax(0, 0.92fr) minmax(360px, 1.08fr);
      gap: 34px;
      align-items: center;
      min-height: 520px;
    }

    .business-article-copy {
      display: grid;
      gap: 18px;
      align-content: center;
    }

    .eyebrow {
      width: fit-content;
      display: inline-flex;
      border: 1px solid #c6e4dc;
      border-radius: 999px;
      padding: 7px 11px;
      background: var(--brand-soft);
      color: var(--brand-dark);
      font-weight: 900;
      font-size: 13px;
    }

    .business-article-copy h1 {
      margin: 0;
      max-width: 720px;
      font-size: clamp(2.6rem, 6vw, 5.6rem);
      line-height: .95;
      letter-spacing: -2.4px;
    }

    .business-article-copy p {
      margin: 0;
      max-width: 660px;
      color: var(--muted);
      font-size: 1.12rem;
      line-height: 1.55;
      font-weight: 650;
    }

    .business-hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 8px;
    }

    .business-article-image {
      width: 100%;
      aspect-ratio: 5 / 4;
      object-fit: cover;
      border-radius: 28px;
      border: 1px solid var(--line);
      box-shadow: var(--shadow);
    }

    .business-article-grid {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 320px;
      gap: 34px;
      align-items: start;
    }

    .business-article-main {
      display: grid;
      gap: 16px;
      max-width: 820px;
    }

    .business-article-main h2 {
      margin: 18px 0 0;
      font-size: 1.8rem;
      letter-spacing: -.4px;
    }

    .business-article-main p {
      margin: 0;
      color: var(--muted);
      line-height: 1.7;
      font-size: 1.02rem;
    }

    .business-article-aside {
      position: sticky;
      top: 92px;
      display: grid;
      gap: 12px;
    }

    .business-article-aside div,
    .business-claim-section {
      border: 1px solid var(--line);
      border-radius: 22px;
      background: white;
      box-shadow: var(--shadow-soft);
    }

    .business-article-aside div {
      padding: 18px;
      display: grid;
      gap: 6px;
    }

    .business-article-aside strong {
      font-size: 1.05rem;
      color: var(--brand-dark);
    }

    .business-article-aside span {
      color: var(--muted);
      font-weight: 700;
      line-height: 1.45;
    }

    .business-claim-section {
      padding: 24px;
      display: grid;
      gap: 16px;
    }

    .business-search-form {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 12px;
      align-items: end;
    }

    .business-search-form .btn:disabled {
      opacity: .45;
      cursor: not-allowed;
    }

    .business-search-results {
      display: grid;
      gap: 12px;
    }

    .business-result-card,
    .business-result-empty {
      border: 1px solid var(--line);
      border-radius: 18px;
      background: #fbfefd;
      padding: 16px;
    }

    .business-result-card {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(260px, .42fr);
      gap: 16px;
      align-items: start;
    }

    .business-result-head {
      display: flex;
      gap: 10px;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 6px;
    }

    .business-result-head h3 {
      margin: 0;
      font-size: 1.15rem;
    }

    .business-result-card p {
      margin: 0;
      color: var(--muted);
      font-weight: 700;
    }

    .business-result-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 7px;
      margin-top: 10px;
    }

    .business-result-meta span,
    .business-result-meta a {
      display: inline-flex;
      border: 1px solid #e2efeb;
      border-radius: 999px;
      padding: 5px 8px;
      background: white;
      color: var(--muted);
      font-size: 12px;
      font-weight: 850;
      text-decoration: none;
    }

    .business-claim-form {
      display: grid;
      gap: 10px;
    }

    .business-create-prompt {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      border: 1px dashed #b8d9d1;
      border-radius: 18px;
      background: #f5fffb;
      padding: 16px;
    }

    .business-create-prompt p {
      margin: 0;
      color: var(--muted);
      font-weight: 850;
    }

    .business-create-form {
      display: grid;
      gap: 16px;
      border-top: 1px solid var(--line);
      padding-top: 18px;
    }

    .business-service-checks {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 8px;
    }

    .business-service-checks label,
    .business-verification-check {
      display: flex;
      align-items: center;
      gap: 9px;
      border: 1px solid #dceae6;
      border-radius: 13px;
      background: #fbfefd;
      color: var(--ink);
      font-weight: 800;
      padding: 10px;
    }

    .business-service-checks input,
    .business-verification-check input {
      width: 18px;
      height: 18px;
      accent-color: var(--brand);
      flex: 0 0 auto;
    }

    .business-verification-check {
      align-items: flex-start;
      line-height: 1.35;
    }

    @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; }
      .business-article-hero,
      .business-article-grid,
      .business-result-card { grid-template-columns: 1fr; }
      .business-article-hero { min-height: auto; }
      .business-article-aside { position: static; }
      .business-service-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }

    @media (max-width: 720px) {
      .nav { align-items:flex-start; flex-wrap: wrap; gap: 10px; }
      .brand { min-width: 0; }
      .brand-logo { width: min(190px, 58vw); }
      .nav-links {
        order: 3;
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        font-size: 13px;
      }
      .nav-links a {
        padding: 8px 10px;
        border: 1px solid #d5e9e4;
        border-radius: 999px;
        background: #ecf6f3;
        color: var(--brand-dark);
      }
      .nav-actions { display:flex; margin-left: 0; width: 100%; justify-content: flex-start; order: 2; }
      .nav-actions .btn { min-height: 38px; padding: 9px 12px; font-size: 13px; }
      .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; }
      .company-hero { display: grid; padding: 20px; }
      .company-status { justify-items: start; }
      .company-sidebar { grid-template-columns: 1fr 1fr; }
      .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .business-public { padding: 20px 14px 70px; }
      .business-article-copy h1 { letter-spacing: -1.4px; }
      .business-article-image { border-radius: 18px; }
      .business-search-form { grid-template-columns: 1fr; }
      .business-claim-section { padding: 16px; }
      .business-service-checks { grid-template-columns: 1fr; }
    }

    .task-builder { margin: 0 0 72px; }
    .task-shell { display: grid; grid-template-columns: 1.05fr .95fr; gap: 22px; align-items: start; }
    .task-shell.is-wizard {
      position: relative;
      display: grid;
      grid-template-columns: 1fr;
      width: min(980px, 100%);
      margin: 0 auto;
      overflow: hidden;
      min-height: 620px;
    }
    .task-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); padding: 24px; }
    .task-shell.is-wizard .task-card {
      grid-column: 1;
      grid-row: 1;
      width: 100%;
      max-height: min(72vh, 760px);
      overflow: auto;
      opacity: 0;
      pointer-events: none;
      transform: translateX(36px) scale(.99);
      transition: opacity .22s ease, transform .28s ease;
    }
    .task-shell.is-wizard .task-card.is-before { transform: translateX(-36px) scale(.99); }
    .task-shell.is-wizard .task-card.is-active {
      opacity: 1;
      pointer-events: auto;
      transform: translateX(0) scale(1);
    }
    .task-shell.is-wizard .task-card.is-skipped {
      display: none;
    }
    .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; }
    .task-shell.is-wizard .provider-card-panel { grid-column: 1; }
    .wizard-controls {
      position: sticky;
      bottom: 14px;
      z-index: 12;
      width: min(980px, calc(100% - 28px));
      margin: 14px auto 0;
      display: grid;
      grid-template-columns: minmax(110px, auto) 1fr minmax(110px, auto);
      align-items: center;
      gap: 14px;
      padding: 12px;
      border: 1px solid rgba(198,220,214,.9);
      border-radius: 999px;
      background: rgba(255,255,255,.9);
      box-shadow: 0 18px 54px rgba(16,45,42,.14);
      backdrop-filter: blur(12px);
    }
    .wizard-progress {
      display: grid;
      gap: 7px;
      justify-items: center;
      color: var(--muted);
      font-weight: 850;
      font-size: 13px;
      min-width: 0;
      text-align: center;
    }
    .wizard-dots {
      display: flex;
      gap: 7px;
      justify-content: center;
      flex-wrap: wrap;
    }
    .wizard-dots button {
      width: 9px;
      height: 9px;
      border: 0;
      border-radius: 999px;
      background: #bfd5ce;
      padding: 0;
      cursor: pointer;
    }
    .wizard-dots button.is-active {
      width: 24px;
      background: var(--brand);
    }
    .task-cart-bar {
      position: fixed;
      left: 50%;
      bottom: 92px;
      z-index: 13;
      width: min(980px, calc(100% - 28px));
      transform: translateX(-50%) translateY(16px);
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      gap: 14px;
      align-items: center;
      padding: 12px 14px;
      border: 1px solid rgba(198,220,214,.95);
      border-radius: 18px;
      background: rgba(247,251,249,.94);
      box-shadow: 0 18px 54px rgba(16,45,42,.12);
      backdrop-filter: blur(12px);
      opacity: 0;
      pointer-events: none;
      transition: opacity .18s ease, transform .18s ease;
    }
    .task-cart-bar.is-visible {
      opacity: 1;
      pointer-events: auto;
      transform: translateX(-50%) translateY(0);
    }
    .task-cart-bar strong { display:block; }
    .task-cart-bar span { color: var(--muted); font-size: 13px; font-weight: 800; }
    .task-cart-items {
      display: flex;
      gap: 8px;
      justify-content: flex-end;
      overflow-x: auto;
      min-width: 0;
    }
    .task-cart-items button {
      border: 1px solid var(--line);
      border-radius: 999px;
      background: white;
      color: var(--brand-dark);
      padding: 8px 11px;
      white-space: nowrap;
      font-weight: 850;
      cursor: pointer;
    }
    .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 {
      position: relative;
      z-index: 4;
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
      align-items: center;
      padding: 14px;
      background: rgba(255,255,255,.35);
      backdrop-filter: blur(6px);
    }
    .measure-toolbar .btn.small {
      min-height: 40px;
      padding: 9px 13px;
      border-radius: 999px;
      box-shadow: 0 8px 22px rgba(16,45,42,.12);
    }
    .measure-total {
      min-height: 40px;
      display: inline-flex;
      align-items: center;
      border-radius: 999px;
      padding: 9px 14px;
      background: rgba(16,45,42,.88);
      color: white;
      box-shadow: 0 8px 22px rgba(16,45,42,.16);
      font-weight: 950;
      white-space: nowrap;
    }
    .map-icon-btn {
      width: 42px;
      height: 42px;
      border: 1px solid rgba(255,255,255,.65);
      border-radius: 999px;
      background: rgba(255,255,255,.92);
      color: var(--brand-dark);
      box-shadow: 0 8px 22px rgba(16,45,42,.16);
      font-size: 22px;
      font-weight: 950;
      line-height: 1;
      display: inline-grid;
      place-items: center;
      cursor: pointer;
    }
    .map-icon-btn:hover,
    .map-icon-btn:focus-visible {
      background: white;
      outline: 2px solid rgba(18,128,100,.25);
      outline-offset: 2px;
    }
    .map-fullscreen {
      position: absolute;
      z-index: 5;
      left: 12px;
      top: 68px;
      font-size: 18px;
    }
    .map-zoom-controls {
      position: absolute;
      z-index: 5;
      right: 12px;
      top: 68px;
      display: grid;
      gap: 8px;
    }
    .measure-canvas { display:block; width:100%; height:auto; aspect-ratio: 760 / 460; cursor: crosshair; touch-action: none; }
    .measure-note { display: none; }
    .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-canvas {
      height: calc(100vh - 104px);
      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;
    }
    .auth-choice-row {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
    }
    .auth-choice-row .btn {
      justify-content: center;
      min-height: 56px;
      font-size: 1rem;
    }
    .auth-choice-row .btn.is-active {
      box-shadow: 0 0 0 3px rgba(18,128,100,.18), var(--shadow-soft);
    }
    .choice-grid {
      display: grid;
      gap: 12px;
    }
    .auth-mode-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      margin: 24px 0;
    }
    .choice-card {
      border: 1px solid var(--line);
      border-radius: 18px;
      background: #fbfefd;
      color: var(--ink);
      min-height: 82px;
      padding: 16px;
      display: grid;
      gap: 5px;
      text-align: left;
      box-shadow: var(--shadow-soft);
    }
    .choice-card strong {
      font-size: 1.05rem;
      color: var(--brand-dark);
    }
    .choice-card span {
      color: var(--muted);
      font-weight: 750;
    }
    .choice-card.is-selected {
      border-color: rgba(18,128,100,.55);
      background: var(--brand-soft);
      box-shadow: 0 0 0 3px rgba(18,128,100,.16), var(--shadow-soft);
    }
    .auth-tabs {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
      padding: 6px;
      margin: 24px 0;
      border: 1px solid var(--line);
      border-radius: 18px;
      background: #eef6f3;
    }
    .auth-tab {
      min-height: 48px;
      border: 0;
      border-radius: 13px;
      background: transparent;
      color: var(--muted);
      font-weight: 900;
    }
    .auth-tab.is-selected {
      background: white;
      color: var(--brand-dark);
      box-shadow: var(--shadow-soft);
    }
    .muted-text {
      color: var(--muted);
      font-weight: 700;
    }
    .auth-email-field {
      margin-top: 6px;
    }
    .auth-email-field .btn {
      margin-top: 10px;
      width: fit-content;
    }
    .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; }
    .send-mode-toggle {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
      margin-bottom: 14px;
    }
    .send-mode-toggle .btn {
      justify-content: center;
      min-height: 58px;
      font-size: 1rem;
    }
    .send-mode-toggle .btn.is-active {
      box-shadow: 0 0 0 3px rgba(18,128,100,.18), var(--shadow-soft);
    }
    .send-mode-toggle .wait-box {
      margin: 0;
      height: 100%;
      background: #fbfefd;
    }
    .send-mode-toggle input:checked + span strong {
      color: var(--brand-dark);
    }
    .provider-panel-head {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 16px;
      margin-bottom: 14px;
    }
    .provider-panel-head h3 { margin: 0; }
    .provider-panel-head label {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      color: var(--muted);
      font-weight: 850;
      white-space: nowrap;
    }
    .provider-panel-head select {
      min-height: 40px;
      border: 1px solid var(--line);
      border-radius: 999px;
      padding: 8px 34px 8px 12px;
      background: white;
      color: var(--ink);
      font-weight: 850;
    }
    .provider-mini-stats {
      display: flex;
      gap: 6px;
      flex-wrap: wrap;
      margin-top: 7px;
    }
    .provider-mini-stats span {
      display: inline-flex;
      align-items: center;
      min-height: 24px;
      border-radius: 999px;
      padding: 4px 8px;
      background: #f7fbf9;
      border: 1px solid #e1eeea;
      color: var(--muted);
      font-size: 12px;
      font-weight: 850;
    }
    @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) {
      .auth-mode-grid { grid-template-columns: 1fr; }
      body:has(.task-shell.is-wizard) .site-header { display: none; }
      .page-main { padding-top: 8px; }
      .task-builder {
        position: fixed;
        inset: 0;
        z-index: 40;
        margin: 0;
        padding: 8px;
        overflow: hidden;
        background: #f7fbf9;
        display: grid;
        grid-template-rows: auto minmax(0, 1fr) auto auto;
      }
      .task-builder > .section-head {
        margin-bottom: 8px;
        min-height: 0;
      }
      .task-builder > .section-head h1 {
        font-size: 1.35rem;
        letter-spacing: 0;
      }
      .task-builder > .section-head p {
        display: none;
      }
      .task-shell.is-wizard {
        min-height: 0;
        height: 100%;
        width: 100%;
        overflow: hidden;
      }
      .task-shell.is-wizard .task-card {
        max-height: none;
        height: 100%;
        padding: 12px;
        border-radius: 18px;
        overscroll-behavior: contain;
      }
      .task-card h3 { font-size: 1rem; }
      .task-card p { font-size: .86rem; line-height: 1.35; margin-bottom: 10px; }
      .field label { font-size: .72rem; }
      .field input,
      .field select,
      .field textarea,
      .segmented button,
      .option-grid button {
        min-height: 38px;
        font-size: .86rem;
      }
      .wizard-controls {
        position: static;
        width: 100%;
        margin-top: 8px;
        grid-template-columns: auto 1fr auto;
        gap: 8px;
        padding: 8px;
        border-radius: 18px;
        order: 4;
      }
      .wizard-controls .btn {
        min-height: 38px;
        padding: 9px 12px;
        font-size: .84rem;
      }
      .wizard-progress {
        font-size: 11px;
      }
      .task-cart-bar {
        position: static;
        display: none;
        width: 100%;
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 9px 10px;
        margin-top: 8px;
        transform: none;
        order: 3;
        max-height: 86px;
        overflow: hidden;
      }
      .task-cart-bar.is-visible {
        display: grid;
        opacity: 1;
        transform: none;
      }
      .task-cart-items { justify-content: flex-start; padding-bottom: 2px; }
      .provider-list, .provider-list-grid { grid-template-columns: 1fr; }
      .send-mode-toggle { 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; }
      .provider-panel-head { align-items: stretch; flex-direction: column; }
      .provider-panel-head label { justify-content: space-between; }
      .measure-wrap {
        margin-inline: -12px;
        width: calc(100% + 24px);
        border-left: 0;
        border-right: 0;
        border-radius: 0;
        min-height: 0;
      }
      .measure-toolbar { padding: 8px; gap: 7px; }
      .measure-toolbar .btn.small,
      .measure-total {
        min-height: 36px;
        padding: 8px 10px;
        font-size: 12px;
      }
      .measure-canvas {
        aspect-ratio: 760 / 460;
        height: auto;
      }
      .map-fullscreen,
      .map-zoom-controls {
        top: 56px;
      }
      .map-icon-btn {
        width: 46px;
        height: 46px;
      }
      .install-card {
        right: 10px;
        bottom: 10px;
        width: calc(100vw - 20px);
        grid-template-columns: 42px 1fr 30px;
      }
      .install-card .install-action {
        grid-column: 2 / 4;
        width: 100%;
      }
      .install-card-icon {
        width: 42px;
        height: 42px;
      }
      .task-line-row { grid-template-columns: 28px 1fr; align-items: start; }
      .task-line-actions { grid-column: 1 / -1; justify-content: start; }
      .pricing-builder-grid { grid-template-columns: 1fr; }
      .price-rule-row { grid-template-columns: 1fr; }
      .table-row-actions { justify-content: flex-start; text-align: left; }
    }
