/* Shuttle Command / Booking Master design system. Office and public surfaces only. */
:root {
    --sc-nav: #23313d;
    --sc-blue: #367ab4;
    --sc-blue-dark: #246292;
    --sc-ink: #233343;
    --sc-muted: #657587;
    --sc-line: #dfe6ec;
    --sc-canvas: #f5f7fa;
    --sc-sidebar-width: 236px;
}
body.sc-admin, body.sc-public {
    margin: 0 !important;
    color: var(--sc-ink) !important;
    background: var(--sc-canvas) !important;
    font-family: Inter, Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
    line-height: 1.55;
}
.sc-admin *, .sc-public * { box-sizing: border-box; }
body.sc-admin { padding: 0 0 0 var(--sc-sidebar-width) !important; min-height: 100vh; }
body.sc-admin-modal { padding: 0 !important; }
.sc-admin h1, .sc-public h1 { font-size: clamp(24px, 2.8vw, 31px) !important; line-height: 1.25; letter-spacing: -.025em; }
.sc-admin h2, .sc-public h2 { font-size: 19px !important; line-height: 1.35; }
.sc-admin h3, .sc-public h3 { font-size: 15px !important; line-height: 1.4; }
.sc-admin a, .sc-public a { color: var(--sc-blue); text-decoration: none; }
.sc-admin a:hover, .sc-public a:hover { text-decoration: underline; }
.sc-admin :is(.container, .page, .rr-wrap, .main-content, .content-wrap), .sc-content {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 28px 30px 40px !important;
    min-width: 0;
}
.sc-admin-modal :is(.container, .page, .rr-wrap) { padding: 20px !important; }
.sc-admin :is(.topbar, .nav) { display: none !important; }
.sc-admin :is(.card, .settings-card, .sc-card) {
    border: 1px solid var(--sc-line) !important;
    border-radius: 12px !important;
    background: #fff !important;
    box-shadow: none !important;
    padding: 22px !important;
}
.sc-admin :is(.sc-page-intro-card, .rr-top-shell, .page-title-card) {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin-bottom: 22px !important;
}
.sc-admin :is(.sc-page-title-icon, .rr-heading-icon) { display: none !important; }
.sc-admin :is(.subtitle, .help, .intro, .rr-sub), .sc-public :is(p, small) { color: var(--sc-muted); }
.sc-admin :is(button, .button, .btn, .sc-button, input[type="submit"]):not(.colour-swatch):not(.sc-help):not(.sc-nav-trigger):not(.shuttle-alert-button):not(.sc-menu-toggle):not(.gm-control-active) {
    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    border-radius: 7px !important;
    padding: 8px 15px !important;
    min-height: 36px;
    line-height: 1.35 !important;
    box-shadow: none !important;
}
.sc-admin :is(.save-button, .add-button, .primary, .btn-primary, .sc-button, button[type="submit"], input[type="submit"]), .sc-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 9px 16px;
    background: var(--sc-blue) !important;
    color: #fff !important;
    border: 1px solid var(--sc-blue) !important;
    border-radius: 7px;
    font: 600 13px/1.4 Inter, Arial, sans-serif;
    text-decoration: none !important;
    cursor: pointer;
}
.sc-admin :is(.cancel, .secondary, .close-button, .btn-secondary), .sc-button.sc-secondary {
    background: #fff !important;
    color: var(--sc-blue) !important;
    border: 1px solid #c3d5e4 !important;
    border-radius: 7px !important;
}
.sc-admin :is(button, a):focus-visible, .sc-public :is(button, a, input, select):focus-visible {
    outline: 3px solid #80b9e3;
    outline-offset: 3px;
}
.sc-admin button:disabled, .sc-public button:disabled { cursor: not-allowed; opacity: .55; }
.sc-admin input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="hidden"]):not([type="submit"]),
.sc-admin select, .sc-admin textarea {
    min-height: 38px;
    padding: 8px 11px !important;
    border: 1px solid #cbd5df !important;
    border-radius: 7px !important;
    background: #fff;
    font: inherit !important;
    color: var(--sc-ink);
    max-width: 100%;
}
.sc-admin textarea { min-height: 100px; }
.sc-admin input[type="checkbox"], .sc-public input[type="checkbox"] {
    accent-color: var(--sc-blue);
    width: 17px !important;
    height: 17px !important;
    flex: 0 0 17px;
}
/* Existing form names, checked state and change listeners remain intact. */
.sc-admin .toggle-switch { width: 20px !important; height: 22px !important; display: inline-flex !important; align-items: center; }
.sc-admin .toggle-switch input { position: static !important; opacity: 1 !important; margin: 0 !important; cursor: pointer; }
.sc-admin .toggle-slider { display: none !important; }
.sc-admin .toggle-row { min-height: 32px; }
.sc-admin .toggle-state { font-size: 13px; font-weight: 500; }
.sc-admin label { font-size: 13px !important; font-weight: 600; }
.sc-admin table { border-collapse: collapse; font-size: 13px !important; width: 100%; }
.sc-admin :is(th, td) { padding: 11px 13px !important; border-bottom: 1px solid var(--sc-line) !important; }
.sc-admin th { background: #f7f9fb !important; color: #536779 !important; font-weight: 600 !important; text-align: left; }
.sc-admin tr:hover td { background: #fbfcfe; }
.sc-table-scroll { max-width: 100%; overflow-x: auto; }
.sc-table-scroll > table { min-width: 560px; }
.sc-table-scroll:focus-visible { outline: 2px solid var(--sc-blue); }
.sc-admin :is(.success, .saved, .message, .test-email-result, .error) { width: fit-content; max-width: 100%; border-radius: 7px !important; padding: 10px 14px !important; }
.sc-admin :is(.modal, .customer-modal, .user-modal, .message-modal, .shuttle-alerts-modal, .modal-content, .sc-dialog, [role="dialog"]) {
    border-radius: 12px !important;
    border: 1px solid var(--sc-line) !important;
    max-width: calc(100vw - 28px) !important;
    max-height: calc(100dvh - 32px) !important;
    color: var(--sc-ink);
    font-family: inherit;
}
.sc-admin :is(.modal-head, .modal-header, .customer-modal-head, .user-modal-head, .message-modal-header, .shuttle-alerts-head) {
    background: #f9fbfd !important;
    padding: 18px 22px !important;
    border-bottom: 1px solid var(--sc-line) !important;
}
.sc-admin :is(.modal-body, .customer-modal-body, .message-modal-body) { padding: 22px !important; overflow-y: auto; }
.sc-admin :is(.modal-footer, .message-modal-footer) { padding: 16px 22px !important; border-top: 1px solid var(--sc-line); }
.sc-admin [role="dialog"]:not(.shuttle-alerts-modal) { overflow-y: auto; }
.sc-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 1000;
    width: var(--sc-sidebar-width);
    padding: 24px 14px 18px;
    overflow-y: auto;
    background: var(--sc-nav);
    color: #c6d7e4;
    display: flex;
    flex-direction: column;
}
.sc-sidebar .sc-brand {
    display: block;
    margin: 0 0 29px;
    padding: 0 10px;
    color: #fff !important;
    font-size: 23px;
    font-weight: 700;
    letter-spacing: -.03em;
    text-decoration: none;
}
.sc-brand span { font-size: 12px; font-weight: 500; letter-spacing: 0; color: #aac3d6; }
.sc-nav-heading { padding: 0 12px 9px; font-size: 10px; letter-spacing: .15em; color: #91a8b8; }
.sc-sidebar .sc-nav-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 10px 12px !important;
    margin: 2px 0;
    border: 0 !important;
    border-radius: 7px !important;
    background: transparent !important;
    color: #c6d7e4 !important;
    font: 400 13px/1.5 Inter, Arial, sans-serif !important;
    text-align: left;
    cursor: pointer;
    text-decoration: none !important;
    box-shadow: none !important;
}
.sc-sidebar .sc-nav-link:is(:hover, .active, [aria-expanded="true"]) { background: #314554 !important; color: #fff !important; }
.sc-nav-trigger > span { font-size: 19px; line-height: 1; }
.sc-flyout {
    position: fixed;
    z-index: 1002;
    width: min(265px, calc(100vw - 32px));
    padding: 8px;
    max-height: calc(100dvh - 32px);
    overflow-y: auto;
    border: 1px solid var(--sc-line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 28px #0003;
}
.sc-flyout[hidden] { display: none !important; }
.sc-sidebar .sc-flyout :is(a, strong) { display: block; padding: 9px 11px; font-size: 13px; color: var(--sc-ink) !important; text-decoration: none; }
.sc-flyout strong { border-bottom: 1px solid var(--sc-line); margin-bottom: 4px; }
.sc-flyout a:hover { background: #edf4fa; border-radius: 5px; }
.sc-operations-heading { margin-top: 24px; }
.sc-sidebar .shuttle-live-strip { display: grid; gap: 6px; margin: 0; }
.sc-sidebar .shuttle-live-item {
    display: flex !important;
    align-items: center;
    gap: 10px;
    padding: 9px 12px !important;
    min-height: 42px;
    color: #c6d7e4 !important;
    background: #1d2933 !important;
    border: 0 !important;
    border-radius: 7px !important;
    text-decoration: none !important;
    text-align: left;
}
.sc-sidebar .shuttle-live-icon svg { width: 19px; height: 19px; }
.sc-sidebar .shuttle-live-copy { display: flex; flex-direction: column; }
.sc-sidebar .shuttle-live-value { font-size: 13px; font-weight: 600; }
.sc-sidebar .shuttle-live-label { font-size: 11px; color: #9db4c3; }
.sc-sidebar .shuttle-alert-button { width: 100%; font-family: inherit; cursor: pointer; }
.sc-sidebar .shuttle-live-alerts.has-alerts { border-left: 3px solid #f8b45c !important; }
.sc-sidebar-user { display: grid; gap: 7px; margin-top: auto; padding: 22px 12px 0; font-size: 12px; }
.sc-sidebar-user > span { font-weight: 600; color: #fff; overflow-wrap: anywhere; margin-bottom: 3px; }
.sc-sidebar .sc-sidebar-user a { color: #aec8da !important; }
.sc-menu-toggle { display: none; }
.sc-menu-backdrop[hidden] { display: none; }
.sc-eyebrow { font-size: 10px; font-weight: 600; letter-spacing: .15em; color: var(--sc-muted); margin-bottom: 9px; }
.sc-page-intro { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-bottom: 24px; }
.sc-page-intro h1 { margin: 0 0 8px; }
.sc-page-intro p { margin: 0; color: var(--sc-muted); }
.sc-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin: 0 0 22px; }
.sc-stat { display: flex; flex-direction: column; gap: 8px; }
.sc-stat > span { color: var(--sc-muted); font-size: 12px; }
.sc-stat > strong { font-size: 30px; font-weight: 600; line-height: 1.3; }
.sc-section-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.sc-section-head h2 { margin: 0; }
.sc-feature-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.sc-workspace-shortcuts { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 22px; }
.sc-workspace-shortcuts h2 { color: var(--sc-ink); }
.sc-workspace-shortcuts p { margin: 0; color: var(--sc-muted); }
.sc-admin .sc-help, .sc-public .sc-help {
    display: inline-flex !important;
    vertical-align: middle;
    align-items: center;
    justify-content: center;
    width: 20px !important;
    height: 20px !important;
    min-height: 20px !important;
    padding: 0 !important;
    margin-left: 7px;
    border: 1px solid #a9c8df !important;
    border-radius: 50% !important;
    background: #edf4fa !important;
    color: var(--sc-blue-dark) !important;
    font: 600 12px/1 Arial, sans-serif !important;
    cursor: pointer;
}
.sc-help-popover {
    position: fixed;
    z-index: 2147483000;
    width: min(320px, calc(100vw - 24px));
    padding: 14px 16px;
    background: #fff;
    color: var(--sc-ink);
    font: 400 13px/1.55 Inter, Arial, sans-serif;
    border: 1px solid #bcd1e1;
    border-radius: 8px;
    box-shadow: 0 8px 26px #102a4326;
    overflow-y: auto;
    max-height: calc(100dvh - 24px);
}
.sc-password-toggle {
    display: flex !important;
    align-items: center;
    gap: 8px;
    margin: 9px 0 18px !important;
    width: fit-content;
    font-size: 13px !important;
    font-weight: 400 !important;
    cursor: pointer;
}
.sc-password-toggle input { margin: 0 !important; }
.sc-admin .password-wrap input, .sc-public .password-wrap input { padding-right: 11px !important; }
.sc-public-nav {
    max-width: 1240px;
    margin: 0 auto;
    padding: 24px 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}
.sc-public-nav .sc-public-brand { color: var(--sc-ink); font-size: 20px; font-weight: 700; letter-spacing: -.03em; text-decoration: none; }
.sc-public-brand span { display: block; font-size: 11px; font-weight: 400; letter-spacing: 0; color: var(--sc-muted); }
.sc-public-nav > div { display: flex; gap: 24px; align-items: center; font-size: 13px; }
.sc-home { max-width: 1240px; margin: 0 auto; padding: 0 30px 60px; }
.sc-home-hero { display: grid; grid-template-columns: 1.1fr 1fr; gap: 70px; align-items: center; padding: 76px 0 90px; }
.sc-public .sc-home-hero h1 { font-size: clamp(36px, 4.7vw, 59px) !important; margin: 14px 0 24px; font-weight: 600; }
.sc-home-lead { font-size: 17px; max-width: 540px; line-height: 1.75; }
.sc-action-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.sc-home-caption { margin: 18px 0 0; font-size: 12px; }
.sc-home-illustration { padding: 26px; border: 1px solid var(--sc-line); border-radius: 16px; background: #fff; box-shadow: 0 24px 60px #23313d0c; }
.sc-illustration-label { font-size: 10px; font-weight: 600; letter-spacing: .13em; color: var(--sc-muted); margin-bottom: 24px; }
.sc-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #2a8068; margin-right: 7px; }
.sc-route-stop { display: flex; gap: 17px; align-items: center; position: relative; padding: 0 0 28px; }
.sc-route-stop:not(:nth-last-child(2))::after { content: ''; width: 1px; background: #d4e3ef; position: absolute; top: 36px; bottom: 0; left: 18px; }
.sc-route-stop > span { width: 37px; height: 37px; border-radius: 9px; display: grid; place-items: center; background: #edf4fa; color: var(--sc-blue); font-size: 12px; font-weight: 600; flex: 0 0 auto; }
.sc-route-stop strong { font-size: 14px; }
.sc-route-stop small { display: block; margin-top: 3px; font-size: 12px; }
.sc-illustration-footer { border-top: 1px solid var(--sc-line); padding-top: 18px; color: var(--sc-muted); font-size: 12px; }
.sc-home-section { padding: 38px 0; scroll-margin-top: 20px; }
.sc-public .sc-home-section > h2 { font-size: 27px !important; margin-bottom: 28px; }
.sc-feature-grid article { padding: 24px; border: 1px solid var(--sc-line); border-radius: 12px; background: #fff; }
.sc-feature-grid article p { font-size: 13px; margin-bottom: 0; }
.sc-feature-number { font-size: 9px; letter-spacing: .13em; color: var(--sc-blue); }
.sc-feature-grid article h3 { margin: 14px 0 12px; }
.sc-home-cta { display: flex; justify-content: space-between; align-items: center; gap: 25px; margin-top: 25px; padding: 32px; background: #eaf1f6; border-radius: 12px; }
.sc-home-cta h2 { margin: 0 0 9px; }
.sc-home-cta p { margin: 0; }
.sc-public-footer { padding: 24px 30px; max-width: 1240px; margin: 0 auto; border-top: 1px solid var(--sc-line); display: flex; justify-content: space-between; gap: 20px; font-size: 12px; color: var(--sc-muted); }
.sc-public-footer > div { display: flex; gap: 20px; }
body.sc-auth { display: block !important; padding: 0 0 48px !important; min-height: 100vh; }
.sc-auth .login-card, .sc-auth .password-card, .sc-auth > .card, .sc-auth > .container {
    width: min(460px, calc(100% - 32px)) !important;
    margin: 55px auto 20px !important;
    padding: 30px !important;
    background: #fff !important;
    border: 1px solid var(--sc-line) !important;
    border-radius: 12px !important;
    box-shadow: none !important;
    text-align: left;
}
.sc-auth .brand { text-align: left !important; margin-bottom: 24px; }
.sc-auth .brand h1 { margin-bottom: 8px; font-size: 24px !important; }
.sc-auth .brand p { font-size: 13px; }
.sc-auth label { display: block; margin-bottom: 7px; font-size: 13px; font-weight: 600; }
.sc-auth input:not([type="checkbox"]):not([type="hidden"]) {
    width: 100%; min-height: 41px; padding: 9px 11px !important; border: 1px solid #cbd5df; border-radius: 7px; font: inherit;
}
.sc-auth .field { margin-bottom: 18px; }
.sc-auth button[type="submit"] { width: 100%; background: var(--sc-blue) !important; color: #fff; border: 1px solid var(--sc-blue); border-radius: 7px !important; padding: 10px 15px !important; font: 600 13px/1.5 Inter, Arial, sans-serif; cursor: pointer; }
.sc-auth :is(.error, .success, .sc-notice) { padding: 12px 14px; border-radius: 7px; margin: 0 0 18px; font-size: 13px; }
.sc-auth .error, .sc-error { background: #fff1f2; color: #a33131; }
.sc-auth .success { background: #edf8f2; color: #2a8068; }
.sc-auth .remember-row { display: flex; gap: 8px; align-items: center; margin-bottom: 18px; font-size: 13px; }
.sc-auth .remember-row label { margin: 0; font-weight: 400; }
.sc-auth .back-link { text-align: center; margin-top: 18px; font-size: 13px; }
.sc-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.sc-form-field label { display: block; margin-bottom: 7px; }
.sc-form-field input, .sc-form-field select, .sc-form-field textarea { width: 100%; }
.sc-form-field { margin-bottom: 16px; }
.sc-check-row { display: flex !important; gap: 9px; align-items: center; margin: 10px 0; }
.sc-check-row input { margin: 0; }
.sc-notice { border: 1px solid var(--sc-line); border-radius: 7px; padding: 12px 15px; background: #edf4fa; margin: 0 0 20px; }
.sc-audit-reason { color: var(--sc-muted); font-size: 12px; }
@media (max-width: 1080px) {
    .sc-stat-grid, .sc-feature-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .sc-admin :is(.container,.page,.rr-wrap), .sc-content { padding: 24px !important; }
    .sc-home-hero { gap: 36px; }
    .sc-admin .layout { grid-template-columns: 1fr !important; }
}
@media (max-width: 760px) {
    body.sc-admin { padding: 58px 0 0 !important; }
    body.sc-admin-modal { padding: 0 !important; }
    .sc-sidebar { transform: translateX(-100%); transition: transform .18s ease; width: 248px; }
    body.sc-menu-open .sc-sidebar { transform: none; }
    .sc-menu-toggle { display: block; position: fixed; left: 14px; top: 12px; z-index: 1001; padding: 7px 14px; background: #fff; color: var(--sc-blue); border: 1px solid #c3d5e4; border-radius: 7px; font: 600 13px/1.5 Arial; cursor: pointer; }
    body.sc-menu-open .sc-menu-toggle { left: 166px; background: #314554; color: #fff; border-color: #486173; }
    .sc-menu-backdrop { position: fixed; inset: 0; z-index: 999; background: #102a4355; }
    .sc-admin :is(.container,.page,.rr-wrap), .sc-content { padding: 18px 14px 30px !important; }
    .sc-page-intro { flex-wrap: wrap; align-items: flex-start; }
    .sc-stat-grid { gap: 10px; }
    .sc-stat > strong { font-size: 25px; }
    .sc-admin :is(.card,.settings-card,.sc-card) { padding: 18px !important; }
    .sc-workspace-shortcuts, .sc-form-grid { grid-template-columns: 1fr; }
    .sc-public-nav { padding: 18px; }
    .sc-public-nav > div { gap: 12px; }
    .sc-public-nav > div > a:not(.sc-button) { display: none; }
    .sc-home { padding: 0 18px 30px; }
    .sc-home-hero { grid-template-columns: 1fr; padding: 42px 0; gap: 32px; }
    .sc-home-lead { font-size: 16px; }
    .sc-home-cta { flex-direction: column; align-items: flex-start; padding: 24px; }
    .sc-public-footer { padding: 22px 18px; flex-wrap: wrap; }
    .sc-auth .login-card, .sc-auth .password-card, .sc-auth > .card, .sc-auth > .container { margin-top: 26px !important; padding: 24px !important; }
    .sc-admin :is(.modal-head,.modal-header,.customer-modal-head,.user-modal-head,.message-modal-header) { padding: 16px !important; }
}
@media (max-width: 420px) { .sc-feature-grid { grid-template-columns: 1fr; } }
@media print {
    body.sc-admin { padding: 0 !important; background: #fff !important; }
    .sc-sidebar, .sc-menu-toggle, .sc-menu-backdrop, .sc-help, .sc-help-popover { display: none !important; }
    .sc-admin :is(.container,.page,.rr-wrap), .sc-content { padding: 0 !important; }
    .sc-table-scroll { overflow: visible !important; }
}
.sc-admin label:has(+ .sc-field-help), .sc-public label:has(+ .sc-field-help) { display: inline-block !important; }
.sc-field-help { display: inline-block; vertical-align: middle; margin-bottom: 6px; }
.sc-field-help + :is(input, select, textarea) { display: block; }
.sc-field-help .sc-help { margin-left: 4px; }
.sc-admin > .sc-notice { width: fit-content; max-width: calc(100% - 60px); margin: 24px 30px 0; }
@media (max-width: 760px) { .sc-admin > .sc-notice { max-width: calc(100% - 28px); margin: 18px 14px 0; } }
