/* Shared reading scale and task hierarchy. Loaded after legacy page styles. */
:root {--border-input:#74746f; --error-border:#bd6973;}
html[data-theme="light"] {--border-input:#85857d; --error-border:#a3404b;}
body {font-size:1rem; line-height:1.55;}
button,input,select,textarea {font:inherit;}
.booking-card,.info-card,.confirmation-card,.platform-card {box-shadow:none;}
.booking-card,.confirmation-card {border-color:var(--border-input);}
.card-heading p,.hero-text,.contact-heading p,.confirmation-heading p,
.platform-shell p,.policy-card p,.local-page p {line-height:1.65;}
.field-help,.field-error,.form-policy,.form-reassurance,.request-note,
.price-option-content small,.info-card p,.receipt-fare p,.receipt-route small,
.receipt-contact,.receipt-pickup,.booking-reference,.return-trip p,
.review-after-trip p,.install-guide-note,.auth-form-status {font-size:.9375rem; line-height:1.6;}
.form-group label,.form-group>legend,.price-options legend {font-size:1rem;}
.booking-card input:not([type=radio]):not([type=checkbox]),.booking-card select,
.confirmation-form input,.platform-shell input:not([type=checkbox]),.platform-shell select {font-size:1rem; min-height:48px;}
.primary-button,.platform-shell .primary-button {min-height:52px; font-size:1rem; font-weight:700; box-shadow:none; padding:12px 16px;}
.secondary-button,.stop-button,.remove-stop,.picker-icon-button {min-height:44px;}
.secondary-button,.stop-button,.remove-stop,.platform-shell button:not(.primary-button) {border-color:var(--border-input);}
.remove-stop,.picker-icon-button {min-width:44px;}
.platform-form input[type=checkbox],.availability-control input {accent-color:var(--gold-text); flex-shrink:0;}
.check-label {display:flex!important; align-items:flex-start; gap:12px; min-height:44px; padding:8px 0; cursor:pointer;}
.check-label input[type=checkbox] {margin:2px 0 0;}
.field-help {margin-top:8px;}
.booking-assurance {margin:0 0 22px; padding:0 0 18px; border-bottom:1px solid var(--border); color:var(--text-secondary); font-size:.9375rem;}
.request-note {padding:16px; border-left:3px solid var(--gold); background:var(--gold-soft); border-radius:0 8px 8px 0;}
.form-policy {color:var(--text-secondary);}
.form-policy a,.account-intro a,.platform-shell p a {text-underline-offset:3px;}
.platform-shell :is(h1,h2,h3),.confirmation-heading h1 {overflow-wrap:anywhere;}
.platform-shell :is(h1,h2,h3) {line-height:1.3;}
.platform-card h2 {margin-bottom:16px;}
.booking-status {font-size:.9375rem; font-weight:600; line-height:1.5;}
.booking-item h3 {font-size:1rem; letter-spacing:0; overflow-wrap:anywhere;}
.journey-route {font-weight:600;}
.journey-route span:not(.sr-only) {min-width:0; overflow-wrap:anywhere;}
.journey-facts {display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:16px; margin:16px 0;}
.journey-facts dt {font-size:.875rem; color:var(--text-secondary);}
.journey-facts dd {margin:4px 0 0; font-size:1rem; font-weight:600; overflow-wrap:anywhere;}
.booking-actions {gap:12px;}
.booking-actions:empty {display:none;}
.info-number {flex:0 0 2ch; white-space:nowrap;}
.booking-actions button {min-height:48px;}
.platform-shell .danger-button {background:transparent;}
.platform-card summary {font-size:1rem; font-weight:600; min-height:48px;}
.platform-card summary+p {margin-top:16px;}
.platform-card summary~form {margin-top:20px;}
.platform-card details>summary {font-size:1rem;}
.notification-settings>summary {color:var(--text);}
.empty-state {padding:18px 0; color:var(--text-secondary); line-height:1.65;}
.dashboard-summary {font-size:.9375rem; color:var(--text-secondary);}
.operations-status p {margin:8px 0;}
.operations-status p:empty,#app-error:empty,[data-notification-warning]:empty {display:none;}
.operations-status {padding:16px 24px;}
.admin-jump-links {display:flex; flex-wrap:wrap; gap:8px 20px; margin:16px 0;}
.admin-jump-links a {display:inline-flex; align-items:center; min-height:44px; font-weight:600; color:var(--text); text-underline-offset:5px;}
.admin-shell .platform-grid {align-items:start;}
.admin-shell .dashboard-heading {margin-bottom:16px;}
.admin-shell .platform-grid>section,.admin-shell aside>.platform-card:first-child {margin-top:0;}
.admin-shell aside {min-width:0;}
.admin-filters {display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; margin-bottom:12px;}
.admin-shell #worker-status {font-size:.9375rem;}
.driver-session .field-help {max-width:65ch;}
.driver-controls .availability-control {display:flex; align-items:center; gap:12px; min-height:48px; margin:0; cursor:pointer;}
.offer-card {border-width:2px;}
.offer-card .booking-actions button {min-height:60px; font-size:1.0625rem;}
.offer-heading {align-items:flex-start;}
.offer-heading h2 {max-width:16ch;}
.offer-countdown {font-size:2.5rem; line-height:1.2; flex-shrink:0;}
.offer-help {font-size:.9375rem;}
.offer-card .booking-item {padding:12px 0;}
.offer-card .booking-item h3 {font-size:.875rem; font-weight:500; color:var(--text-secondary);}
.offer-card .booking-status {display:none;}
.password-control {display:flex; align-items:stretch; gap:8px; margin-top:8px;}
.password-control input {min-width:0; margin-top:0!important; flex:1;}
.password-control button {flex-shrink:0; min-width:52px; min-height:48px; padding:8px; font-size:.875rem;}
.app-header {border-top:0; border-bottom:1px solid var(--border); background:var(--card-secondary);}
.app-header-inner {padding-top:10px; padding-bottom:10px;}
.app-header-title {font-size:1rem;}
.app-header-title span span {font-size:.875rem; max-width:none; line-height:1.5;}
.app-header-button {font-size:.9375rem; min-height:44px; padding:10px 14px;}
.app-controls {padding:0 24px; gap:4px 16px; border-top:1px solid var(--border);}
.app-controls a,.app-controls button {flex:0 1 auto; flex-direction:row; min-width:0; min-height:44px; border:0; border-radius:4px; padding:8px 4px; background:transparent; color:var(--text-secondary); font-size:.875rem; line-height:1.4; gap:6px;}
.app-controls :is(a,button):hover {color:var(--text); background:var(--gold-soft);}
.app-controls .ui-icon {width:16px; height:16px;}
.app-controls p {font-size:.875rem; padding:4px 0 10px; line-height:1.5;}
.app-preview {transform:none; box-shadow:none;}
.account-links a {display:inline-flex; align-items:center; min-height:44px;}
.account-utilities {margin-top:24px;}
.account-utilities form {margin-top:16px;}
.account-tabs {font-size:1rem;}
#mobile-quote-slot #live-quote {box-shadow:0 2px 8px var(--shadow); border-color:var(--border-input);}
#live-quote-label,#live-quote-note {font-size:.875rem; line-height:1.5;}
#live-quote-price {font-variant-numeric:tabular-nums;}
#live-quote-note {color:var(--text-secondary);}
.site-footer {font-size:.9375rem; line-height:1.65;}
.site-footer a {text-underline-offset:3px;}
.site-footer .footer-copyright a {display:inline-flex; align-items:center; min-height:44px;}
.policy-card p,.policy-card li,.local-page p,.local-page li,.travel-information p {font-size:1rem; line-height:1.7;}
.policy-card,.local-page,.travel-information,.info-card,.site-footer {overflow-wrap:anywhere;}
@media(max-width:760px) {
    .page-container {padding:28px 16px 48px;}
    .hero {margin-bottom:28px; text-align:left;}
    .hero h1 {font-size:1.875rem; line-height:1.2; max-width:22ch;}
    .hero-text {font-size:1rem; margin:12px 0 0;}
    .hero-badge {margin-bottom:12px; padding:0; border:0; background:transparent; border-radius:0; font-size:.875rem;}
    .hero-route {display:none;}
    .booking-layout {gap:24px;}
    .booking-card,.info-card,.confirmation-card {padding:20px; border-radius:16px;}
    .card-heading {gap:8px; margin-bottom:16px;}
    .card-heading h2 {font-size:1.5rem;}
    .card-heading p {font-size:1rem;}
    .booking-step-badge,.confirmation-step {font-size:.875rem; white-space:normal;}
    .booking-assurance {margin-bottom:20px;}
    .form-group {margin-bottom:22px;}
    .trip-fields .form-group label {padding-left:0;}
    .trip-fields::before {display:none;}
    .stop-button {margin-bottom:20px; padding:10px 12px; font-size:.9375rem;}
    .price-options {gap:12px;}
    .price-option {padding:14px; min-height:68px;}
    .price-option-content strong {font-size:1rem;}
    .price-option-content small {font-size:.9375rem;}
    .platform-shell {margin:24px auto 40px; padding:0 16px;}
    .platform-card {padding:20px; border-radius:16px; margin:20px 0;}
    .platform-shell h1 {font-size:1.75rem;}
    .platform-card h2 {font-size:1.25rem;}
    .dashboard-heading {gap:12px; margin-bottom:24px;}
    .dashboard-heading .app-eyebrow {margin-bottom:6px;}
    [data-app="driver"] .dashboard-heading .app-eyebrow {display:none;}
    [data-app="driver"] .dashboard-heading h1 {font-size:1.5rem; margin-bottom:8px;}
    [data-app="driver"] .dashboard-heading {margin-bottom:16px; gap:8px;}
    .platform-shell p,.platform-form label {font-size:1rem;}
    .platform-shell .field-help,.platform-shell .dashboard-summary,.platform-shell .offer-help {font-size:.9375rem;}
    .platform-form {gap:20px;}
    .operations-status {padding:12px 16px;}
    .operations-status p {font-size:.9375rem;}
    .admin-filters {grid-template-columns:1fr; gap:4px;}
    .admin-jump-links {justify-content:space-between; gap:4px 12px;}
    .admin-jump-links a {font-size:.9375rem;}
    .app-controls {padding:0 12px; justify-content:space-between; gap:0 4px;}
    .app-controls a,.app-controls button {flex:0 1 auto; flex-direction:row; padding:8px 4px; font-size:.875rem;}
    .app-header-inner {padding:12px 16px; gap:12px; flex-wrap:wrap;}
    .app-header-title {min-width:0; flex:1 1 120px; gap:10px; font-size:.875rem;}
    .app-header-title span span {display:none;}
    .app-header-button {font-size:.875rem;}
    .brand-name {font-size:.9375rem;}
    .brand-subtitle {font-size:.8125rem;}
    .header-call,.theme-toggle {width:44px; min-width:44px; min-height:44px;}
    .header-inner {gap:12px;}
    .header-actions {gap:6px; flex-shrink:0;}
    .app-install-page {padding:24px 16px 48px;}
    .app-install-hero h1 {font-size:2rem;}
    .app-section-heading h2 {font-size:1.5rem;}
    .install-guide {padding:20px;}
    .app-preview {transform:none;}
    .confirmation-container {padding:24px 16px 48px;}
    .confirmation-heading h1 {font-size:1.65rem;}
    .receipt-fare {padding:20px 0;}
    .receipt-route strong {font-size:1rem; overflow-wrap:anywhere;}
    .receipt-route small {font-size:.9375rem;}
    .site-footer {margin:0 16px; gap:24px;}
    .site-footer .footer-copyright {gap:8px;}
    .policy-card,.local-card {padding:20px;}
    html[data-compact-viewport="true"] {scroll-padding-top:12px;}
    html[data-compact-viewport="true"] .site-header,
    html[data-compact-viewport="true"] #mobile-quote-slot {position:static;}
    html[data-compact-viewport="true"] #booking-form :is(input,select,button) {scroll-margin-top:12px;}
}
@media(prefers-reduced-motion:no-preference) {
    .app-controls :is(a,button) {transition:color 150ms ease,background-color 150ms ease;}
}
