:root { --ink:#17201e; --muted:#66716d; --line:#dbe1dd; --paper:#f8faf8; --green:#116d61; --green-dark:#0b4d44; --mint:#e4f1e9; --apricot:#f8eadc; --blue:#e2edf5; --yellow:#e5b65d; }
@media (max-width: 640px) { .address-line input,.option-field input,.option-field select { font-size:16px; } }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Manrope, Arial, sans-serif; }
body.pilot-locked { overflow:hidden; }
button, input, select { font:inherit; }
button { cursor:pointer; }
a { color:inherit; text-decoration:none; }
.site-header { height:74px; display:flex; align-items:center; justify-content:space-between; padding:0 clamp(24px, 5vw, 76px); background:#fff; border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:9px; font-size:22px; font-weight:700; letter-spacing:0; }
.brand-mark { width:27px; height:27px; display:grid; place-items:center; border-radius:9px 9px 9px 3px; color:#fff; background:var(--green); font-family:Manrope, Arial, sans-serif; font-size:15px; font-weight:800; transform:rotate(-8deg); }
nav { display:flex; gap:32px; height:100%; align-items:center; }
nav a { height:100%; display:grid; align-items:center; font-size:14px; color:var(--muted); border-bottom:2px solid transparent; }
nav a.active { color:var(--ink); border-color:var(--green); font-weight:600; }
.header-action { display:flex; align-items:center; gap:6px; border:0; background:transparent; color:var(--green); font-size:13px; font-weight:700; }
.admin-header-actions { display:flex; align-items:center; gap:18px; }.logout-button { color:var(--muted); }.logout-button:hover { color:var(--ink); }
.header-action svg { width:15px; }
main { max-width:1352px; margin:0 auto; padding:0 32px; }
.intro { padding:72px 0 54px; display:grid; grid-template-columns:minmax(260px, .82fr) minmax(520px, 1.18fr); align-items:end; gap:64px; }
.eyebrow { margin:0 0 9px; color:var(--green); font-size:12px; font-weight:700; letter-spacing:1.05px; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { letter-spacing:0; }
h1 { max-width:500px; margin-bottom:16px; font:800 54px/1.08 Manrope, Arial, sans-serif; }
h2 { margin-bottom:0; font:700 27px/1.16 Manrope, Arial, sans-serif; }
.intro-text { max-width:370px; margin-bottom:0; color:var(--muted); font-size:16px; line-height:1.55; }
.trip-form { background:#fff; border:1px solid var(--line); border-radius:7px; box-shadow:0 12px 35px rgba(34,54,48,.07); overflow:visible; }
.address-stack { position:relative; border-bottom:1px solid var(--line); }
.address-line { position:relative; min-height:65px; display:grid; grid-template-columns:23px 1fr 31px; align-items:center; gap:9px; padding:0 19px; }
.address-line + .address-line { border-top:1px solid #edf0ee; }
.route-dot { width:11px; height:11px; border:2px solid var(--green); border-radius:50%; }
.route-dot.end { border-radius:3px; border-color:#e09b45; background:#e09b45; }
.address-line label { display:grid; grid-template-columns:31px 1fr; align-items:center; }
.address-line .address-field { position:relative; }
.address-line label > span { color:var(--muted); font-size:13px; }
.address-line input { min-width:0; border:0; outline:0; color:var(--ink); font-weight:600; font-size:16px; }
.suggestion-list { display:none; position:absolute; z-index:20; top:calc(100% + 12px); left:-32px; right:-44px; overflow:hidden; border:1px solid var(--line); border-radius:5px; background:#fff; box-shadow:0 14px 30px rgba(34,54,48,.17); }
.suggestion-list.is-open { display:block; }
.suggestion-item { width:100%; display:grid; grid-template-columns:19px 1fr; gap:9px; padding:12px 14px; border:0; border-bottom:1px solid #edf0ee; background:#fff; color:var(--ink); text-align:left; }
.suggestion-item:last-child { border-bottom:0; }.suggestion-item:hover,.suggestion-item:focus-visible { background:#eff7f2; outline:0; }.suggestion-item svg { width:17px; margin-top:2px; color:var(--green); }.suggestion-item strong { display:block; margin-bottom:2px; font-size:13px; }.suggestion-item small { display:block; color:var(--muted); font-size:11px; line-height:1.3; }
.location-button { color:var(--green); border:0; background:transparent; padding:4px; }
.location-button svg { width:18px; }
.swap-addresses { position:absolute; z-index:4; top:50%; right:14px; display:grid; place-items:center; width:31px; height:31px; padding:0; border:1px solid var(--line); border-radius:50%; background:#fff; color:var(--green); box-shadow:0 2px 7px rgba(34,54,48,.12); transform:translateY(-50%); }
.swap-addresses:hover { border-color:var(--green); background:#eff7f2; }.swap-addresses:focus-visible { outline:3px solid rgba(17,109,97,.2); outline-offset:2px; }.swap-addresses:disabled { cursor:wait; opacity:.6; }.swap-addresses svg { width:16px; height:16px; }
.form-options { display:grid; grid-template-columns:1.2fr 1fr auto; min-height:74px; }
.option-field { display:grid; grid-template-columns:18px 1fr; grid-template-rows:17px 25px; column-gap:8px; align-content:center; padding:0 18px; border-right:1px solid var(--line); }
.option-field svg { grid-row:1 / span 2; width:17px; color:var(--green); align-self:center; }
.option-field span { font-size:11px; color:var(--muted); }
.option-field input,.option-field select { width:100%; padding:0; border:0; outline:0; background:transparent; color:var(--ink); font-size:16px; font-weight:600; }
.option-field input { color-scheme:light; }
.estimate-button { align-self:center; margin:0 12px; padding:13px 18px; display:flex; align-items:center; gap:9px; border:0; border-radius:4px; background:var(--green); color:white; font-weight:700; font-size:14px; }
.estimate-button svg { width:16px; }
.results-section { border-top:1px solid var(--line); padding:36px 0 70px; }
.route-summary { display:flex; justify-content:space-between; align-items:end; margin-bottom:25px; }
.route-summary h2 { font-size:29px; }
.route-summary h2 span { color:var(--green); padding:0 4px; }
.trip-stats { display:flex; gap:24px; padding-bottom:4px; color:var(--muted); font-size:14px; }
.trip-stats span { display:flex; align-items:center; gap:7px; }
.trip-stats svg { width:17px; color:var(--green); }
.trip-stats strong { color:var(--ink); }
.results-grid { display:grid; grid-template-columns:minmax(390px, .92fr) minmax(460px, 1.08fr); gap:42px; align-items:start; }
.map-card { position:relative; overflow:hidden; height:426px; background:#e4efea; border-radius:5px; }
#route-map { width:100%; height:100%; z-index:0; }.leaflet-control-attribution { font-family:Manrope, Arial, sans-serif; font-size:9px; }.leaflet-container { font-family:Manrope, Arial, sans-serif; }.map-marker { display:grid; place-items:center; width:31px; height:31px; border:3px solid #fff; border-radius:50%; box-shadow:0 3px 9px rgba(23,32,30,.24); }.map-marker.start { background:var(--green); }.map-marker.end { background:#df9c48; }.map-marker span { width:9px; height:9px; border:2px solid white; border-radius:50%; }.map-marker.end span { border-radius:2px; background:#fff; }
.map-legend { position:absolute; z-index:3; left:14px; bottom:14px; display:flex; gap:15px; padding:9px 11px; border-radius:3px; background:rgba(255,255,255,.92); font-size:11px; font-weight:600; }
.map-legend span { display:flex; align-items:center; gap:5px; }
.legend-dot { width:8px; height:8px; border:2px solid var(--green); border-radius:50%; }
.legend-dot.end { border:0; border-radius:2px; background:#e09b45; }
.estimate-note { display:flex; align-items:center; gap:7px; margin:11px 0 0; color:var(--muted); font-size:12px; }
.estimate-note svg { width:15px; flex:none; }
.pilot-notice { display:flex; align-items:flex-start; gap:9px; max-width:540px; margin:22px 0 0; padding:12px 14px; border:1px solid #d8b875; border-radius:4px; background:#fff8e8; color:#5f4918; font-size:13px; line-height:1.5; }
.pilot-notice svg { width:17px; flex:none; margin-top:1px; }
.quotes-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:16px; }
.quotes-heading h2 { font-size:25px; }
.sort-button { display:flex; gap:7px; align-items:center; padding:8px 0; border:0; background:transparent; color:var(--muted); font-size:12px; font-weight:600; }
.sort-button svg { width:14px; }
.quote-list { border-top:1px solid var(--line); }
.quote { position:relative; display:grid; grid-template-columns:92px minmax(0, 1fr) auto; align-items:center; gap:13px; min-height:108px; padding:15px 0; border-bottom:1px solid var(--line); }
.quote.featured { padding-left:12px; background:#eff7f2; }
.operator-logo { width:42px; height:42px; display:grid; place-items:center; border-radius:7px; color:#fff; font-size:14px; font-weight:700; letter-spacing:-.7px; }
.operator-logo.pending-logo { border:1px solid #c9ddd4; background:#e7f1eb; color:var(--green); }.pending-logo svg { width:20px; }.operator-pending { display:grid; align-content:center; gap:5px; min-height:60px; }.operator-pending .operator-name { margin:0; }.pending-status { width:max-content; padding:3px 6px; border-radius:2px; background:#eff4f1; color:#567168; font-size:9px; font-weight:700; letter-spacing:.25px; }
.operator-logo.has-image img { display:block; width:100%; height:100%; object-fit:contain; }
.operator-logo.oslo { background:#d7423e; }.operator-logo.norge { background:#174b9e; }.operator-logo.buddy { background:#5b3c99; }.operator-logo.central-one { background:#126b5a; }.operator-logo.central-two { background:#335f91; }.operator-logo.central-three { background:#b56629; }.operator-logo.custom { background:#4e7c9b; }.operator-logo.bolt { background:#2aaf78; }.operator-logo.07000 { background:#171717; }
.operator-logo.has-image { width:92px; height:42px; padding:7px; border:1px solid var(--line); background:#fff; }
.operator-logo.norge.has-image { background:#161616; border-color:#161616; }
.operator-name { display:flex; align-items:center; gap:7px; margin-bottom:4px; font-size:15px; font-weight:700; }
.operator-detail { color:var(--muted); font-size:12px; }
.source-meta { display:flex; align-items:center; gap:8px; margin-top:5px; color:var(--muted); font-size:10px; }.source-link { display:inline-flex; align-items:center; gap:4px; color:var(--green); font-size:11px; font-weight:700; text-decoration:underline; text-underline-offset:2px; }.source-link svg { width:12px; height:12px; }.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; }
.source-category { margin-top:4px; color:#765830; font-size:10px; font-weight:700; }.verification-label { color:#567168; font-size:10px; font-weight:700; }.verification-action { padding:0; border:0; border-bottom:1px solid currentColor; background:transparent; color:var(--green); font:inherit; font-size:11px; font-weight:700; line-height:1.4; }
.recommended { padding:3px 6px; border-radius:2px; background:#cfead9; color:var(--green-dark); font-size:10px; font-weight:700; letter-spacing:.2px; }
.campaign-badge { padding:3px 6px; border-radius:2px; background:var(--apricot); color:#8d5417; font-size:10px; font-weight:700; letter-spacing:.2px; }.campaign-detail { margin-top:4px; color:#8d5417; font-size:11px; font-weight:700; }
.quote-actions { display:grid; justify-items:end; gap:8px; }.quote-price { text-align:right; }.quote-price strong { display:block; font-size:21px; letter-spacing:0; }.quote-price span { color:var(--muted); font-size:11px; }.booking-link { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-width:104px; padding:9px 11px; border-radius:4px; background:var(--green); color:#fff; font-size:12px; font-weight:700; }.booking-link:hover { background:var(--green-dark); }.booking-link.is-disabled { background:#dfe8e4; color:#567168; cursor:default; }.booking-link svg { width:14px; }
.price-note { display:flex; gap:7px; margin:13px 0 0; color:var(--muted); font-size:11px; line-height:1.45; }.price-note svg { flex:none; width:15px; color:var(--green); }
.booking-note { display:flex; gap:7px; margin:9px 0 0; color:var(--muted); font-size:11px; }.booking-note svg { width:14px; color:var(--green); }
.listing-cta { margin:16px 0 0; padding-top:14px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; line-height:1.55; }.listing-cta a { color:var(--green); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.directory-section { padding:0 0 62px; }.directory-heading { display:flex; align-items:end; justify-content:space-between; gap:28px; padding-top:31px; border-top:1px solid var(--line); }.directory-heading h2 { margin:0; font-size:28px; }.directory-heading > p { max-width:350px; margin:0; color:var(--muted); font-size:12px; line-height:1.5; text-align:right; }.central-directory { margin-top:18px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; }.central-directory summary { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 0; cursor:pointer; list-style:none; font-size:13px; font-weight:700; }.central-directory summary::-webkit-details-marker { display:none; }.central-directory summary span { color:var(--muted); font-size:11px; font-weight:600; }.central-directory summary::after { color:var(--green); content:"+"; font-size:22px; font-weight:400; }.central-directory[open] summary::after { content:"−"; }.central-directory-list { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); border-top:1px solid var(--line); }.central-directory-item { display:flex; align-items:center; justify-content:space-between; gap:15px; min-height:48px; padding:10px 14px 10px 0; border-bottom:1px solid var(--line); font-size:12px; }.central-directory-item:nth-last-child(-n + 2) { border-bottom:0; }.central-directory-item:nth-child(odd) { padding-right:28px; border-right:1px solid var(--line); }.central-directory-item:nth-child(even) { padding-left:28px; }.central-status { flex:none; color:var(--muted); font-size:10px; font-weight:700; text-align:right; }.central-status.has-source { color:var(--green); }
.directory-source { margin:11px 0 0; color:var(--muted); font-size:11px; }
.partner-section { margin-bottom:52px; padding:42px; display:grid; grid-template-columns:minmax(260px, 1fr) minmax(280px, .8fr); align-items:start; gap:44px; color:#f4f8f6; background:var(--green-dark); }.partner-section .eyebrow { color:#a8d3c4; }.partner-section h2 { max-width:650px; margin-bottom:12px; font-size:32px; }.partner-section p:last-child { max-width:600px; margin:0; color:#d0e4db; font-size:14px; line-height:1.5; }.partner-link { display:flex; align-items:center; justify-content:center; gap:9px; padding:11px 0; border:0; background:transparent; color:#f4f8f6; border-bottom:1px solid #a8d3c4; font-size:14px; font-weight:700; white-space:nowrap; }.partner-link svg { width:16px; }.support-form { display:grid; grid-template-columns:1fr 1fr; gap:12px; }.support-form label { display:grid; gap:5px; }.support-form label:nth-child(3),.support-form label:nth-child(4),.support-form .partner-link,.support-status { grid-column:1 / -1; }.support-form span { color:#a8d3c4; font-size:11px; font-weight:700; }.support-form input,.support-form textarea { width:100%; border:1px solid #47776b; border-radius:3px; padding:9px 10px; background:#104f46; color:#fff; font:inherit; font-size:13px; outline:0; resize:vertical; }.support-form input::placeholder,.support-form textarea::placeholder { color:#a8c8bc; }.support-form input:focus,.support-form textarea:focus { border-color:#d3eee3; }.support-status { min-height:17px; margin:0; color:#d3eee3 !important; font-size:12px !important; }
footer { max-width:1352px; margin:0 auto; padding:23px 32px 30px; display:flex; justify-content:space-between; border-top:1px solid var(--line); color:var(--muted); font-size:12px; } footer > span { color:var(--ink); font-weight:700; } footer p { margin:0; } footer div { display:flex; gap:18px; }
/* Administration */
.admin-body { background:#f4f7f5; }.admin-layout { max-width:1352px; margin:0 auto; padding:40px 32px 72px; display:grid; grid-template-columns:190px minmax(0, 1fr); gap:48px; }.admin-sidebar { display:grid; align-content:start; gap:4px; padding-top:12px; }.admin-sidebar .eyebrow { margin-bottom:12px; }.admin-sidebar a { display:flex; align-items:center; gap:9px; padding:9px 0; color:var(--muted); font-size:13px; font-weight:600; }.admin-sidebar a:hover { color:var(--green); }.admin-sidebar svg { width:16px; }.admin-sidebar span { margin-left:auto; min-width:20px; padding:2px 5px; border-radius:2px; background:var(--apricot); color:#8d5417; font-size:10px; text-align:center; }.admin-content { min-width:0; }.admin-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:30px; }.admin-heading h1 { margin:0; font-size:44px; }.admin-status { margin:0; color:var(--green); font-size:13px; font-weight:700; }.metric-grid { display:grid; grid-template-columns:repeat(4, 1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; }.metric { min-height:112px; display:grid; align-content:center; gap:8px; padding:18px 22px; border-right:1px solid var(--line); }.metric:last-child { border-right:0; }.metric span,.row-label { color:var(--muted); font-size:11px; font-weight:600; }.metric strong { font:600 27px/1 Fraunces, Georgia, serif; }.admin-section { margin-top:52px; }.section-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:15px; }.section-heading h2 { font-size:27px; }.admin-table { border-top:1px solid var(--line); background:#fff; }.admin-row { display:grid; grid-template-columns:minmax(190px, 1.3fr) minmax(120px, .65fr) minmax(100px, .55fr) 40px; align-items:center; gap:20px; min-height:78px; padding:13px 16px; border-bottom:1px solid var(--line); }.admin-provider { display:flex; align-items:center; gap:11px; min-width:0; }.admin-provider strong,.admin-row strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }.admin-provider small,.admin-row small { display:block; margin-top:3px; color:var(--muted); font-size:11px; }.switch { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:11px; font-weight:700; }.switch input { position:absolute; opacity:0; }.switch span { position:relative; width:30px; height:17px; border-radius:10px; background:#b9c5c0; transition:.15s; }.switch span::after { position:absolute; top:2px; left:2px; width:13px; height:13px; border-radius:50%; background:#fff; content:""; transition:.15s; }.switch input:checked + span { background:var(--green); }.switch input:checked + span::after { transform:translateX(13px); }.switch b { min-width:42px; font:inherit; }.icon-button { display:grid; place-items:center; width:34px; height:34px; border:0; border-radius:3px; background:transparent; }.icon-button svg { width:16px; }.icon-button:hover { background:#edf2ef; }.icon-button.destructive { color:#a14336; }.icon-button.destructive:hover { background:#fbebe7; }.admin-form { display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; margin-top:18px; padding:20px; border:1px solid var(--line); background:#fff; }.admin-form h3 { grid-column:1 / -1; margin:0 0 2px; font-size:16px; }.admin-form label { display:grid; gap:5px; }.admin-form label span { color:var(--muted); font-size:11px; font-weight:700; }.admin-form input,.admin-form select { width:100%; min-height:37px; padding:8px 9px; border:1px solid var(--line); border-radius:3px; background:#fff; color:var(--ink); outline:0; font:inherit; font-size:13px; }.admin-form input:focus,.admin-form select:focus { border-color:var(--green); }.provider-form label:nth-of-type(1),.provider-form label:nth-of-type(2) { grid-column:span 2; }.campaign-form { grid-template-columns:1.5fr 1.2fr .8fr 1fr 1fr auto; align-items:end; }.campaign-form h3 { grid-column:1 / -1; }.admin-primary { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:37px; padding:9px 12px; border:0; border-radius:3px; background:var(--green); color:#fff; font:inherit; font-size:12px; font-weight:700; white-space:nowrap; }.admin-primary:hover { background:var(--green-dark); }.admin-primary svg { width:15px; }.campaign-row { grid-template-columns:minmax(190px, 1fr) 100px minmax(190px, 1fr) 40px; }.message-list { border-top:1px solid var(--line); background:#fff; }.message-item { padding:19px 18px; border-bottom:1px solid var(--line); }.message-item.handled { background:#f6f8f7; }.message-meta,.message-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; }.message-meta strong { font-size:14px; }.message-meta span,.message-footer { color:var(--muted); font-size:11px; }.message-item p { max-width:820px; margin:9px 0 13px; font-size:14px; line-height:1.45; white-space:pre-wrap; }.message-footer a { color:var(--green); text-decoration:underline; text-underline-offset:2px; }.message-action { border:0; background:transparent; color:var(--green); font:inherit; font-size:11px; font-weight:700; text-decoration:underline; text-underline-offset:3px; }.empty-state { margin:0; padding:20px 16px; color:var(--muted); font-size:13px; }
.metric strong { font-family:Manrope, Arial, sans-serif; font-weight:700; }
@media (max-width: 900px) { .intro { grid-template-columns:1fr; gap:30px; }.results-grid { grid-template-columns:1fr; } }
 .billing-field { display:grid; grid-template-columns:minmax(0, 94px) auto; align-items:center; gap:3px 7px; }.billing-field .row-label { grid-column:1 / -1; }.billing-field input { min-height:31px; padding:5px 7px; border:1px solid var(--line); border-radius:3px; background:#fff; color:var(--ink); font:inherit; font-size:13px; outline:0; }.billing-field input:focus { border-color:var(--green); }.billing-field small { color:var(--muted); font-size:10px; white-space:nowrap; }.area-picker { position:relative; min-width:0; }.area-picker summary { display:grid; gap:4px; cursor:pointer; list-style:none; }.area-picker summary::-webkit-details-marker { display:none; }.area-picker summary strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--green); font-size:12px; text-decoration:underline; text-underline-offset:3px; }.area-choice-list { position:absolute; z-index:10; top:calc(100% + 8px); right:0; width:228px; display:grid; gap:1px; padding:7px; border:1px solid var(--line); border-radius:4px; background:#fff; box-shadow:0 12px 26px rgba(23,32,30,.15); }.area-choice { display:flex; align-items:center; gap:8px; padding:7px; border-radius:2px; color:var(--ink); font-size:12px; }.area-choice:hover { background:#eff7f2; }.area-choice input { width:14px; height:14px; accent-color:var(--green); }.area-selector { grid-column:span 2; min-width:0; margin:0; padding:0; border:0; }.area-selector legend { margin-bottom:6px; padding:0; color:var(--muted); font-size:11px; font-weight:700; }.area-selector > div { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:2px 10px; }.area-selector .area-choice { padding:5px 0; }.admin-row:not(.campaign-row) { grid-template-columns:minmax(170px, 1.2fr) minmax(110px, .6fr) minmax(130px, .8fr) minmax(95px, .5fr) 40px; }.provider-form label:nth-of-type(3) { grid-column:span 2; }.message-controls { display:flex; align-items:center; gap:14px; }.destructive-text { color:#a14336; }.tariff-picker { grid-column:1 / -1; margin:0 -16px -13px; padding:13px 16px 0; border-top:1px solid var(--line); }.tariff-picker summary { display:flex; align-items:center; justify-content:space-between; gap:16px; cursor:pointer; list-style:none; }.tariff-picker summary::-webkit-details-marker { display:none; }.tariff-picker summary strong { color:var(--green); font-size:12px; text-decoration:underline; text-underline-offset:3px; }.tariff-editor { display:grid; gap:17px; padding:16px 0 18px; }.tariff-rate-grid { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.tariff-rate { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; padding:13px; border-right:1px solid var(--line); }.tariff-rate:last-child { border-right:0; }.tariff-rate > div { grid-column:1 / -1; }.tariff-rate strong { font-size:13px; }.tariff-rate > div span,.tariff-rate label span,.tariff-time-grid label span { display:block; margin-top:2px; color:var(--muted); font-size:10px; font-weight:600; }.tariff-rate label,.tariff-time-grid label { display:grid; gap:4px; }.tariff-rate input,.tariff-time-grid input { width:100%; min-height:33px; padding:6px 7px; border:1px solid var(--line); border-radius:3px; background:#fff; color:var(--ink); font:inherit; font-size:12px; outline:0; }.tariff-rate input:focus,.tariff-time-grid input:focus { border-color:var(--green); }.tariff-time-grid { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:10px; }.tariff-save { justify-self:start; }.passenger-group-picker { display:grid; gap:5px; max-width:320px; }.passenger-group-picker span { color:var(--muted); font-size:11px; font-weight:700; }.passenger-group-picker select { min-height:36px; padding:6px 8px; border:1px solid var(--line); border-radius:3px; background:#fff; color:var(--ink); font:inherit; font-size:12px; }.tariff-help,.form-help { margin:0; color:var(--muted); font-size:12px; line-height:1.45; }.provider-form .form-help { grid-column:1 / -1; margin:2px 0 0; }
.login-page { min-height:100vh; display:grid; place-items:center; padding:28px; background:#edf3ef; }.login-shell { width:min(100%, 420px); display:grid; gap:40px; }.login-shell .brand { justify-self:start; }.login-form { display:grid; gap:18px; padding:30px; border:1px solid var(--line); border-radius:6px; background:#fff; box-shadow:0 14px 34px rgba(34,54,48,.08); }.login-form h1 { margin:0; font-size:39px; }.login-form .eyebrow { margin-bottom:8px; }.login-form label { display:grid; gap:6px; }.login-form label span { color:var(--muted); font-size:12px; font-weight:700; }.login-form input { min-height:43px; padding:9px 10px; border:1px solid var(--line); border-radius:3px; color:var(--ink); font:inherit; outline:0; }.login-form input:focus { border-color:var(--green); }.login-error { min-height:18px; margin:0; color:#a14336; font-size:12px; font-weight:600; }.login-form .admin-primary { min-height:43px; font-size:13px; }
@media (max-width: 900px) { .admin-layout { grid-template-columns:1fr; gap:15px; }.admin-sidebar { display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; padding:0; }.admin-sidebar .eyebrow { width:100%; }.admin-sidebar a { padding:4px 0; }.metric-grid { grid-template-columns:repeat(2, 1fr); }.metric:nth-child(2) { border-right:0; }.metric:nth-child(-n+2) { border-bottom:1px solid var(--line); }.admin-form,.campaign-form { grid-template-columns:repeat(2, 1fr); }.campaign-form h3 { grid-column:1 / -1; } }
@media (max-width: 640px) { .site-header { padding:0 20px; }.site-header nav { display:none; } main { padding:0 20px; }.intro { padding:48px 0 35px; }.intro h1 { font-size:42px; }.form-options { grid-template-columns:1fr 1fr; }.estimate-button { grid-column:1 / -1; margin:9px 12px 12px; justify-content:center; }.option-field { min-height:64px; }.option-field:first-child { border-right:1px solid var(--line); }.option-field:nth-child(2) { border-right:0; }.suggestion-list { left:-31px; right:-8px; }.route-summary { align-items:start; flex-direction:column; gap:17px; }.map-card { height:330px; }.quote { grid-template-columns:92px minmax(0, 1fr); align-items:start; gap:12px; }.quote-actions { grid-column:1 / -1; grid-row:2; grid-template-columns:1fr auto; align-items:end; justify-items:stretch; margin-left:104px; }.quote-price { justify-self:end; }.booking-link,.verification-action { justify-self:start; grid-column:1; grid-row:1; }.quote-price { grid-column:2; grid-row:1; }.verification-label { grid-column:1 / -1; grid-row:2; justify-self:start; }.partner-section { grid-template-columns:1fr; margin:0 -20px 35px; padding:31px 20px; gap:26px; }.partner-section h2 { font-size:28px; } footer { padding:21px 20px 28px; flex-wrap:wrap; gap:12px 20px; } footer p { width:100%; order:3; }.quotes-heading h2 { font-size:22px; }.admin-layout { padding:28px 20px 52px; }.admin-heading { align-items:start; flex-direction:column; margin-bottom:24px; }.admin-heading h1 { font-size:38px; }.metric-grid { grid-template-columns:1fr 1fr; }.metric { min-height:94px; padding:16px; }.metric strong { font-size:22px; }.admin-row,.campaign-row { grid-template-columns:1fr 38px; gap:12px; align-items:start; }.admin-row > div:not(.admin-provider),.admin-row .switch,.admin-row .area-picker,.admin-row .billing-field { grid-column:1; }.admin-row .icon-button { grid-column:2; grid-row:1; }.admin-row .switch { padding-top:4px; }.campaign-row > div:nth-child(2),.campaign-row > div:nth-child(3) { display:flex; gap:7px; align-items:baseline; }.campaign-row .row-label { white-space:nowrap; }.admin-form,.campaign-form { grid-template-columns:1fr; padding:16px; }.provider-form label:nth-of-type(1),.provider-form label:nth-of-type(2),.provider-form label:nth-of-type(3),.area-selector { grid-column:auto; }.area-selector > div { grid-template-columns:1fr; }.support-form { grid-template-columns:1fr; }.support-form label:nth-child(3),.support-form label:nth-child(4),.support-form .partner-link,.support-status { grid-column:auto; }.message-meta,.message-footer { align-items:start; flex-direction:column; gap:7px; } }
@media (max-width: 900px) { .tariff-rate-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }.tariff-rate:nth-child(2) { border-right:0; }.tariff-rate:nth-child(-n+2) { border-bottom:1px solid var(--line); }.tariff-time-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .admin-row .tariff-picker { grid-column:1 / -1; }.tariff-picker summary { align-items:flex-start; flex-direction:column; gap:5px; }.tariff-picker summary strong { white-space:normal; line-height:1.35; }.tariff-rate-grid,.tariff-time-grid { grid-template-columns:1fr; }.tariff-rate { border-right:0; border-bottom:1px solid var(--line); }.tariff-rate:last-child { border-bottom:0; } }
.form-legal { grid-column:1 / -1; margin:0; color:#a8d3c4 !important; font-size:11px !important; line-height:1.45; }.form-legal a { color:#f4f8f6; text-decoration:underline; text-underline-offset:3px; }
.pilot-gate { position:fixed; z-index:10000; inset:0; display:grid; align-content:center; justify-items:center; padding:28px; background:#f5f7f4; text-align:center; }.pilot-gate[hidden] { display:none; }.pilot-gate-mark { display:grid; place-items:center; width:48px; height:48px; margin-bottom:24px; border-radius:15px 15px 15px 5px; background:var(--green); color:#fff; font-size:25px; font-weight:800; transform:rotate(-8deg); }.pilot-gate .eyebrow { margin-bottom:11px; }.pilot-gate h1 { max-width:510px; margin-bottom:12px; font-size:42px; }.pilot-gate > p:not(.eyebrow) { max-width:390px; margin-bottom:25px; color:var(--muted); font-size:15px; line-height:1.55; }.pilot-form { width:min(100%, 360px); display:grid; gap:8px; text-align:left; }.pilot-form label { color:var(--muted); font-size:12px; font-weight:700; }.pilot-form input { width:100%; min-height:46px; padding:10px 12px; border:1px solid var(--line); border-radius:4px; background:#fff; color:var(--ink); font:inherit; outline:0; }.pilot-form input:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(17,109,97,.12); }.pilot-form button { min-height:46px; margin-top:4px; border:0; border-radius:4px; background:var(--green); color:#fff; font:inherit; font-size:14px; font-weight:700; }.pilot-form button:hover { background:var(--green-dark); }.pilot-error { min-height:18px; margin:1px 0 0; color:#a14336; font-size:12px; font-weight:700; text-align:center; }
.legal-page { max-width:860px; padding-top:76px; padding-bottom:82px; }.legal-page h1 { max-width:720px; margin-bottom:14px; font-size:52px; }.legal-lead { max-width:650px; margin-bottom:10px; color:var(--muted); font-size:18px; line-height:1.55; }.legal-updated { margin-bottom:50px; color:var(--muted); font-size:12px; }.legal-page section { max-width:760px; padding:25px 0; border-top:1px solid var(--line); }.legal-page section h2 { margin-bottom:10px; font-size:22px; }.legal-page section p,.legal-page section li { color:#43504b; font-size:14px; line-height:1.7; }.legal-page section p:last-child { margin-bottom:0; }.legal-page ul { display:grid; gap:7px; margin:0 0 14px; padding-left:20px; }.legal-page a { color:var(--green); font-weight:700; text-decoration:underline; text-underline-offset:3px; }.legal-notice { max-width:760px; margin-top:16px; padding:16px 18px; border-left:3px solid var(--yellow); background:var(--apricot); color:#624720; font-size:13px; line-height:1.6; }.legal-notice strong { color:#533614; }
@media (max-width: 640px) { .legal-page { padding-top:48px; padding-bottom:54px; }.legal-page h1 { font-size:40px; }.legal-lead { font-size:16px; }.legal-page section { padding:21px 0; }.legal-page section h2 { font-size:20px; } }
@media (max-width: 640px) { .pilot-gate h1 { font-size:34px; } }
@media (max-width: 640px) { .directory-heading { align-items:start; flex-direction:column; gap:10px; }.directory-heading > p { text-align:left; }.central-directory-list { grid-template-columns:1fr; }.central-directory-item,.central-directory-item:nth-child(odd),.central-directory-item:nth-child(even) { padding:10px 0; border-right:0; }.central-directory-item:nth-last-child(-n + 2) { border-bottom:1px solid var(--line); }.central-directory-item:last-child { border-bottom:0; } }
