:root { --text:#111; --muted:#6b6b6b; --line:#e3e3e3; --soft:#f7f7f7; --bad:#a11d1d; --ok:#1a7f37; }
* { box-sizing: border-box; }
body { margin:0; background:#fff; color:var(--text); font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; }
.site-header { height:64px; padding:0 20px; display:flex; align-items:center; justify-content:space-between; }
.site-header nav a { font-size:14px; font-weight:500; text-decoration:none; }
.brand { color:var(--text); text-decoration:none; font-size:22px; font-weight:700; letter-spacing:-0.04em; }
.customer-main { width:min(100%, 980px); margin:0 auto; padding:12px 18px 60px; }
.customer-main.narrow { width:min(100%, 440px); }
h1 { font-size:clamp(26px, 5vw, 36px); line-height:1.15; letter-spacing:-0.03em; margin:6px 0 10px; }
h2 { font-size:18px; margin:0 0 10px; }
h3 { font-size:17px; margin:0; }
.section-title { margin:26px 0 12px; }
.eyebrow { margin:0; font-size:13px; font-weight:600; color:var(--muted); }
.muted { color:var(--muted); }
.small { font-size:13px; }
.card { border:1px solid var(--line); border-radius:16px; padding:18px; margin:14px 0; }
.status-line { font-weight:600; }
.status-line::before { content:""; display:inline-block; width:8px; height:8px; margin-right:8px; border-radius:50%; background:var(--ok); vertical-align:1px; }
.reqs { display:grid; grid-template-columns:max-content 1fr; gap:6px 16px; margin:0; }
.reqs dt { color:var(--muted); }
.reqs dd { margin:0; }
.supplier-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:14px; }
.supplier-card { border:1px solid var(--line); border-radius:16px; padding:18px; display:flex; flex-direction:column; gap:10px; }
.supplier-card.chosen { border:2px solid var(--text); }
.supplier-card header { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.badge { font-size:12px; padding:3px 10px; border-radius:999px; background:var(--soft); white-space:nowrap; }
.trust { display:flex; flex-wrap:wrap; gap:6px; }
.chip { font-size:12px; padding:3px 9px; border-radius:999px; background:var(--soft); }
.chip.ok { background:#e6f4ea; color:var(--ok); font-weight:600; }
.price { font-size:30px; font-weight:700; letter-spacing:-0.02em; margin:4px 0 0; }
.lines { list-style:none; padding:0; margin:0; font-size:14px; }
.lines li { display:flex; justify-content:space-between; gap:12px; padding:5px 0; border-bottom:1px solid var(--line); }
.messages-wrap summary { cursor:pointer; font-weight:600; font-size:14px; }
.messages { display:flex; flex-direction:column; gap:8px; margin:10px 0; }
.msg { padding:9px 12px; border-radius:12px; background:var(--soft); font-size:14px; }
.msg-customer { background:#fff; border:1px solid var(--line); }
.msg .who { font-size:12px; font-weight:700; }
.msg p { margin:3px 0 0; white-space:pre-wrap; }
textarea, input { width:100%; font:inherit; font-size:16px; border:1px solid var(--line); border-radius:12px; padding:10px 12px; background:#fff; color:var(--text); }
textarea:focus, input:focus { outline:none; border-color:#999; }
.field { display:flex; flex-direction:column; gap:6px; margin:0 0 14px; font-size:13px; font-weight:600; }
button { font:inherit; cursor:pointer; }
button.primary, button.secondary { min-height:44px; padding:0 20px; border-radius:999px; font-weight:600; font-size:15px; }
button.primary { background:#111; color:#fff; border:0; }
button.secondary { background:#fff; border:1px solid var(--line); color:#111; }
button:disabled { opacity:.5; cursor:default; }
.error { color:var(--bad); font-size:14px; margin:6px 0; }
.connected { border:2px solid var(--ok); }
.contacts { list-style:none; padding:0; margin:8px 0 0; font-size:17px; }
.contacts li { padding:4px 0; }
.gig-list { list-style:none; padding:0; margin:0; }
.gig-list li a { display:flex; flex-direction:column; gap:4px; padding:16px 4px; border-bottom:1px solid var(--line); text-decoration:none; }
.gig-list li a:hover { background:#fafafa; }

/* Progress timeline */
.progress { list-style:none; margin:0; padding:0; }
.progress .step { display:flex; gap:12px; padding:7px 0; }
.progress .dot { flex:none; width:14px; height:14px; margin-top:4px; border-radius:50%; border:2px solid var(--line); background:#fff; }
.progress .step-done .dot { background:var(--ok); border-color:var(--ok); }
.progress .step-current .dot { border-color:var(--ok); box-shadow:0 0 0 4px rgba(26,127,55,.15); animation:gg-pulse 1.6s ease-in-out infinite; }
.progress .step-upcoming { opacity:.45; }
.progress p { margin:2px 0 0; }
@keyframes gg-pulse { 50% { box-shadow:0 0 0 7px rgba(26,127,55,.05); } }
@media (prefers-reduced-motion: reduce) { .progress .step-current .dot { animation:none; } }

/* Supplier rows */
.supplier-rows { border:1px solid var(--line); border-radius:16px; overflow:hidden; }
.supplier-row { display:grid; grid-template-columns:1fr auto; gap:6px 24px; padding:16px 18px; border-top:1px solid var(--line); }
.supplier-row:first-child { border-top:0; }
.supplier-row.chosen { background:#f3faf5; }
.row-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.row-head h3 { margin:0; font-size:17px; }
.trust-line { display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center; margin-top:8px; font-size:13px; color:var(--muted); }
.row-price { text-align:right; min-width:170px; }
.row-price p { margin:2px 0; }
.row-price .price { font-size:24px; margin:0; }
.row-price button { margin-top:8px; }
.row-more { grid-column:1 / -1; display:flex; flex-direction:column; gap:6px; }
.row-more summary { cursor:pointer; font-weight:600; font-size:14px; }
.disclaimer { margin-top:12px; }
@media (max-width: 640px) {
  .supplier-row { grid-template-columns:1fr; }
  .row-price { text-align:left; min-width:0; }
}

/* Supplier-stated accreditations: amber, on their own line */
.trust-line.stated { margin-top:6px; }
.chip.stated { background:#fdf3e1; color:#8a5300; }

/* Verified line, then supplier-stated line underneath */
.row-main .trust { display:block; }

/* Row actions: compact toggles under the trust lines */
.row-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.row-actions button { font:inherit; font-size:14px; font-weight:600; border:1px solid var(--line); background:#fff; color:var(--text); border-radius:999px; padding:6px 14px; cursor:pointer; display:inline-flex; align-items:center; gap:8px; }
.row-actions button:hover { background:#fafafa; }
.row-actions button[aria-expanded="true"] { background:var(--soft); border-color:#cfcfcf; }
.unread { background:#c0392b; color:#fff; border-radius:999px; font-size:12px; line-height:1; padding:3px 7px; font-weight:700; }
.row-panel { margin-top:12px; padding-top:12px; border-top:1px dashed var(--line); }
.row-panel[hidden] { display:none; }

/* Google rating chip: visually distinct from Gigson's own badges */
.google-rating { display:inline-flex; align-items:center; gap:6px; padding:2px 10px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--text); text-decoration:none; font-size:13px; }
.google-rating:hover { background:#fafafa; }
.google-rating .stars { color:#b06000; font-weight:600; }
.google-rating .count { color:var(--muted); }
.gmp-attribution { font-family:Roboto, Arial, sans-serif; font-size:11px; color:#5e5e5e; letter-spacing:.2px; }

/* Distance and trading years under the supplier name */
.row-meta { margin:4px 0 0; font-size:14px; color:var(--muted); }

/* Estimate, subject to survey */
.estimate-tag { display:inline-block; margin:4px 0 0; padding:2px 8px; border-radius:999px; background:#fdf3e1; color:#8a5300; font-size:12px; font-weight:600; }

/* Review and send (migration 028) */
.review-actions h2 { margin-top: 0; }
.review-buttons { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.review-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; margin-top: 8px; }
.review-form .field { display: flex; flex-direction: column; gap: 4px; font-weight: 600; font-size: 14px; }
.review-form .field.full, .review-form .review-buttons, .review-form .error, .review-form .muted { grid-column: 1 / -1; }
.review-form input { font: inherit; font-weight: 400; padding: 10px 12px; border: 1px solid #ccc; border-radius: 10px; }
.review-form input[readonly] { background: #f4f4f2; color: #555; }
.review-note { grid-column: 1 / -1; margin: 4px 0 0; font-size: 14px; color: #555; }
@media (max-width: 600px) { .review-form { grid-template-columns: 1fr; } }

/* review-form tidy: no double gaps around the privacy note; empty error line takes no space */
.review-form .field { margin: 0; }
.review-form .review-note { margin: 2px 0 0; }
.review-form .error { margin: 0; }
.review-form .error:empty { display: none; }
.review-form .review-buttons { margin-top: 6px; }

/* Partner lead welcome (migration 041) */
.welcome-card { position: relative; background: #f0f8f2; border-color: #cfe8d6; padding-right: 48px; }
.welcome-card h2 { margin: 0 0 6px; }
.welcome-card p { margin: 0; }
.welcome-card .review-buttons { margin-top: 14px; }
.welcome-close { position: absolute; top: 10px; right: 12px; background: none; border: 0; font: inherit; font-size: 22px; line-height: 1; color: var(--muted); cursor: pointer; padding: 4px 8px; }

/* GIGSON_REQS_MOBILE: the brief's answers - tidy rows; stacked on phones so answers get the full width. */
.card dl.reqs { display: grid; grid-template-columns: minmax(150px, 38%) 1fr; gap: 0; margin: 8px 0 0; }
.card dl.reqs dt, .card dl.reqs dd { margin: 0; padding: 9px 0; border-top: 1px solid var(--line, #e6e6e3); line-height: 1.4; }
.card dl.reqs dt { color: var(--muted, #6b6b6b); padding-right: 16px; }
.card dl.reqs dd { overflow-wrap: anywhere; }
.card dl.reqs dt:first-of-type, .card dl.reqs dt:first-of-type + dd { border-top: 0; }
@media (max-width: 600px) {
  .card dl.reqs { display: block; }
  .card dl.reqs dt { padding: 10px 0 0; font-size: 13px; letter-spacing: .01em; }
  .card dl.reqs dd { padding: 2px 0 10px; border-top: 0; font-size: 16px; }
  .card dl.reqs dt:first-of-type { padding-top: 2px; }
}

/* GIGSON_EDITS_1013: "Quoting" stands out. */
.badge.badge-quoting { background:#E3F1E6; color:#1A6B33; font-weight:700; }
/* GIGSON_QUOTING_PILL */
.row-price .badge-quoting-lg { display:inline-block; font-size:15px; padding:6px 16px; }
/* GIGSON_STATUS_RIGHT: status pills on the right of each business */
.row-price .status-pill { display:inline-block; margin:0 0 8px; padding:6px 14px; border-radius:999px; font-size:14px; font-weight:700; line-height:1.3; white-space:nowrap; }
.row-price .status-good { background:#E3F1E6; color:#1A6B33; }
.row-price .status-chosen { background:#15211B; color:#fff; }
.row-price .status-waiting { background:var(--soft, #F1F2EE); color:#334155; font-weight:600; }
.row-price .status-off { background:#F4F4F2; color:#8A938D; font-weight:600; }

/* GIGSON_MSG_NOBORDER */
.row-actions .msg-row{border:0 !important;box-shadow:none !important;background:transparent !important;padding-left:0 !important;padding-right:0 !important}
.row-actions .msg-row:hover,.row-actions .msg-row:focus-visible{background:transparent !important}
.row-actions .msg-row:hover .msg-row-text strong{text-decoration:underline;text-underline-offset:3px}
/* /GIGSON_MSG_NOBORDER */
/* GIGSON_PRICE_NUDGE */
.price-tag{display:inline-block;margin-top:7px;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}
