:root {
  color-scheme: light;
  --ink: #18231d;
  --muted: #66726b;
  --line: #d9e0dc;
  --paper: #fbfcf9;
  --card: #ffffff;
  --brand: #176b47;
  --brand-dark: #0f4f34;
  --warm: #f2b84b;
  --danger: #a93832;
  --soft: #eef5f1;
  --info: #315f91;
  --info-soft: #edf5fd;
  --assistant: #5d4a8a;
  --assistant-soft: #f1eef9;
  --appointment: #8a620e;
  --appointment-soft: #fff8df;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--paper); }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.shell { width: min(1120px, calc(100% - 32px)); margin: 0 auto; }
.topbar { background: var(--card); border-bottom: 1px solid var(--line); }
.nav { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.brand { font-weight: 800; letter-spacing: -.02em; text-decoration: none; }
.brand span { color: var(--brand); }
.nav-links { display: flex; align-items: center; gap: 20px; }
.nav-links a { text-decoration: none; color: var(--muted); }
.nav-links a.primary { color:#fff; background:var(--brand); }
.nav-links a.primary:hover { color:#fff; background:var(--brand-dark); }
.hero { padding: 76px 0 44px; display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; }
.eyebrow { color: var(--brand); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; font-size: 12px; }
h1 { margin: 12px 0 18px; font-size: clamp(40px, 6vw, 68px); line-height: .98; letter-spacing: -.055em; }
h2 { margin: 0 0 8px; font-size: 28px; letter-spacing: -.03em; }
h3 { margin: 0; font-size: 17px; }
.lead { color: var(--muted); font-size: 18px; line-height: 1.65; max-width: 620px; }
.proof { display: flex; gap: 24px; flex-wrap: wrap; margin-top: 28px; color: var(--muted); font-size: 14px; }
.proof strong { color: var(--ink); display: block; font-size: 20px; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 18px 55px rgba(20, 45, 31, .08); }
.form-card { padding: 28px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-grid > .full { grid-column:1 / -1; }
.field { display: grid; gap: 7px; }
.field.full { grid-column: 1 / -1; }
.lookup-row { display: grid; grid-template-columns: 1fr auto; gap: 9px; }
label { font-size: 13px; font-weight: 750; }
input, select, textarea { width: 100%; border: 1px solid var(--line); border-radius: 10px; padding: 12px 13px; background: #fff; color: var(--ink); }
textarea { resize: vertical; min-height: 106px; }
input:focus, select:focus, textarea:focus { outline: 3px solid rgba(23, 107, 71, .14); border-color: var(--brand); }
.primary, .secondary { border: 0; border-radius: 10px; padding: 12px 17px; font-weight: 800; }
.primary { color: white; background: var(--brand); }
.primary:hover { background: var(--brand-dark); }
.secondary { color: var(--ink); background: var(--soft); }
.wide { width: 100%; }
.fine { color: var(--muted); font-size: 12px; line-height: 1.5; }
.notice { margin-top: 16px; padding: 14px; border-radius: 10px; color:var(--info); background:var(--info-soft); border-left:3px solid #78a9d6; line-height: 1.5; }
.notice.error { color: var(--danger); background: #fff0ef; }
.hidden { display: none !important; }
.booking { margin-top: 18px; }
.slots { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 12px 0; }
.slot { border: 1px solid var(--line); background: white; border-radius: 9px; padding: 10px; text-align: left; }
.slot.selected { border-color: var(--brand); background: var(--soft); }
.how { padding: 40px 0 78px; }
.steps { margin-top: 24px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.step { border-top: 3px solid var(--brand); padding: 18px 0; }
.step p { color: var(--muted); line-height: 1.55; }
.dashboard-head { padding: 44px 0 24px; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.settings-panel { margin-top:28px; padding:24px; }
.system-panel { margin-top:28px; padding:24px; }
.schedule-panel { margin-top:28px; padding:24px; }
.schedule-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:20px; }
.schedule-summary article { display:flex; align-items:center; gap:12px; border:1px solid var(--line); background:linear-gradient(135deg,#f8fbf9,#eef6f1); border-radius:12px; padding:14px; }
.schedule-summary strong, .schedule-summary small { display:block; }
.schedule-summary strong { font-size:22px; }
.schedule-summary small { color:var(--muted); font-size:11px; margin-top:2px; }
.summary-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:9px; background:var(--brand); color:white; font-size:17px; }
.calendar-toolbar { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:20px 0 12px; }
.calendar-legend { display:flex; flex-wrap:wrap; gap:14px; margin:0 0 10px; color:var(--muted); font-size:11px; }
.calendar-legend span { display:flex; align-items:center; gap:5px; }
.legend-dot { width:8px; height:8px; border-radius:50%; background:#ccd4cf; }
.booked-dot { background:var(--brand); }.free-dot { background:#74ad90; }.unavailable-dot { background:#ccd4cf; }
.week-calendar { display:grid; grid-template-columns:repeat(7,minmax(115px,1fr)); gap:8px; overflow-x:auto; }
.calendar-day { min-height:170px; border:1px solid var(--line); border-radius:10px; padding:9px; background:#fafcfb; }
.calendar-day.today { border-color:var(--brand); }
.calendar-day h3 { font-size:12px; margin-bottom:9px; }
.calendar-event { display:block; width:100%; padding:7px; margin:5px 0; border-radius:7px; border-left:4px solid var(--brand); background:white; font-size:10px; line-height:1.3; text-align:left; }
.calendar-event strong, .calendar-event span { display:block; }
.calendar-free { display:flex; align-items:center; gap:5px; margin:5px 0; padding:6px; background:#eaf5ef; color:#286344; border-radius:6px; font-size:10px; }
.calendar-free:before { content:'◷'; }
.calendar-empty { display:block; padding:8px 4px; color:var(--muted); font-size:10px; }
.calendar-error { grid-column:1 / -1; padding:26px; border:1px solid #edc8c5; background:#fff3f2; color:var(--danger); border-radius:10px; text-align:center; }
.team-settings { margin-top:16px; border-top:1px solid var(--line); padding-top:16px; }
.team-settings summary { cursor:pointer; font-weight:800; }
.roofer-list { display:grid; gap:12px; margin:14px 0; }
.roofer-card { border:1px solid var(--line); border-radius:10px; padding:14px; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.roofer-card label { display:grid; gap:5px; }
.roofer-days, .roofer-active, .roofer-full { grid-column:1 / -1; }
.roofer-days { display:flex !important; flex-wrap:wrap; gap:9px !important; }
.roofer-days span { display:flex; align-items:center; gap:4px; font-size:12px; }
.roofer-days input, .roofer-active input { width:auto; }
.system-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:20px; }
.system-card { padding:15px; border:1px solid var(--line); border-radius:12px; background:#fafcfb; }
.system-card-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.system-card strong { display:block; margin-top:12px; font-size:17px; }
.system-card p { color:var(--muted); font-size:11px; line-height:1.4; margin:5px 0 0; overflow-wrap:anywhere; }
.health-dot { width:9px; height:9px; border-radius:50%; background:var(--warm); box-shadow:0 0 0 3px #fff3d6; }
.system-card.healthy .health-dot { background:var(--brand); box-shadow:0 0 0 3px #e6f5ed; }
.system-actions { display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; margin-top:16px; }
#system-action-status { text-align:right; min-height:18px; }
.notification-panel { margin-top:18px; border:1px solid var(--line); border-radius:12px; padding:16px; background:#fafcfb; }
.provider-setup { margin-top:18px; border:1px solid var(--line); border-radius:12px; padding:16px; background:#f7faf8; }
.provider-setup summary { cursor:pointer; font-weight:800; }
.provider-steps { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:14px; }
.provider-steps article { display:flex; gap:10px; padding:12px; border-radius:9px; background:white; border:1px solid var(--line); }
.provider-steps article > span { display:grid; place-items:center; flex:0 0 25px; height:25px; border-radius:50%; background:var(--brand); color:white; font-weight:800; font-size:11px; }
.provider-steps p { color:var(--muted); font-size:11px; line-height:1.45; margin:4px 0 0; }
.provider-steps code { overflow-wrap:anywhere; }
.provider-state { padding:10px; border-radius:8px; background:#fff3d6; color:#76530b; font-size:12px; font-weight:700; }
.provider-state.connected { background:#e6f5ed; color:#17613e; }
.ai-control { margin-top:18px; border:1px solid var(--line); border-radius:12px; padding:16px; background:#f8f6fc; }
.ai-control summary { cursor:pointer; font-weight:800; }
.ai-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; margin-top:15px; }
.ai-grid > label { display:grid; gap:6px; }.ai-grid small { color:var(--muted); font-weight:400; }
.ai-full, .ai-state, .ai-safety, .ai-switch { grid-column:1 / -1; }
.ai-switch { display:flex !important; align-items:center; gap:8px !important; }.ai-switch input { width:auto; }
.ai-state { padding:11px; border-radius:8px; background:#fff3d6; color:#76530b; font-size:12px; font-weight:700; }
.ai-state.connected { background:#e6f5ed; color:#17613e; }
#ai-knowledge { min-height:155px; } #ai-tone { min-height:70px; }
.ai-safety { display:flex; gap:7px; flex-wrap:wrap; padding:12px; border-radius:9px; background:white; border:1px solid var(--line); }
.ai-safety strong { width:100%; }.ai-safety span { padding:5px 7px; border-radius:999px; background:#fff0ef; color:#8d332d; font-size:10px; font-weight:700; }
.notification-panel summary { cursor:pointer; font-weight:800; }
.notification-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:18px; }
.notification-grid > label { display:grid; gap:6px; }
.notification-grid textarea { min-height:76px; }
.notification-grid small { color:var(--muted); font-weight:400; }
.notification-full { grid-column:1 / -1; }
.notification-toggles { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:16px; border:1px solid var(--line); border-radius:9px; padding:12px; }
.notification-toggles label { display:flex; align-items:center; gap:7px; font-size:13px; }
.notification-toggles input { width:auto; }
.notification-preview { background:#f0eef9; border-left:3px solid #947bd3; border-radius:8px; padding:12px; }
.notification-preview p { white-space:pre-wrap; margin:6px 0 0; color:#463d63; font-size:13px; }
.notification-test { display:flex; align-items:end; gap:10px; }
.notification-test label { flex:1; display:grid; gap:6px; }
.settings-head { display:flex; justify-content:space-between; gap:20px; }
.settings-head h2 { margin-top:5px; }
.settings-head p { margin-bottom:0; }
.settings-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:22px; }
.settings-grid label { display:grid; gap:7px; }
.settings-grid small { color:var(--muted); font-weight:400; }
.settings-services { grid-column:1 / -1; }
.settings-services textarea { min-height:130px; }
.settings-save { grid-column:1 / -1; display:flex; justify-content:flex-end; align-items:center; gap:16px; }
.actions { display: flex; gap: 10px; flex-wrap: wrap; }
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.stat { padding: 20px; }
.stat-label { color: var(--muted); font-size: 13px; }
.stat-value { font-size: 34px; font-weight: 850; margin-top: 8px; }
.money-stat { font-size:26px; }
.commercial-panel { padding:14px 20px; border-bottom:1px solid var(--line); background:#f8faf8; }
.commercial-panel summary { cursor:pointer; font-size:13px; font-weight:800; }
.commercial-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:16px; }
.commercial-grid label { display:grid; gap:6px; }
.commercial-full, .commercial-save { grid-column:1 / -1; }
.commercial-grid textarea { min-height:76px; }
.commercial-save { display:flex; justify-content:flex-end; align-items:center; gap:12px; }
.automation-switch { display:flex !important; grid-template-columns:auto 1fr; align-items:center; justify-content:start; }
.automation-switch input { width:auto; }
.task-panel { margin-top:18px; overflow:hidden; }
.task-panel .panel-head > div { display:grid; gap:3px; }
.task-list { display:grid; grid-template-columns:1fr 1fr; }
.task-row { border:0; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:white; padding:13px 16px; text-align:left; display:flex; justify-content:space-between; gap:10px; }
.task-row:hover { background:var(--soft); }
.task-row span:first-child { display:grid; gap:3px; }
.task-row small { color:var(--muted); }
.task-row.urgent { border-left:3px solid var(--danger); }
.task-row.quote { border-left:3px solid var(--warm); }
.task-row.appointment, .task-row.inspection { border-left:3px solid var(--info); }
.task-row.review { border-left:3px solid var(--brand); }
.workspace { padding: 24px 0 64px; display: grid; grid-template-columns: .78fr 1.22fr; gap: 20px; align-items: start; }
.panel { overflow: hidden; }
.panel-head { padding: 18px 20px; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; }
.lead-list { max-height: 630px; overflow: auto; }
.lead-row { width: 100%; text-align: left; background: white; border: 0; border-bottom: 1px solid var(--line); padding: 16px 20px; display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.lead-row > span { display:grid; gap:4px; align-content:start; }
.lead-row > span:last-child { justify-items:end; text-align:right; }
.lead-row strong { line-height:1.25; }
.lead-row:hover, .lead-row.active { background: var(--soft); }
.lead-row small { color: var(--muted); }
.badge { display: inline-block; border-radius: 999px; padding: 4px 8px; background: var(--soft); color: var(--brand-dark); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.badge.high, .badge.critical { background: #fff0ef; color: var(--danger); }
.detail { padding: 0; }
.empty { color: var(--muted); padding: 42px 20px; text-align: center; }
.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 18px 0; }
.detail-grid div { min-width: 0; }
.detail-grid small { display: block; color: var(--muted); margin-bottom: 3px; }
.timeline { margin-top: 20px; border-top: 1px solid var(--line); padding-top: 18px; }
.event { border-left: 2px solid var(--line); padding: 0 0 14px 13px; font-size: 13px; }
.event small { color: var(--muted); display: block; }
.message { padding: 13px; border-radius: 10px; background: var(--soft); margin: 8px 0; line-height: 1.5; font-size: 13px; }
.status-select { margin-top: 16px; }
.composer { margin-top: 20px; border-top: 1px solid var(--line); padding-top: 18px; }
.composer-tabs { display: flex; gap: 8px; margin: 12px 0; }
.composer-tab { border: 1px solid var(--line); background: white; border-radius: 999px; padding: 7px 11px; font-size: 12px; font-weight: 750; }
.composer-tab.active { background: var(--ink); color: white; border-color: var(--ink); }
.composer-actions { display: flex; gap: 9px; justify-content: space-between; align-items: center; margin-top: 10px; flex-wrap: wrap; }
.note { background: #fff8e8; border-left: 3px solid var(--warm); }
.message-meta { display: block; color: var(--muted); margin-top: 6px; }
.conversation-list { display: flow-root; }
.conversation-list h3 { margin-bottom: 12px; }
.owner-inbound, .owner-outbound { max-width: 88%; clear: both; }
.owner-inbound { float: right; background: var(--ink); color: white; }
.owner-inbound .message-meta { color: rgba(255,255,255,.68); }
.owner-outbound { float: left; background: var(--soft); }
.conversation-list .note { clear: both; }
.customer-thread { margin-top: 20px; border-top: 1px solid var(--line); padding-top: 18px; }
.conversation-intro { display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin-bottom:8px; }
.conversation-intro p { margin:2px 0 0; }
.close-conversation { font-size:11px; white-space:nowrap; }
.conversation-closed { background:#f1f3f2; color:var(--muted); border-left:3px solid #98a29d; padding:10px 11px; border-radius:9px; margin:10px 0; font-size:12px; }
.conversation-reference { color:var(--muted); font-size:10px; font-weight:600; margin-left:4px; }
.thread-messages { display: grid; gap: 9px; max-height: 330px; overflow: auto; padding: 4px 0; }
.appointment-message:empty { display:none; }
.bubble { max-width: 88%; padding: 11px 13px; border-radius: 13px; background: var(--soft); line-height: 1.45; font-size: 13px; }
.bubble.customer-message { margin-left: auto; background: var(--ink); color: white; }
.bubble.assistant-message { background:var(--assistant-soft); color:#3f3460; border-left:3px solid #a898cb; }
.bubble.team-message { background:#e8f5ee; color:var(--brand-dark); border-left:3px solid #70b38f; }
.bubble small { display: block; margin-top: 5px; opacity: .68; }
.upload-box { display: block; border: 1px dashed var(--line); border-radius: 10px; padding: 11px; margin-top: 9px; color: var(--muted); font-size: 12px; cursor: pointer; }
.upload-box input { margin-top: 7px; padding: 5px; }
.preview-row, .attachment-grid { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 9px; }
.preview-row img, .attachment-grid img { width: 78px; height: 64px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line); }
.handoff { background: #fff0ef; color: var(--danger); padding: 11px; border-radius: 9px; margin: 10px 0; font-size: 13px; }
.connected { background: #e6f5ed; color: var(--brand-dark); padding: 11px; border-radius: 9px; margin: 10px 0; font-size: 13px; }
.assistant-state { background:var(--assistant-soft); color:var(--assistant); border-left:3px solid #a898cb; padding:9px 11px; border-radius:9px; margin:10px 0; font-size:12px; }
.contact-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; padding: 20px; border-bottom: 1px solid var(--line); }
.contact-head p { margin: 5px 0 0; color: var(--muted); font-size: 13px; }
.contact-head .property-address { color: var(--ink); max-width: 430px; }
.contact-title { display: flex; gap: 9px; align-items: center; flex-wrap: wrap; }
.contact-title h2 { margin: 0; }
.contact-actions { display:flex; flex-direction:column; align-items:flex-end; gap:6px; }
.closed-badge { background:#ecefed; color:#5f6963; }
.connection { display: inline-flex; align-items: center; white-space: nowrap; border-radius: 999px; padding: 6px 9px; font-size: 11px; font-weight: 800; }
.assistant-pill { color: var(--brand-dark); background: var(--soft); }
.waiting-pill { color: var(--danger); background: #fff0ef; }
.connected-pill { color: var(--brand-dark); background: #e6f5ed; }
.lead-facts, .activity-log { margin: 0; padding: 14px 20px; border-bottom: 1px solid var(--line); }
.lead-facts summary, .activity-log summary { cursor: pointer; font-size: 13px; font-weight: 800; }
.job-description { color: var(--muted); line-height: 1.5; }
.detail-grid .full-detail { grid-column: 1 / -1; }
.status-row { display: grid; grid-template-columns: auto minmax(150px, 230px); align-items: center; justify-content: space-between; gap: 12px; padding: 12px 20px; border-bottom: 1px solid var(--line); }
.chat-section { background: #f6f8f6; }
.chat-title { padding: 16px 20px; background: var(--card); border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.chat-title h3, .chat-title p { margin: 0; }
.chat-title p { color: var(--muted); font-size: 12px; margin-top: 3px; }
.owner-thread { padding: 20px; display: flex; flex-direction: column; gap: 15px; max-height: 500px; overflow: auto; }
.chat-item { max-width: 82%; display: flex; flex-direction: column; }
.chat-item.from-customer, .chat-item.team-note { align-self: flex-start; align-items: flex-start; }
.chat-item.from-roofer, .chat-item.from-assistant { align-self: flex-end; align-items: flex-end; }
.chat-sender { color: var(--muted); font-size: 11px; font-weight: 800; margin: 0 7px 4px; }
.chat-bubble { padding: 11px 13px; border-radius: 14px; background: var(--card); border: 1px solid var(--line); line-height: 1.45; font-size: 13px; }
.from-customer .chat-bubble { border-bottom-left-radius: 4px; }
.from-roofer .chat-bubble, .from-assistant .chat-bubble { color: white; background: var(--ink); border-color: var(--ink); border-bottom-right-radius: 4px; }
.from-roofer .chat-meta, .from-assistant .chat-meta { text-align: right; }
.team-note .chat-bubble { background: #fff8e8; border-color: #ecd9a8; border-left: 3px solid var(--warm); }
.chat-meta { color: var(--muted); font-size: 10px; margin: 4px 7px 0; }
.customer-photos { padding: 0 20px 16px; }
.customer-photos h3 { font-size: 13px; margin-bottom: 8px; }
.chat-section .composer { padding: 16px 20px 20px; background: var(--card); border-top: 1px solid var(--line); margin: 0; }
.channel-row { display: grid; grid-template-columns: auto minmax(120px, 180px); align-items: center; justify-content: end; gap: 10px; margin-bottom: 9px; }
.activity-log { border-top: 1px solid var(--line); border-bottom: 0; }
.appointment-card { padding: 0 0 20px; margin-bottom: 20px; border-bottom: 1px solid var(--line); }
.appointment-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.appointment-heading h3 { margin-top: 5px; }
.appointment-kicker { color: var(--brand); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.appointment-status { display: inline-flex; border-radius: 999px; padding: 6px 9px; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.requested-state, .alternative_proposed-state, .proposed-state { color: #7a5200; background: #fff4d6; }
.confirmed-state { color: var(--brand-dark); background: #e6f5ed; }
.travelling-state { color:#174d78; background:#e8f3fb; }
.arrived-state { color:#5a3d00; background:#fff0bf; }
.completed-state { color:var(--brand-dark); background:#e6f5ed; }
.cancelled-state, .declined-state, .no_show-state { color:#7d2d28; background:#fff0ef; }
.appointment-actions, .owner-appointment-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 12px; }
.text-action { border: 0; background: transparent; color: var(--muted); padding: 8px; font-weight: 700; }
.text-action:hover { color: var(--danger); }
.appointment-slots { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.appointment-slot { border: 1px solid var(--line); border-radius: 9px; background: var(--card); padding: 10px; color: var(--ink); text-align: left; font-size: 12px; font-weight: 700; }
.appointment-slot:hover { border-color: var(--brand); background: var(--soft); }
.owner-appointment { padding: 16px 20px; border-bottom: 1px solid var(--line); background: #fbf8ef; }
.owner-appointment h3 { margin: 5px 0 7px; }
.appointment-assignee { display:grid; gap:5px; max-width:300px; margin-top:12px; font-size:12px; font-weight:700; }
.appointment-delivery { margin-top:10px; padding:8px 10px; border:1px solid var(--line); border-radius:8px; background:white; color:var(--muted); font-size:11px; font-weight:700; }
.appointment-reason { display:grid; gap:10px; margin-top:12px; padding:12px; border:1px solid #edc8c5; border-radius:10px; background:#fff7f6; }
.appointment-reason label { display:grid; gap:5px; font-size:12px; font-weight:700; }
.appointment-final-note { margin-top:10px; color:var(--muted); }
.calendar-delivery { margin-top:5px; padding-top:5px; border-top:1px solid var(--line); color:var(--muted); font-size:8px; }
.calendar-event.travelling { background:#eef7fd; }
.calendar-event.arrived { background:#fff8df; }
.support-access-banner { position:sticky; top:0; z-index:100; display:flex; align-items:center; gap:14px; padding:10px max(20px,calc((100vw - 1320px)/2)); background:#241f35; color:white; box-shadow:0 2px 10px rgba(0,0,0,.2); font-size:12px; }
.support-access-banner span { flex:1; opacity:.85; }
.support-access-banner button { border:1px solid rgba(255,255,255,.35); border-radius:8px; padding:7px 10px; background:white; color:#241f35; font-weight:800; }
.global-search { position:relative; display:grid; grid-template-columns:minmax(230px,.7fr) 1.3fr; align-items:center; gap:18px; padding:16px 18px; margin-bottom:16px; border-color:#c9d9cf; }
.global-search > label { display:flex; align-items:center; gap:12px; }
.global-search > label > span { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:var(--soft); color:var(--brand); font-size:20px; }
.global-search label small { display:block; margin-top:2px; color:var(--muted); }
.global-search > input { min-height:46px; border-color:#b8cbbf; background:#fbfdfc; }
.global-search-results { position:absolute; z-index:30; top:calc(100% + 6px); right:0; width:min(720px,100%); max-height:430px; overflow:auto; border:1px solid var(--line); border-radius:14px; background:white; box-shadow:0 18px 45px rgba(23,48,34,.18); padding:7px; }
.global-search-results button { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; width:100%; padding:11px; border:0; border-bottom:1px solid var(--line); background:white; text-align:left; }
.global-search-results button:hover { background:var(--soft); }
.global-search-results small { display:block; margin-top:3px; color:var(--muted); }
.search-type { padding:5px 7px; border-radius:7px; background:#edf2ef; color:var(--muted); font-size:9px; font-weight:900; text-transform:uppercase; }
.search-type.company { background:#e4f3ea; color:var(--brand); }.search-type.lead { background:#e8f2fb; color:#315f91; }.search-type.ticket { background:#fff0ef; color:var(--danger); }
.portfolio-performance { display:grid; grid-template-columns:.8fr 1.5fr; gap:14px; margin:14px 0 18px; }
.portfolio-summary { padding:20px; background:linear-gradient(145deg,#173c2a,#24593e); color:white; }
.portfolio-summary .eyebrow,.portfolio-summary small { color:#cbe2d3; }
.portfolio-summary h2 { margin:5px 0 18px; font-size:25px; }
.portfolio-kpis { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.portfolio-kpis span { padding:10px; border:1px solid rgba(255,255,255,.14); border-radius:10px; background:rgba(255,255,255,.06); }
.portfolio-kpis strong,.portfolio-kpis small { display:block; }.portfolio-kpis strong { font-size:19px; }.portfolio-kpis .danger-metric { background:#6c302c; }
.performance-table { min-width:0; overflow:hidden; }.performance-head { display:flex; justify-content:space-between; padding:17px 18px; border-bottom:1px solid var(--line); }.performance-head small { color:var(--muted); }.performance-scroll { overflow:auto; }
.performance-table table { width:100%; border-collapse:collapse; font-size:11px; }.performance-table th,.performance-table td { padding:11px 12px; border-bottom:1px solid var(--line); text-align:left; white-space:nowrap; }.performance-table th { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.05em; }.performance-table tbody tr { cursor:pointer; }.performance-table tbody tr:hover { background:var(--soft); }.performance-table td small { display:block; color:var(--muted); margin-top:2px; }
.delivery-mini { padding:4px 6px; border-radius:6px; background:#e8f4ed; color:var(--brand-dark); }.delivery-mini.failed { background:#fff0ef; color:var(--danger); }
.platform-bottom { grid-template-columns:repeat(3,1fr); }.health-alert { display:grid; grid-template-columns:26px 1fr auto; align-items:center; gap:9px; width:100%; padding:11px; border:0; border-bottom:1px solid var(--line); background:white; text-align:left; }.health-alert > span { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; background:#fff0ef; color:var(--danger); font-weight:900; }.health-alert small { display:block; color:var(--muted); margin-top:3px; }.health-alert:hover { background:var(--soft); }.health-alert.critical { border-left:3px solid var(--danger); }.health-alert.high { border-left:3px solid #d39b28; }
.setup-coach { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:16px 0; padding:16px 18px; border:1px solid #c4d9cb; border-radius:14px; background:linear-gradient(110deg,#edf8f1,#f9fcfa); }.setup-coach.complete { border-color:#a9d2b8; }.coach-progress span { color:var(--brand); font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.06em; }.coach-progress strong,.coach-progress p { display:block; }.coach-progress strong { margin:4px 0; font-size:18px; }.coach-progress p { margin:0; color:var(--muted); font-size:12px; }.coach-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }.ready-chip { color:var(--brand-dark); font-weight:800; }
.company-operations-summary { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin-bottom:16px; }.company-operations-summary article { padding:11px; border:1px solid var(--line); border-radius:10px; background:white; }.company-operations-summary span,.company-operations-summary strong,.company-operations-summary small { display:block; }.company-operations-summary span { color:var(--brand); }.company-operations-summary strong { margin:3px 0; font-size:17px; }.company-operations-summary small { color:var(--muted); }.company-operations-summary article.attention { border-color:#e7b4b0; background:#fff6f5; }
.support-safety { padding:12px; margin:8px 0 14px; border-left:3px solid #5d4a8a; background:#f2eef8; color:#3f3457; }.support-safety p { margin:4px 0 0; font-size:12px; }
@media (max-width:900px) { .global-search,.portfolio-performance { grid-template-columns:1fr; }.platform-bottom { grid-template-columns:1fr; }.company-operations-summary { grid-template-columns:repeat(2,1fr); }.setup-coach { align-items:flex-start; flex-direction:column; } }
.conversation-mode { padding:18px; }
.conversation-mode > #form-title { font-size:20px; margin-bottom:2px; }
.conversation-mode > #form-title + .fine { display:none; }
.conversation-mode .conversation-summary { display:flex; align-items:center; gap:9px; margin:8px 0 0; padding:8px 10px; font-size:12px; }
.conversation-mode .conversation-summary strong { white-space:nowrap; }
.conversation-mode .customer-thread { margin-top:10px; padding-top:10px; }
.conversation-mode .thread-messages { max-height:min(52vh, 520px); }
.appointment-message .appointment-card { max-width:88%; background:var(--appointment-soft); border:1px solid #ead9a2; border-left:3px solid #d3a233; border-radius:12px; padding:10px 11px; margin:2px 0; }
.appointment-message .appointment-heading { gap:8px; }
.appointment-message .appointment-heading h3 { font-size:15px; line-height:1.2; margin:3px 0 0; }
.appointment-message .appointment-kicker { color:var(--appointment); font-size:9px; }
.appointment-message .appointment-status { flex:0 0 auto; padding:4px 6px; font-size:9px; }
.appointment-message .fine { margin:6px 0 0; font-size:11px; }
.appointment-message .appointment-actions { gap:5px; margin-top:8px; }
.appointment-message .appointment-actions button { width:auto; padding:7px 9px; border-radius:8px; font-size:11px; }
.appointment-message .appointment-slots { max-height:150px; overflow:auto; margin-top:8px; gap:5px; }
.appointment-message .appointment-slot { padding:7px 8px; font-size:11px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@media (max-width: 780px) {
  .hero, .workspace { grid-template-columns: 1fr; }
  .hero { padding-top: 48px; gap: 30px; }
  .steps, .stats { grid-template-columns: 1fr 1fr; }
  .nav-links a:not(.primary) { display: none; }
  .settings-grid { grid-template-columns:1fr; }
  .schedule-summary { grid-template-columns:1fr; }
  .notification-grid { grid-template-columns:1fr; }
  .provider-steps { grid-template-columns:1fr; }
  .ai-grid { grid-template-columns:1fr; }.ai-full, .ai-state, .ai-safety, .ai-switch { grid-column:1; }
  .notification-full, .notification-toggles { grid-column:1; }
  .system-grid { grid-template-columns:1fr 1fr; }
  .roofer-card { grid-template-columns:1fr; }
  .roofer-days, .roofer-active, .roofer-full { grid-column:1; }
  .settings-services, .settings-save { grid-column:1; }
  .commercial-grid { grid-template-columns:1fr; }
  .commercial-full, .commercial-save { grid-column:1; }
  .task-list { grid-template-columns:1fr; }
}
@media (max-width: 520px) {
  .notification-test { align-items:stretch; flex-direction:column; }
  .form-grid, .slots, .detail-grid, .steps, .stats, .appointment-slots { grid-template-columns: 1fr; }
  .form-card { padding: 20px; }
  .dashboard-head { align-items: flex-start; flex-direction: column; }
}

/* Van-hire conversion workflow: structured journey, quotation delivery and safe chat */
.move-extra-stops{grid-column:1/-1;margin-top:4px;padding:18px;border:1px solid #cddbd2;border-radius:16px;background:#f7faf8}.move-extra-stops-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.move-extra-stops-head h3{margin:0 0 4px}.move-extra-stops-head p{margin:0;color:var(--muted);font-size:12px}.move-extra-stop{position:relative;display:grid;grid-template-columns:44px repeat(3,minmax(0,1fr));gap:12px;margin-top:14px;padding:16px 48px 16px 12px;border:1px solid #d8e2dc;border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(13,54,38,.04)}.move-extra-stop-number{width:34px;height:34px;display:grid;place-items:center;margin-top:23px;border-radius:50%;color:#fff;background:var(--brand);font-weight:900}.move-extra-stop .wide{grid-column:span 2}.move-extra-stop [data-remove-stop]{position:absolute;top:10px;right:10px;color:#9c3e36}.move-extra-stop textarea{min-height:72px}
.move-live-chat{margin-top:20px;overflow:hidden;border:1px solid #c8d8ce;border-radius:18px;background:#fff;box-shadow:0 16px 40px rgba(13,54,38,.08)}.move-live-chat>header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;color:#fff;background:#123f2f}.move-live-chat>header>div{display:flex;align-items:center;gap:10px}.move-live-chat>header strong,.move-live-chat>header small{display:block}.move-live-chat>header small,.move-live-chat>header>span{color:#bcd5c8;font-size:10px}.chat-presence{width:10px;height:10px;border:3px solid #8bd6ac;border-radius:50%;background:#fff}.move-chat-messages{max-height:330px;min-height:160px;overflow:auto;padding:18px;background:#edf3ef}.chat-message{width:fit-content;max-width:82%;margin:7px 0;padding:10px 12px;border-radius:12px;white-space:pre-wrap;line-height:1.45;box-shadow:0 1px 1px rgba(20,48,35,.08)}.chat-message.assistant,.chat-message.human{background:#fff;border-bottom-left-radius:3px}.chat-message.customer{margin-left:auto;color:#fff;background:#1e6145;border-bottom-right-radius:3px}.chat-handoff{width:max-content;margin:12px auto;padding:6px 10px;border-radius:999px;color:#74400f;background:#fff0cc;font-size:10px;font-weight:800}.move-live-chat form{display:flex;align-items:end;gap:10px;padding:12px}.move-live-chat form textarea{flex:1;min-height:48px;max-height:120px}.move-live-chat>.fine{padding:0 14px 12px}
.van-workflow-head{display:flex;align-items:flex-start;gap:12px}.van-workflow-head>span{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--brand);font-weight:900}.van-workflow-head h4{margin:0}.van-estimator{overflow:hidden;border:1px solid #bed5c7!important;border-radius:16px!important;background:linear-gradient(145deg,#f8fcf9,#eef7f1)!important}.van-estimate-empty{padding:10px 4px}.van-estimate-empty strong{font-size:14px}.van-estimate-empty p{margin-bottom:0}.van-customer-contact{display:grid;grid-template-columns:1fr 1.4fr;gap:16px;padding:14px;border:1px solid #d6e1da;border-radius:13px;background:#fff}.van-customer-contact>div{display:flex;align-items:center;gap:10px}.van-contact-avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;color:#174833;background:#dff1e7;font-size:12px;font-weight:900}.van-customer-contact small,.van-customer-contact strong{display:block}.van-customer-contact dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.van-customer-contact dt{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.van-customer-contact dd{overflow:hidden;margin:2px 0 0;text-overflow:ellipsis;font-size:12px;font-weight:800}.van-terms-review{padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#fafbfa}.van-terms-review p{white-space:pre-wrap}.van-quote-delivery{display:grid;gap:12px;padding:15px;border:1px solid #a9d1b9;border-radius:14px;background:#eef8f2}.van-quote-delivery label{display:grid;gap:5px}.van-quote-delivery p{margin:7px 0 0;font-size:11px}.van-delivery-actions{display:flex;flex-wrap:wrap;gap:8px}.van-stop-list article{display:flex;align-items:flex-start;gap:10px;margin-top:9px;padding:9px;border-radius:10px;background:#edf5f0}.van-stop-list article>b{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#2b7452}.van-stop-list article span{display:grid;gap:2px}.van-stop-list article em{color:var(--muted);font-size:11px;font-style:normal}.van-chat-admin{margin-top:18px;padding:18px;border:1px solid #cedbd3;border-radius:16px;background:#f6faf7}.van-chat-admin>header{display:flex;align-items:center;justify-content:space-between}.van-chat-admin h4{margin:0}.van-chat-admin header>span{padding:6px 9px;border-radius:999px;font-size:10px;font-weight:850}.needs-human{color:#7d351e;background:#ffe1d5}.ai-handling{color:#1a6441;background:#dff2e7}.van-chat-thread{max-height:330px;overflow:auto;margin:14px 0;padding:12px;border-radius:12px;background:#eaf1ed}.van-chat-thread .chat-message small{display:block;margin-bottom:3px;opacity:.65;font-size:9px;text-transform:uppercase}.van-chat-thread .chat-message.assistant{border-left:3px solid #8c78bc}.van-chat-admin form{display:flex;align-items:end;gap:9px}.van-chat-admin form textarea{flex:1;min-height:54px}.van-message-preview{min-height:360px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.45}
@media(max-width:720px){.move-extra-stops-head,.move-live-chat>header{align-items:flex-start;flex-direction:column}.move-extra-stop{grid-template-columns:38px 1fr;padding-right:12px}.move-extra-stop label,.move-extra-stop .wide{grid-column:2}.move-extra-stop [data-remove-stop]{position:static;grid-column:2;justify-self:start}.van-customer-contact{grid-template-columns:1fr}.van-customer-contact dl{grid-template-columns:1fr}.van-chat-admin form{align-items:stretch;flex-direction:column}.van-delivery-actions>*{width:100%;text-align:center}}

/* Perspective-aware chat alignment and clear extra-stop actions */
.move-extra-stop{padding-right:16px}
.move-extra-stop [data-remove-stop]{position:static;grid-column:4;justify-self:end;display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border:1px solid #efc6bd;border-radius:9px;color:#9c3e36;background:#fff5f2;font-size:11px;font-weight:850;line-height:1;white-space:nowrap}
.move-extra-stop [data-remove-stop]:hover{border-color:#d98f80;background:#ffe8e2}
.move-extra-stop [data-remove-stop] span{font-size:16px;line-height:.8}
.move-live-chat .chat-message.customer{margin-left:auto;margin-right:0;color:#fff;background:#1e6145;border-bottom-left-radius:12px;border-bottom-right-radius:3px}
.move-live-chat .chat-message.assistant,.move-live-chat .chat-message.human{margin-left:0;margin-right:auto;color:#18372b;background:#fff;border-bottom-right-radius:12px;border-bottom-left-radius:3px}
.van-chat-admin .chat-message.customer{margin-left:0;margin-right:auto;color:#18372b;background:#fff;border-bottom-right-radius:12px;border-bottom-left-radius:3px}
.van-chat-admin .chat-message.assistant,.van-chat-admin .chat-message.human{margin-left:auto;margin-right:0;color:#fff;background:#1e6145;border-bottom-left-radius:12px;border-bottom-right-radius:3px}
@media(max-width:720px){.move-extra-stop [data-remove-stop]{grid-column:2;justify-self:start}}

/* Explainable driver eligibility and assignment */
.van-match-list{display:grid;gap:8px;max-height:390px;overflow:auto}.van-match-list article{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:start;gap:10px;padding:12px;border:1px solid #d3dfd7;border-radius:12px;background:#fff}.van-match-list article.blocked{opacity:.76;background:#faf7f5}.van-match-rank{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#267653;font-weight:900}.van-match-list .blocked .van-match-rank{background:#9a5543}.van-match-list article div{display:grid;gap:3px}.van-match-list article small,.van-match-list article p,.van-match-list article em{margin:0;color:var(--muted);font-size:10px;line-height:1.35}.van-match-list article em{color:#8a5b20;font-style:normal}.van-match-list article>b{padding:5px 7px;border-radius:999px;color:#246345;background:#e0f2e7;font-size:9px}.van-match-list .blocked>b{color:#813c2d;background:#f7dfd8}.van-day-picker{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 16px}.van-day-picker label{cursor:pointer}.van-day-picker input{position:absolute;opacity:0}.van-day-picker span{display:block;padding:8px 11px;border:1px solid #cedbd3;border-radius:9px;background:#fff;font-size:11px;font-weight:800}.van-day-picker input:checked+span{border-color:#287653;color:#fff;background:#287653}.van-compliance.detailed{display:grid;gap:9px}.van-document-row{display:grid;grid-template-columns:1.1fr .8fr 1fr;align-items:end;gap:10px;padding:11px;border:1px solid #d7e0da;border-radius:11px;background:#fff}.van-document-row>label{display:grid;gap:5px}.van-document-row>label:first-child{display:flex;align-items:center;gap:9px}.van-document-row>label:first-child span{display:grid}.van-document-row small{color:var(--muted)}.van-document-row.expired{border-color:#df9b8d;background:#fff5f2}.van-document-row.expiring{border-color:#dfc27a;background:#fffaf0}.public-driver.confirmed{border-color:#8fc4a5;background:#edf8f1}.public-driver.pending{border-color:#d8c27e;background:#fffaf0}.public-driver .button{margin-top:8px;text-align:center}
@media(max-width:720px){.van-document-row{grid-template-columns:1fr}.van-match-list article{grid-template-columns:30px minmax(0,1fr)}.van-match-list article>b{grid-column:2;justify-self:start}}

/* Van enquiry and customer quotation */
.van-form-section { margin:14px 0; padding:16px; border:1px solid var(--line); border-radius:13px; background:#f8fbf9; }
.van-form-section h4 { margin:0 0 13px; color:#174531; }
.van-intake-summary { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:13px 0; }
.van-intake-summary div { padding:11px; border-radius:10px; background:#f0f6f2; }
.van-intake-summary small,.van-intake-summary strong { display:block; }
.van-intake-summary small { margin-bottom:4px; color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.06em; }
.van-intake-summary strong { font-size:11px; line-height:1.45; }
.van-job-status.enquiry { color:#6d510d; background:#fff4d1; }
.van-job-status.quote_sent { color:#28538a; background:#e7f0fc; }
.van-job-status.declined { color:#8a322d; background:#fbe9e7; }
.van-action-card.quote { border-color:#a9c7b6; background:#f1f8f4; }
.van-action-card.declined { border-color:#e3b3ae; background:#fff6f5; }
.van-action-card #van-quote-link { width:100%; margin-top:9px; }
.public-quote-card { width:min(680px,calc(100% - 28px)); }
.quote-company h1 { margin:7px 0; font-size:30px; }
.quote-company p { color:var(--muted); }
.public-quote-price { display:grid; justify-items:center; margin:22px 0; padding:22px; border-radius:16px; color:white; background:linear-gradient(135deg,#0d3b2b,#176f4a); }
.public-quote-price small { opacity:.78; text-transform:uppercase; letter-spacing:.08em; }
.public-quote-price strong { margin:5px 0; font-size:38px; }
.public-quote-price span { opacity:.85; }
.public-quote-route { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:12px; }
.public-quote-route article,.public-quote-details div { padding:13px; border:1px solid var(--line); border-radius:11px; background:#f8faf9; }
.public-quote-route small,.public-quote-route strong,.public-quote-route span,.public-quote-details small,.public-quote-details strong { display:block; }
.public-quote-route small,.public-quote-details small { margin-bottom:4px; color:var(--muted); font-size:9px; text-transform:uppercase; }
.public-quote-route span { margin-top:4px; color:#176d48; font-weight:800; }
.public-quote-details { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin:12px 0; }
.public-quote-details .full { grid-column:1/-1; }
.public-quote-details strong { text-transform:capitalize; line-height:1.45; }
.public-quote-terms { margin:14px 0; padding:13px; border:1px solid var(--line); border-radius:11px; }
.public-quote-terms summary { font-weight:850; cursor:pointer; }
.public-quote-terms p { margin:9px 0 0; color:var(--muted); line-height:1.55; }
.quote-actions { display:grid; grid-template-columns:2fr 1fr; gap:9px; margin-top:17px; }
.quote-assurance { color:var(--muted); font-size:10px; line-height:1.5; text-align:center; }
.quote-decision { margin-top:17px; padding:18px; border-radius:12px; text-align:center; }
.quote-decision.accepted { color:#125d3d; background:#e7f5ed; }.quote-decision.declined { color:#8a322d; background:#fbe9e7; }
@media(max-width:620px){.van-intake-summary,.public-quote-details{grid-template-columns:1fr}.public-quote-route{grid-template-columns:1fr}.public-quote-route>b{transform:rotate(90deg);justify-self:center}.public-quote-details .full{grid-column:auto}.quote-actions{grid-template-columns:1fr}}

/* Public van-hire enquiry */
.move-enquiry-body { min-height:100vh; margin:0; color:#14251e; background:#f1f6f3; }
.move-public-shell { width:min(1160px,calc(100% - 32px)); margin-inline:auto; }
.move-public-header { position:sticky; top:0; z-index:20; border-bottom:1px solid rgba(19,63,45,.12); background:rgba(255,255,255,.94); backdrop-filter:blur(12px); }
.move-public-header .move-public-shell { min-height:68px; display:flex; align-items:center; justify-content:space-between; }
.move-public-header .brand { color:#123d2e; font-size:18px; }
.move-public-main { display:grid; grid-template-columns:minmax(0,.9fr) minmax(440px,1.1fr); align-items:start; gap:clamp(28px,5vw,72px); padding-block:54px 64px; }
.move-public-intro { position:sticky; top:108px; padding-top:18px; }
.move-public-intro h1 { max-width:520px; margin:8px 0 15px; font-size:clamp(42px,6vw,70px); line-height:.98; letter-spacing:-.045em; }
.move-public-intro>p { max-width:520px; color:#587067; font-size:17px; line-height:1.65; }
.move-trust { display:flex; flex-wrap:wrap; gap:7px; margin:24px 0; }
.move-trust span { padding:7px 10px; border-radius:999px; color:#176d48; background:#e1f1e8; font-size:10px; font-weight:800; }
.move-illustration { overflow:hidden; margin-top:26px; border-radius:22px; color:#d9f0e3; background:linear-gradient(145deg,#0c3427,#176e4a); box-shadow:0 24px 55px rgba(14,61,44,.19); }
.move-illustration svg { display:block; width:100%; height:auto; padding:22px 22px 0; box-sizing:border-box; fill:none; stroke:currentColor; stroke-width:5; stroke-linejoin:round; }
.move-illustration>div { padding:0 24px 22px; }.move-illustration strong,.move-illustration small { display:block; }.move-illustration strong { color:white; font-size:15px; }.move-illustration small { margin-top:4px; color:#b9d8ca; }
.move-form-card { overflow:hidden; padding:0; border-radius:20px; box-shadow:0 24px 60px rgba(20,54,39,.11); }
.move-form-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:24px 26px 16px; }
.move-form-head h2 { margin:4px 0; font-size:25px; }.move-form-head p { margin:0; color:var(--muted); font-size:11px; }.move-form-head>span { padding:8px 10px; border-radius:9px; color:#176d48; background:#e8f4ed; font-size:10px; font-weight:850; white-space:nowrap; }
.move-form-card>progress { display:block; width:100%; height:5px; border:0; appearance:none; }.move-form-card>progress::-webkit-progress-bar { background:#e6eee9; }.move-form-card>progress::-webkit-progress-value { background:#228159; transition:width .25s; }.move-form-card>progress::-moz-progress-bar { background:#228159; }
.move-stepper { display:grid; grid-template-columns:repeat(4,1fr); padding:17px 24px 8px; }
.move-stepper button { position:relative; display:grid; justify-items:center; gap:4px; padding:0; border:0; color:#82958c; background:transparent; cursor:pointer; }
.move-stepper button:not(:last-child)::after { content:""; position:absolute; top:13px; left:calc(50% + 15px); right:calc(-50% + 15px); height:1px; background:#d3dfd8; }
.move-stepper span { position:relative; z-index:1; width:27px; height:27px; display:grid; place-items:center; border:1px solid #cbd9d1; border-radius:50%; background:white; font-size:9px; font-weight:900; }
.move-stepper small { font-size:8px; font-weight:800; }.move-stepper button.active { color:#123d2e; }.move-stepper button.active span { color:white; border-color:#176d48; background:#176d48; box-shadow:0 0 0 4px #e0eee7; }.move-stepper button.complete span { color:white; border-color:#2f8a62; background:#2f8a62; }
#public-move-form fieldset { display:grid; grid-template-columns:1fr 1fr; gap:13px; margin:0; padding:20px 26px 26px; border:0; }
#public-move-form fieldset[hidden] { display:none; }
#public-move-form legend { grid-column:1/-1; display:flex; align-items:center; gap:11px; width:100%; margin-bottom:6px; padding:0; }
#public-move-form legend>span { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; color:white; background:#123d2e; font-weight:900; }
#public-move-form legend strong,#public-move-form legend small { display:block; }#public-move-form legend strong { font-size:16px; }#public-move-form legend small { margin-top:2px; color:var(--muted); font-size:10px; }
#public-move-form label { display:grid; gap:6px; color:#29443a; font-size:10px; font-weight:800; }
#public-move-form input,#public-move-form select,#public-move-form textarea { width:100%; box-sizing:border-box; min-height:43px; padding:10px 11px; border:1px solid #cbd8d1; border-radius:9px; color:#172b22; background:white; font:inherit; font-size:12px; }
#public-move-form textarea { min-height:74px; resize:vertical; }.move-address-block { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; gap:11px; padding:14px; border:1px solid #dbe5df; border-radius:12px; background:#f8fbf9; }.move-address-block h3 { grid-column:1/-1; margin:0; font-size:13px; }.move-address-block label:first-of-type { grid-column:1/-1; }
#public-move-form .full { grid-column:1/-1; }.move-step-actions { grid-column:1/-1; display:flex; align-items:center; justify-content:flex-end; gap:9px; padding-top:8px; }.move-step-actions>span { margin-right:auto; color:var(--muted); font-size:9px; }
.move-success { padding:34px 28px 38px; text-align:center; }.move-success>span { width:56px; height:56px; display:grid; place-items:center; margin:0 auto 14px; border-radius:50%; color:white; background:#1d7b53; font-size:27px; }.move-success h2 { margin:7px 0; font-size:28px; }.move-success>p { color:var(--muted); line-height:1.55; }.move-success>div:not(.eyebrow) { margin:18px 0; padding:13px; border-radius:11px; background:#edf6f1; }.move-success small,.move-success strong { display:block; }.move-success strong { margin-top:3px; font-size:19px; }.move-success ol { display:grid; gap:8px; padding-left:22px; color:#53685f; text-align:left; line-height:1.5; }
.move-how { padding:36px 0; color:white; background:#113d2e; }.move-how .move-public-shell { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }.move-how div>div { display:grid; grid-template-columns:auto 1fr; column-gap:11px; }.move-how span { grid-row:1/3; width:31px; height:31px; display:grid; place-items:center; border-radius:9px; color:#123d2e; background:#cdebd9; font-weight:900; }.move-how strong { font-size:13px; }.move-how p { margin:4px 0 0; color:#b9d3c8; font-size:10px; line-height:1.45; }.move-public-footer { padding:24px 0; color:#60756c; background:white; }.move-public-footer .move-public-shell { display:flex; justify-content:space-between; gap:15px; }
.van-job-status.needs_price { color:#7b5505; background:#fff1c4; }.van-price-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:12px 0; }.van-price-grid .full { grid-column:1/-1; }
@media(max-width:880px){.move-public-main{grid-template-columns:1fr;padding-top:30px}.move-public-intro{position:static}.move-public-intro h1{font-size:48px}.move-illustration{display:none}}
@media(max-width:560px){.move-public-shell{width:min(100% - 20px,1160px)}.move-public-header .move-public-shell{min-height:58px}.move-public-main{padding-block:22px 36px}.move-public-intro{padding:0 7px}.move-public-intro h1{font-size:40px}.move-public-intro>p{font-size:14px}.move-form-head{padding:19px 17px 13px}.move-stepper{padding-inline:15px}#public-move-form fieldset{grid-template-columns:1fr;padding:17px}.move-address-block{grid-template-columns:1fr}.move-address-block h3,.move-address-block label:first-of-type{grid-column:auto}#public-move-form .full{grid-column:auto}.move-step-actions{align-items:stretch;flex-wrap:wrap}.move-step-actions>span{width:100%;order:3}.move-step-actions button{flex:1}.move-how .move-public-shell{grid-template-columns:1fr}.move-public-footer .move-public-shell{flex-direction:column}.van-price-grid{grid-template-columns:1fr}.van-price-grid .full{grid-column:auto}}

/* Van hire operations */
.van-operations { padding:20px; background:#f7faf8; }
.van-hero { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:20px; border-radius:15px; color:white; background:linear-gradient(135deg,#103d2e,#176f49); }
.van-hero h3 { margin:4px 0 5px; font-size:24px; }.van-hero p { max-width:650px; margin:0; color:#c7ddd2; font-size:11px; }.van-hero .eyebrow { color:#9fd0b7; }.van-hero-actions { display:flex; gap:8px; }.van-hero .secondary { color:white; border-color:rgba(255,255,255,.25); background:rgba(255,255,255,.08); }
.van-metrics { display:grid; grid-template-columns:repeat(6,1fr); gap:9px; margin:12px 0; }.van-metrics article { padding:13px; border:1px solid var(--line); border-radius:11px; background:white; }.van-metrics small,.van-metrics strong,.van-metrics span { display:block; }.van-metrics strong { margin:5px 0 2px; font-size:18px; }.van-metrics span { color:var(--muted); font-size:8px; }
.van-columns { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr); gap:12px; }.van-columns>section,.van-columns>aside { padding:15px; border:1px solid var(--line); border-radius:13px; background:white; }.van-section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }.van-section-head h4 { margin:0 0 3px; }.van-section-head p { margin:0; color:var(--muted); font-size:9px; }.van-section-head select { width:auto; padding:7px; }
.van-job-list,.van-driver-list { display:grid; gap:8px; }.van-job-card { padding:13px; border:1px solid var(--line); border-radius:11px; background:#fcfefd; }.van-job-card header,.van-job-card footer { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }.van-job-card h4 { margin:4px 0 2px; }.van-job-card p { margin:0; color:var(--muted); font-size:9px; }.van-job-ref { color:#237552; font-size:8px; font-weight:900; letter-spacing:.08em; }.van-job-status { padding:5px 7px; border-radius:999px; background:#edf2ef; font-size:8px; font-weight:850; text-transform:capitalize; }.van-job-status.in_progress,.van-job-status.assigned { color:#175d3e; background:#e1f3e8; }.van-job-status.offered { color:#78570f; background:#fff2cc; }.van-job-status.completed { color:#315476; background:#e7f0f8; }
.van-job-money { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin:11px 0; }.van-job-money span { padding:8px; border-radius:8px; background:#f1f6f3; }.van-job-money small,.van-job-money strong { display:block; }.van-job-money small { color:var(--muted); font-size:7px; }.van-job-money strong { margin-top:3px; font-size:12px; }.van-job-money.large strong { font-size:18px; }.van-job-card footer { align-items:center; color:var(--muted); font-size:8px; }
.van-driver-card { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:9px; width:100%; padding:10px; border:1px solid var(--line); border-radius:10px; background:#fcfefd; text-align:left; cursor:pointer; }.van-driver-card:hover { border-color:#8bb8a0; }.van-driver-avatar { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; color:#145b3e; background:#dff1e7; font-size:9px; font-weight:900; }.van-driver-card strong,.van-driver-card small,.van-driver-card em { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.van-driver-card small { margin-top:2px; color:var(--muted); font-size:8px; }.van-driver-card em { margin-top:4px; color:#47705d; font-size:7px; font-style:normal; }.van-score { min-width:43px; padding:7px; border-radius:9px; color:#17613e; background:#e8f5ed; text-align:center; }.van-score b,.van-score small { display:block; }.van-score.attention { color:#805c12; background:#fff3d7; }
.van-dialog { width:min(760px,calc(100% - 28px)); max-height:90vh; overflow:auto; }.van-job-dialog { width:min(900px,calc(100% - 28px)); }.van-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:11px; }.van-form-grid .full { grid-column:1/-1; }.van-compliance { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:14px 0; padding:12px; border:1px solid var(--line); border-radius:11px; }.van-compliance label { display:flex; align-items:center; gap:6px; padding:8px; border-radius:8px; background:#f4f8f6; }.driver-analysis { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:13px 0; }.driver-analysis span { padding:10px; border-radius:9px; background:#eff6f2; }.driver-analysis strong,.driver-analysis small { display:block; }.driver-analysis small { color:var(--muted); font-size:8px; }
.van-route { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:12px; padding:13px; border:1px solid var(--line); border-radius:11px; }.van-route span { display:grid; gap:3px; }.van-route small,.van-route em { color:var(--muted); font-size:8px; font-style:normal; }.van-action-card,.van-timeline { margin-top:12px; padding:14px; border:1px solid var(--line); border-radius:11px; background:#f8fbf9; }.van-action-card h4,.van-timeline h4 { margin:0 0 8px; }.van-action-card p { color:var(--muted); font-size:9px; }.van-action-card textarea { margin-top:8px; min-height:130px; }.van-confirm-grid { display:grid; grid-template-columns:1fr 1fr; gap:7px; }.van-action-card form,#van-break-form,#van-finance-form { display:grid; grid-template-columns:1fr 1fr auto; align-items:end; gap:8px; margin-top:10px; }.van-timeline>div { display:flex; justify-content:space-between; gap:10px; padding:8px 0; border-bottom:1px solid var(--line); font-size:9px; }.van-timeline span { color:var(--muted); }
.public-van-body { min-height:100vh; display:grid; place-items:center; padding:20px; background:#eef4f0; }.public-van-card { width:min(520px,100%); box-sizing:border-box; padding:26px; border:1px solid #d6e1da; border-radius:18px; background:white; box-shadow:0 24px 70px rgba(17,54,38,.12); }.public-van-card>img { width:180px; margin-bottom:30px; }.public-van-card h1 { margin:5px 0 8px; }.public-offer-status { display:inline-block; padding:5px 8px; border-radius:999px; color:#17613e; background:#e8f5ed; font-size:9px; font-weight:900; text-transform:capitalize; }.public-route { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:12px; margin:18px 0; padding:16px; border-radius:12px; color:white; background:#123d2e; }.public-route span { display:grid; }.public-route small { color:#a9c7b8; }.public-van-card dl>div { display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); }.public-van-card dt { color:var(--muted); }.public-van-card dd { margin:0; font-weight:850; text-transform:capitalize; }.public-driver,.public-total { display:grid; gap:4px; margin:16px 0; padding:14px; border-radius:11px; background:#edf6f1; }.public-driver a { color:#176d48; }.public-confirm-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:16px; }.public-total strong { font-size:25px; }
@media(max-width:1050px){.van-metrics{grid-template-columns:repeat(3,1fr)}.van-columns{grid-template-columns:1fr}}
@media(max-width:600px){.van-operations{padding:10px}.van-hero{flex-direction:column}.van-hero-actions{width:100%}.van-hero-actions button{flex:1}.van-metrics{grid-template-columns:1fr 1fr}.van-form-grid,.van-compliance,.driver-analysis,.van-confirm-grid,.public-confirm-actions{grid-template-columns:1fr}.van-action-card form,#van-break-form,#van-finance-form{grid-template-columns:1fr}.public-van-card{padding:20px}}

/* Focused enquiry wizard and polished first-run platform experience */
.enquiry-wizard { display:block; }
.enquiry-wizard[hidden],.enquiry-step[hidden] { display:none!important; }
.enquiry-step { min-width:0; margin:0; padding:0; border:0; }
.enquiry-step-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.enquiry-step-grid > .full { grid-column:1/-1; }
.enquiry-step .form-section-title { width:100%; margin:2px 0 18px; padding:0; border:0; }
.enquiry-stepper { display:grid; grid-template-columns:repeat(3,1fr); margin:0 0 22px; padding:0 4px; }
.enquiry-stepper button { position:relative; display:grid; justify-items:center; gap:5px; border:0; color:#7c8b83; background:transparent; font-size:10px; font-weight:800; }
.enquiry-stepper button:not(:last-child)::after { content:""; position:absolute; top:14px; left:calc(50% + 18px); right:calc(-50% + 18px); height:2px; background:#d7e2db; }
.enquiry-stepper button span { position:relative; z-index:1; display:grid; place-items:center; width:30px; height:30px; border:1px solid #cbd9d0; border-radius:50%; background:#fff; }
.enquiry-stepper button.active { color:var(--brand-dark); }.enquiry-stepper button.active span { border-color:var(--brand); color:#fff; background:var(--brand); box-shadow:0 0 0 5px rgba(23,107,71,.1); }
.enquiry-stepper button.complete span { border-color:var(--brand); color:#fff; background:var(--brand); }.enquiry-stepper button.complete:not(:last-child)::after { background:var(--brand); }
.enquiry-stepper button:disabled { opacity:1; cursor:default; }
.enquiry-step-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; margin-top:22px; padding-top:18px; border-top:1px solid var(--line); }
.enquiry-step-actions > span { margin-right:auto; color:var(--muted); font-size:10px; }
.enquiry-submit-actions > div { min-width:260px; }
.field-attention { animation:field-attention 1.4s ease; }
@keyframes field-attention { 0%,100% { transform:none; } 30% { transform:translateX(4px); } 60% { transform:translateX(-3px); } }
.field-attention input,.field-attention select,.field-attention textarea,.field-attention.privacy-consent { border-color:#c64b43; box-shadow:0 0 0 3px rgba(198,75,67,.1); }
.enquiry-unavailable { display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:start; margin-top:12px; padding:22px; border:1px solid #e5c0bc; border-radius:14px; background:#fff7f6; }
.enquiry-unavailable > span { display:grid; place-items:center; width:44px; height:44px; border-radius:12px; color:#8a312c; background:#f8deda; font-weight:900; }
.enquiry-unavailable h3 { margin:5px 0 6px; font-size:20px; }.enquiry-unavailable p { margin:0; color:#765653; line-height:1.55; }
.customer-unavailable .hero { display:block; max-width:720px; min-height:calc(100vh - 210px); padding-top:80px; }.customer-unavailable .hero > div:first-child,.customer-unavailable .service-showcase,.customer-unavailable .trust-band,.customer-unavailable .how,.customer-unavailable .faq,.customer-unavailable .nav-links,.customer-unavailable .footer-inner a[href="#enquiry"] { display:none; }.customer-unavailable .form-card { padding:34px; }.customer-unavailable .form-card-head { margin-bottom:22px; }
.form-grid > .field.full:last-child { position:static; margin:0; padding:0; border:0; background:transparent; box-shadow:none; }

.platform-shell-body .platform-metrics { grid-template-columns:repeat(4,1fr); }
.platform-first-run { grid-column:1/-1; display:grid; grid-template-columns:1.15fr .85fr; gap:36px; padding:34px; overflow:hidden; background:linear-gradient(135deg,#fff 0%,#f2f8f4 58%,#e6f2eb 100%); }
.first-run-copy { display:flex; align-items:flex-start; gap:18px; }.first-run-mark { flex:0 0 auto; display:grid; place-items:center; width:54px; height:54px; border-radius:15px; color:#fff; background:var(--brand-dark); font-size:13px; font-weight:900; letter-spacing:.04em; }
.first-run-copy h2 { max-width:520px; margin:7px 0 10px; font-size:clamp(28px,4vw,42px); line-height:1; }.first-run-copy p { max-width:600px; margin:0 0 20px; color:var(--muted); font-size:14px; line-height:1.65; }
.first-run-checklist { display:grid; gap:0; margin:0; padding:0; list-style:none; }.first-run-checklist li { position:relative; display:grid; grid-template-columns:auto 1fr; gap:12px; padding:0 0 18px; }.first-run-checklist li:not(:last-child)::after { content:""; position:absolute; top:31px; bottom:2px; left:15px; width:1px; background:#bdd2c5; }.first-run-checklist li > span { z-index:1; display:grid; place-items:center; width:31px; height:31px; border:1px solid #b8cfc0; border-radius:50%; color:var(--brand-dark); background:#fff; font-size:10px; font-weight:900; }.first-run-checklist strong,.first-run-checklist small { display:block; }.first-run-checklist strong { padding-top:2px; font-size:12px; }.first-run-checklist small { margin-top:3px; color:var(--muted); font-size:10px; line-height:1.45; }
.platform-empty-state .global-search,.platform-empty-state .platform-metrics,.platform-empty-state .overview-shortcuts { display:none; }.platform-empty-state .portfolio-performance { grid-template-columns:1fr; margin-top:0; }

@media(max-width:760px){
  .enquiry-step-grid { grid-template-columns:1fr; }.enquiry-step-grid > .full { grid-column:auto; }
  .enquiry-step-actions { align-items:stretch; flex-wrap:wrap; }.enquiry-step-actions > span { width:100%; margin:0; }.enquiry-step-actions button { flex:1; }
  .enquiry-submit-actions > div { flex:1 1 100%; min-width:0; order:-1; }.enquiry-unavailable { grid-template-columns:1fr; }
  .platform-first-run { grid-template-columns:1fr; gap:26px; padding:24px; }.first-run-copy { display:grid; }.platform-shell-body .platform-metrics { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:560px){
  .form-card-head .form-top-submit { display:none; }.enquiry-progress { margin-top:0; }
  .enquiry-stepper { margin-bottom:18px; }.enquiry-step-actions { position:sticky; bottom:8px; z-index:8; margin:20px -8px -8px; padding:10px; border:1px solid rgba(23,107,71,.14); border-radius:13px; background:rgba(255,255,255,.95); box-shadow:0 10px 30px rgba(24,35,29,.14); backdrop-filter:blur(10px); }
  .master-topbar #hero-new-company b { display:none; }.master-topbar #hero-new-company { width:42px; min-width:42px; padding:9px; font-size:18px; }.master-topbar > div small { max-width:150px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .platform-shell-body .platform-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }.platform-metrics article { min-width:0; padding:12px; }.platform-metrics strong { font-size:20px; }.platform-metrics article>span { width:30px; height:30px; }
  .first-run-copy h2 { font-size:30px; }.platform-first-run { padding:20px; }
}

/* 2026 interface polish: shared clarity, accessibility and responsive behaviour */
:root { --surface:#f7faf8; --surface-strong:#eef4f0; --shadow-sm:0 1px 2px rgba(24,35,29,.06); --shadow-md:0 12px 34px rgba(24,35,29,.09); --focus:0 0 0 3px rgba(23,107,71,.2); }
html { scroll-padding-top:84px; }
body { background:linear-gradient(180deg,#fbfdfb 0,#f4f8f5 100%); }
.topbar { position:sticky; top:0; z-index:50; background:rgba(255,255,255,.92); backdrop-filter:blur(14px); box-shadow:0 1px 0 rgba(24,35,29,.08); }
.nav { min-height:68px; }
.nav-links { align-items:center; }
.nav-links a,.nav-links button { min-height:40px; display:inline-flex; align-items:center; }
button,a,input,select,textarea { transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease,transform .16s ease; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:none; box-shadow:var(--focus); }
button:disabled { opacity:.58; cursor:wait; }
.card { box-shadow:var(--shadow-sm); }
.primary:hover:not(:disabled) { transform:translateY(-1px); }
.role-chip { padding:7px 10px; border:1px solid #cfe0d5; border-radius:999px; background:#eef7f1; color:var(--brand-dark); font-size:12px; font-weight:800; }
.danger-action { padding:10px 14px; border:1px solid #eccaca; border-radius:9px; color:#9b2929; background:#fff5f5; font-weight:750; cursor:pointer; }

.form-section-title { display:flex; align-items:center; gap:10px; margin:7px 0 -2px; padding-top:12px; border-top:1px solid var(--line); }
.form-section-title:first-child { padding-top:0; border-top:0; }
.form-section-title > span { width:26px; height:26px; display:grid; place-items:center; border-radius:50%; color:white; background:var(--brand); font-size:12px; font-weight:900; }
.form-section-title div { display:grid; }
.form-section-title small,.submit-assurance { color:var(--muted); font-size:11px; font-weight:500; }
.form-grid > .field.full:last-child { position:sticky; bottom:12px; z-index:8; padding:10px; margin:0 -10px -10px; border:1px solid rgba(23,107,71,.16); border-radius:13px; background:rgba(255,255,255,.94); backdrop-filter:blur(10px); box-shadow:0 10px 30px rgba(24,35,29,.15); }
.submit-assurance { display:block; margin-top:8px; text-align:center; }
.site-footer { margin-top:72px; border-top:1px solid var(--line); background:#17251e; color:#dce7e0; }
.footer-inner { padding:42px 0; display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; }
.site-footer .brand { color:white; }
.footer-inner > div { display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
.footer-inner p,.footer-inner span,.footer-inner a:not(.brand) { margin:0; color:#b9c9bf; font-size:13px; }
.footer-inner a:hover { color:white; }

.dashboard-head h1 { margin:4px 0 4px; font-size:clamp(32px,4vw,44px); }
.dashboard-tools { position:relative; }
.dashboard-tools > summary { list-style:none; padding:10px 14px; border:1px solid var(--line); border-radius:9px; background:white; font-weight:800; cursor:pointer; }
.dashboard-tools > summary::-webkit-details-marker { display:none; }
.dashboard-tools[open] .actions { position:absolute; right:0; top:48px; z-index:12; width:240px; padding:10px; display:grid; gap:7px; border:1px solid var(--line); border-radius:12px; background:white; box-shadow:var(--shadow-md); }
.dashboard-tools .actions button { width:100%; }
.stats { gap:10px; }
.stat { min-height:98px; padding:18px; }
.stat-value { font-size:34px; }
.lead-filters { display:grid; grid-template-columns:minmax(0,1fr) 138px; gap:8px; padding:0 14px 12px; }
.search-control { min-width:0; display:flex; align-items:center; gap:6px; padding:0 10px; border:1px solid var(--line); border-radius:9px; background:white; }
.search-control input { min-width:0; width:100%; padding:9px 2px; border:0; box-shadow:none; }
.search-control input:focus { box-shadow:none; }
.lead-filters select { min-width:0; padding:9px; }
.lead-row { min-height:78px; }

.platform-main { padding-top:34px; }
.platform-hero h1 { margin-bottom:8px; font-size:clamp(34px,4vw,48px); }
.platform-hero p { max-width:680px; font-size:15px; }
.company-sidebar { position:sticky; top:88px; max-height:calc(100vh - 110px); overflow:hidden; }
.platform-company-list { overflow:auto; max-height:calc(100vh - 230px); }
.company-workspace { min-height:560px; }
.platform-body .fine,.platform-body small { font-size:12px; line-height:1.45; }
.platform-body label { font-size:13px; }
.platform-body input,.platform-body select,.platform-body textarea { font-size:14px; }

.login-page { min-height:100dvh; background:radial-gradient(circle at 20% 10%,#deeee3,transparent 38%),linear-gradient(135deg,#f8fbf9,#eef4f0); }
.login-shell { min-height:100dvh; display:grid; place-items:center; padding:24px; }
.login-card { width:min(100%,430px); box-shadow:var(--shadow-md); }
.auth-logo { display:block; width:min(235px,72%); height:auto; margin:0 0 28px; }
.password-field { display:flex; align-items:stretch; }
.password-field input { border-radius:9px 0 0 9px; }
.password-field button { padding:0 14px; border:1px solid var(--line); border-left:0; border-radius:0 9px 9px 0; background:var(--surface-strong); color:var(--brand-dark); font-weight:800; cursor:pointer; }

@media (max-width: 900px) {
  .nav { gap:16px; }
  .nav-links { max-width:70vw; overflow-x:auto; padding:5px 0; scrollbar-width:none; }
  .nav-links::-webkit-scrollbar { display:none; }
  .nav-links > * { flex:0 0 auto; }
  .footer-inner { grid-template-columns:1fr 1fr; }
  .platform-layout { grid-template-columns:1fr; }
  .company-sidebar { position:static; max-height:none; }
  .platform-company-list { max-height:330px; }
}
@media (max-width: 620px) {
  .nav { align-items:center; }
  .brand { font-size:15px; }
  .nav-links { max-width:62vw; }
  .nav-links .role-chip { display:none; }
  .dashboard-head { align-items:flex-start; }
  .dashboard-tools[open] .actions { position:fixed; left:16px; right:16px; top:auto; bottom:16px; width:auto; }
  .lead-filters { grid-template-columns:1fr; }
  .footer-inner { grid-template-columns:1fr; gap:24px; padding:34px 20px; }
  .site-footer { margin-top:40px; }
  .platform-hero { align-items:flex-start; }
  .chat-header-action,.slot-option,.appointment-card button { min-height:44px; }
  button,input,select { min-height:44px; }
  .company-search input,.nav-links button { min-height:44px; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; }
}

/* Final product-design layer */
:root { --navy:#123026; --green-700:#155c3f; --green-600:#1b7650; --green-100:#e8f4ed; --amber-100:#fff5d9; --red-100:#fff0ef; --blue-100:#edf5fd; }
.roof-visual { position:relative; margin:30px 0 0; overflow:hidden; border-radius:20px; background:#dbe7df; box-shadow:0 20px 48px rgba(19,48,38,.16); }
.roof-visual img { display:block; width:100%; height:260px; object-fit:cover; object-position:64% 47%; }
.roof-visual:after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,transparent 48%,rgba(10,32,23,.34)); }
.roof-visual figcaption { position:absolute; left:16px; right:16px; bottom:14px; z-index:1; display:flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid rgba(255,255,255,.25); border-radius:12px; color:white; background:rgba(12,40,29,.76); backdrop-filter:blur(10px); }
.roof-visual figcaption > span { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; color:var(--navy); background:#bce7cc; font-weight:900; }
.roof-visual figcaption strong,.roof-visual figcaption small { display:block; }
.roof-visual figcaption small { margin-top:2px; color:#d8e6dd; font-size:11px; }
.hero { align-items:start; }
.hero > div:first-child { position:sticky; top:105px; }
.form-card { box-shadow:0 22px 65px rgba(20,45,31,.11); }
.form-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:18px; }
.form-card-head .fine { margin:0; max-width:390px; }
.form-top-submit { flex:0 0 auto; white-space:nowrap; }
.conversation-mode > .form-card-head { display:none; }

.platform-body { background:#f3f7f4; }
.platform-body .topbar { border-bottom-color:#cfdbd3; }
.platform-main { width:min(1380px,calc(100% - 40px)); }
.platform-hero { padding:34px 2px 20px; }
.platform-hero h1 { color:var(--navy); }
.platform-metrics { gap:10px; }
.platform-metrics article { border:1px solid #d7e2da; box-shadow:none; background:rgba(255,255,255,.86); }
.platform-metrics article > span { color:var(--green-600); background:var(--green-100); }
.launch-path { margin:12px 0 18px; padding:14px 18px; display:grid; grid-template-columns:1fr auto 1fr auto 1fr; align-items:center; gap:16px; border-radius:14px; box-shadow:none; }
.launch-path > div { min-width:0; display:grid; grid-template-columns:32px 1fr; column-gap:10px; align-items:center; }
.launch-path div > span { grid-row:1/3; width:32px; height:32px; display:grid; place-items:center; border-radius:9px; color:white; background:var(--navy); font-size:12px; font-weight:900; }
.launch-path strong,.launch-path small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.launch-path strong { font-size:12px; }.launch-path small { color:var(--muted); font-size:10px; }
.launch-path i { color:#9aaba0; font-style:normal; }
.platform-layout { align-items:start; gap:14px; }
.company-sidebar,.company-workspace,.ops-panel { border-radius:14px; border-color:#d4dfd7; box-shadow:0 8px 28px rgba(20,45,31,.06); }
.company-sidebar .panel-head { background:#f9fbfa; }
.company-search input { min-height:40px; }
.platform-company { border-left:3px solid transparent; }
.platform-company.active { border-left-color:var(--green-600); background:var(--green-100); }
.company-workspace { overflow:hidden; }
.company-title { padding:20px 22px; background:linear-gradient(135deg,#fff,#f1f7f3); }
.company-title h2 { color:var(--navy); }
.company-productivity { padding:14px 20px; background:#f9fcfa; }
.company-focus { display:grid; grid-template-columns:auto minmax(140px,1fr) auto auto; align-items:center; gap:10px; padding:11px 12px; border:1px solid #c9ded1; border-radius:11px; background:white; }
.focus-icon { width:34px; height:34px; display:grid; place-items:center; border-radius:9px; color:white; background:var(--green-600); font-weight:900; }
.company-focus small,.company-focus strong { display:block; }.company-focus small { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.06em; }.company-focus strong { margin-top:2px; font-size:13px; }
.company-focus .button { font-size:10px; text-decoration:none; white-space:nowrap; }
.guided-nav { margin-top:10px; padding:9px; border-radius:10px; background:var(--navy); color:white; }
.guided-nav button { min-height:34px; }
.guided-nav .secondary { background:rgba(255,255,255,.12); color:white; }
.guided-nav .primary { background:#d9f1e2; color:var(--navy); }
.admin-utilities { margin-top:8px; color:var(--muted); font-size:10px; }
.admin-utilities summary { width:max-content; cursor:pointer; font-weight:800; }
.admin-utilities .productivity-actions { justify-content:flex-start; margin-top:7px; }
.setup-progress { padding:13px 20px; background:white; }
.setup-progress progress { height:9px; accent-color:var(--green-600); }
.onboarding-steps { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; padding:14px 20px; background:#f7faf8; }
.setup-step { min-height:64px; border-color:#d8e2db; box-shadow:none; }
.setup-step > input { width:1px; height:1px; margin:0; padding:0; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); }
.setup-step.done { background:var(--green-100); }
.setup-guide { margin:0 20px 12px; }
.company-edit,.setup-panel,.integration-card,.account-access { background:#fff; }
.company-edit > summary,.setup-panel > summary { padding:4px 0; }
.platform-bottom { gap:14px; }

.stats .stat:nth-child(1),.stats .stat:nth-child(2),.stats .stat:nth-child(3),.stats .stat:nth-child(4) { border-top:3px solid var(--green-600); }
.stats .stat:nth-child(5),.stats .stat:nth-child(6) { border-top:3px solid #c68b20; }
.stats .stat:nth-child(7),.stats .stat:nth-child(8) { border-top:3px solid #4678a8; }
.task-panel,.workspace > .panel { border-radius:14px; }
.panel-head { background:#fbfdfc; }
.lead-row.active { box-shadow:inset 4px 0 0 var(--green-600); background:var(--green-100); }
.badge.high,.badge.critical { color:#8c2d27; background:var(--red-100); }
.badge.medium { color:#78550f; background:var(--amber-100); }

@media (max-width:1000px) {
  .hero > div:first-child { position:static; }
  .roof-visual img { height:230px; }
  .launch-path { grid-template-columns:1fr; }
  .launch-path > i { display:none; }
  .company-focus { grid-template-columns:auto 1fr; }
  .company-focus .button { grid-column:1/-1; text-align:center; }
}
@media (max-width:620px) {
  .roof-visual { margin-top:22px; border-radius:15px; }
  .roof-visual img { height:210px; }
  .roof-visual figcaption { left:10px; right:10px; bottom:10px; }
  .platform-main { width:min(100% - 24px,1380px); }
  .launch-path { padding:12px; }
  .onboarding-steps { grid-template-columns:1fr; padding:12px; }
  .setup-guide { margin:0 12px 12px; align-items:flex-start; flex-direction:column; }
  .company-title { padding:16px; }
  .guided-nav { display:grid; grid-template-columns:1fr 1fr; }
  .guided-nav strong { grid-column:1/-1; grid-row:1; text-align:center; }
  .form-card-head { align-items:stretch; flex-direction:column; }
  .form-top-submit { width:100%; }
}

/* Commercial frontend: content, navigation, demos and feedback */
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:34px; margin-bottom:24px; }
.section-heading h2 { margin-top:6px; font-size:clamp(28px,4vw,42px); }
.section-heading > p { max-width:520px; color:var(--muted); line-height:1.65; }
.service-showcase { padding:68px 0; }
.service-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.service-cards article { position:relative; overflow:hidden; padding:0 18px 20px; border:1px solid var(--line); border-radius:17px; background:white; box-shadow:var(--shadow-sm); }
.service-photo { height:180px; margin:0 -18px 18px; background-image:url('/static/assets/roof-services.jpg'); background-size:300% 100%; }
.service-photo.tiles { background-position:left center; }.service-photo.flashing { background-position:center; }.service-photo.gutters { background-position:right center; }
.service-cards article > span { display:grid; place-items:center; width:30px; height:30px; margin-top:-34px; position:relative; border:4px solid white; border-radius:50%; color:white; background:var(--brand); font-size:9px; font-weight:900; }
.service-cards h3 { margin-top:12px; }.service-cards p { margin-bottom:0; color:var(--muted); font-size:13px; line-height:1.55; }
.trust-band { background:var(--navy); color:white; }
.trust-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.trust-grid > div { display:grid; grid-template-columns:34px 1fr; gap:2px 10px; padding:24px 18px; border-right:1px solid rgba(255,255,255,.1); }
.trust-grid > div > span { grid-row:1/3; width:34px; height:34px; display:grid; place-items:center; border-radius:9px; color:var(--navy); background:#bfe8ce; }
.trust-grid strong,.trust-grid small { display:block; }.trust-grid small { color:#b9c9c0; font-size:10px; }
.faq { display:grid; grid-template-columns:.7fr 1.3fr; gap:60px; padding:68px 0 84px; }
.faq > div:first-child p { color:var(--muted); }.faq-list { border-top:1px solid var(--line); }
.faq-list details { border-bottom:1px solid var(--line); padding:16px 2px; }
.faq-list summary { cursor:pointer; font-weight:850; }.faq-list p { margin:10px 28px 0 0; color:var(--muted); line-height:1.6; }

.owner-commandbar { position:sticky; top:68px; z-index:35; margin:14px 0 0; padding:7px; display:flex; align-items:center; gap:5px; overflow-x:auto; border:1px solid #d6e1d9; border-radius:12px; background:rgba(255,255,255,.94); backdrop-filter:blur(12px); box-shadow:0 7px 22px rgba(20,45,31,.07); }
.owner-commandbar a,.owner-commandbar button { min-height:36px; padding:8px 11px; border:0; border-radius:8px; color:var(--muted); background:transparent; text-decoration:none; white-space:nowrap; font-size:11px; font-weight:800; }
.owner-commandbar a:hover,.owner-commandbar button:hover { color:var(--brand-dark); background:var(--green-100); }

/* Owner navigation: one clear hierarchy */
.owner-topbar .nav { min-height:66px; }
.product-brand { display:flex; align-items:center; }
.product-brand img { display:block; width:150px; height:auto; }
.owner-header-actions { display:flex; align-items:center; gap:9px; }
.workspace-pill { display:inline-flex; align-items:center; gap:7px; padding:8px 10px; border:1px solid #d8e2db; border-radius:999px; color:var(--muted); background:#f8fbf9; font-size:10px; font-weight:800; }
.workspace-pill i { color:#2c9a68; font-size:8px; font-style:normal; }
.header-new-lead { min-height:38px; display:inline-flex; align-items:center; padding:9px 14px; border-radius:9px; text-decoration:none; font-size:11px; }
.owner-header-actions .text-action { min-height:38px; padding:8px 10px; }
.owner-commandbar { top:78px; margin-top:16px; padding:6px; gap:4px; border:1px solid #d3dfd7; border-radius:14px; background:rgba(255,255,255,.97); box-shadow:0 9px 28px rgba(20,45,31,.08); }
.owner-commandbar a,.owner-commandbar button { min-height:42px; display:inline-flex; align-items:center; gap:7px; padding:9px 13px; border-radius:9px; font-size:11px; }
.owner-commandbar span { width:23px; height:23px; display:grid; place-items:center; border-radius:7px; color:var(--brand-dark); background:var(--green-100); font-size:10px; }
.owner-commandbar .active { color:white; background:var(--navy); box-shadow:0 5px 12px rgba(18,48,38,.17); }
.owner-commandbar .active span { color:var(--navy); background:#cdebd8; }
.owner-commandbar .active:hover { color:white; background:var(--navy); }

.company-tabs { position:sticky; top:68px; z-index:20; display:flex; gap:4px; padding:8px 12px; overflow-x:auto; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:rgba(255,255,255,.96); backdrop-filter:blur(12px); }
.company-tabs button { min-height:36px; padding:8px 11px; border:0; border-radius:8px; color:var(--muted); background:transparent; white-space:nowrap; font-size:10px; font-weight:850; }
.company-tabs button.active { color:white; background:var(--navy); }
[hidden] { display:none !important; }

.sales-dialog { width:min(920px,calc(100% - 30px)); max-height:calc(100dvh - 40px); padding:0; border:0; border-radius:20px; color:var(--ink); background:white; box-shadow:0 30px 90px rgba(10,29,21,.3); }
.sales-dialog::backdrop { background:rgba(9,25,18,.56); backdrop-filter:blur(5px); }
.sales-demo-head { display:flex; justify-content:space-between; gap:24px; padding:24px 26px; color:white; background:var(--navy); }.sales-demo-head h2 { margin-top:5px; }.sales-demo-head p { margin:4px 0 0; color:#bfd0c6; }.sales-demo-head .text-action { color:white; }
.demo-flow { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; padding:22px 26px 0; }
.demo-flow article { display:grid; grid-template-columns:34px 1fr; gap:3px 9px; padding:14px; border:1px solid var(--line); border-radius:12px; background:#f9fbfa; }
.demo-flow article span { grid-row:1/3; width:34px; height:34px; display:grid; place-items:center; border-radius:9px; color:white; background:var(--brand); font-weight:900; }.demo-flow small { color:var(--muted); font-size:10px; line-height:1.4; }
.roi-demo { margin:18px 26px; padding:20px; border-radius:15px; background:linear-gradient(135deg,#eef7f2,#f8fbf9); }
.roi-demo > div:first-child p { color:var(--muted); font-size:11px; }.roi-fields { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:14px; }.roi-fields label { display:grid; gap:5px; }
.roi-result { margin-top:14px; padding:15px; display:flex; align-items:baseline; gap:10px; border-radius:11px; color:white; background:var(--navy); }.roi-result small,.roi-result span { color:#bfd0c6; }.roi-result strong { font-size:28px; }.roi-result span { margin-left:auto; font-size:9px; }
.sales-actions { padding:0 26px 24px; display:flex; justify-content:flex-end; gap:9px; }.button { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }

.toast-region { position:fixed; right:18px; bottom:18px; z-index:1000; width:min(360px,calc(100% - 36px)); display:grid; gap:8px; }
.toast { display:grid; grid-template-columns:28px 1fr auto; align-items:center; gap:9px; padding:11px; border:1px solid #cbdcd1; border-radius:12px; background:white; box-shadow:0 16px 42px rgba(15,40,29,.18); }
.toast > span { width:28px; height:28px; display:grid; place-items:center; border-radius:8px; color:white; background:var(--brand); font-weight:900; }.toast.error > span { background:var(--danger); }.toast p { margin:0; font-size:12px; line-height:1.4; }.toast button { border:0; color:var(--muted); background:transparent; font-size:18px; }
.toast.warning > span { background:#c68b20; }.toast.info > span { background:#4678a8; }.toast.success { border-color:#a9d7bd; }.toast.error { border-color:#efb6b1; }.toast.warning { border-color:#ead092; }

/* Company dashboard usability */
.owner-commandbar { overflow:visible; }
.owner-commandbar .nav-count { min-width:20px; height:20px; display:grid; place-items:center; padding:0 6px; border-radius:999px; color:white; background:#c8463d; font-size:9px; }
.owner-more { position:relative; margin-left:auto; }
.owner-more > summary { min-height:42px; display:flex; align-items:center; gap:7px; padding:9px 13px; border-radius:9px; color:var(--muted); cursor:pointer; font-size:11px; font-weight:800; list-style:none; }
.owner-more > summary::-webkit-details-marker { display:none; }.owner-more[open] > summary { color:var(--brand-dark); background:var(--green-100); }
.owner-more > div { position:absolute; right:0; top:48px; width:210px; padding:7px; display:grid; z-index:45; border:1px solid var(--line); border-radius:12px; background:white; box-shadow:0 16px 40px rgba(15,40,29,.17); }
.owner-more > div a,.owner-more > div button { width:100%; justify-content:flex-start; }
.primary-stats { margin-bottom:10px; }.primary-stats .unread-stat { border-top-color:#4678a8 !important; }
.secondary-metrics { margin:0 0 14px; }.secondary-metrics > summary { width:max-content; padding:7px 10px; cursor:pointer; color:var(--muted); font-size:10px; font-weight:800; }.secondary-metrics .stats { margin-top:8px; grid-template-columns:repeat(5,1fr); }.secondary-metrics .stat { padding:13px; }
.empty-state { min-height:150px; display:grid; place-items:center; align-content:center; gap:7px; padding:24px; text-align:center; color:var(--muted); }.empty-state > span { width:36px;height:36px;display:grid;place-items:center;border-radius:11px;color:var(--brand);background:var(--soft);font-size:18px; }.empty-state strong { color:var(--ink); }.empty-state p { max-width:310px;margin:0;font-size:11px;line-height:1.5; }.empty-state .secondary { margin-top:5px;text-decoration:none; }
.task-row { align-items:center; display:grid; grid-template-columns:28px 1fr auto; }.task-row.message { border-left:3px solid #7056a8; }.task-rank { width:25px;height:25px;display:grid;place-items:center;border-radius:8px;background:#eef3f0;color:var(--brand-dark);font-size:10px;font-weight:900; }.task-row > span:nth-child(2) { display:grid;gap:2px; }.task-row em { color:var(--muted);font-size:10px;font-style:normal; }.task-urgency { color:var(--brand);font-size:10px;font-weight:900;white-space:nowrap; }
.bulk-toolbar { min-height:43px; display:flex;align-items:center;gap:8px;padding:7px 10px;border-bottom:1px solid var(--line);background:#f7faf8; }.bulk-toolbar label { display:flex;align-items:center;gap:5px;white-space:nowrap;font-size:10px;font-weight:800; }.bulk-toolbar > span { color:var(--muted);font-size:10px; }.bulk-toolbar select { margin-left:auto;max-width:170px;padding:7px;font-size:10px; }.bulk-toolbar button { min-height:32px;padding:6px 10px; }
.lead-row { padding:0; display:grid;grid-template-columns:38px 1fr;align-items:stretch; }.lead-row > button { width:100%;min-width:0;padding:13px 14px 13px 2px;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;border:0;background:transparent;text-align:left; }.lead-row .lead-select { display:grid;place-items:center;cursor:pointer; }.lead-row .lead-person,.lead-row .lead-state { display:grid;gap:4px; }.lead-row .lead-state { justify-items:end;text-align:right; }.lead-row.unread { background:#f3f8ff; }.lead-row.unread strong { font-weight:950; }.unread-dot { width:8px;height:8px;display:inline-block;margin-right:7px;border-radius:50%;background:#3778b8;box-shadow:0 0 0 3px #dcecff; }.unread-count { min-width:20px;height:20px;padding:0 6px;display:grid;place-items:center;border-radius:999px;color:white;background:#3778b8;font-size:9px; }

@media (max-width:780px) { .secondary-metrics .stats { grid-template-columns:1fr 1fr; }.owner-commandbar { overflow-x:auto; }.owner-more { margin-left:0; }.owner-more > div { position:fixed;right:12px;top:126px; }.bulk-toolbar { flex-wrap:wrap; }.bulk-toolbar select { margin-left:0;flex:1; }.task-row { grid-template-columns:25px 1fr; }.task-urgency { grid-column:2;justify-self:start; } }

/* Customer enquiry journey */
.skip-link { position:fixed;left:14px;top:10px;z-index:1001;padding:10px 14px;border-radius:9px;color:white;background:var(--navy);transform:translateY(-150%);text-decoration:none;font-weight:800; }.skip-link:focus { transform:none; }
.enquiry-progress { margin:-4px 0 18px;padding:12px 14px;border:1px solid #d8e4dc;border-radius:12px;background:#f7faf8; }.enquiry-progress > div { display:flex;justify-content:space-between;gap:12px;font-size:11px; }.enquiry-progress span,.enquiry-progress p { color:var(--muted); }.enquiry-progress progress { width:100%;height:8px;margin:8px 0 3px;accent-color:var(--brand); }.enquiry-progress p { margin:0;font-size:9px;line-height:1.4; }
.draft-recovery { display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;margin:0 0 16px;padding:11px 13px;border:1px solid #c8dcff;border-radius:11px;background:#f3f7ff; }.draft-recovery > span { width:32px;height:32px;display:grid;place-items:center;border-radius:9px;color:#315f94;background:#dfeaff;font-size:17px; }.draft-recovery strong,.draft-recovery p { display:block;margin:0; }.draft-recovery p { margin-top:2px;color:var(--muted);font-size:10px; }
.field-help { margin:0 0 8px;color:var(--muted);font-size:10px;line-height:1.45; }.photo-drop { min-height:82px;display:grid;grid-template-columns:34px 1fr;column-gap:10px;align-items:center;padding:12px;border:1px dashed #a9bdb0;border-radius:12px;background:#f8fbf9;cursor:pointer; }.photo-drop:hover { border-color:var(--brand);background:var(--green-100); }.photo-drop > span { grid-row:1/3;width:34px;height:34px;display:grid;place-items:center;border-radius:9px;color:white;background:var(--brand);font-size:20px; }.photo-drop strong,.photo-drop small { display:block; }.photo-drop small { color:var(--muted);font-size:10px; }.photo-drop input { position:absolute;width:1px;height:1px;opacity:0; }
.photo-preview-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:9px; }.photo-preview { position:relative;margin:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:white; }.photo-preview img { width:100%;height:88px;display:block;object-fit:cover; }.photo-preview figcaption { padding:7px; }.photo-preview strong,.photo-preview small { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px; }.photo-preview small { margin-top:2px;color:var(--muted); }.photo-preview progress { width:100%;height:5px;margin-top:5px;accent-color:var(--brand); }.photo-preview > button,.chat-photo-preview button { position:absolute;top:5px;right:5px;width:26px;height:26px;display:grid;place-items:center;border:0;border-radius:50%;color:white;background:rgba(18,48,38,.85);font-size:17px;cursor:pointer; }
.privacy-consent { padding:13px;border:1px solid #d8e2db;border-radius:12px;background:#f8faf9; }.privacy-consent > label { display:grid;grid-template-columns:20px 1fr;gap:8px;align-items:start;font-size:11px;line-height:1.5; }.privacy-consent input { margin-top:2px;accent-color:var(--brand); }.privacy-consent > p,.privacy-consent details { margin:8px 0 0;color:var(--muted);font-size:9px;line-height:1.5; }.privacy-consent summary { width:max-content;color:var(--brand-dark);cursor:pointer;font-weight:800; }.privacy-consent ul { margin:7px 0 0;padding-left:17px; }
.submission-success { padding:14px 6px 5px;text-align:center;outline:none; }.success-mark { width:58px;height:58px;margin:0 auto 14px;display:grid;place-items:center;border-radius:50%;color:white;background:var(--brand);box-shadow:0 0 0 9px var(--green-100);font-size:26px;font-weight:900; }.submission-success h2 { margin:6px 0;font-size:30px; }.submission-success > p { margin:0;color:var(--muted); }.success-reference { width:max-content;margin:18px auto;padding:9px 18px;border-radius:10px;background:var(--navy);color:white; }.success-reference span,.success-reference strong { display:block; }.success-reference span { color:#bdd0c4;font-size:8px;text-transform:uppercase;letter-spacing:.08em; }.success-reference strong { margin-top:2px;font-size:18px;letter-spacing:.05em; }.success-next { display:grid;gap:8px;margin:16px 0;text-align:left; }.success-next article { display:grid;grid-template-columns:28px 1fr;gap:8px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fafcfb; }.success-next article > span { grid-row:1/3;width:27px;height:27px;display:grid;place-items:center;border-radius:8px;color:var(--brand);background:var(--green-100);font-size:10px;font-weight:900; }.success-next p { margin:2px 0 0;color:var(--muted);font-size:9px;line-height:1.4; }.success-status { margin:14px 0;padding:11px;border-left:3px solid var(--brand);border-radius:8px;background:var(--green-100);text-align:left;font-size:10px;line-height:1.5; }.success-status.critical { border-color:var(--danger);background:var(--red-100); }.success-privacy { margin-top:9px!important;font-size:9px; }
.chat-photo-preview { position:relative;margin:0; }.chat-photo-preview img { width:72px;height:72px;display:block;border-radius:10px;object-fit:cover; }.chat-photo-preview button { width:22px;height:22px;font-size:14px; }.chat-upload-progress { min-width:170px;display:grid;align-content:center;gap:4px;padding:7px; }.chat-upload-progress span { color:var(--muted);font-size:9px; }.chat-upload-progress progress { width:100%;accent-color:var(--brand); }

@media (max-width:620px) { .photo-preview-grid { grid-template-columns:1fr 1fr; }.submission-success h2 { font-size:25px; }.draft-recovery { grid-template-columns:32px 1fr; }.draft-recovery button { grid-column:2;justify-self:start;padding-left:0; }.privacy-consent > label { grid-template-columns:24px 1fr; }.privacy-consent input { min-height:auto; } }

@media (max-width:780px) {
  .section-heading { align-items:start; flex-direction:column; gap:8px; }
  .service-cards { grid-template-columns:1fr; }.service-photo { background-size:cover; background-position:center !important; }
  .trust-grid { grid-template-columns:1fr 1fr; }.faq { grid-template-columns:1fr; gap:20px; }
  .demo-flow,.roi-fields { grid-template-columns:1fr; }.roi-result { align-items:flex-start; flex-direction:column; }.roi-result span { margin-left:0; }
}
@media (max-width:520px) {
  .trust-grid { grid-template-columns:1fr; }.trust-grid > div { border-right:0; border-bottom:1px solid rgba(255,255,255,.1); }
  .owner-commandbar { top:64px; margin-left:-4px; margin-right:-4px; }
  .sales-demo-head { padding:20px; }.demo-flow { padding:16px 16px 0; }.roi-demo { margin:14px 16px; }.sales-actions { padding:0 16px 18px; flex-direction:column; }
  .workspace-pill { display:none; }
  .owner-header-actions { gap:4px; }
  .header-new-lead { padding:8px 10px; }
  .owner-commandbar { top:70px; }
}

/* Platform administration */
.platform-body { background:#f3f7f4; }
.platform-main { padding-bottom:70px; }
.platform-hero { display:flex; justify-content:space-between; align-items:end; gap:20px; padding:42px 0 24px; }
.platform-hero h1 { font-size:44px; margin:5px 0 7px; }.platform-hero p { color:var(--muted); margin:0; }
.platform-metrics { display:grid; grid-template-columns:repeat(5,1fr); gap:11px; }
.platform-metrics article { padding:16px; display:flex; gap:11px; align-items:center; }.platform-metrics article>span { display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--soft);color:var(--brand);font-weight:900; }
.platform-metrics strong,.platform-metrics small { display:block; }.platform-metrics strong { font-size:24px; }.platform-metrics small { color:var(--muted);font-size:10px; }
.platform-layout { display:grid;grid-template-columns:330px 1fr;gap:14px;margin-top:16px;align-items:start; }.company-sidebar,.company-workspace { overflow:hidden; }.company-sidebar .panel-head { padding:15px;border-bottom:1px solid var(--line); }.company-sidebar select { width:auto;padding:7px;font-size:11px; }
.company-search { display:flex;align-items:center;gap:7px;margin:10px;padding:8px 10px;background:#f5f8f6;border-radius:8px; }.company-search input { border:0;padding:0;background:transparent; }.platform-company-list { max-height:650px;overflow:auto; }
.platform-company { display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;width:100%;padding:12px;border:0;border-bottom:1px solid var(--line);background:white;text-align:left;color:var(--ink); }.platform-company:hover,.platform-company.active { background:var(--soft); }.platform-company strong,.platform-company small { display:block; }.platform-company small { color:var(--muted);font-size:10px;margin-top:3px; }
.company-avatar { display:grid;place-items:center;width:36px;height:36px;border-radius:9px;color:white;font-size:11px;font-weight:900; }.company-avatar.large { width:48px;height:48px;font-size:14px; }.company-status { font-size:9px;text-transform:uppercase;font-weight:800;padding:4px 6px;border-radius:999px;background:#edf1ef; }.company-status.active { background:#e6f5ed;color:#17613e; }.company-status.onboarding { background:#fff3d6;color:#76530b; }.company-status.suspended { background:#fff0ef;color:#8d332d; }
.company-workspace { min-height:580px; }.company-title { display:flex;justify-content:space-between;gap:15px;align-items:start;padding:20px;border-bottom:1px solid var(--line); }.company-title>div { display:flex;gap:12px;align-items:center; }.company-title h2 { margin:3px 0; }.company-title p { margin:0;color:var(--muted);font-size:11px; }
.setup-progress { padding:15px 20px;background:#f7faf8;border-bottom:1px solid var(--line); }.setup-progress>div { display:flex;justify-content:space-between;font-size:11px;margin-bottom:7px; }.setup-progress span { color:var(--muted); }.setup-progress progress { width:100%;accent-color:var(--brand); }
.onboarding-steps { display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:16px 20px 8px; }.setup-step { display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:9px;padding:9px;background:white;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s; }.setup-step:hover { border-color:#9ab9a8;transform:translateY(-1px); }.setup-step:focus-visible,.setup-step.active { outline:0;border-color:var(--brand);box-shadow:0 0 0 3px rgba(26,119,77,.12); }.setup-step>input { position:absolute;opacity:0;pointer-events:none; }.setup-step>span { display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:#edf1ef;font-size:10px;font-weight:900; }.setup-step.done { background:#edf8f2;border-color:#b9ddca; }.setup-step.done>span { background:var(--brand);color:white; }.setup-step strong,.setup-step small { display:block; }.setup-step strong { font-size:11px; }.setup-step small { color:var(--muted);font-size:9px;margin-top:2px; }.setup-guide { display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 20px 16px;padding:12px 14px;border:1px solid #cfe1d7;border-radius:10px;background:#f5faf7; }.setup-guide strong { display:block;font-size:12px;margin:2px 0 3px; }.setup-guide p { margin:0;color:var(--muted);font-size:10px; }.setup-guide-actions { display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap; }.setup-guide-actions .button { text-decoration:none;white-space:nowrap; }.step-save-hint { max-width:190px;color:var(--muted);font-size:9px;line-height:1.35; }
.company-edit { border-top:1px solid var(--line);padding:14px 20px; }.company-edit summary,.ticket-create summary { cursor:pointer;font-weight:800; }.company-form-grid { display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:13px; }.company-form-grid label { display:grid;gap:5px;font-size:11px; }.company-form-grid .full { grid-column:1/-1; }.company-form-grid textarea { min-height:70px; }.company-save { display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:12px 20px 18px; }.ticket-create { border-top:1px solid var(--line);padding:14px 20px 20px; }.ticket-create form { display:grid;grid-template-columns:1fr 140px;gap:8px;margin-top:11px; }.ticket-create textarea { grid-column:1/-1;min-height:65px; }.ticket-create button { grid-column:2; }
.integration-hub { border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 20px;background:#f7faf8; }.integration-heading { display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:12px; }.integration-heading h3 { margin:3px 0; }.integration-heading p { margin:0;color:var(--muted);font-size:11px; }.integration-heading>span { padding:6px 9px;border-radius:999px;background:white;border:1px solid var(--line);font-size:10px;font-weight:800; }.integration-grid { display:grid;grid-template-columns:1fr 1fr;gap:9px; }.integration-card { border:1px solid var(--line);border-radius:10px;background:white;overflow:hidden; }.integration-card.connected { border-color:#8cc9a9; }.integration-card.needs_setup { border-color:#e8bd67; }.integration-card summary { display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;padding:11px;cursor:pointer; }.integration-card summary strong,.integration-card summary small { display:block; }.integration-card summary small { color:var(--muted);font-size:9px;margin-top:2px; }.integration-icon { display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--soft);color:var(--brand);font-weight:900; }.integration-status { font-size:8px;text-transform:uppercase;font-weight:900;padding:4px 6px;border-radius:999px;background:#edf1ef; }.connected .integration-status { background:#e6f5ed;color:#17613e; }.needs_setup .integration-status { background:#fff3d6;color:#76530b; }.integration-body { display:grid;gap:8px;padding:0 11px 12px;border-top:1px solid var(--line); }.integration-body>label { display:grid;gap:5px;margin-top:9px;font-size:10px; }.integration-body textarea { min-height:62px;font-size:10px; }.integration-body>small { color:var(--muted);font-size:9px; }.integration-actions { display:flex;gap:6px;flex-wrap:wrap; }.integration-actions button { padding:7px 8px;font-size:9px; }.integration-error { color:var(--danger);background:#fff0ef;border-radius:7px;padding:7px;font-size:10px; }
.platform-bottom { display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px; }.ops-panel { overflow:hidden; }.ops-panel .panel-head { padding:14px;border-bottom:1px solid var(--line); }.ops-row,.audit-row { display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--line); }.ops-row strong,.ops-row small,.audit-row strong,.audit-row small { display:block; }.ops-row small,.audit-row small { color:var(--muted);font-size:10px;margin-top:3px; }.ops-row select { width:auto;padding:6px;font-size:10px; }.severity { display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#edf1ef;font-weight:900; }.severity.high { background:#fff3d6;color:#76530b; }.severity.critical { background:#fff0ef;color:#8d332d; }.audit-row { grid-template-columns:auto 1fr; }
.platform-dialog { width:min(480px,calc(100% - 30px));border:0;border-radius:16px;padding:22px;box-shadow:0 25px 80px rgba(20,35,27,.25); }.platform-dialog::backdrop { background:rgba(18,30,24,.55); }.platform-dialog form { display:grid;gap:12px; }.platform-dialog label { display:grid;gap:6px; }.dialog-head { display:flex;justify-content:space-between;align-items:start; }.dialog-head h2 { margin:4px 0 7px; }
.empty.compact { padding:20px; }
.master-setup { border-top:1px solid var(--line);padding:18px 20px;background:#f7faf8; }.master-setup-head { margin-bottom:12px; }.master-setup-head h3 { margin:3px 0; }.master-setup-head p { margin:0;color:var(--muted);font-size:11px; }.setup-panel { margin-top:8px;border:1px solid var(--line);border-radius:11px;background:white;overflow:hidden; }.setup-panel[open] { border-color:#9fcbb4;box-shadow:0 7px 22px rgba(22,74,49,.06); }.setup-panel>summary { display:flex;gap:10px;align-items:center;padding:12px 14px;cursor:pointer; }.setup-panel>summary>span { display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--soft);color:var(--brand);font-size:10px;font-weight:900; }.setup-panel summary strong,.setup-panel summary small { display:block; }.setup-panel summary small { margin-top:2px;color:var(--muted);font-size:9px; }.setup-panel>form { display:grid;gap:11px;padding:14px;border-top:1px solid var(--line); }.setup-panel form>label,.member-row label,.two-fields label { display:grid;gap:5px;font-size:10px;font-weight:700; }.two-fields { display:grid;grid-template-columns:1fr 1fr;gap:10px; }.member-row { display:grid;grid-template-columns:1fr 1fr 130px auto;gap:8px;align-items:end;margin-bottom:8px; }.compact-button { justify-self:start;padding:7px 10px;font-size:10px; }.setup-panel fieldset { border:0;padding:0;margin:0; }.setup-panel legend { margin-bottom:6px;font-size:10px;font-weight:800; }.day-options,.toggle-options { display:flex;gap:7px;flex-wrap:wrap; }.day-options label,.toggle-options label,.approval-check { display:flex!important;align-items:center;gap:5px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#f8faf9;font-size:10px!important; }.day-options input,.toggle-options input,.approval-check input,.launch-checks input { width:auto; }.large-textarea { min-height:140px!important; }.section-save { display:flex;justify-content:flex-end;align-items:center;gap:10px;padding-top:4px; }.launch-checks { display:grid;grid-template-columns:1fr 1fr;gap:8px; }.launch-checks label { display:flex;align-items:center;gap:8px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fafcfb;font-size:10px;font-weight:700; }.preview-actions { display:flex;align-items:center;gap:10px; }.preview-actions a { text-decoration:none; }.preview-actions span { color:var(--muted);font-size:9px; }
.member-row.has-schedule { padding:12px;border:1px solid var(--line);border-radius:11px;background:#fbfdfc; }.member-schedule { grid-column:1/-1;display:grid;grid-template-columns:minmax(150px,1fr) 2fr auto;gap:12px;align-items:center;padding-top:10px;border-top:1px solid var(--line); }.member-schedule strong,.member-schedule small { display:block; }.member-schedule small { margin-top:2px;color:var(--muted);font-size:9px; }.member-days { display:flex;gap:5px;flex-wrap:wrap; }.member-days label { display:flex!important;align-items:center;gap:4px;padding:6px;border:1px solid var(--line);border-radius:7px;background:white;font-size:9px!important; }.member-days input { width:auto; }.member-hours { display:grid;grid-template-columns:1fr 1fr;gap:6px; }.member-hours input { min-width:96px;padding:7px; }
.member-routing { grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:8px; }.company-productivity { padding:12px 20px;border-bottom:1px solid var(--line);background:#fcfefd; }.guided-nav,.productivity-actions { display:flex;align-items:center;gap:8px;flex-wrap:wrap; }.guided-nav { justify-content:space-between; }.guided-nav strong { font-size:11px; }.productivity-actions { justify-content:flex-end;margin-top:8px; }.productivity-actions button,.guided-nav button { padding:7px 9px;font-size:9px; }.health-results { margin-top:10px;padding:10px;border:1px solid var(--line);border-radius:9px;background:white; }.health-results>strong { display:block;margin-bottom:7px; }.health-results>div { display:flex;gap:6px;flex-wrap:wrap; }.health-item { padding:5px 7px;border-radius:999px;font-size:9px;font-weight:800; }.health-item.ok { background:#e6f5ed;color:#17613e; }.health-item.missing { background:#fff3d6;color:#76530b; }.brand-preview { --preview-brand:#17764b;display:flex;align-items:center;gap:12px;margin:12px 20px;padding:13px;border:1px solid var(--line);border-radius:11px;background:linear-gradient(135deg,#fff,#f5faf7); }.brand-preview>div:first-child { flex:1; }.brand-preview strong,.brand-preview small { display:block; }.brand-preview small { margin-top:3px;color:var(--muted);font-size:9px; }.brand-preview .primary { background:var(--preview-brand); }.preview-logo { display:grid;place-items:center;min-width:70px;height:38px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);font-size:9px; }
@media (max-width:760px){.platform-layout,.platform-bottom { grid-template-columns:1fr; }.company-sidebar { max-height:280px; }.onboarding-steps { grid-template-columns:1fr 1fr; }.integration-grid,.two-fields,.launch-checks,.member-routing { grid-template-columns:1fr; }.member-row { grid-template-columns:1fr; }.member-schedule { grid-template-columns:1fr; }.member-hours { grid-template-columns:1fr 1fr; }.company-title { flex-direction:column; }.guided-nav { align-items:stretch; }.guided-nav strong { order:-1;width:100%; }.brand-preview { align-items:flex-start;flex-wrap:wrap; }}
.security-console { margin:12px 20px;border:1px solid var(--line);border-radius:11px;background:white;overflow:hidden; }.security-console>summary { display:flex;align-items:center;gap:10px;padding:12px;cursor:pointer; }.security-console summary>div { flex:1; }.security-console summary strong,.security-console summary small { display:block; }.security-console summary small { margin-top:2px;color:var(--muted);font-size:9px; }.security-shield { display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#e8f3ff;color:#285d8f; }.security-count { font-size:9px;font-weight:800;padding:5px 7px;border-radius:999px;background:#edf1ef; }.security-body { display:grid;gap:12px;padding:14px;border-top:1px solid var(--line); }.role-guide { display:grid;grid-template-columns:repeat(5,1fr);gap:6px; }.role-guide span { padding:8px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:8px; }.role-guide strong { display:block;color:var(--ink);text-transform:capitalize;margin-bottom:3px; }.access-row { display:grid;grid-template-columns:auto 1fr 120px auto auto;gap:8px;align-items:center;padding:9px;border-bottom:1px solid var(--line); }.access-row strong,.access-row small { display:block; }.access-row small { color:var(--muted);font-size:9px;margin-top:2px; }.access-row select,.access-row button { padding:7px;font-size:9px; }.access-avatar { display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--soft);font-size:9px;font-weight:900;color:var(--brand); }.invite-user-form { display:grid;grid-template-columns:1fr 1fr 140px auto;gap:8px;align-items:end;padding:12px;border-radius:9px;background:#f7faf8; }.invite-user-form label { display:grid;gap:4px;font-size:9px;font-weight:800; }.invite-user-form .fine { grid-column:1/-1; }.isolation-note { display:flex;gap:8px;align-items:center;padding:9px;border-left:3px solid #4d8bc4;background:#f1f7fd;font-size:9px; }.isolation-note span { color:var(--muted); }@media(max-width:760px){.role-guide { grid-template-columns:1fr 1fr; }.access-row,.invite-user-form { grid-template-columns:1fr; }.invite-user-form .fine { grid-column:auto; }}
.company-login-link { display:grid; gap:9px; margin:16px 0; padding:14px; border:1px solid #cfe0d5; border-radius:11px; background:#f4faf6; }
.company-login-link label strong,.company-login-link label small { display:block; }
.company-login-link label small { margin-top:3px; color:var(--muted); font-size:10px; }
.company-login-copy { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.company-login-copy input { min-width:0; width:100%; box-sizing:border-box; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:11px; background:white; }
@media(max-width:620px){.company-login-copy{grid-template-columns:1fr}.company-login-copy button{width:100%}}
@media(max-width:900px){.platform-metrics{grid-template-columns:repeat(2,1fr)}.platform-layout{grid-template-columns:1fr}.platform-company-list{max-height:300px}.platform-bottom{grid-template-columns:1fr}}
.platform-bottom { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media(max-width:1100px){.platform-bottom{grid-template-columns:1fr 1fr}.audit-panel{grid-column:1/-1}}
@media(max-width:760px){.platform-bottom{grid-template-columns:1fr}.audit-panel{grid-column:auto}}
@media(max-width:620px){.platform-hero{align-items:start;flex-direction:column}.platform-hero h1{font-size:34px}.onboarding-steps,.company-form-grid,.integration-grid{grid-template-columns:1fr}.company-form-grid .full{grid-column:1}.ticket-create form{grid-template-columns:1fr}.ticket-create textarea,.ticket-create button{grid-column:1}.company-title{flex-direction:column}.platform-metrics{grid-template-columns:1fr}.integration-heading{align-items:start;flex-direction:column}}
.login-page { min-height:100vh; display:grid; place-items:center; background:#f3f6f2; }
.login-shell { width:min(440px, calc(100% - 32px)); }
.login-card { padding:36px; }
.login-card h1 { font-size:34px; margin:8px 0 12px; }
.login-card form { display:grid; gap:18px; margin-top:28px; }
.login-card label { display:grid; gap:7px; font-weight:700; }
.login-card input { width:100%; box-sizing:border-box; }
.form-error { color:#a52a2a; min-height:1.4em; margin:0; }
.demo-credentials { margin-top:24px; padding-top:18px; border-top:1px solid #dce3dc; }

.connection-banner { position:fixed; z-index:10000; left:50%; bottom:18px; transform:translateX(-50%); display:flex; align-items:center; gap:10px; max-width:min(620px,calc(100vw - 28px)); padding:12px 16px; border:1px solid #e7b36a; border-radius:12px; color:#5f3700; background:#fff8e8; box-shadow:0 12px 34px rgba(16,32,25,.18); }
.connection-banner[hidden] { display:none; }
.connection-banner span { font-size:12px; }
.is-offline button[type="submit"] { cursor:not-allowed; }
@media (max-width:640px) { .connection-banner { align-items:flex-start; flex-direction:column; gap:3px; bottom:10px; } }
.auth-help-link { display:inline-block; margin-top:16px; color:var(--brand); font-size:12px; font-weight:800; }
.business-profile-card { padding:20px; border-bottom:1px solid var(--line); background:linear-gradient(135deg,#f7fbf8,#eef6f1); }
.business-profile-head { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; }
.business-profile-head h3 { margin:3px 0 5px; }
.business-profile-head p { margin:0; color:var(--muted); font-size:11px; }
.business-type-chip { padding:7px 10px; border:1px solid #b9ddca; border-radius:999px; background:white; color:var(--brand-dark); font-size:10px; font-weight:900; white-space:nowrap; }
.business-profile-grid { display:grid; grid-template-columns:minmax(190px,.7fr) 1.5fr; gap:16px; margin-top:16px; }
.business-profile-grid>label { display:grid; align-content:start; gap:6px; font-size:11px; font-weight:800; }
.business-profile-grid small { color:var(--muted); font-size:9px; line-height:1.4; }
.module-picker>strong { display:block; margin-bottom:7px; font-size:11px; }
.module-picker>div { display:flex; flex-wrap:wrap; gap:6px; }
.module-option { display:flex; align-items:center; gap:5px; padding:7px 8px; border:1px solid var(--line); border-radius:8px; background:white; font-size:9px; font-weight:800; }
.module-option input { width:auto; min-height:auto; }
.terminology-panel { margin-top:14px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:white; }
.terminology-panel summary { cursor:pointer; font-size:11px; font-weight:900; }
.terminology-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:10px; }
.terminology-grid label { display:grid; gap:4px; color:var(--muted); font-size:9px; font-weight:800; }
.terminology-grid input { padding:8px; font-size:11px; }
@media(max-width:760px){.business-profile-head{flex-direction:column}.business-profile-grid,.terminology-grid{grid-template-columns:1fr}}
.security-page { width:min(880px,calc(100% - 28px)); margin:48px auto; }
.security-card { padding:28px; }.security-page-head { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; margin-bottom:24px; }.security-page-head p { color:var(--muted); }
.session-list { display:grid; gap:10px; }.session-row { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:16px; border:1px solid var(--line); border-radius:12px; background:#fbfdfc; }.session-row > div { display:grid; gap:3px; min-width:0; }.session-row small,.session-row span { color:var(--muted); font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:640px) { .security-page-head,.session-row { align-items:stretch; flex-direction:column; }.security-card{padding:20px;} }

/* Master platform: sidebar workspace and sequential onboarding */
.platform-shell-body { --master-sidebar:252px; background:#f4f7f5; }
.platform-shell-body .topbar { display:none; }
.master-sidebar { position:fixed; inset:0 auto 0 0; z-index:80; display:flex; flex-direction:column; width:var(--master-sidebar); box-sizing:border-box; padding:22px 16px 16px; color:#eaf3ee; background:linear-gradient(180deg,#0c2b20 0%,#071e17 100%); border-right:1px solid rgba(255,255,255,.07); box-shadow:8px 0 30px rgba(9,35,26,.08); }
.master-brand { display:flex; align-items:center; min-height:48px; padding:0 8px 24px; border-bottom:1px solid rgba(255,255,255,.1); }
.master-brand-logo { display:block; width:174px; height:auto; }
.master-brand-mark { display:grid; place-items:center; width:38px; height:38px; border-radius:11px; color:#0c2b20; background:#c9f0db; font-size:12px; font-weight:900; letter-spacing:.04em; }
.master-brand strong,.master-brand small { display:block; }.master-brand strong { color:white; font-size:14px; }.master-brand small { margin-top:3px; color:#9db5aa; font-size:10px; }
.master-menu { min-height:0; display:grid; gap:4px; padding-top:20px; overflow-y:auto; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.2) transparent; }
.master-menu-label { padding:15px 11px 6px; color:#79978a; font-size:9px; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.master-menu button { display:grid; grid-template-columns:22px 1fr auto; align-items:center; gap:8px; width:100%; padding:11px 12px; border:0; border-radius:9px; color:#bcd0c7; background:transparent; text-align:left; font-size:12px; font-weight:750; cursor:pointer; transition:background .15s,color .15s,transform .15s; }
.master-menu button:hover { color:white; background:rgba(255,255,255,.07); transform:translateX(2px); }.master-menu button.active { color:white; background:#176f49; box-shadow:inset 3px 0 #bfe8d0; }
.nav-icon { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.master-menu button>.nav-icon { color:#92b4a5; }.master-menu button.active>.nav-icon { color:#d8f4e5; }.master-menu button>i { min-width:19px; padding:3px 5px; border-radius:999px; color:#c9ded4; background:rgba(255,255,255,.1); font-size:8px; font-style:normal; text-align:center; }
.business-board-menu { display:grid; gap:3px; }
.master-menu .business-board-button { grid-template-columns:25px minmax(0,1fr) auto; padding:9px 10px; font-size:11px; }
.business-board-button .board-icon { width:28px; height:28px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.08); border-radius:8px; color:#b8d9c9; background:rgba(255,255,255,.055); }
.business-board-button .board-icon .nav-icon { width:15px; height:15px; }
.business-board-button.active .board-icon { color:#e0f6e9; border-color:rgba(204,242,220,.28); background:rgba(216,244,229,.12); }
.business-board-button .board-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.master-menu .business-board-button.active { color:white; background:rgba(36,130,89,.42); box-shadow:inset 3px 0 #bfe8d0; }
.master-menu .business-board-button.empty { opacity:.62; }
.company-list-count { display:block; margin-top:3px; color:var(--muted); font-size:8px; }
.master-sidebar-actions { margin-top:auto; padding:16px 4px; border-top:1px solid rgba(255,255,255,.1); }.master-sidebar-actions .primary { background:#d5f0e1; color:#103527; }.master-sidebar-actions .primary:hover { background:white; }
.master-profile { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:9px; padding:12px 7px 2px; }.master-profile>span { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; color:#0e3527; background:#bfe8d0; font-size:9px; font-weight:900; }.master-profile strong,.master-profile small { display:block; }.master-profile strong { color:#eff8f3; font-size:10px; }.master-profile small { margin-top:2px; color:#7f9d90; font-size:8px; }.master-profile .text-action { color:#aac2b7; font-size:15px; }
.master-app { min-height:100vh; margin-left:var(--master-sidebar); }
.master-topbar { position:sticky; top:0; z-index:60; display:flex; align-items:center; gap:12px; min-height:68px; box-sizing:border-box; padding:12px clamp(20px,4vw,48px); background:rgba(255,255,255,.92); border-bottom:1px solid #d9e3dd; backdrop-filter:blur(14px); }.master-topbar-icon { display:block; width:31px; height:31px; }.master-topbar>div { flex:1; }.master-topbar strong,.master-topbar small { display:block; }.master-topbar strong { color:#153429; font-size:14px; }.master-topbar small { margin-top:2px; color:var(--muted); font-size:10px; }.master-menu-toggle { display:none; padding:8px; border:1px solid var(--line); border-radius:8px; background:white; }
.platform-shell-body .platform-main { width:min(1220px,calc(100% - 52px)); margin:0 auto; padding:34px 0 70px; }
.master-view { display:none; }.master-view.active { display:block; animation:master-view-in .2s ease-out; } @keyframes master-view-in { from { opacity:0; transform:translateY(4px); } }
.master-view .platform-hero { padding:2px 0 24px; }.master-view .platform-hero h1 { margin:4px 0 6px; font-size:38px; }.master-view .platform-hero p { font-size:14px; }
.master-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:22px; }.master-section-heading h1 { margin:4px 0 5px; font-size:36px; }.master-section-heading p { margin:0; color:var(--muted); font-size:13px; }
.overview-shortcuts { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:16px; }.overview-shortcuts button { display:grid; grid-template-columns:auto 1fr; column-gap:11px; width:100%; padding:17px; border:1px solid #d6e1da; border-radius:13px; color:var(--ink); background:white; text-align:left; box-shadow:0 7px 22px rgba(26,65,48,.04); cursor:pointer; }.overview-shortcuts button:hover { border-color:#8bb8a0; transform:translateY(-1px); }.overview-shortcuts span { grid-row:1/3; display:grid; place-items:center; width:35px; height:35px; border-radius:9px; color:#176d48; background:#e9f5ee; font-size:16px; }.overview-shortcuts strong,.overview-shortcuts small { display:block; }.overview-shortcuts strong { font-size:12px; }.overview-shortcuts small { margin-top:3px; color:var(--muted); font-size:9px; }
.platform-shell-body .global-search { margin-bottom:14px; }.platform-shell-body .platform-metrics { margin-bottom:14px; }.platform-shell-body .platform-layout { grid-template-columns:270px minmax(0,1fr); gap:16px; margin-top:0; }
.platform-shell-body .company-sidebar { position:sticky; top:88px; max-height:calc(100vh - 112px); border-radius:14px; }.platform-shell-body .platform-company-list { max-height:calc(100vh - 235px); }
.internal-van-mode .master-section-heading>[data-open-company-dialog],.internal-van-mode .company-sidebar,.internal-van-mode .company-tabs,.internal-van-mode .onboarding-wizard,.internal-van-mode .business-profile-card,.internal-van-mode .company-title>div:last-child { display:none!important; }
.internal-van-mode .platform-layout,.platform-shell-body.internal-van-mode .platform-layout { grid-template-columns:minmax(0,1fr); }
.internal-van-mode .company-workspace { min-height:0; }
.internal-van-mode .company-title { padding-bottom:14px; border-bottom:1px solid var(--line); }
.internal-van-mode .van-operations { background:white; }
.internal-van-mode .master-sidebar-actions,.internal-van-mode #hero-new-company { display:none!important; }

/* Van enquiry review workspace */
.platform-dialog.van-dialog { position:fixed; inset:0; width:min(760px,calc(100% - 28px)); max-height:min(88dvh,920px); margin:auto; box-sizing:border-box; overflow:auto; overscroll-behavior:contain; }
.platform-dialog.van-job-dialog { width:min(940px,calc(100% - 28px)); }
.van-job-dialog>div>.dialog-head,.van-job-dialog>form>.dialog-head { position:sticky; top:-22px; z-index:5; margin:-22px -22px 16px; padding:19px 22px 14px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.96); backdrop-filter:blur(12px); }
.van-action-card.quote { scroll-margin-top:62px; border-color:#a9cdbc; background:#f4faf6; }
.van-estimator { margin:14px 0; padding:14px; border:1px solid #c8ded2; border-radius:12px; background:white; }
.van-estimator-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.van-estimator-head strong,.van-estimator-head small { display:block; }
.van-estimator-head small { margin-top:3px; color:var(--muted); font-size:9px; }
.van-estimator details { margin-top:10px; }
.van-estimator summary { color:#517061; font-size:9px; font-weight:800; cursor:pointer; }
.van-estimator-manual { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:9px; }
.van-estimate-result { margin-top:11px; }
.van-estimate-result>p { margin:0; }
.van-estimate-total { display:grid; grid-template-columns:1.05fr 1fr 1fr; gap:7px; }
.van-estimate-total span,.van-estimate-breakdown span { padding:10px; border-radius:9px; background:#edf6f1; }
.van-estimate-total small,.van-estimate-total strong,.van-estimate-breakdown small,.van-estimate-breakdown strong { display:block; }
.van-estimate-total small,.van-estimate-breakdown small { color:var(--muted); font-size:8px; }
.van-estimate-total strong { margin-top:4px; font-size:14px; }
.van-estimate-route { margin:9px 0; padding:8px 10px; border-radius:8px; color:#315c48; background:#e3f1e9; font-size:9px; font-weight:800; }
.van-estimate-route small { display:block; margin-top:3px; color:#628071; font-size:8px; font-weight:700; }
.van-estimate-breakdown { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
.van-estimate-breakdown strong { margin-top:3px; font-size:10px; }
.van-estimate-error { color:#9b342d!important; }
@media(max-width:600px){
  .van-estimate-total,.van-estimate-breakdown,.van-estimator-manual{grid-template-columns:1fr}
  .van-estimator-head{align-items:stretch;flex-direction:column}
  .platform-dialog.van-dialog{width:calc(100% - 14px);max-height:94dvh;padding:16px}
  .van-job-dialog>div>.dialog-head,.van-job-dialog>form>.dialog-head{top:-16px;margin:-16px -16px 14px;padding:15px 16px 12px}
}
.platform-shell-body .company-workspace { min-height:640px; border-radius:14px; box-shadow:0 10px 35px rgba(18,52,38,.055); }.platform-shell-body .company-title { padding:17px 20px; }.platform-shell-body .company-title h2 { font-size:21px; }.platform-shell-body .setup-progress { display:none; }
.platform-shell-body .company-title { flex-wrap:wrap; }.platform-shell-body .company-title>div:last-child { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.company-controls { position:relative; }
.company-controls > summary { list-style:none; cursor:pointer; padding:10px 13px; border:1px solid var(--line); border-radius:10px; background:#fff; font-weight:800; color:var(--muted); }
.company-controls > summary::-webkit-details-marker { display:none; }
.company-controls[open] > summary { border-color:#9fb8aa; color:var(--ink); }
.company-controls > div { position:absolute; z-index:20; right:0; top:calc(100% + 7px); width:210px; padding:7px; display:grid; gap:4px; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 15px 40px rgba(17,47,34,.16); }
.company-controls button { width:100%; text-align:left; padding:10px 11px; border-radius:8px; }
.stop-company { border-color:#d5a332; color:#75510b; background:#fffaf0; }
.danger-link { border:0; background:#fff3f2; color:#a22e28; font-weight:800; cursor:pointer; }
.danger-link:hover:not(:disabled) { background:#fbdedb; }
.danger-link:disabled { opacity:.48; cursor:not-allowed; }
.danger-dialog { border-top:5px solid #b93b34; }
.danger-text { color:#a22e28; }
.danger-warning { padding:14px; border:1px solid #efc3bf; border-radius:12px; background:#fff5f4; color:#742822; }
.danger-warning p { margin:5px 0 0; color:#7c4a46; line-height:1.5; }
.danger-button { border:0; border-radius:10px; padding:13px 16px; background:#b63a33; color:#fff; font-weight:900; cursor:pointer; }
.danger-button:hover:not(:disabled) { background:#962b26; }
.danger-button:disabled { opacity:.45; cursor:not-allowed; }
.master-empty { display:grid; justify-items:center; align-content:center; min-height:560px; padding:30px; text-align:center; }.master-empty>span { display:grid; place-items:center; width:54px; height:54px; border-radius:15px; color:#247b55; background:#e7f3ec; font-size:23px; }.master-empty h3 { margin:14px 0 5px; }.master-empty p { max-width:310px; margin:0 0 17px; color:var(--muted); }
.onboarding-wizard { border-bottom:1px solid var(--line); background:white; }.wizard-rail { display:grid; grid-template-columns:repeat(var(--wizard-step-count,9),1fr); padding:14px 18px 11px; background:#f7faf8; border-bottom:1px solid var(--line); }.wizard-rail button { position:relative; display:grid; justify-items:center; gap:4px; padding:0 2px; border:0; color:#84968e; background:transparent; cursor:pointer; }.wizard-rail button:not(:last-child)::after { content:""; position:absolute; top:12px; left:calc(50% + 14px); right:calc(-50% + 14px); height:1px; background:#cad8d0; }.wizard-rail button>span { position:relative; z-index:1; display:grid; place-items:center; width:24px; height:24px; border:1px solid #c7d5cd; border-radius:50%; background:white; font-size:8px; font-weight:900; }.wizard-rail button>small { max-width:74px; overflow:hidden; font-size:7px; font-weight:750; text-overflow:ellipsis; white-space:nowrap; }.wizard-rail button.complete>span { border-color:#248259; color:white; background:#248259; }.wizard-rail button.active { color:#123d2e; }.wizard-rail button.active>span { border-color:#153f30; color:white; background:#153f30; box-shadow:0 0 0 4px #dcece3; }
.wizard-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 20px 10px; }.wizard-heading h3 { margin:3px 0 4px; font-size:21px; }.wizard-heading p { margin:0; color:var(--muted); font-size:11px; }.wizard-state { min-width:80px; padding:9px 12px; border-radius:10px; background:#edf7f1; text-align:center; }.wizard-state strong,.wizard-state small { display:block; }.wizard-state strong { color:#176d48; font-size:18px; }.wizard-state small { color:#5d7469; font-size:8px; }
.wizard-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; padding:0 20px 17px; }.wizard-actions>span { margin-right:auto; color:var(--muted); font-size:9px; }.wizard-actions button { min-width:104px; }
.platform-shell-body .company-edit { padding:18px 20px 22px; border-top:0; }.platform-shell-body .company-form-grid { max-width:760px; margin:0; }.platform-shell-body .company-edit>summary[hidden] { display:none; }.platform-shell-body .master-setup { padding:18px 20px 24px; border-top:0; background:white; }.platform-shell-body .setup-panel { margin:0; border:0; box-shadow:none; }.platform-shell-body .setup-panel>form { padding:4px 0 0; border-top:0; }.platform-shell-body .setup-panel>summary[hidden] { display:none; }.platform-shell-body .integration-hub { padding:18px 20px 24px; border-top:0; background:white; }.platform-shell-body .section-save { padding-top:10px; }.platform-shell-body .section-save button { display:none; }
.platform-shell-body [hidden] { display:none!important; }.platform-shell-body .ops-panel { min-height:220px; border-radius:14px; }.platform-shell-body .audit-panel { grid-column:auto; }.platform-shell-body .platform-bottom { display:block; }
@media(max-width:1100px){.platform-shell-body{--master-sidebar:220px}.platform-shell-body .platform-main{width:min(100% - 30px,1220px)}.platform-shell-body .platform-layout{grid-template-columns:1fr}.platform-shell-body .company-sidebar{position:static;max-height:320px}.platform-shell-body .platform-company-list{max-height:215px}.wizard-rail button>small{display:none}.overview-shortcuts{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:820px){.platform-shell-body{--master-sidebar:0px}.master-sidebar{width:260px;transform:translateX(-105%);transition:transform .2s}.master-menu-open .master-sidebar{transform:translateX(0)}.master-app{margin-left:0}.master-menu-toggle{display:block}.platform-shell-body .platform-layout{grid-template-columns:1fr}.platform-shell-body .company-sidebar{position:static;max-height:310px}.platform-shell-body .platform-company-list{max-height:210px}.overview-shortcuts{grid-template-columns:1fr}.wizard-rail{overflow-x:auto;grid-template-columns:repeat(var(--wizard-step-count,9),54px)}.wizard-rail button:not(:last-child)::after{display:none}}
@media(max-width:560px){.master-topbar{padding:10px 14px}.master-topbar-icon{width:27px;height:27px}.master-topbar .primary{padding:9px 10px;font-size:10px}.platform-shell-body .platform-main{width:calc(100% - 20px);padding-top:22px}.master-section-heading{align-items:flex-start;flex-direction:column}.master-section-heading h1{font-size:30px}.wizard-heading{align-items:flex-start}.wizard-state{display:none}.wizard-actions{align-items:stretch;flex-wrap:wrap}.wizard-actions>span{order:3;width:100%}.wizard-actions button{flex:1}.platform-shell-body .company-form-grid{grid-template-columns:1fr}.platform-shell-body .company-form-grid .full{grid-column:auto}}

/* Conversation-first interface */
.conversation-mode { padding:0; overflow:hidden; }
.conversation-mode > #form-title, .conversation-mode > #form-title + .fine, .conversation-mode > #result > .conversation-summary { display:none; }
.conversation-mode .customer-thread { margin:0; padding:0; border:0; }
.chat-app { height:min(760px, calc(100vh - 116px)); min-height:560px; display:flex; flex-direction:column; background:#edf2ee; }
.chat-app-header { min-height:64px; flex:0 0 auto; padding:10px 12px; display:flex; align-items:center; gap:10px; color:white; background:var(--brand-dark); box-shadow:0 1px 0 rgba(0,0,0,.12); z-index:2; }
.chat-avatar { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; border-radius:50%; background:#d8eee2; color:var(--brand-dark); font-size:13px; font-weight:900; letter-spacing:.02em; }
.chat-identity { min-width:0; flex:1; }
.chat-identity h3 { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }
.chat-identity p { margin:2px 0 0; color:rgba(255,255,255,.76); font-size:10px; }
.chat-app-header .conversation-reference { color:rgba(255,255,255,.65); margin:0; white-space:nowrap; }
.chat-header-action { border:1px solid rgba(255,255,255,.26); border-radius:999px; padding:6px 9px; color:white; background:transparent; font-size:10px; font-weight:750; }
.chat-header-action:hover { background:rgba(255,255,255,.1); }
.chat-history { flex:1 1 auto; min-height:0; max-height:none !important; overflow-y:auto; overscroll-behavior:contain; scroll-behavior:auto; padding:14px 12px 8px; background-color:#edf2ee; background-image:radial-gradient(rgba(24,35,29,.045) .7px, transparent .7px); background-size:13px 13px; }
.chat-history .bubble { position:relative; width:fit-content; max-width:84%; padding:8px 10px 6px; border:0; border-radius:10px; box-shadow:0 1px 1px rgba(24,35,29,.1); font-size:12px; line-height:1.42; }
.chat-history .bubble.customer-message { justify-self:end; margin-left:auto; color:white; background:#1f382c; border-bottom-right-radius:3px; }
.chat-history .bubble.assistant-message { justify-self:start; color:#3f3460; background:#f4f1fb; border-left:3px solid #9d8bc7; border-bottom-left-radius:3px; }
.chat-history .bubble.team-message { justify-self:start; color:var(--brand-dark); background:white; border-left:3px solid #5ea77f; border-bottom-left-radius:3px; }
.chat-history .bubble small { margin-top:3px; font-size:9px; text-align:right; }
.chat-state { flex:0 0 auto; background:#edf2ee; padding:0 10px; }
.chat-state > div { margin:5px 0; padding:6px 9px; border-radius:7px; font-size:10px; text-align:center; }
.customer-composer { min-width:0; box-sizing:border-box; flex:0 0 auto; padding:7px 8px 8px; background:#f5f7f5; border-top:1px solid #d7ded9; }
.composer-line { width:100%; min-width:0; display:flex; align-items:flex-end; gap:7px; }
.composer-line textarea { width:auto; min-width:0; box-sizing:border-box; flex:1 1 auto; min-height:40px; max-height:112px; padding:10px 12px; resize:none; overflow-y:auto; border:0; border-radius:20px; box-shadow:0 0 0 1px #d7ded9; font-size:13px; line-height:20px; }
.composer-line textarea:focus { outline:0; box-shadow:0 0 0 2px rgba(23,107,71,.22); }
.attach-action, .send-action { width:40px; height:40px; flex:0 0 40px; display:grid; place-items:center; border:0; border-radius:50%; cursor:pointer; }
.attach-action { color:var(--muted); background:#e5ebe7; font-size:23px; font-weight:400; }
.attach-action:hover { background:#dce5df; }
.attach-action input { display:none; }
.send-action { color:white; background:var(--brand); font-size:15px; padding:0 0 1px 2px; }
.send-action:hover { background:var(--brand-dark); }
.send-action:disabled { opacity:.55; cursor:wait; }
.composer-hint { margin:4px 48px 0; color:#879089; font-size:8px; text-align:center; }
.customer-composer .preview-row { margin:0 46px 7px; padding:6px; background:white; border-radius:10px; }
.customer-composer .preview-row:empty { display:none; }
.customer-composer .preview-row img { width:54px; height:46px; }
.chat-history .appointment-message .appointment-card, .chat-history #booking-panel .appointment-card { width:92%; max-width:330px; justify-self:center; margin:4px auto; box-shadow:0 1px 2px rgba(24,35,29,.08); }
.chat-history #booking-panel .appointment-card { padding:11px; border:1px solid #cddbd2; border-radius:11px; background:white; }
.conversation-closed { margin:0; border-radius:0; text-align:center; }

/* Owner WhatsApp-style conversation workspace */
.chat-section { display:flex; flex-direction:column; background:#e9efeb; }
.chat-title { position:sticky; top:0; z-index:2; padding:12px 16px; }
.owner-thread { min-height:380px; max-height:58vh; padding:18px 16px; gap:10px; scroll-behavior:auto; overscroll-behavior:contain; background-color:#e9efeb; background-image:radial-gradient(rgba(24,35,29,.045) .7px, transparent .7px); background-size:13px 13px; }
.chat-item { max-width:78%; }
.chat-sender { font-size:9px; margin-bottom:2px; }
.chat-bubble { padding:8px 10px; border:0; border-radius:10px; box-shadow:0 1px 1px rgba(24,35,29,.11); font-size:12px; }
.from-customer .chat-bubble { background:white; border-bottom-left-radius:3px; }
.from-roofer .chat-bubble, .from-assistant .chat-bubble { background:#1f382c; border-color:#1f382c; border-bottom-right-radius:3px; }
.team-note .chat-bubble { background:#fff7dc; border:1px dashed #d3a233; box-shadow:none; }
.chat-meta { font-size:9px; margin-top:2px; }
.chat-section .composer { position:sticky; bottom:0; z-index:2; padding:10px 14px 12px; box-shadow:0 -1px 0 var(--line); }
.chat-section .composer textarea { min-height:54px; max-height:140px; resize:none; }
.chat-section .composer-tabs { margin:0 0 8px; }
.chat-section .composer-actions { margin-top:7px; }
.human-connect-toggle { display:flex; align-items:flex-start; gap:9px; margin:0 0 9px; padding:9px 10px; border:1px solid #cddbd2; border-radius:9px; background:#f5faf7; cursor:pointer; }
.human-connect-toggle input { width:18px; height:18px; margin:1px 0 0; accent-color:var(--brand); }
.human-connect-toggle span { display:grid; gap:2px; }
.human-connect-toggle strong { font-size:12px; }
.human-connect-toggle small { color:var(--muted); font-size:10px; line-height:1.35; }
.human-connect-toggle:has(input:checked) { border-color:#79ac8d; background:#e7f4eb; }

@media (max-width: 780px) {
  .hero:has(.conversation-mode) { display:block; width:100%; padding:0; }
  .hero:has(.conversation-mode) > div:first-child { display:none; }
  .hero:has(.conversation-mode) .form-card { border:0; border-radius:0; box-shadow:none; }
  .chat-app { height:calc(100dvh - 72px); min-height:480px; }
  .chat-history .bubble { max-width:88%; }
  .owner-thread { max-height:62vh; }
}

@media (max-width: 520px) {
  .chat-app-header .conversation-reference { display:none; }
  .composer-hint { display:none; }
  .customer-composer { padding-bottom:max(8px, env(safe-area-inset-bottom)); }
  .task-list { grid-template-columns:1fr; }
  .system-grid { grid-template-columns:1fr; }
}
/* Driver marketplace */
.driver-app-body{margin:0;background:#f1f6f3;color:#102019;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;min-height:100vh}.driver-auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(320px,1fr) minmax(420px,620px)}.driver-auth-brand{background:linear-gradient(145deg,#062d21,#0b4f39);color:white;padding:clamp(32px,7vw,100px);display:flex;flex-direction:column;justify-content:space-between;gap:48px}.driver-auth-brand img,.driver-topbar img{width:190px;filter:brightness(0) invert(1)}.driver-auth-brand h1{font-size:clamp(42px,5vw,76px);line-height:.98;max-width:720px;margin:14px 0 24px;letter-spacing:-.055em}.driver-auth-brand p{font-size:20px;line-height:1.55;max-width:620px;color:#cfe6dc}.driver-auth-brand ol{display:grid;gap:14px;list-style:none;padding:0}.driver-auth-brand li{display:flex;align-items:center;gap:14px;color:#dff4eb}.driver-auth-brand li b{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#d5f5e6;color:#07392a}.driver-auth-card{align-self:center;margin:40px clamp(24px,6vw,84px);padding:clamp(28px,4vw,48px);background:white;border:1px solid #dbe7e0;border-radius:28px;box-shadow:0 24px 70px rgba(14,48,36,.1);display:grid;gap:20px}.driver-auth-card h2{font-size:34px;margin:8px 0}.driver-auth-card p{color:#60736a}.driver-auth-card label{display:grid;gap:8px;font-weight:750}.driver-auth-card input,.driver-auth-card select{padding:14px 16px;border:1px solid #cbdcd3;border-radius:12px;font:inherit;background:#fbfdfc}.driver-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.driver-consent{grid-template-columns:22px 1fr!important;align-items:start;font-weight:500!important;line-height:1.45}.driver-consent input{width:18px;height:18px}.driver-auth-switch{text-align:center}.driver-topbar{height:76px;padding:0 clamp(22px,5vw,70px);background:#07392a;display:flex;align-items:center;justify-content:space-between}.driver-topbar button{color:white;border-color:#547b6c}.driver-portal{max-width:1320px;margin:auto;padding:clamp(28px,5vw,70px)}.driver-welcome{display:flex;justify-content:space-between;gap:30px;align-items:center;margin-bottom:30px}.driver-welcome h1{font-size:clamp(40px,6vw,72px);letter-spacing:-.055em;margin:8px 0}.driver-welcome p{font-size:18px;color:#5c7167}.driver-status{padding:12px 18px;border-radius:999px;font-weight:800;background:#fff1cf;color:#795200;white-space:nowrap}.driver-status.ready{background:#dff5e9;color:#08613f}.driver-active{background:linear-gradient(135deg,#0a503a,#0e7451);color:white;border-radius:24px;padding:26px 30px;margin:24px 0}.driver-active h2{font-size:28px;margin:8px 0}.driver-board-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px}.driver-section-title{display:flex;justify-content:space-between;align-items:end;margin:28px 0 16px}.driver-section-title h2{font-size:30px;margin:6px 0}.driver-jobs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.driver-job,.driver-profile,.driver-history{background:white;border:1px solid #dbe7e0;border-radius:20px;padding:22px;box-shadow:0 10px 30px rgba(14,48,36,.05)}.driver-job-head{display:flex;justify-content:space-between;text-transform:capitalize}.driver-job-head span{color:#5c7167}.driver-job-head strong{color:#08734c;font-size:20px}.driver-job h3{font-size:25px;margin:16px 0}.driver-job h3 span{color:#51a882}.driver-job p{color:#64776e}.driver-profile{align-self:start;position:sticky;top:20px}.driver-profile h2{font-size:32px}.driver-profile dl>div{padding:14px 0;border-bottom:1px solid #e4ece8;display:flex;justify-content:space-between}.driver-profile dt{color:#687b72}.driver-profile dd{font-weight:800}.driver-profile p{color:#687b72;line-height:1.5}.driver-history{margin-top:28px}.driver-history-list>div{display:grid;grid-template-columns:1fr 1.4fr 1fr .8fr;gap:10px;padding:14px;border-top:1px solid #e4ece8}.driver-history-list b{text-transform:capitalize;color:#08734c}.driver-empty{background:white;border:1px dashed #bfd1c7;border-radius:18px;padding:34px;color:#64776e;text-align:center;grid-column:1/-1}
@media(max-width:850px){.driver-auth-shell{grid-template-columns:1fr}.driver-auth-brand{min-height:auto;padding:32px}.driver-auth-brand h1{font-size:46px}.driver-auth-card{margin:22px}.driver-board-grid{grid-template-columns:1fr}.driver-profile{position:static}.driver-jobs{grid-template-columns:1fr}.driver-welcome{align-items:flex-start;flex-direction:column}.driver-history-list>div{grid-template-columns:1fr 1fr}.driver-form-grid{grid-template-columns:1fr}}
