/* V4 visual system — four sister palettes, one typographic family. High-contrast labels. */
[hidden]{display:none!important}
:root{--ink:#233c35;--muted:#54675d;--ink-dark:#244539}
body{color:#233c35}
.hero h1 em{color:#9d675d!important}
.hero-left>p,.section-desc,.fleet-price small,.summary-bottom,.introbar,.footer-bottom{color:#455d52!important}
.top-nav a,.hero-bottom-inner>span,.hero-caption span{color:#3c594c!important}
.field>span:first-child,.booking-form-pane .form-block-heading h3,.metric-label,.route-metadata small,.modal-elegant .field>span:first-child{color:#38574a!important}
.form-control,.form-select{color:#203d34!important;border:1px solid #adc3b7!important;font-weight:600!important;background-color:#fff!important}
.form-control::placeholder{color:#637b6f!important;opacity:1}
.form-control:focus,.form-select:focus{border-color:#3e765d!important;box-shadow:0 0 0 3px #aed5bc88!important}
.booking-form-pane{border:1px solid #e1eadf;background:#fffefb;box-shadow:0 19px 46px #254b3512}
.mode-button{border:1px solid #cfddd1!important;background:#f9fbf8!important}
.mode-button.is-active{border-color:#507d66!important;background:#e0eee3!important;box-shadow:inset 0 0 0 1px #699782}
.mode-label b{color:#233d33!important}
.mode-label small{color:#455f53!important}
.service-rule{margin:20px 0 4px;display:flex;align-items:center;gap:14px;background:#e9f2eb;border:1px solid #c9dfce;padding:16px 18px;border-radius:16px}
.service-rule.is-chauffeur{background:#f0e9f4;border-color:#d9cae5}
.service-rule-icon{width:42px;height:42px;flex:0 0 42px;border-radius:14px;display:grid;place-items:center;background:#fff;color:#2d6951}
.service-rule b{display:block;font-size:14px;color:#254437;letter-spacing:-.02em}
.service-rule small{display:block;font-size:12px;color:#496155;line-height:1.55;margin-top:5px}
.form-block-heading{margin:26px 0 15px}
.form-block-heading h3{font-size:16px;font-weight:820}
.option-explainer{display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.55;color:#3b6657;margin:14px 0;padding:12px 14px;background:#edf4ef;border-radius:12px}
.option-explainer svg{flex:0 0 auto;margin-top:2px}
.location-field{display:grid;gap:9px;margin-top:18px;padding:16px;background:#f4f7f4;border:1px solid #d5e3d9;border-radius:16px}
.location-field-heading{display:flex;gap:9px;align-items:center;justify-content:space-between;font-weight:790;font-size:12px;color:#2a4f3e}
.required-chip{font-size:9px;font-weight:900;letter-spacing:.07em;padding:5px 8px;border-radius:20px;background:#e5eee7;color:#3c7052}
.location-entry{display:flex;align-items:stretch;gap:8px}.location-entry .form-control{min-width:0;flex:1}
.map-pick-button{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;border:1px solid #b0cabe;border-radius:11px;background:#dfebe2;color:#254a3a;font-size:11px;padding:8px 12px;font-weight:820}.map-pick-button:hover{background:#cae0d2}
.location-feedback{display:flex;gap:7px;align-items:flex-start;font-size:11px;line-height:1.5;color:#486957}.location-feedback svg{flex:0 0 auto}
.location-modal{border:1px solid #d8e7db!important;background:#fffdf9}.location-modal .modal-header{background:#f3f8f3}.location-modal-grid{display:grid;grid-template-columns:1.34fr 0.86fr;gap:24px;align-items:stretch}
.location-map-area{border-radius:18px;border:1px solid #d8e8da;background:#f2f7f2;overflow:hidden;min-height:245px}.location-map-area svg{width:100%;height:auto;display:block;cursor:crosshair;touch-action:manipulation}.location-map-area svg:focus{outline:2px solid #688c78}
.location-legend{display:flex;align-items:flex-start;gap:8px;font-size:11px;line-height:1.55;color:#4b6356;margin-top:9px}.location-legend svg{flex:0 0 auto}
.location-fields-panel{display:flex;flex-direction:column;gap:13px;padding:6px 0}.location-fields-panel .extra-gap{margin-top:0}.location-status{color:#516b5c;border:1px dashed #cbd9ce;background:#f2f7f0;padding:10px 12px;border-radius:10px;font-size:11px;line-height:1.6}
.geolocate-button{display:flex;align-items:center;gap:9px;border:1px solid #d4e1d6;color:#2d624e;background:#eaf3ec;padding:12px;border-radius:12px;font-weight:780;font-size:12px}
.geolocate-button:hover{background:#d8eadc}
.austria-map-svg{display:block;width:100%;height:auto}.route-map svg{display:block;width:100%;height:auto}
.map-mini-caption{font-size:11px;line-height:1.5;display:grid;gap:6px;color:#425f51!important;align-items:start;padding:12px 16px}.map-mini-caption strong{color:#2a5541;font-size:12px}.map-mini-caption span{overflow-wrap:anywhere}
.booking-locations-note{font-size:12px;line-height:1.65;color:#2b5544;background:#edf4ef;border-radius:12px;padding:11px 14px;margin:13px 0;overflow-wrap:anywhere;font-weight:600}
.route-metadata small,.metric-foot,.metric-label,.record-desc,.job-copy p,.statement-table span,.panel-card-header small,.portal-heading p,.panel-eyebrow,.breadcrumbs,.view-label,.panel-table small,.panel-table thead th{color:#4f665b!important}
.record-main .record-desc,.job-copy p{line-height:1.55;overflow-wrap:anywhere}
.record-main .record-desc{display:block}
.job-copy p{font-size:11px!important}
.job-copy b,.record-main b,.panel-table td b{color:#283f38}
.panel-card,.metric-card{box-shadow:0 10px 24px #2f4f460b}
/* Public masthead is sage and cream. Three portal themes deliberately differ. */
#customerPortal{--ink:#233e5c;--ink-dark:#24415e;--view-ink:#233e5c;--view-light:#e4edf8;--view-soft:#f3f7fc;--view-warm:#dce8f6;background:#f2f6fc;color:#233e5c}
#driverPortal{--ink:#493459;--ink-dark:#493459;--view-ink:#493459;--view-light:#f0e8f5;--view-soft:#faf6fc;--view-warm:#e9ddf0;background:#f7f3fa;color:#493459}
#adminPortal{--ink:#613e35;--ink-dark:#613e35;--view-ink:#613e35;--view-light:#f6e9e0;--view-soft:#fcf7f3;--view-warm:#f0dccc;background:#fbf5f1;color:#613e35}
.portal-app .portal-sidebar{background:var(--view-soft);border-right-color:var(--view-warm)}
.portal-app .workspace-header{background:color-mix(in srgb,var(--view-soft) 85%,white 15%);border-bottom-color:var(--view-warm)}
.portal-app .portal-heading h1,.portal-app .panel-card-header h2,.portal-app .metric-number,.portal-app .next-ride-card h3,.portal-app .panel-card-header h3{color:var(--view-ink)!important}
.portal-app .sidebar-links a{color:var(--view-ink);opacity:.83}
.portal-app .sidebar-links a.is-active{background:var(--view-warm);color:var(--view-ink);opacity:1}
.portal-app .sidebar-links a svg{color:var(--view-ink)}
.portal-app .sidebar-links a:hover{background:var(--view-warm);color:var(--view-ink)}
.portal-app .portal-brand .logo,.portal-app .back-link,.portal-app .panel-card-header>a{color:var(--view-ink)}
.portal-app .sidebar-note,.portal-app .sidebar-note.driver-note{background:var(--view-warm);color:var(--view-ink)}
.portal-app .sidebar-note small,.portal-app .demo-select,.portal-app .breadcrumbs,.portal-app .portal-heading p,.portal-app .metric-foot,.portal-app .record-desc,.portal-app .job-copy p{color:var(--view-ink)!important;opacity:.85}
.portal-app .panel-card,.portal-app .metric-card{border-color:var(--view-warm)}
.portal-app .work-home,.portal-app .demo-badge,.portal-app .filter-pill.is-active{background:var(--view-ink);color:white}
.portal-app .pill-btn.pill-dark,.portal-app .btn-small{background:var(--view-ink);color:white}
.portal-app .btn-soft,.portal-app .btn-outline-small{background:var(--view-warm);color:var(--view-ink)}
.portal-app .view-label,.portal-app .panel-eyebrow,.portal-app .panel-eyebrow::before,.portal-app .breadcrumbs b{color:var(--view-ink)!important}
.portal-app .metric-card.color-mint{background:#e3f1ee;border-color:#d3e3df}.portal-app .metric-card.color-lilac{background:#e9e5f6;border-color:#dbd6ec}.portal-app .metric-card.color-peach{background:#f8e6dc;border-color:#efddcf}.portal-app .metric-card.color-sun{background:#f4efd9;border-color:#e9e3ce}
#customerPortal .next-ride-card{background:#dce8f6}#driverPortal .driver-earnings-hero{background:#e7daf1}#adminPortal .chart-bar{background:linear-gradient(0deg,#bc9179,#f0d3be)}
#customerPortal .record-art{background:#e4ebf8}#driverPortal .job-date{background:#ede3f4}#adminPortal .vehicle-panel-media{background:#f4e9df}
.portal-app .panel-table tbody td{color:#334e48}.portal-app .panel-table small,.portal-app .panel-table thead th{color:#4c645d!important}
@media(max-width:740px){.location-modal-grid{grid-template-columns:1fr}.location-map-area{min-height:0}.location-modal .modal-header{padding-bottom:12px}.location-modal .modal-body{padding-top:15px}.location-field{padding:13px}.location-entry{flex-direction:column}.location-entry .map-pick-button{justify-content:center;min-height:44px}.location-fields-panel{gap:10px}.location-modal-grid{gap:10px}.map-mini-caption{font-size:10px}}
@media(max-width:420px){.mode-label small{font-size:10px!important}.service-rule{padding:13px}.service-rule b{font-size:12px}.service-rule small{font-size:11px}.location-field-heading{align-items:start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.hero-art [data-parallax],.hero-right{transform:none!important}}
/* Prevent the booking form grid's intrinsic min-size from causing horizontal overflow. */
.booking-grid,.booking-form-pane,.booking-aside,.summary-card{min-width:0}
@media(max-width:1020px){.booking-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:550px){.booking-form-pane{width:100%;max-width:100%;overflow:hidden}.mode-options{min-width:0}.mode-button{min-width:0}}
