.spt-front{--spt-border:#dcdcde;--spt-bg:#fff;--spt-soft:#f6f7f7;--spt-text:#1d2327;--spt-muted:#646970;max-width:1200px;margin:24px auto;color:var(--spt-text);font:inherit}.spt-front *{box-sizing:border-box}.spt-front-head{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.spt-front-head h2{margin:.15rem 0 0;font-size:clamp(1.5rem,3vw,2.3rem)}.spt-kicker{text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:700;color:var(--spt-muted)}.spt-live-dot,.spt-pill{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;background:#eef1f4;font-size:.78rem;font-weight:700;white-space:nowrap}.spt-live-dot:before{content:"";width:8px;height:8px;border-radius:50%;background:#00a32a;margin-right:6px}.spt-pill.ok{background:#edfaef;color:#116329}.spt-pill.warn{background:#fff8e5;color:#8a5d00}.spt-pill.danger{background:#fcf0f1;color:#b32d2e}.spt-status-pills{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.spt-ride-list{display:grid;gap:10px}.spt-ride-card{display:grid;grid-template-columns:88px 1fr;border:1px solid var(--spt-border);border-left:5px solid #2271b1;border-radius:10px;background:var(--spt-bg);overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.04)}.spt-ride-card.is-past{opacity:.5;filter:saturate(.65)}.spt-ride-card.is-blocked,.spt-ride-card.is-overflow{border-left-color:#d63638}.spt-ride-time{padding:14px;background:var(--spt-soft);display:flex;flex-direction:column;align-items:center;justify-content:center}.spt-ride-time strong{font-size:1.55rem;line-height:1}.spt-ride-time span{margin-top:5px;color:var(--spt-muted);font-size:.8rem}.spt-ride-main{padding:13px 15px}.spt-route{display:flex;align-items:center;gap:9px;font-size:1.08rem}.spt-route span{color:var(--spt-muted)}.spt-ride-meta{display:flex;gap:8px 14px;flex-wrap:wrap;align-items:center;margin-top:8px;color:var(--spt-muted);font-size:.85rem}.spt-vehicle-chip{--spt-color:#777;display:inline-flex;align-items:center;border:1px solid color-mix(in srgb,var(--spt-color),#fff 55%);border-radius:999px;padding:3px 8px;font-weight:800;color:#111;background:color-mix(in srgb,var(--spt-color),#fff 72%)}.spt-vehicle-chip:before{content:"";width:9px;height:9px;border-radius:50%;margin-right:6px;background:var(--spt-color)}.spt-alert{margin-top:8px;padding:7px 9px;border-radius:6px;font-size:.84rem}.spt-alert.danger{background:#fcf0f1;color:#8b1f20}.spt-passengers{margin-top:10px;border-top:1px solid var(--spt-border);padding-top:8px}.spt-passengers summary{cursor:pointer;font-weight:600}.spt-passengers ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}.spt-passengers li{display:grid;grid-template-columns:minmax(140px,1fr) minmax(180px,2fr) auto;gap:8px;border-radius:6px;background:var(--spt-soft);padding:7px 9px;font-size:.84rem}.spt-front-message,.spt-auth-card,.spt-tracking-box{border:1px solid var(--spt-border);background:#fff;border-radius:10px;padding:16px;margin:12px 0}.spt-front-message.spt-error{border-color:#d63638;background:#fcf0f1}.spt-auth-card{max-width:520px}.spt-auth-card form{display:grid;gap:10px}.spt-auth-card label{display:grid;gap:5px;font-weight:600}.spt-auth-card input{width:100%;padding:10px;border:1px solid #8c8f94;border-radius:6px}.spt-button{display:inline-block;border:0;border-radius:7px;background:#2271b1;color:#fff!important;text-decoration:none;padding:10px 14px;font:inherit;font-weight:700;cursor:pointer}.spt-button.secondary{background:#50575e}.spt-muted{color:var(--spt-muted);font-size:.9rem}.spt-tracking-box{display:flex;gap:10px 14px;align-items:center;flex-wrap:wrap}.spt-tracking-box p{flex-basis:100%;margin:0;color:var(--spt-muted)}.spt-dispo-map{height:390px;border:1px solid var(--spt-border);border-radius:12px;margin:0 0 16px;overflow:hidden}.spt-map-marker{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:3px solid #fff;box-shadow:0 1px 7px rgba(0,0,0,.35);font-weight:800;color:#fff;background:var(--spt-color,#2271b1)}.spt-map-marker.hq{background:#111;font-size:20px}.spt-map-marker.vehicle{border-radius:10px;transform:rotate(45deg)}.spt-map-marker.vehicle span{transform:rotate(-45deg)}.spt-issues{border:1px solid var(--spt-border);border-radius:10px;margin:0 0 16px;background:#fff}.spt-issues summary{padding:12px 14px;font-weight:700;cursor:pointer}.spt-issue-grid{display:grid;gap:8px;padding:0 14px 14px}.spt-mini-issue{display:grid;gap:3px;padding:9px 10px;border-radius:7px;background:#fff8e5}.spt-mini-issue.conflict{background:#fcf0f1}.spt-mini-issue span{font-size:.84rem}.spt-gateway-body{margin:0;background:#f0f2f5;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.spt-gateway{max-width:520px;margin:0 auto;padding:36px 18px 60px;text-align:center}.spt-gateway-badge{--spt-color:#2271b1;width:150px;height:150px;margin:0 auto 20px;border-radius:50%;background:var(--spt-color);color:#fff;display:flex;align-items:center;justify-content:center;font-size:4rem;font-weight:900;border:8px solid #fff;box-shadow:0 5px 25px rgba(0,0,0,.15)}.spt-gateway h1{margin:.2rem 0}.spt-gateway-actions{display:grid;gap:12px;margin-top:24px}.spt-gateway form{margin:12px 0}.spt-gateway .spt-pill{margin:8px auto}.spt-gateway .spt-tracking-box{text-align:left}.spt-print-sign{display:none}@media(max-width:720px){.spt-front{margin:12px}.spt-front-head{align-items:flex-start;flex-direction:column}.spt-status-pills{justify-content:flex-start}.spt-ride-card{grid-template-columns:70px 1fr}.spt-ride-time strong{font-size:1.25rem}.spt-passengers li{grid-template-columns:1fr}.spt-dispo-map{height:300px}}

/* v0.9 route optimizer */
.spt-ride-card.is-planning-conflict{border-left-color:#dc2626;background:#fff7f7}
.spt-stopline{display:flex;flex-wrap:wrap;gap:6px 10px;margin:8px 0 2px;padding:7px 9px;background:#f5f7fa;border-radius:7px;font-size:.9em}
.spt-stopline span{display:inline-flex;align-items:baseline;gap:4px}
.spt-stopline small{color:#6b7280}

/* v0.10 Dispo-Ansichten / Positionsplan */
.spt-view-switch{display:inline-flex;gap:4px;margin:0 0 16px;padding:4px;border:1px solid var(--spt-border);border-radius:10px;background:#f5f6f7}
.spt-view-switch-button{appearance:none;border:0;background:transparent;padding:9px 14px;border-radius:7px;font:inherit;font-weight:700;cursor:pointer;color:var(--spt-muted)}
.spt-view-switch-button.is-active{background:#fff;color:var(--spt-text);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.spt-dispo-view[hidden]{display:none!important}
.spt-position-list{display:grid;gap:18px}
.spt-position-station{border:1px solid var(--spt-border);border-radius:12px;background:#fff;overflow:hidden}
.spt-position-station-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;background:#f7f8fa;border-bottom:1px solid var(--spt-border)}
.spt-position-station-head>div{display:flex;align-items:center;gap:10px;min-width:0}.spt-position-station-head h3{margin:0;font-size:1.05rem}.spt-position-code{display:inline-flex;min-width:44px;justify-content:center;padding:5px 8px;border-radius:999px;background:#1f2937;color:#fff;font-weight:800}.spt-position-count{font-size:.84rem;color:var(--spt-muted);white-space:nowrap}
.spt-position-function{border-top:1px solid var(--spt-border)}.spt-position-function:first-of-type{border-top:0}.spt-position-function>summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 16px;cursor:pointer;font-weight:700}.spt-position-function>summary small{font-weight:500;color:var(--spt-muted)}
.spt-position-table-wrap{overflow-x:auto}.spt-position-table{width:100%;border-collapse:collapse;min-width:760px}.spt-position-table th,.spt-position-table td{padding:10px 12px;text-align:left;vertical-align:top;border-top:1px solid var(--spt-border)}.spt-position-table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--spt-muted);background:#fafafa}.spt-position-table td:nth-child(1){width:25%}.spt-position-table td:nth-child(2){width:14%;white-space:nowrap}.spt-position-table tr.is-unfilled{background:#fffbea}.spt-position-table td>small,.spt-position-table td>a{display:block;margin-top:3px}.spt-position-phone{font-size:.85rem}.spt-inline-status{display:inline-flex;margin:4px 0 0 7px;padding:2px 6px;border-radius:999px;font-size:.7rem;font-weight:700}.spt-inline-status.warn{background:#fff1c7;color:#765200}
.spt-position-ride{display:flex;gap:8px;align-items:flex-start}.spt-position-ride>div{display:grid;gap:2px}.spt-position-ride strong{font-size:.9rem}.spt-position-ride span:not(.spt-vehicle-chip),.spt-position-ride small{display:block;font-size:.8rem}.spt-position-ride small{color:var(--spt-muted)}.spt-position-missing{display:block;padding:7px 8px;border-radius:6px;background:#fcf0f1;color:#8a2424;font-size:.82rem}
@media(max-width:720px){.spt-view-switch{display:flex}.spt-view-switch-button{flex:1;padding:9px 8px}.spt-position-station-head{align-items:flex-start}.spt-position-table{min-width:680px}}

/* v0.11 Administration, Shuttle-Tabs, Druck und Touch-Kosmetik */
.spt-head-actions{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;justify-content:flex-end}.spt-print-button{padding:7px 11px}.spt-view-switch-scroll{max-width:100%;overflow-x:auto;white-space:nowrap}.spt-view-switch-scroll .spt-view-switch-button{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}.spt-tab-dot{width:10px;height:10px;border-radius:50%;background:var(--spt-color,#777);display:inline-block}.spt-vehicle-view-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0 0 12px}.spt-day-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:16px 0 8px;padding:8px 2px;border-bottom:1px solid var(--spt-border)}.spt-day-heading:first-child{margin-top:0}.spt-day-heading span{font-size:.9rem;color:var(--spt-muted)}
.spt-passengers li{font-size:.9rem;padding:9px 10px}.spt-passengers li>a{font-size:.95rem;min-height:32px;display:inline-flex;align-items:center;padding:4px 6px;margin:-4px -6px}.spt-position-phone{font-size:.95rem;min-height:30px;display:inline-flex!important;align-items:center;padding:3px 4px;margin-left:-4px}.spt-position-table td>strong{font-size:.94rem}
.spt-admin-issues{border:1px solid var(--spt-border);border-radius:10px;background:#fff;margin:0 0 16px;padding:14px}.spt-admin-issues h3{margin:0 0 10px}.spt-admin-issues .spt-issue-grid{padding:0}.spt-admin-table-wrap{overflow:auto;border:1px solid var(--spt-border);border-radius:10px;background:#fff}.spt-admin-table{width:100%;min-width:1120px;border-collapse:collapse}.spt-admin-table th,.spt-admin-table td{padding:10px 11px;text-align:left;vertical-align:top;border-top:1px solid var(--spt-border)}.spt-admin-table thead th{border-top:0;background:#f7f8fa;color:var(--spt-muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.035em;white-space:nowrap}.spt-admin-table td>small{display:block;margin-top:2px;color:var(--spt-muted)}.spt-inline-status.ok{background:#edfaef;color:#116329}.spt-inline-status.danger{background:#fcf0f1;color:#9f2426}
.spt-vehicle-schedule-list{display:grid;gap:16px}.spt-vehicle-schedule{border:1px solid var(--spt-border);border-radius:11px;background:#fff;overflow:hidden}.spt-vehicle-schedule-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;background:#f7f8fa}.spt-vehicle-schedule-head>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.spt-vehicle-schedule-head>span{font-size:.84rem;color:var(--spt-muted)}.spt-driver-strip{padding:9px 14px;border-top:1px solid var(--spt-border);border-bottom:1px solid var(--spt-border);font-size:.84rem}.spt-vehicle-timeline{padding:10px 14px}.spt-vehicle-block{display:grid;grid-template-columns:145px 1fr;gap:12px;padding:9px 0;border-top:1px solid var(--spt-border)}.spt-vehicle-block:first-child{border-top:0}.spt-vehicle-block>div{display:grid;gap:2px}.spt-vehicle-block small,.spt-vehicle-block span{font-size:.9rem;color:var(--spt-muted)}.spt-vehicle-gap{margin:3px 0 3px 145px;padding:3px 8px;border-radius:999px;background:#eef1f4;color:var(--spt-muted);font-size:.75rem;width:max-content}
@media(max-width:720px){.spt-head-actions{justify-content:flex-start}.spt-view-switch-scroll{display:flex}.spt-view-switch-scroll .spt-view-switch-button{flex:0 0 auto}.spt-vehicle-schedule-head{align-items:flex-start;flex-direction:column}.spt-vehicle-block{grid-template-columns:100px 1fr}.spt-vehicle-gap{margin-left:100px}.spt-dispo-map{height:270px}}
@page{margin:14mm 12mm 16mm}@page{@bottom-right{content:"Seite " counter(page) " von " counter(pages);font-size:9pt;color:#000}}

/* v0.20 eigenes Shuttle-Designsystem – bewusst unabhängig vom Website-/Builder-Theme */
html.spt-palette-neutral{--spt-accent:#475569;--spt-accent-hover:#334155;--spt-accent-soft:#e2e8f0;--spt-on-accent:#fff}
html.spt-theme-dark.spt-palette-neutral{--spt-accent:#cbd5e1;--spt-accent-hover:#e2e8f0;--spt-accent-soft:#334155;--spt-on-accent:#111827}
html.spt-palette-blue{--spt-accent:#2563eb;--spt-accent-hover:#1d4ed8;--spt-accent-soft:#dbeafe;--spt-on-accent:#fff}
html.spt-theme-dark.spt-palette-blue{--spt-accent:#60a5fa;--spt-accent-hover:#93c5fd;--spt-accent-soft:#1e3a5f;--spt-on-accent:#0b1220}
html.spt-palette-petrol{--spt-accent:#0f766e;--spt-accent-hover:#115e59;--spt-accent-soft:#ccfbf1;--spt-on-accent:#fff}
html.spt-theme-dark.spt-palette-petrol{--spt-accent:#2dd4bf;--spt-accent-hover:#5eead4;--spt-accent-soft:#134e4a;--spt-on-accent:#082f2d}
html.spt-palette-violet{--spt-accent:#7c3aed;--spt-accent-hover:#6d28d9;--spt-accent-soft:#ede9fe;--spt-on-accent:#fff}
html.spt-theme-dark.spt-palette-violet{--spt-accent:#a78bfa;--spt-accent-hover:#c4b5fd;--spt-accent-soft:#3b2a61;--spt-on-accent:#1e1438}
html.spt-palette-orange{--spt-accent:#c2410c;--spt-accent-hover:#9a3412;--spt-accent-soft:#ffedd5;--spt-on-accent:#fff}
html.spt-theme-dark.spt-palette-orange{--spt-accent:#fb923c;--spt-accent-hover:#fdba74;--spt-accent-soft:#5a2b17;--spt-on-accent:#2b1207}

html.spt-theme-light{--spt-canvas:#f8fafc;--spt-surface:#fff;--spt-surface-2:#f1f5f9;--spt-surface-3:#e8edf3;--spt-ui-text:#111827;--spt-ui-muted:#5f6b7a;--spt-ui-border:#cbd5e1;--spt-control:#fff;--spt-success-bg:#ecfdf3;--spt-success-text:#166534;--spt-warning-bg:#fff7df;--spt-warning-text:#7a4b00;--spt-danger-bg:#fff0f1;--spt-danger-text:#9f1d24;--spt-shadow:0 1px 3px rgba(15,23,42,.08)}
html.spt-theme-dark{--spt-canvas:#11161c;--spt-surface:#1b222b;--spt-surface-2:#242d37;--spt-surface-3:#303a45;--spt-ui-text:#f3f6f9;--spt-ui-muted:#b5c0cc;--spt-ui-border:#43505e;--spt-control:#171d24;--spt-success-bg:#173622;--spt-success-text:#a7f3bd;--spt-warning-bg:#413617;--spt-warning-text:#ffe08a;--spt-danger-bg:#482126;--spt-danger-text:#ffb4b8;--spt-shadow:0 1px 3px rgba(0,0,0,.28)}

.spt-front{--spt-bg:var(--spt-surface,#fff);--spt-soft:var(--spt-surface-2,#f1f5f9);--spt-border:var(--spt-ui-border,#cbd5e1);--spt-text:var(--spt-ui-text,#111827);--spt-muted:var(--spt-ui-muted,#5f6b7a);box-sizing:border-box;background:var(--spt-canvas,#f8fafc)!important;color:var(--spt-text,#111827)!important;border:1px solid var(--spt-border,#cbd5e1);border-radius:14px;padding:16px;box-shadow:var(--spt-shadow,none);color-scheme:light}
.spt-theme-dark .spt-front{color-scheme:dark}
.spt-front :where(h1,h2,h3,h4,h5,h6,strong,summary,label,th){color:var(--spt-text)!important}
.spt-front :where(p,td,li,span,small){border-color:var(--spt-border)}
.spt-front a:not(.spt-button):not(.spt-role-nav-link):not(.spt-vehicle-chip){color:var(--spt-accent)!important}
.spt-front a:not(.spt-button):not(.spt-role-nav-link):not(.spt-vehicle-chip):hover{color:var(--spt-accent-hover)!important}

.spt-front :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),select,textarea){background:var(--spt-control)!important;color:var(--spt-text)!important;border-color:var(--spt-border)!important;box-shadow:none!important}
.spt-front :where(input,select,textarea)::placeholder{color:var(--spt-muted)!important;opacity:.8}
.spt-front select option{background:var(--spt-control)!important;color:var(--spt-text)!important}
.spt-front :where(input,select,textarea):focus{outline:2px solid color-mix(in srgb,var(--spt-accent),transparent 45%)!important;outline-offset:1px;border-color:var(--spt-accent)!important}
.spt-front :where(input,select,textarea):disabled{opacity:.7!important;color:var(--spt-muted)!important}
.spt-button{background:var(--spt-accent)!important;color:var(--spt-on-accent)!important;border:1px solid transparent!important}
.spt-button:hover,.spt-button:focus{background:var(--spt-accent-hover)!important;color:var(--spt-on-accent)!important}
.spt-button.secondary{background:var(--spt-surface-3)!important;color:var(--spt-text)!important;border-color:var(--spt-border)!important}

.spt-front :where(.spt-front-message,.spt-auth-card,.spt-tracking-box,.spt-issues,.spt-admin-issues,.spt-position-station,.spt-driver-view-head,.spt-compare-controls,.spt-compare-table-wrap,.spt-compare-detail,.spt-driver-planning-table-wrap,.spt-driver-planning-detail,.spt-driver-open-item,.spt-role-nav,.spt-admin-table-wrap,.spt-vehicle-schedule,.spt-ride-card,.spt-vehicle-anchor-nav){background:var(--spt-surface)!important;color:var(--spt-text)!important;border-color:var(--spt-border)!important}
.spt-front :where(.spt-view-switch,.spt-dispo-mode-switch,.spt-position-station-head,.spt-compare-table thead th,.spt-compare-table th:first-child,.spt-driver-planning-table thead th,.spt-driver-planning-table tbody th,.spt-driver-planning-kpis span,.spt-admin-table thead th,.spt-position-table th,.spt-vehicle-schedule-head,.spt-ride-time,.spt-stopline,.spt-passengers li){background:var(--spt-surface-2)!important;color:var(--spt-text)!important;border-color:var(--spt-border)!important}
.spt-front :where(.spt-view-switch-button.is-active,.spt-role-nav-link:hover,.spt-role-nav-link:focus,.spt-role-nav-link.is-current){background:var(--spt-accent-soft)!important;color:var(--spt-text)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--spt-accent),transparent 40%)!important}
.spt-front .spt-role-nav-link{color:var(--spt-text)!important}
.spt-theme-switch{background:var(--spt-surface)!important;border-color:var(--spt-border)!important}
.spt-theme-switch button{color:var(--spt-muted)!important}
.spt-theme-switch button.is-active{background:var(--spt-accent-soft)!important;color:var(--spt-text)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--spt-accent),transparent 40%)!important}

.spt-front :where(.spt-pill.ok,.spt-inline-status.ok){background:var(--spt-success-bg)!important;color:var(--spt-success-text)!important}
.spt-front :where(.spt-pill.warn,.spt-inline-status.warn,.spt-mini-issue,.spt-driver-cell.attention,.spt-driver-legend .attention){background:var(--spt-warning-bg)!important;color:var(--spt-warning-text)!important}
.spt-front :where(.spt-pill.danger,.spt-inline-status.danger,.spt-alert.danger,.spt-front-message.spt-error,.spt-mini-issue.conflict,.spt-position-missing,.spt-driver-cell.needs-driver,.spt-driver-cell.unplanned,.spt-driver-open-item.danger,.spt-driver-legend .needs-driver,.spt-driver-planning-table .spt-driver-unplanned-head,.spt-driver-planning-table tbody th.spt-driver-time-restricted){background:var(--spt-danger-bg)!important;color:var(--spt-danger-text)!important}
.spt-front :where(.spt-driver-cell.covered,.spt-driver-legend .covered,.spt-compare-state.free){background:var(--spt-success-bg)!important;color:var(--spt-text)!important}
.spt-front :where(.spt-driver-cell.idle,.spt-driver-legend .idle,.spt-compare-state.busy){background:var(--spt-surface-2)!important;color:var(--spt-text)!important}
.spt-front :where(.spt-driver-cell.free,.spt-driver-legend .free){background:var(--spt-surface)!important;color:var(--spt-muted)!important}
.spt-front .spt-driver-cell.needs-driver,.spt-front .spt-driver-cell.unplanned{box-shadow:inset 4px 0 0 #d63638}
.spt-front .spt-driver-planning-table th,.spt-front .spt-driver-planning-table td,.spt-front .spt-position-table th,.spt-front .spt-position-table td,.spt-front .spt-compare-table th,.spt-front .spt-compare-table td,.spt-front .spt-admin-table th,.spt-front .spt-admin-table td{border-color:var(--spt-border)!important}
.spt-front .spt-muted,.spt-front :where(.spt-kicker,.spt-ride-meta,.spt-stopline small,.spt-position-count,.spt-position-function>summary small,.spt-position-ride small,.spt-driver-cell>button span,.spt-driver-cell>span,.spt-driver-open-item span,.spt-driver-planning-kpis span){color:var(--spt-muted)!important}

/* Fahrzeugfarben bleiben bewusst unabhängig vom gewählten UI-Farbschema. */
.spt-front .spt-vehicle-chip{color:#111!important}
.spt-front .spt-tab-dot,.spt-front .spt-vehicle-chip:before,.spt-front .spt-map-marker:not(.hq){background:var(--spt-color,#777)!important}

.spt-map-recenter,.spt-front .leaflet-control-zoom a{background:var(--spt-surface)!important;color:var(--spt-text)!important;border-color:var(--spt-border)!important}
.spt-theme-dark .spt-front .leaflet-tile-pane{filter:brightness(.64) contrast(1.15) saturate(.68)}
.spt-front .leaflet-popup-content-wrapper,.spt-front .leaflet-popup-tip{background:var(--spt-surface)!important;color:var(--spt-text)!important}

.spt-gateway-body{background:var(--spt-canvas,#f0f2f5)!important;color:var(--spt-ui-text,#111827)!important;color-scheme:light}
.spt-theme-dark .spt-gateway-body{color-scheme:dark}
.spt-gateway .spt-tracking-box{background:var(--spt-surface,#fff)!important;color:var(--spt-ui-text,#111827)!important;border-color:var(--spt-ui-border,#cbd5e1)!important}
.spt-gateway .spt-button{background:var(--spt-accent,#475569)!important;color:var(--spt-on-accent,#fff)!important}
.spt-gateway .spt-button.secondary{background:var(--spt-surface-3,#e8edf3)!important;color:var(--spt-ui-text,#111827)!important;border:1px solid var(--spt-ui-border,#cbd5e1)!important}
.spt-gateway .spt-pill{background:var(--spt-surface-2,#f1f5f9)!important;color:var(--spt-ui-text,#111827)!important}
.spt-gateway p{color:var(--spt-ui-muted,#5f6b7a)}

@media(max-width:720px){.spt-front{padding:10px;border-radius:10px}}

@media print{
  body{background:#fff!important;color:#000!important}.spt-front{max-width:none;margin:0!important;color:#000!important;font-size:10pt}.spt-front-head,.spt-dispo-map,.spt-issues,.spt-view-switch,.spt-print-button,.spt-vehicle-anchor-nav{display:none!important}.spt-dispo-view[hidden]{display:none!important}
  .spt-print-document-head{display:flex!important;justify-content:space-between;align-items:flex-end;gap:20px;border-bottom:2px solid #000;padding:0 0 7mm;margin:0 0 6mm}.spt-print-document-head>div{display:grid;gap:2px}.spt-print-document-head>div:last-child{text-align:right}.spt-print-document-head strong{font-size:16pt}.spt-print-document-head span{font-weight:700}.spt-print-document-head small{font-size:8.5pt;color:#000}
  .spt-print-day{break-before:page;page-break-before:always}.spt-dispo-view>.spt-print-day:first-child{break-before:auto;page-break-before:auto}.spt-day-heading{margin:0 0 4mm;padding:0 0 2mm;border-bottom:1px solid #000;color:#000}.spt-day-heading span{color:#000}
  .spt-ride-list{gap:3mm}.spt-ride-card{box-shadow:none!important;break-inside:avoid;page-break-inside:avoid;border:1px solid #000!important;border-left:3px solid #000!important;border-radius:0!important;background:#fff!important;color:#000!important}.spt-ride-time{background:#fff!important;border-right:1px solid #000}.spt-ride-time span,.spt-ride-meta,.spt-route span,.spt-muted{color:#000!important}.spt-vehicle-chip,.spt-pill,.spt-alert,.spt-stopline{background:#fff!important;color:#000!important;border:1px solid #000!important}.spt-vehicle-chip:before,.spt-tab-dot{background:#000!important}.spt-passengers li{background:#fff!important;border-top:1px solid #bbb;color:#000!important}.spt-passengers:not([open])>*:not(summary){display:none!important}.spt-front a{color:#000!important;text-decoration:none!important}
  *{-webkit-print-color-adjust:economy!important;print-color-adjust:economy!important}
}


/* v0.12 Druck, Fahrzeugeinsatz und Administrationskosmetik */
.spt-print-document-head{display:none}
.spt-vehicle-anchor-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 16px;padding:10px 12px;border:1px solid var(--spt-border);border-radius:9px;background:#fff}
.spt-vehicle-anchor-nav a{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:999px;background:var(--spt-soft);text-decoration:none;color:inherit;font-size:.84rem;font-weight:700}
.spt-vehicle-schedule{scroll-margin-top:32px}
.spt-admin-table .spt-position-phone{display:flex!important;margin:4px 0 0!important;padding:3px 0!important;width:max-content;max-width:100%}

/* v0.13 Fahrerperspektive, Fahrzeugvergleich und Kontakt-Kosmetik */
.spt-dispo-mode-switch{display:inline-flex;align-items:center;gap:4px;margin:0 0 12px;padding:4px;border:1px solid var(--spt-border);border-radius:10px;background:#f5f6f7}.spt-dispo-mode-switch>span{padding:0 8px;color:var(--spt-muted);font-size:.82rem;font-weight:700}.spt-dispo-mode-view[hidden],.spt-driver-dispo-view[hidden]{display:none!important}
.spt-driver-view-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin:0 0 12px;padding:11px 13px;border:1px solid var(--spt-border);border-radius:9px;background:#fff}.spt-driver-view-head>div{display:grid;gap:3px}.spt-driver-view-head a{width:max-content;font-size:.95rem;min-height:30px;display:inline-flex;align-items:center}.spt-driver-view-head>span{color:var(--spt-muted);font-size:.86rem}
.spt-driver-meta{display:inline-flex!important;align-items:center;gap:5px;flex-wrap:wrap}.spt-driver-meta>a{font-size:.95rem;font-weight:700;min-height:28px;display:inline-flex;align-items:center;padding:2px 4px;border-radius:5px}
.spt-position-table td:first-child>strong,.spt-admin-table td:nth-child(4)>strong{display:block}.spt-position-table .spt-position-phone,.spt-admin-table .spt-position-phone{display:flex!important;margin:4px 0 0!important;padding:3px 0!important;width:max-content;max-width:100%}.spt-passengers li>strong,.spt-passengers li>span,.spt-passengers li>a{display:block}.spt-passengers li>a{width:max-content;max-width:100%;margin:3px 0 0;padding:4px 6px}
.spt-vehicle-compare{display:grid;gap:12px}.spt-compare-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding:11px 12px;border:1px solid var(--spt-border);border-radius:9px;background:#fff}.spt-compare-controls label{display:grid;gap:4px;font-size:.78rem;font-weight:700}.spt-compare-controls select{min-width:125px;padding:6px 8px}.spt-compare-controls .spt-muted{font-size:.8rem;margin-left:auto}
.spt-compare-table-wrap{overflow:auto;max-height:72vh;border:1px solid var(--spt-border);border-radius:10px;background:#fff}.spt-compare-table{width:100%;min-width:720px;border-collapse:separate;border-spacing:0}.spt-compare-table th,.spt-compare-table td{padding:5px 7px;border-right:1px solid #eceeef;border-bottom:1px solid #eceeef;text-align:center;white-space:nowrap;font-size:.78rem}.spt-compare-table thead th{position:sticky;top:0;z-index:3;background:#f7f8fa;font-weight:800}.spt-compare-table th:first-child{position:sticky;left:0;z-index:2;background:#f7f8fa;text-align:left;min-width:70px}.spt-compare-table thead th:first-child{z-index:4}.spt-compare-table thead th:not(:first-child){min-width:105px}.spt-compare-table .spt-tab-dot{margin-right:5px}.spt-compare-state{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:27px;border:0;border-radius:6px;padding:4px 6px;font:inherit;font-weight:700}.spt-compare-state.free{background:#f1f5f2;color:#45614b}.spt-compare-state.busy{background:#eef2f7;color:#273548;cursor:pointer}.spt-compare-state.conflict{background:#fcf0f1;color:#a12628;cursor:pointer}.spt-compare-detail{border:1px solid var(--spt-border);border-radius:9px;background:#fff;padding:12px}.spt-compare-detail-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:7px}.spt-compare-detail-row{display:flex;align-items:baseline;gap:8px 14px;flex-wrap:wrap;padding:7px 0;border-top:1px solid var(--spt-border)}.spt-compare-detail-row span{font-size:.84rem;color:var(--spt-muted)}
@media(max-width:720px){.spt-dispo-mode-switch{display:flex}.spt-dispo-mode-switch .spt-view-switch-button{flex:1}.spt-driver-view-head{flex-direction:column}.spt-compare-controls .spt-muted{width:100%;margin-left:0}.spt-compare-table th,.spt-compare-table td{padding:5px 6px}}
@media print{.spt-dispo-mode-switch{display:none!important}.spt-driver-dispo-view[hidden],.spt-dispo-mode-view[hidden]{display:none!important}.spt-driver-view-head{border:0;border-bottom:1px solid #000;border-radius:0;padding:0 0 3mm}.spt-driver-meta>a{color:#000!important}.spt-vehicle-compare{display:none!important}}

/* v0.14 Fahrer-Navigation */
.spt-navigation{margin-top:10px;padding-top:10px;border-top:1px solid var(--spt-border);display:grid;gap:7px}.spt-navigation-links{display:flex;flex-wrap:wrap;gap:8px 12px}.spt-navigation-links>span{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.spt-nav-button{display:inline-flex;align-items:center;padding:5px 8px;border:1px solid var(--spt-border);border-radius:7px;text-decoration:none;font-size:.8rem;font-weight:700;background:var(--spt-soft);color:var(--spt-text)}.spt-nav-button:hover,.spt-nav-button:focus{background:#fff}

/* v0.16 issue icons */
.spt-mini-issue-icon{font-size:1rem!important;line-height:1;display:inline-block;min-width:1.15em;text-align:center}

/* v0.17 Fahrerplanung */
.spt-driver-planning{display:grid;gap:14px}.spt-driver-planning-intro{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.spt-driver-planning-intro h3{margin:0 0 4px}.spt-driver-planning-kpis{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.spt-driver-planning-kpis span{display:grid;gap:1px;min-width:110px;padding:8px 10px;border-radius:8px;background:#f6f7f7;font-size:.76rem;color:var(--spt-muted)}.spt-driver-planning-kpis strong{font-size:1.2rem;color:var(--spt-text)}.spt-driver-planning-table-wrap{overflow:auto;max-height:70vh;border:1px solid var(--spt-border);border-radius:10px;background:#fff}.spt-driver-planning-table{width:100%;border-collapse:separate;border-spacing:0;min-width:760px}.spt-driver-planning-table th,.spt-driver-planning-table td{border-right:1px solid var(--spt-border);border-bottom:1px solid var(--spt-border);padding:0;vertical-align:stretch}.spt-driver-planning-table th:last-child,.spt-driver-planning-table td:last-child{border-right:0}.spt-driver-planning-table thead th{position:sticky;top:0;z-index:3;background:#f6f7f7;padding:9px 10px;text-align:left;white-space:nowrap}.spt-driver-planning-table thead th:first-child{left:0;z-index:4}.spt-driver-planning-table tbody th{position:sticky;left:0;z-index:2;background:#fafafa;min-width:82px;padding:8px 9px;text-align:left;white-space:nowrap}.spt-driver-planning-table tbody th strong,.spt-driver-planning-table tbody th small{display:block}.spt-driver-planning-table tbody th small{font-weight:400;color:var(--spt-muted);font-size:.72rem}.spt-driver-cell{min-width:145px}.spt-driver-cell>button{appearance:none;border:0;background:transparent;width:100%;min-height:54px;padding:8px 9px;text-align:left;font:inherit;cursor:pointer;display:grid;gap:2px}.spt-driver-cell>button strong{font-size:.84rem}.spt-driver-cell>button span,.spt-driver-cell>span{display:block;font-size:.74rem;color:var(--spt-muted)}.spt-driver-cell>span{padding:10px}.spt-driver-cell.covered{background:#edf8ef}.spt-driver-cell.attention{background:#fff8e5}.spt-driver-cell.needs-driver{background:#fcf0f1;box-shadow:inset 4px 0 0 #d63638}.spt-driver-cell.idle{background:#f3f4f5}.spt-driver-cell.free{background:#fff;color:#8c8f94}.spt-driver-planning-detail{border:1px solid var(--spt-border);border-radius:10px;background:#fff;padding:12px}.spt-driver-open-needs{margin-top:4px}.spt-driver-open-needs h3{margin-bottom:8px}.spt-driver-open-list{display:grid;gap:7px}.spt-driver-open-item{display:flex;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid var(--spt-border);border-left:4px solid #dba617;border-radius:7px;background:#fff}.spt-driver-open-item.danger{border-left-color:#d63638;background:#fffafa}.spt-driver-open-item>div{display:grid;gap:2px}.spt-driver-open-item>div:last-child{text-align:right}.spt-driver-open-item span{font-size:.8rem;color:var(--spt-muted)}
@media(max-width:720px){.spt-driver-planning-intro{flex-direction:column}.spt-driver-planning-kpis{justify-content:flex-start}.spt-driver-open-item{flex-direction:column}.spt-driver-open-item>div:last-child{text-align:left}}
.spt-driver-legend{display:flex;gap:7px;flex-wrap:wrap}.spt-driver-legend span{padding:4px 8px;border-radius:999px;font-size:.72rem;font-weight:700;border:1px solid var(--spt-border)}.spt-driver-legend .covered{background:#edf8ef}.spt-driver-legend .needs-driver{background:#fcf0f1;border-color:#e4a6a8}.spt-driver-legend .attention{background:#fff8e5}.spt-driver-legend .idle{background:#f3f4f5}.spt-driver-legend .free{background:#fff;color:#8c8f94}
.spt-map-recenter{width:34px;height:34px;background:#fff;border:0!important;cursor:pointer;font-size:18px;font-weight:800;line-height:32px;text-align:center;padding:0}.spt-map-recenter:hover{background:#f0f0f1}

/* v0.17.2 Fahrerplanung – ungeplante Fahrten / Sperrzeiten */
.spt-driver-planning-table .spt-driver-unplanned-head{background:#fff4f4;color:#8a2424;min-width:145px}
.spt-driver-cell.unplanned{background:#fff1f1;box-shadow:inset 4px 0 0 #d63638}
.spt-driver-cell.unplanned>button strong{color:#8a2424}
.spt-driver-planning-table tbody th.spt-driver-time-restricted{background:#fde8e8;color:#8a2424;box-shadow:inset 4px 0 0 #d63638}
.spt-driver-planning-table tbody th.spt-driver-time-restricted small{color:#a33}

/* Rollenabhängige Plugin-Navigation (v0.18) */
.spt-role-nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0 0 18px;padding:7px;border:1px solid var(--spt-border);border-radius:10px;background:#f6f7f7}
.spt-role-nav-link{display:inline-flex;align-items:center;min-height:38px;padding:8px 12px;border-radius:7px;color:#50575e!important;text-decoration:none;font-weight:700;font-size:.92rem}
.spt-role-nav-link:hover,.spt-role-nav-link:focus{background:#fff;color:#1d2327!important}
.spt-role-nav-link.is-current{background:#fff;color:#1d2327!important;box-shadow:0 1px 3px rgba(0,0,0,.08);outline:1px solid #8c8f94}
@media(max-width:720px){.spt-role-nav{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.spt-role-nav-link{white-space:nowrap}}

/* v0.19 Navigation, Theme, Fahrerplanung */
.spt-admin-issues{border:1px solid var(--spt-border);border-radius:10px;margin:0 0 16px;background:var(--spt-bg)}
.spt-admin-issues>summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;cursor:pointer;list-style:none}
.spt-admin-issues>summary::-webkit-details-marker{display:none}.spt-admin-issues>summary:after{content:"▾";margin-left:auto}.spt-admin-issues[open]>summary:after{content:"▴"}.spt-admin-issues>summary span{font-size:.9rem;color:var(--spt-muted);font-weight:600}.spt-admin-issues .spt-issue-grid{padding-top:0}
.spt-theme-switch{display:inline-flex;gap:2px;margin-left:auto;padding:2px;border:1px solid var(--spt-border);border-radius:8px;background:var(--spt-bg)}
.spt-theme-switch button{appearance:none;border:0;background:transparent;color:var(--spt-muted);min-height:32px;padding:5px 8px;border-radius:6px;font:inherit;font-size:.78rem;font-weight:800;cursor:pointer}
.spt-theme-switch button.is-active{background:var(--spt-soft);color:var(--spt-text);box-shadow:inset 0 0 0 1px var(--spt-border)}
.spt-driver-planning-controls .spt-driver-print-button{min-height:36px;padding:7px 11px}
.spt-driver-print-head{display:none}.spt-unplanned-detail{display:grid!important;align-items:stretch!important}.spt-unplanned-positions{width:100%;display:grid;gap:5px;margin-top:6px;padding:8px 10px;border-radius:7px;background:var(--spt-soft)}.spt-unplanned-positions>strong{font-size:.82rem}.spt-unplanned-positions>div{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(150px,1fr) auto;gap:8px;align-items:baseline;padding:5px 0;border-top:1px solid var(--spt-border)}.spt-unplanned-positions>div:first-of-type{border-top:0}.spt-unplanned-positions small{color:var(--spt-muted);white-space:nowrap}

/* v0.20 ersetzt den bisherigen punktuellen Dark-Mode durch das gekapselte Designsystem oben. */
@media(max-width:720px){.spt-theme-switch{margin-left:0;flex:0 0 auto}.spt-unplanned-positions>div{grid-template-columns:1fr}.spt-driver-planning-controls label{min-width:130px}}

@media print{
 body.spt-print-driver-planning .spt-role-nav,body.spt-print-driver-planning .spt-front-head,body.spt-print-driver-planning .spt-dispo-map,body.spt-print-driver-planning .spt-admin-issues,body.spt-print-driver-planning .spt-view-switch,body.spt-print-driver-planning .spt-dispo-view:not([data-spt-dispo-view="shuttle-planning"]),body.spt-print-driver-planning .spt-driver-planning-intro,body.spt-print-driver-planning .spt-driver-planning-controls,body.spt-print-driver-planning .spt-driver-legend,body.spt-print-driver-planning .spt-driver-planning-detail,body.spt-print-driver-planning .spt-driver-open-needs{display:none!important}
 body.spt-print-driver-planning .spt-dispo-view[data-spt-dispo-view="shuttle-planning"]{display:block!important}
 body.spt-print-driver-planning [data-spt-shuttle-planning-view="demand"]{display:none!important}
 body.spt-print-driver-planning [data-spt-shuttle-planning-view="drivers"]{display:block!important}
 body.spt-print-driver-planning .spt-driver-print-head{display:grid!important;gap:1mm;margin:0 0 4mm;padding:0 0 3mm;border-bottom:1px solid #000;color:#000}
 body.spt-print-driver-planning .spt-driver-print-head strong{font-size:14pt}body.spt-print-driver-planning .spt-driver-print-head span,body.spt-print-driver-planning .spt-driver-print-head small{font-size:9pt}
 body.spt-print-driver-planning .spt-driver-planning-table-wrap{overflow:visible!important;max-height:none!important;border:1px solid #000!important;border-radius:0!important;background:#fff!important}
 body.spt-print-driver-planning .spt-driver-planning-table{min-width:0!important;color:#000!important;font-size:8pt}
 body.spt-print-driver-planning .spt-driver-planning-table th,body.spt-print-driver-planning .spt-driver-planning-table td{position:static!important;border-color:#777!important;background:#fff!important;color:#000!important;box-shadow:none!important}
 body.spt-print-driver-planning .spt-driver-cell>button{min-height:10mm;padding:2mm!important;color:#000!important}body.spt-print-driver-planning .spt-driver-cell>button span,body.spt-print-driver-planning .spt-driver-cell>span{color:#333!important}
 body.spt-print-driver-planning .spt-driver-cell.needs-driver,body.spt-print-driver-planning .spt-driver-cell.unplanned{background:#fff!important;outline:2px solid #000;outline-offset:-2px}body.spt-print-driver-planning .spt-driver-cell.attention{background:#eee!important}body.spt-print-driver-planning .spt-driver-cell.idle{background:#f5f5f5!important}
}


/* v0.21 App-Seitentemplate: eigenständige Shuttle-Oberfläche ohne Theme-Chrome */
html.spt-app-html{margin-top:0!important;background:var(--spt-canvas,#f8fafc)!important}
body.spt-app-page{margin:0!important;padding:0!important;min-width:0;background:var(--spt-canvas,#f8fafc)!important;color:var(--spt-ui-text,#111827)!important;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important}
body.spt-app-page #wpadminbar{display:none!important}
body.spt-app-page .spt-app-shell{width:100%;min-height:100vh;background:var(--spt-canvas,#f8fafc);padding:0;margin:0}
body.spt-app-page .spt-app-shell>.spt-front{width:100%;max-width:1600px;min-height:100vh;margin:0 auto!important;padding:clamp(12px,2vw,28px)!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:var(--spt-canvas,#f8fafc)!important}
body.spt-app-page .spt-app-shell>.spt-front-message{max-width:720px;margin:32px auto;padding:18px;border:1px solid var(--spt-ui-border,#cbd5e1);border-radius:12px;background:var(--spt-surface,#fff);color:var(--spt-ui-text,#111827)}
body.spt-app-page .spt-app-shell>.spt-front-message.spt-error{background:var(--spt-danger-bg,#fff0f1);color:var(--spt-danger-text,#9f1d24)}
body.spt-app-page .spt-role-nav{position:sticky;top:0;z-index:1000;margin:-4px 0 20px!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--spt-border)}
body.spt-app-page .spt-front-head{margin-top:2px}
@media(max-width:720px){body.spt-app-page .spt-app-shell>.spt-front{padding:8px!important}body.spt-app-page .spt-role-nav{top:0;margin:0 0 12px!important;border-radius:8px}}
@media print{body.spt-app-page .spt-app-shell>.spt-front{min-height:0!important;padding:0!important}}
.spt-reposition-notice{margin:10px 0;padding:10px 12px;border:1px solid var(--spt-border,#cfd6de);border-radius:10px;background:var(--spt-surface-2,#f5f7f9);display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}.spt-reposition-notice strong{font-size:.95rem}.spt-reposition-notice span{font-size:.88rem;color:var(--spt-muted,#5f6872)}
.spt-map-marker.poi,.spt-map-marker.open{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.spt-map-marker.poi{background:var(--spt-surface,#fff);color:var(--spt-text,#1f2933);border:2px solid var(--spt-border,#69737f);font-size:17px}.spt-map-marker.open{background:#fff3cd;color:#6b4a00;border:2px solid #dba617}.spt-map-marker.poi small,.spt-map-marker.open small{font-size:8px;max-width:34px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}
.spt-reposition-notice{margin:10px 0;padding:10px 12px;border:1px solid var(--spt-border,#cfd6de);border-radius:10px;background:var(--spt-surface-2,#f5f7f9);display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}.spt-reposition-notice strong{font-size:.95rem}.spt-reposition-notice span{font-size:.88rem;color:var(--spt-muted,#5f6872)}
.spt-map-marker.poi,.spt-map-marker.open{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.spt-map-marker.poi{background:var(--spt-surface,#fff);color:var(--spt-text,#1f2933);border:2px solid var(--spt-border,#69737f);font-size:17px}.spt-map-marker.open{background:#fff3cd;color:#6b4a00;border:2px solid #dba617}.spt-map-marker.poi small,.spt-map-marker.open small{font-size:8px;max-width:34px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}
/* v0.22.1: Fahrerplanung – kleinste Sekundärtexte etwas besser lesbar, ohne das Raster aufzublähen. */
.spt-driver-planning .spt-compare-controls label{font-size:.84rem}
.spt-driver-planning-kpis span{font-size:.82rem}
.spt-driver-planning-table tbody th small{font-size:.78rem}
.spt-driver-cell>button strong{font-size:.9rem}
.spt-driver-cell>button span,.spt-driver-cell>span{font-size:.8rem;line-height:1.35}
.spt-driver-legend span{font-size:.78rem}
.spt-driver-open-item span{font-size:.84rem}

/* v0.24: unaufdringlicher Hinweis auf den tatsächlich aktiven Datenstand. */
.spt-data-state{margin:-10px 0 10px;font-size:.76rem;line-height:1.35;color:var(--spt-muted,#68717c);font-weight:400}
.spt-data-state.is-warning{color:var(--spt-muted,#68717c)}
body.spt-app-page .spt-data-state{margin:-12px 0 12px}
@media(max-width:720px){.spt-data-state,body.spt-app-page .spt-data-state{margin:-5px 2px 9px;font-size:.74rem}}

/* v0.25: Soll-/Bedarfsplanung für Shuttle- und Fahrerressourcen */
.spt-demand-planning-table thead th small{display:block;margin-top:2px;font-size:.74rem;font-weight:500;color:var(--spt-muted)}
.spt-demand-planning-table thead th.spt-demand-virtual-head{background:var(--spt-danger-bg,#fff0f1)!important;color:var(--spt-danger-text,#9f1d24)!important;box-shadow:inset 0 -3px 0 currentColor}
.spt-demand-planning-table thead th.spt-demand-virtual-head small{color:inherit!important;opacity:.78}
.spt-driver-cell.missing-vehicle{background:var(--spt-danger-bg,#fff0f1)!important;color:var(--spt-danger-text,#9f1d24)!important;box-shadow:inset 4px 0 0 currentColor}
.spt-driver-cell.missing-vehicle>button{color:inherit!important}
.spt-demand-legend .missing-vehicle{background:var(--spt-danger-bg,#fff0f1);color:var(--spt-danger-text,#9f1d24)}
.spt-demand-planning .spt-driver-planning-kpis span{min-width:128px}
@media(max-width:720px){.spt-demand-planning .spt-driver-planning-kpis span{min-width:110px}}

@media print{
 body.spt-print-demand-planning .spt-role-nav,body.spt-print-demand-planning .spt-front-head,body.spt-print-demand-planning .spt-dispo-map,body.spt-print-demand-planning .spt-admin-issues,body.spt-print-demand-planning .spt-view-switch,body.spt-print-demand-planning .spt-dispo-view:not([data-spt-dispo-view="shuttle-planning"]),body.spt-print-demand-planning .spt-driver-planning-intro,body.spt-print-demand-planning .spt-driver-planning-controls,body.spt-print-demand-planning .spt-driver-legend,body.spt-print-demand-planning .spt-driver-planning-detail{display:none!important}
 body.spt-print-demand-planning .spt-dispo-view[data-spt-dispo-view="shuttle-planning"]{display:block!important}
 body.spt-print-demand-planning [data-spt-shuttle-planning-view="drivers"]{display:none!important}
 body.spt-print-demand-planning [data-spt-shuttle-planning-view="demand"]{display:block!important}
 body.spt-print-demand-planning [data-spt-demand-print-head]{display:grid!important;gap:1mm;margin:0 0 4mm;padding:0 0 3mm;border-bottom:1px solid #000;color:#000}
 body.spt-print-demand-planning [data-spt-demand-print-head] strong{font-size:14pt}body.spt-print-demand-planning [data-spt-demand-print-head] span,body.spt-print-demand-planning [data-spt-demand-print-head] small{font-size:9pt}
 body.spt-print-demand-planning .spt-driver-planning-table-wrap{overflow:visible!important;max-height:none!important;border:1px solid #000!important;border-radius:0!important;background:#fff!important}
 body.spt-print-demand-planning .spt-driver-planning-table{min-width:0!important;color:#000!important;font-size:8pt}
 body.spt-print-demand-planning .spt-driver-planning-table th,body.spt-print-demand-planning .spt-driver-planning-table td{position:static!important;border-color:#777!important;background:#fff!important;color:#000!important;box-shadow:none!important}
 body.spt-print-demand-planning .spt-driver-cell>button{min-height:10mm;padding:2mm!important;color:#000!important}body.spt-print-demand-planning .spt-driver-cell>button span,body.spt-print-demand-planning .spt-driver-cell>span{color:#333!important}
 body.spt-print-demand-planning .spt-driver-cell.needs-driver,body.spt-print-demand-planning .spt-driver-cell.missing-vehicle{background:#fff!important;outline:2px solid #000;outline-offset:-2px}body.spt-print-demand-planning .spt-driver-cell.idle{background:#f5f5f5!important}
}

/* v0.26 Zeit-Ort-Plan: lineare Zeitachse, feste Ortsachsen und offene Transportbedarfe */
.spt-time-location{display:grid;gap:12px}
.spt-time-location-controls{margin-bottom:0}
.spt-time-location-legend{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;font-size:.8rem;color:var(--spt-muted)}
.spt-time-location-legend span{display:inline-flex;align-items:center;gap:6px}
.spt-time-location-legend span:before{content:"";display:inline-block;width:30px;height:0;border-top:4px solid currentColor;border-radius:999px}
.spt-time-location-legend .person{color:var(--spt-text)}
.spt-time-location-legend .empty:before{border-top-width:3px;border-top-style:dashed}
.spt-time-location-legend .idle:before{border-top-width:2px;opacity:.45}
.spt-time-location-legend .open{color:var(--spt-danger-text,#9f1d24)}
.spt-time-location-legend .open:before{border-top-width:0;width:10px;height:10px;border-radius:50%;background:currentColor}
.spt-time-location-legend .window{color:var(--spt-danger-text,#9f1d24)}
.spt-time-location-legend .window:before{border-top-width:0;width:12px;height:20px;border-radius:6px;background:currentColor;opacity:.22}
.spt-time-location-detail{border:1px solid var(--spt-border);border-radius:10px;background:var(--spt-surface);padding:12px}
.spt-time-location-scroll{position:relative;overflow:auto;max-height:min(78vh,900px);border:1px solid var(--spt-border);border-radius:12px;background:var(--spt-surface);overscroll-behavior:contain}
.spt-time-location-board{display:flex;align-items:flex-start;min-width:max-content;background:var(--spt-surface)}
.spt-tl-time-axis{position:sticky;left:0;z-index:12;flex:0 0 82px;width:82px;border-right:2px solid var(--spt-border);background:var(--spt-surface)}
.spt-tl-panel{position:relative;flex:0 0 auto;border-right:1px solid var(--spt-border);background:var(--spt-surface)}
.spt-tl-open-panel{background:color-mix(in srgb,var(--spt-danger-bg,#fff0f1),var(--spt-surface) 72%)}
.spt-tl-panel-head{position:sticky;top:0;z-index:8;height:82px;padding:9px 12px 0;background:color-mix(in srgb,var(--spt-surface) 94%,transparent);border-bottom:1px solid var(--spt-border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.spt-tl-panel-head>div:first-child{display:grid;gap:2px;min-width:0}
.spt-tl-panel-head strong{display:flex;align-items:center;gap:7px;font-size:.9rem;white-space:nowrap}
.spt-tl-panel-head small{font-size:.74rem;color:var(--spt-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spt-tl-time-head{display:grid;align-content:start;justify-items:center;gap:1px;padding-top:10px}
.spt-tl-time-head strong{font-size:.82rem}.spt-tl-time-head small{font-size:.7rem;color:var(--spt-muted)}
.spt-tl-station-heads{position:absolute!important;left:0;right:0;bottom:0;height:34px;display:block!important}
.spt-tl-station-head{position:absolute;bottom:7px;transform:translateX(-50%);max-width:72px;padding:2px 5px;border:1px solid var(--spt-border);border-radius:999px;background:var(--spt-surface-2);color:var(--spt-text);font-size:.7rem;font-weight:800;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spt-tl-chart,.spt-tl-time-body{position:relative;background:var(--spt-surface)}
.spt-tl-time-body{width:82px}
.spt-tl-svg{position:absolute;inset:0;display:block;overflow:hidden}
.spt-tl-grid-line{stroke:var(--spt-border);stroke-width:1;opacity:.55;shape-rendering:crispEdges}
.spt-tl-station-line{stroke:var(--spt-border);stroke-width:1;opacity:.7;stroke-dasharray:2 5}
.spt-tl-person-line{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.spt-tl-empty-line{fill:none;stroke-width:2.5;stroke-linecap:round;stroke-dasharray:8 6;opacity:.75}
.spt-tl-idle-line{stroke:var(--spt-shuttle-color,#777);stroke-width:2;opacity:.28;stroke-linecap:round}
.spt-tl-location-gap{stroke:var(--spt-danger-text,#b32d2e);stroke-width:2;stroke-dasharray:3 4;opacity:.9}
.spt-tl-person-node,.spt-tl-empty-node{stroke:var(--spt-surface);stroke-width:1.5}
.spt-tl-open-window{fill:var(--spt-danger-text,#b32d2e);opacity:.18}
.spt-tl-open-marker{fill:var(--spt-danger-text,#b32d2e);stroke:var(--spt-surface);stroke-width:2}
.spt-tl-time-label{position:absolute;right:0;width:100%;transform:translateY(-50%);padding-right:9px;text-align:right;display:flex;align-items:baseline;justify-content:flex-end;gap:4px;pointer-events:none}
.spt-tl-time-label strong{font-size:.75rem;line-height:1}.spt-tl-time-label small{font-size:.62rem;color:var(--spt-muted);font-weight:700}
.spt-tl-note{position:absolute;z-index:5;max-width:158px;border:1px solid var(--spt-border);border-radius:7px;padding:4px 6px;background:color-mix(in srgb,var(--spt-surface) 94%,transparent);color:var(--spt-text);box-shadow:0 1px 4px rgba(0,0,0,.08);font:inherit;font-size:.7rem;font-weight:700;line-height:1.2;text-align:left;cursor:pointer;white-space:normal}
.spt-tl-note.is-right{transform:translate(10px,-50%)}
.spt-tl-note.is-left{transform:translate(calc(-100% - 10px),-50%)}
.spt-tl-note.is-ride{border-left:4px solid var(--spt-shuttle-color,#777)}
.spt-tl-note.is-open{border-color:color-mix(in srgb,var(--spt-danger-text,#b32d2e),transparent 35%);background:var(--spt-danger-bg,#fff0f1);color:var(--spt-danger-text,#9f1d24)}
.spt-tl-note:hover,.spt-tl-note:focus-visible{z-index:20;outline:2px solid color-mix(in srgb,var(--spt-text),transparent 65%);outline-offset:1px}
.spt-tl-people{display:grid;gap:5px;margin-top:10px;padding-top:9px;border-top:1px solid var(--spt-border)}
.spt-tl-people>strong{font-size:.8rem}.spt-tl-people>div{display:flex;justify-content:space-between;gap:10px;padding:5px 7px;border-radius:6px;background:var(--spt-surface-2)}
.spt-tl-people span{font-size:.8rem;font-weight:600}.spt-tl-people small{font-size:.74rem;color:var(--spt-muted);text-align:right}
@media(max-width:720px){.spt-time-location-scroll{max-height:72vh}.spt-tl-time-axis{flex-basis:72px;width:72px}.spt-tl-time-body{width:72px}.spt-tl-note{max-width:132px;font-size:.67rem}.spt-time-location-intro .spt-driver-planning-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.27 Zeit-Ort-Plan: kompakter Fahrtverlauf, Wochentag je Zeitmarke, Fahrerstatus */
.spt-tl-layout-switch{display:inline-flex;align-items:end;gap:5px;flex-wrap:wrap}
.spt-tl-layout-switch>span{flex:0 0 100%;font-size:.72rem;color:var(--spt-muted);font-weight:700;line-height:1}
.spt-tl-layout-switch .spt-view-switch-button{min-height:34px;padding:6px 10px}
.spt-time-location-legend .no-driver{color:var(--spt-muted)}
.spt-time-location-legend .no-driver:before{border-top-color:currentColor;border-top-width:4px;opacity:.8}
.spt-tl-no-driver{stroke:var(--spt-muted)!important;opacity:.72!important}
.spt-tl-no-driver-node{fill:var(--spt-muted)!important}
.spt-tl-time-axis{flex-basis:94px;width:94px}
.spt-tl-time-body{width:94px}
.spt-tl-time-label{padding-right:10px}
.spt-tl-time-label strong{font-size:.72rem;white-space:nowrap}
.spt-time-location-board.is-compact .spt-tl-panel-head{height:58px;padding-top:9px}
.spt-time-location-board.is-compact .spt-tl-time-head{height:58px;padding-top:10px}
.spt-tl-compact-panel{min-width:0}
.spt-tl-compact-chart{overflow:visible}
.spt-tl-compact-person-line{fill:none;stroke-width:5;stroke-linecap:round}
.spt-tl-compact-empty-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-dasharray:8 6;opacity:.82}
.spt-tl-compact-idle-line{fill:none;stroke-width:2;stroke-linecap:round;opacity:.28}
.spt-tl-compact-corner{fill:none;stroke-width:3;stroke-linecap:round}
.spt-tl-compact-open-window{stroke:var(--spt-danger-text,#b32d2e);stroke-width:11;stroke-linecap:round;opacity:.18}
.spt-tl-compact-open-leader{stroke:var(--spt-danger-text,#b32d2e);stroke-width:2.5;stroke-linecap:round}
.spt-tl-compact-note{position:absolute;z-index:5;transform:translateY(-50%);max-width:215px;border:0;border-radius:5px;padding:2px 4px;background:color-mix(in srgb,var(--spt-surface) 90%,transparent);color:var(--spt-text);font:inherit;font-size:.68rem;font-weight:700;line-height:1.15;text-align:left;cursor:pointer;white-space:normal}
.spt-tl-compact-note.is-arrive{border-left:2px solid var(--spt-shuttle-color,#777)}
.spt-tl-compact-note.is-depart{border-left:2px dashed var(--spt-shuttle-color,#777)}
.spt-tl-compact-note.is-no-driver{border-left-color:var(--spt-muted);color:var(--spt-muted)}
.spt-tl-compact-note.is-open{border:1px solid color-mix(in srgb,var(--spt-danger-text,#b32d2e),transparent 45%);background:var(--spt-danger-bg,#fff0f1);color:var(--spt-danger-text,#9f1d24)}
.spt-tl-compact-note:hover,.spt-tl-compact-note:focus-visible{z-index:20;outline:2px solid color-mix(in srgb,var(--spt-text),transparent 65%);outline-offset:1px;background:var(--spt-surface)}
@media(max-width:720px){.spt-tl-time-axis{flex-basis:88px;width:88px}.spt-tl-time-body{width:88px}.spt-tl-time-label strong{font-size:.68rem}.spt-tl-compact-note{font-size:.65rem;max-width:205px}}

/* v0.28 Shuttleplanung: Sollbedarf und Fahrerbesetzung in einer gemeinsamen Ansicht */
.spt-shuttle-planning{display:grid;gap:14px}
.spt-planning-mode-switch{display:inline-flex;align-items:center;gap:3px;margin-left:auto;padding:2px;border:1px solid var(--spt-border);border-radius:8px;background:var(--spt-soft)}
.spt-planning-mode-switch .spt-view-switch-button{min-height:32px;padding:5px 9px;white-space:nowrap}
@media(max-width:900px){.spt-planning-mode-switch{margin-left:0}}
@media print{.spt-planning-mode-switch{display:none!important}}

/* v0.29 Zeit-Ort-Plan: ausführliche Desktop-Haltemarken, kompakte Mobiltexte */
.spt-tl-label-short{display:none}
.spt-tl-compact-note .spt-tl-label-long,.spt-tl-compact-note .spt-tl-label-short{pointer-events:none}
@media(max-width:720px){
  .spt-tl-label-long{display:none}
  .spt-tl-label-short{display:inline}
}


/* v0.30 Zeit-Ort-Plan: hierarchisches Zeitraster zur schnelleren Orientierung */
.spt-tl-grid-minor{opacity:.24}
.spt-tl-grid-five{opacity:.34}
.spt-tl-grid-quarter{stroke-width:1.35;opacity:.72}
.spt-tl-grid-hour{stroke-width:2;opacity:.95}
.spt-tl-time-label.is-minor strong{font-weight:600;color:var(--spt-muted)}
.spt-tl-time-label.is-five strong{font-weight:650}
.spt-tl-time-label.is-quarter strong{font-weight:750;color:var(--spt-text)}
.spt-tl-time-label.is-hour strong{font-weight:900;color:var(--spt-text);letter-spacing:.01em}


/* v0.31 Zeit-Ort-Plan: kollisionsfreie Marker und lesbarere Bedarfsdetails */
.spt-time-location-detail .spt-compare-detail-row{align-items:baseline}
.spt-time-location-detail .spt-compare-detail-row>strong{font-size:1rem;line-height:1.35}
.spt-time-location-detail .spt-compare-detail-row>span{font-size:1rem;line-height:1.45;color:var(--spt-text);font-weight:400}
.spt-time-location-detail .spt-tl-people{gap:6px}
.spt-time-location-detail .spt-tl-people>strong{font-size:.92rem}
.spt-time-location-detail .spt-tl-people>div.spt-tl-person-row{display:flex;justify-content:flex-start;align-items:baseline;gap:6px;flex-wrap:wrap;padding:7px 8px;text-align:left}
.spt-time-location-detail .spt-tl-person-row span{font-size:.88rem;line-height:1.35;color:var(--spt-text);font-weight:600;text-align:left}
.spt-time-location-detail .spt-tl-person-row .spt-tl-person-name{font-weight:750}
.spt-time-location-detail .spt-tl-person-row .spt-tl-person-sep{color:var(--spt-muted);font-weight:500}
.spt-tl-compact-note.is-shifted{z-index:6}
@media(max-width:720px){
  .spt-time-location-detail .spt-compare-detail-row>span{font-size:.9rem}
  .spt-time-location-detail .spt-tl-person-row span{font-size:.82rem}
}

/* v0.32 Frontend-Simulation innerhalb Planung */
.spt-front-simulation{display:grid;gap:14px;padding:14px;border:1px solid var(--spt-border);border-radius:12px;background:var(--spt-bg)}
.spt-front-simulation .spt-panel-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.spt-front-simulation .spt-panel-head h3{margin:0 0 4px;font-size:1.18rem}
.spt-sim-clock{font-size:26px;font-weight:800;white-space:nowrap}
.spt-sim-controls{display:flex;align-items:end;gap:8px;flex-wrap:wrap}
.spt-sim-controls label{display:grid;gap:4px;font-weight:700;font-size:.9rem;color:var(--spt-muted)}
.spt-sim-controls select{min-width:120px;min-height:38px;padding:6px 30px 6px 9px;border:1px solid var(--spt-border);border-radius:7px;background:var(--spt-bg);color:var(--spt-text);font:inherit}
.spt-sim-controls .spt-button{min-height:38px;padding:8px 11px}
.spt-sim-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;align-items:start}
.spt-sim-map{height:590px;border:1px solid var(--spt-border);background:var(--spt-soft);border-radius:8px;overflow:hidden}
.spt-sim-sidebar{border:1px solid var(--spt-border);background:var(--spt-bg);border-radius:8px;padding:12px;max-height:680px;overflow:auto}
.spt-sim-sidebar h3{margin:0 0 8px}
.spt-sim-state{appearance:none;width:100%;border:1px solid var(--spt-border);background:var(--spt-bg);color:var(--spt-text);border-radius:7px;padding:8px 9px;margin:0 0 6px;display:flex;align-items:flex-start;gap:8px;text-align:left;cursor:pointer;font:inherit}
.spt-sim-state.is-selected{border-color:var(--spt-accent,#2271b1);box-shadow:0 0 0 1px var(--spt-accent,#2271b1)}
.spt-sim-state>span:last-child{display:grid;gap:2px}
.spt-sim-state small{color:var(--spt-muted)}
.spt-sim-detail{margin-top:12px;border-top:1px solid var(--spt-border);padding-top:12px}
.spt-sim-detail-head{display:flex;justify-content:space-between;gap:10px}
.spt-sim-passengers{display:grid;gap:5px;margin:8px 0 0;padding:0;list-style:none}
.spt-sim-passengers li{display:grid;gap:2px;background:var(--spt-soft);padding:7px 8px;border-radius:5px}
.spt-sim-passengers span{font-size:.8rem;color:var(--spt-muted)}
.spt-sim-timeline{padding:10px 4px 0}
.spt-sim-timeline input[type=range]{width:100%;margin-top:3px;accent-color:var(--spt-accent,#2271b1)}
.spt-sim-timeline>div:not(.spt-sim-activity){display:flex;justify-content:space-between;align-items:center}
.spt-sim-timeline strong{font-size:17px}
.spt-sim-timeline>small{display:block;margin-top:2px}
.spt-sim-activity{position:relative;height:8px;border-radius:999px;background:var(--spt-soft);overflow:hidden;border:1px solid var(--spt-border)}
.spt-sim-activity span{position:absolute;top:0;bottom:0;display:block}
.spt-sim-activity .is-busy{background:color-mix(in srgb,var(--spt-accent,#2271b1),transparent 52%)}
.spt-sim-activity .is-conflict{background:#d63638;z-index:2;min-width:2px}
.spt-sim-pin{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:3px solid #fff;box-shadow:0 2px 7px rgba(0,0,0,.3);font-weight:800;position:relative}
.spt-sim-pin.hq{background:#1d2327;color:#fff;font-size:20px}
.spt-sim-pin.station{background:#fff;color:#1d2327;border-color:#1d2327;font-size:11px}
.spt-sim-pin.poi{background:#fff;color:#1d2327;border-color:#68717c;font-size:16px;flex-direction:column;line-height:1}
.spt-sim-pin.poi small{font-size:8px;max-width:30px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}
.spt-sim-barrier{display:none;position:absolute;right:-13px;top:-14px;font-size:18px;filter:drop-shadow(0 1px 1px #fff)}
.spt-sim-pin.station.is-restricted,.spt-sim-pin.poi.is-restricted{border-color:#d63638;background:#fff0f0}
.spt-sim-pin.station.is-restricted .spt-sim-barrier,.spt-sim-pin.poi.is-restricted .spt-sim-barrier{display:block}
.spt-sim-vehicle{--spt-color:#2271b1;width:34px;height:34px;border-radius:10px;background:var(--spt-color);border:3px solid #fff;box-shadow:0 2px 9px rgba(0,0,0,.38);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900}
.spt-sim-conflicts{border-top:1px solid var(--spt-border);padding-top:8px}
.spt-sim-conflicts h3{margin:0 0 8px}
.spt-sim-conflict-list{display:grid;gap:6px}
.spt-sim-conflict-list>div{display:grid;gap:2px;padding:8px 10px;border-left:4px solid #d63638;background:color-mix(in srgb,#d63638,transparent 94%)}
.spt-sim-conflict-list span{font-size:.9rem;color:var(--spt-muted)}
@media(max-width:1050px){.spt-sim-layout{grid-template-columns:1fr}.spt-sim-sidebar{max-height:none}.spt-sim-map{height:480px}}
@media(max-width:700px){.spt-front-simulation .spt-panel-head{flex-direction:column}.spt-sim-clock{font-size:20px}.spt-sim-map{height:380px}.spt-sim-controls{align-items:stretch}.spt-sim-controls label,.spt-sim-controls button{flex:1 1 140px}.spt-sim-controls select{width:100%}}

/* v0.34 – Live-Lagebild der Disposition */
.spt-dispo-live-active>.spt-dispo-static-map-wrap,.spt-dispo-live-active>.spt-issues,.spt-dispo-live-active>.spt-print-document-head{display:none!important}
.spt-live-monitor{display:grid;gap:12px;min-width:0}
.spt-live-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--spt-border);border-radius:10px;background:var(--spt-surface)}
.spt-live-toolbar>div:first-child{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;min-width:0}.spt-live-toolbar strong{font-size:1rem}.spt-live-toolbar [data-spt-live-updated]{font-size:.9rem;color:var(--spt-muted)}
.spt-live-toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.spt-live-status-panel{border:1px solid var(--spt-border);border-radius:10px;background:var(--spt-surface);overflow:hidden}
.spt-live-status-list{display:grid}
.spt-live-status-row{appearance:none;width:100%;border:0;border-bottom:1px solid var(--spt-border);background:transparent;color:var(--spt-text);display:grid;grid-template-columns:18px minmax(92px,auto) auto minmax(120px,auto) minmax(180px,1fr) auto;gap:8px 10px;align-items:center;padding:9px 12px;text-align:left;font:inherit;cursor:pointer}
.spt-live-status-row:last-child{border-bottom:0}.spt-live-status-row:hover{background:var(--spt-surface-2)}.spt-live-status-row strong{font-size:.9rem}.spt-live-status-row>span:not(.spt-tab-dot){font-size:.84rem}.spt-live-status-row small{font-size:.78rem;color:var(--spt-muted);text-align:right}
.spt-live-status-mode{display:inline-flex!important;align-items:center;justify-content:center;width:max-content;border:1px solid var(--spt-border);border-radius:999px;padding:2px 7px;font-size:.68rem!important;font-weight:800;letter-spacing:.04em}.spt-live-status-row.is-claimed .spt-live-status-mode{border-color:#15803d;background:#ecfdf3;color:#166534}
.spt-live-status-row.gps-delayed small{color:#986800}.spt-live-status-row.gps-stale small,.spt-live-status-row.gps-lost small{color:var(--spt-muted);font-weight:700}.spt-live-status-row.gps-stale,.spt-live-status-row.gps-lost{background:color-mix(in srgb,var(--spt-surface-2) 70%,transparent)}
.spt-live-map{height:620px;min-height:420px;border:1px solid var(--spt-border);border-radius:12px;overflow:hidden;background:var(--spt-surface-2)}
.spt-live-foot{display:flex;flex-wrap:wrap;gap:5px 18px;color:var(--spt-muted);font-size:.77rem}.spt-live-foot strong{color:var(--spt-text)}
.spt-live-station-pin{min-width:42px;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:translateY(-1px);filter:drop-shadow(0 1px 2px rgba(0,0,0,.24))}.spt-live-station-pin strong{display:flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 6px;border-radius:50%;border:2px solid var(--spt-border,#5c6773);background:var(--spt-surface,#fff);color:var(--spt-text,#17202a);font:800 11px/1 system-ui,sans-serif}.spt-live-station-pin span{margin-top:-3px;white-space:nowrap;border-radius:999px;padding:3px 7px;background:#9f1d24;color:#fff;font:800 10px/1.1 system-ui,sans-serif;border:2px solid #fff}.spt-live-station-pin.has-expected strong{border-color:#9f1d24}
.spt-live-vehicle-pin{display:flex;align-items:center;gap:5px;width:max-content;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3));font-family:system-ui,sans-serif}.spt-live-vehicle-ball{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:var(--spt-color);color:#fff;border:3px solid #fff;box-shadow:0 0 0 2px var(--spt-color);font-size:14px;font-weight:900}.spt-live-vehicle-label{display:block;white-space:nowrap;border:1px solid color-mix(in srgb,var(--spt-color) 55%,#0000);border-left:4px solid var(--spt-color);border-radius:7px;padding:5px 7px;background:var(--spt-surface,#fff);color:var(--spt-text,#111);font-size:10px;font-weight:800}
.spt-live-vehicle-pin.plan .spt-live-vehicle-ball{background:var(--spt-surface,#fff);color:var(--spt-color);border-style:dashed}.spt-live-vehicle-pin.plan .spt-live-vehicle-label{opacity:.86}.spt-live-vehicle-pin.is-claimed .spt-live-vehicle-ball:after{content:"";position:absolute;width:9px;height:9px;border-radius:50%;background:#22c55e;border:2px solid #fff;transform:translate(14px,-14px)}
.spt-live-vehicle-pin.gps-delayed .spt-live-vehicle-label{border-color:#dba617}.spt-live-vehicle-pin.gps-stale,.spt-live-vehicle-pin.gps-lost{--spt-color:#7b8794!important;opacity:.82}.spt-live-vehicle-pin.gps-stale .spt-live-vehicle-label,.spt-live-vehicle-pin.gps-lost .spt-live-vehicle-label{border-color:#7b8794}
.spt-live-popup-people{display:grid;gap:5px;margin-top:8px;max-height:240px;overflow:auto}.spt-live-popup-people>div{display:grid;gap:1px;padding:5px 6px;border-radius:6px;background:#f2f4f7}.spt-live-popup-people strong{font-size:12px}.spt-live-popup-people span{font-size:11px;color:#5d6874}
body.spt-theme-dark .spt-live-status-row.is-claimed .spt-live-status-mode{background:#153321;color:#a7f3c2;border-color:#2b7650}body.spt-theme-dark .spt-live-popup-people>div{background:#202733}body.spt-theme-dark .spt-live-popup-people span{color:#bac4cf}

/* Leitstand: Dispo-Seite wird zu einem möglichst großen, selbstlaufenden Lagebild. */
.spt-dispo.is-live-leitstand{position:fixed;inset:0;z-index:2147480000;padding:10px!important;margin:0!important;max-width:none!important;background:var(--spt-bg,#f5f7fa);overflow:hidden;display:block!important}
body.spt-test-clock-active .spt-dispo.is-live-leitstand{top:46px}
.spt-dispo.is-live-leitstand>.spt-role-nav,.spt-dispo.is-live-leitstand>.spt-data-state,.spt-dispo.is-live-leitstand>.spt-front-head,.spt-dispo.is-live-leitstand>.spt-dispo-static-map-wrap,.spt-dispo.is-live-leitstand>.spt-issues,.spt-dispo.is-live-leitstand>.spt-print-document-head,.spt-dispo.is-live-leitstand>.spt-dispo-mode-switch,.spt-dispo.is-live-leitstand>[data-spt-mode-view="vehicles"],.spt-dispo.is-live-leitstand>[data-spt-mode-view="drivers"]{display:none!important}
.spt-dispo.is-live-leitstand>.spt-live-monitor-view{display:block!important;height:100%}.spt-dispo.is-live-leitstand .spt-live-monitor{height:100%;grid-template-rows:auto auto minmax(0,1fr) auto}.spt-dispo.is-live-leitstand .spt-live-map{height:100%;min-height:0}.spt-dispo.is-live-leitstand .spt-live-toolbar{padding:7px 9px}.spt-dispo.is-live-leitstand .spt-live-foot{font-size:.7rem}
@media(max-width:900px){.spt-live-status-row{grid-template-columns:18px minmax(90px,auto) auto 1fr}.spt-live-status-row>span:nth-of-type(3),.spt-live-status-row small{grid-column:2/-1;text-align:left}.spt-live-map{height:520px}.spt-live-toolbar{align-items:flex-start;flex-direction:column}.spt-live-toolbar-actions{width:100%}.spt-live-toolbar-actions .spt-button{flex:1}}
@media(max-width:782px){body.spt-test-clock-active .spt-dispo.is-live-leitstand{top:52px}}
@media(max-width:620px){.spt-live-status-row{grid-template-columns:16px 1fr auto}.spt-live-status-row>span:not(.spt-tab-dot):not(.spt-live-status-mode),.spt-live-status-row small{grid-column:2/-1}.spt-live-map{height:460px}.spt-live-vehicle-label{font-size:9px;max-width:100px;overflow:hidden;text-overflow:ellipsis}}
.spt-live-expected-list{border-top:1px solid var(--spt-border);padding:10px 12px;background:var(--spt-surface-2)}.spt-live-expected-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px}.spt-live-expected-head strong{font-size:.88rem}.spt-live-expected-head span{font-size:.78rem;color:var(--spt-muted)}.spt-live-expected-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px}.spt-live-expected-card{appearance:none;border:1px solid var(--spt-border);border-left:4px solid #9f1d24;border-radius:8px;background:var(--spt-surface);color:var(--spt-text);padding:8px 10px;text-align:left;display:grid;gap:2px;font:inherit;cursor:pointer}.spt-live-expected-card:hover{background:color-mix(in srgb,var(--spt-danger-bg,#fff0f1) 40%,var(--spt-surface))}.spt-live-expected-card strong{font-size:.82rem}.spt-live-expected-card span{font-size:.77rem}.spt-live-expected-card small{font-size:.76rem;color:var(--spt-muted);line-height:1.35}.spt-live-vehicle-ball{position:relative}

/* v0.37 – Boarding-Quittierung und Fahrthistorie */
.spt-ride-operations{margin-top:12px;padding-top:10px;border-top:1px solid var(--spt-border);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.spt-ride-operation-status{display:grid;gap:2px}.spt-ride-operation-status strong{font-size:.98rem}.spt-ride-operation-status span{font-size:.8rem;color:var(--spt-muted)}
.spt-ride-operation-actions{display:flex;gap:7px;flex-wrap:wrap}
.spt-board-passenger{grid-template-columns:auto minmax(120px,auto) 1fr auto!important;align-items:center!important}
.spt-board-check{display:flex;align-items:center;justify-content:center;width:34px;height:34px;margin:0!important}.spt-board-check input{width:21px;height:21px;margin:0;accent-color:var(--spt-accent,#2271b1)}.spt-board-check span{display:none}
.spt-board-passenger.boarded{background:color-mix(in srgb,#16a34a 8%,var(--spt-surface))}.spt-board-passenger.missed{background:color-mix(in srgb,#d63638 9%,var(--spt-surface))}.spt-board-passenger em{font-size:.76rem;font-style:normal;font-weight:700;color:#b42318}
.spt-ride-card.is-op-started{border-left:5px solid #c18400}.spt-ride-card.is-op-completed{opacity:.82}
.spt-operation-history{display:grid;gap:12px}.spt-operation-history-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.spt-operation-history-head h3{margin:0 0 3px}
.spt-history-list{display:grid;gap:10px}.spt-history-card{border:1px solid var(--spt-border);border-radius:10px;background:var(--spt-surface);padding:12px;display:grid;gap:10px}.spt-history-card.is-running{border-left:5px solid #c18400}
.spt-history-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.spt-history-card-head>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.spt-history-card-head>span{font-size:.8rem;color:var(--spt-muted)}
.spt-history-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.spt-history-times>div{padding:9px 10px;border-radius:8px;background:var(--spt-surface-2);display:grid;gap:2px}.spt-history-times small{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--spt-muted);font-weight:800}.spt-history-times strong{font-size:.92rem}.spt-history-times span{font-size:.8rem;color:var(--spt-muted)}
.spt-history-deviation{display:inline-flex;margin-left:4px;border-radius:999px;padding:1px 6px;font-size:.7rem;font-weight:800}.spt-history-deviation.ok{background:#e8f6ec;color:#166534}.spt-history-deviation.warn{background:#fff4d6;color:#805d00}.spt-history-deviation.danger{background:#feeceb;color:#a61b1b}
.spt-history-passengers summary{cursor:pointer;font-weight:700;font-size:.84rem}.spt-history-passenger-list{display:grid;gap:5px;margin-top:8px}.spt-history-passenger{display:grid;grid-template-columns:minmax(140px,auto) 1fr auto;gap:8px;align-items:center;padding:7px 8px;border-radius:7px;background:var(--spt-surface-2)}.spt-history-passenger strong{font-size:.84rem}.spt-history-passenger span{font-size:.78rem;color:var(--spt-muted)}.spt-history-passenger b{font-size:.76rem}.spt-history-passenger.missed b{color:#b42318}.spt-history-passenger.boarded b{color:#166534}
@media(max-width:760px){.spt-history-times{grid-template-columns:1fr}.spt-history-passenger{grid-template-columns:1fr}.spt-ride-operations{align-items:stretch}.spt-ride-operation-actions{width:100%}.spt-ride-operation-actions .spt-button{flex:1}.spt-board-passenger{grid-template-columns:auto 1fr!important}.spt-board-passenger>span,.spt-board-passenger>a,.spt-board-passenger>em{grid-column:2}}

/* v0.38 Positionsbesetzung / Besetzungs-Zeitstrahl */
/* v0.38.1 Lesbarkeit / wiederholte Zeitleiste */
.spt-position-coverage{font-size:.94rem}
.spt-coverage-station-time-head{border-top:0;border-bottom:0}
.spt-dispo-positions-active>.spt-dispo-static-map-wrap{display:none!important}
.spt-position-coverage{display:grid;gap:12px}
.spt-position-coverage-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.spt-position-coverage-head h3{margin:0 0 6px;font-size:1.3rem}
.spt-position-coverage-head p{margin:0;max-width:980px;font-size:.94rem;line-height:1.45}
.spt-position-coverage-filters{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--spt-border);border-radius:10px;background:var(--spt-surface-2,var(--spt-soft))}
.spt-position-coverage-legend{display:flex;gap:10px 18px;align-items:center;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--spt-border);border-radius:8px;background:var(--spt-surface,#fff);font-size:.9rem;color:var(--spt-muted)}
.spt-position-coverage-legend span{display:inline-flex;align-items:center;gap:6px}.spt-position-coverage-legend b{color:#9a6700}
.spt-coverage-legend-gap{display:inline-block;width:22px;height:12px;border-radius:3px;background:color-mix(in srgb,#d63638 18%,transparent);border:1px solid color-mix(in srgb,#d63638 55%,transparent)}
.spt-position-coverage-scroll{overflow-x:auto;overscroll-behavior-inline:contain;border:1px solid var(--spt-border);border-radius:10px;background:var(--spt-surface,#fff)}
.spt-coverage-grid-row{display:grid;grid-template-columns:260px var(--spt-coverage-width);min-width:calc(260px + var(--spt-coverage-width))}
.spt-coverage-left{position:sticky;left:0;z-index:6;min-width:0;padding:8px 12px;border-right:1px solid var(--spt-border);background:var(--spt-surface,#fff);display:flex;flex-direction:column;justify-content:center;gap:2px}
.spt-coverage-left span{font-size:.88rem;color:var(--spt-muted);line-height:1.3}
.spt-coverage-header{position:relative;z-index:8;border-bottom:1px solid var(--spt-border);background:var(--spt-surface,#fff)}
.spt-coverage-left-head{justify-content:flex-end;padding-bottom:10px;font-size:.86rem;font-weight:800;color:var(--spt-muted);text-transform:uppercase;letter-spacing:.03em}
.spt-coverage-time-head,.spt-coverage-station-time-head{position:relative;height:72px;background:var(--spt-surface,#fff)}
.spt-coverage-day{position:absolute;top:0;height:38px;padding:7px 8px;border-right:2px solid color-mix(in srgb,var(--spt-text) 38%,transparent);background:var(--spt-surface-2,var(--spt-soft));display:flex;align-items:baseline;gap:6px;overflow:hidden;white-space:nowrap}
.spt-coverage-day strong{font-size:1rem}.spt-coverage-day span{font-size:.88rem;color:var(--spt-muted);font-weight:650}
.spt-coverage-hour-label{position:absolute;top:38px;height:34px;padding:8px 5px 0;border-right:1px solid var(--spt-border);font-size:.86rem;color:var(--spt-muted);font-weight:600;white-space:nowrap}
.spt-coverage-hour-label.is-day-start{border-left:2px solid color-mix(in srgb,var(--spt-text) 38%,transparent);font-weight:800;color:var(--spt-text)}
.spt-coverage-station{display:block}
.spt-coverage-station[hidden],.spt-coverage-position-group[hidden]{display:none!important}
.spt-coverage-station-row{border-top:2px solid color-mix(in srgb,var(--spt-text) 30%,transparent);border-bottom:1px solid var(--spt-border);background:var(--spt-surface-2,var(--spt-soft))}
.spt-coverage-station-row .spt-coverage-left{background:var(--spt-surface-2,var(--spt-soft));padding-top:13px;padding-bottom:13px}
.spt-coverage-station-row .spt-coverage-left strong{font-size:1.32rem;line-height:1.05}.spt-coverage-station-time-head{background:var(--spt-surface-2,var(--spt-soft));border-left:0}.spt-coverage-station-time-head .spt-coverage-day{background:color-mix(in srgb,var(--spt-surface-2,var(--spt-soft)) 86%,var(--spt-surface,#fff))}
.spt-coverage-position-row{border-bottom:1px solid var(--spt-border)}
.spt-coverage-position-label{align-items:flex-start;justify-content:flex-start;padding-top:12px}.spt-coverage-position-label strong{font-size:1rem;line-height:1.3}
.spt-coverage-position-timeline{position:relative;background-color:var(--spt-surface,#fff);background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--spt-coverage-hour) - 1px),color-mix(in srgb,var(--spt-border) 72%,transparent) calc(var(--spt-coverage-hour) - 1px),color-mix(in srgb,var(--spt-border) 72%,transparent) var(--spt-coverage-hour));overflow:hidden}
.spt-coverage-day-line{position:absolute;top:0;bottom:0;width:2px;background:color-mix(in srgb,var(--spt-text) 30%,transparent);z-index:0;pointer-events:none}
.spt-coverage-gap{position:absolute;top:0;bottom:0;z-index:1;background:color-mix(in srgb,#d63638 13%,transparent);border-left:1px solid color-mix(in srgb,#d63638 55%,transparent);border-right:1px solid color-mix(in srgb,#d63638 55%,transparent);display:flex;align-items:flex-end;justify-content:center;pointer-events:none}
.spt-coverage-gap span{margin-bottom:3px;padding:2px 5px;border-radius:4px;background:color-mix(in srgb,#d63638 83%,transparent);color:#fff;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.spt-coverage-shift{position:absolute;z-index:2;height:33px;appearance:none;border:1px solid color-mix(in srgb,var(--spt-accent,#475569) 45%,var(--spt-border));border-left:4px solid var(--spt-accent,#475569);border-radius:5px;background:var(--spt-accent-soft,var(--spt-surface-2));color:var(--spt-text);padding:3px 7px;text-align:left;font:inherit;cursor:pointer;overflow:hidden;white-space:nowrap;box-shadow:0 1px 1px rgba(0,0,0,.04)}
.spt-coverage-shift:hover,.spt-coverage-shift:focus-visible{z-index:4;outline:2px solid color-mix(in srgb,var(--spt-accent,#475569) 50%,transparent);outline-offset:1px}
.spt-coverage-shift.has-problem{border-color:#dba617;border-left-color:#dba617;background:#fff8d8;color:#5f4700}
.spt-coverage-shift.is-unfilled{border-style:dashed}
.spt-coverage-shift-name{display:block;overflow:hidden;text-overflow:ellipsis;font-size:.88rem;font-weight:750;line-height:1.08}.spt-coverage-shift-name b{color:#9a6700}.spt-coverage-shift small{display:block;margin-top:2px;font-size:.75rem;line-height:1.05;color:var(--spt-muted)}
.spt-coverage-tooltip{position:fixed;z-index:99999;width:min(560px,calc(100vw - 24px));padding:12px 14px;border:1px solid var(--spt-border);border-radius:9px;background:var(--spt-surface,#fff);color:var(--spt-text);box-shadow:0 10px 28px rgba(0,0,0,.18);pointer-events:none}.spt-coverage-tooltip[hidden]{display:none!important}
.spt-coverage-detail-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:9px}.spt-coverage-detail-head>div{display:grid;gap:2px}.spt-coverage-detail-head span{font-size:.9rem;color:var(--spt-muted)}
.spt-coverage-problem-line{margin:0 0 9px;padding:8px 10px;border-radius:6px;background:#fff4c2;color:#6f5200;border:1px solid #e6bd48;font-size:.92rem;font-weight:700}
.spt-coverage-transport-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:10px}
.spt-coverage-transport-card{display:grid;gap:5px;padding:11px 12px;border:1px solid var(--spt-border);border-radius:8px;background:var(--spt-surface,#fff);font-size:.92rem}.spt-coverage-transport-card>strong{font-size:1rem}.spt-coverage-transport-card span{line-height:1.35}.spt-coverage-transport-card small{color:var(--spt-muted)}.spt-coverage-transport-card small.is-danger,.spt-coverage-transport-alert{color:#806000;font-weight:700}
@media(max-width:900px){.spt-position-coverage-head{display:block}.spt-position-coverage-filters{margin-top:10px}.spt-coverage-grid-row{grid-template-columns:210px var(--spt-coverage-width);min-width:calc(210px + var(--spt-coverage-width))}.spt-coverage-transport-grid{grid-template-columns:1fr}.spt-coverage-left{padding-left:9px;padding-right:9px}}
@media print{.spt-position-coverage-filters,.spt-position-coverage-legend{display:none!important}.spt-position-coverage-scroll{overflow:visible!important;border:0!important}.spt-coverage-left{position:static!important}.spt-position-coverage{font-size:8pt}}

/* v0.39 Fahrgastliste der Disposition */
.spt-passenger-transport-list{display:grid;gap:12px}
.spt-passenger-list-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.spt-passenger-list-head h3{margin:0 0 5px;font-size:1.25rem}
.spt-passenger-list-head p{margin:0;max-width:900px}
.spt-passenger-list-filters{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--spt-border);border-radius:10px;background:var(--spt-surface-2,var(--spt-soft))}
.spt-passenger-table-wrap{overflow:auto;border:1px solid var(--spt-border);border-radius:10px;background:var(--spt-surface,#fff)}
.spt-passenger-table{width:100%;min-width:980px;border-collapse:collapse;font-size:.9rem}
.spt-passenger-table th,.spt-passenger-table td{padding:9px 10px;border-bottom:1px solid var(--spt-border);vertical-align:top;text-align:left}
.spt-passenger-table thead th{position:sticky;top:0;z-index:2;background:var(--spt-surface-2,var(--spt-soft));font-size:.78rem;text-transform:uppercase;letter-spacing:.035em;color:var(--spt-muted)}
.spt-passenger-table tbody tr:not(.spt-passenger-day-row):hover{background:color-mix(in srgb,var(--spt-accent,#2271b1) 5%,transparent)}
.spt-passenger-table td small{display:block;margin-top:2px;color:var(--spt-muted);font-size:.76rem;line-height:1.3}
.spt-passenger-day-row th{padding:8px 10px;background:var(--spt-surface-2,var(--spt-soft));font-size:.92rem;border-top:2px solid color-mix(in srgb,var(--spt-text) 25%,transparent)}
.spt-passenger-vehicle{display:inline-flex;align-items:center;gap:7px;font-weight:700;white-space:nowrap}.spt-passenger-vehicle i{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--spt-color)}
.spt-passenger-relation{font-weight:700}.spt-passenger-relation.warn{color:#8a6200}.spt-passenger-relation.danger{color:#b42318}
.spt-passenger-table tr.is-open td{background:color-mix(in srgb,#d63638 5%,transparent)}
@media(max-width:760px){.spt-passenger-list-head{display:block}.spt-passenger-list-filters{margin-top:10px}.spt-passenger-table{font-size:.84rem}}
@media print{.spt-passenger-list-filters{display:none!important}.spt-passenger-table-wrap{overflow:visible!important;border:0!important}.spt-passenger-table{min-width:0;font-size:8pt}.spt-passenger-table thead th{position:static!important}}
.spt-dispo-passengers-active>.spt-dispo-static-map-wrap{display:none!important}

/* v0.39.2 Tageskopf + Spaltenkopf in einer Zeile */
.spt-passenger-day-row th{background:var(--spt-surface-2,var(--spt-soft));font-size:.78rem;text-transform:uppercase;letter-spacing:.035em;color:var(--spt-muted);vertical-align:bottom}
.spt-passenger-day-row th:first-child{min-width:165px}
.spt-passenger-day-row th:first-child strong{display:block;font-size:.94rem;letter-spacing:0;text-transform:none;color:var(--spt-text);margin-bottom:3px}
.spt-passenger-day-row th:first-child small{display:block;margin:0;font-size:.72rem;text-transform:uppercase;letter-spacing:.035em;color:var(--spt-muted)}

.spt-emergency-note{display:block;margin-top:4px;font-weight:700;color:var(--spt-danger-text,#b42318)}

/* v0.40.0 Disposition: Fahrzeugeinsatz */
.spt-fleet-usage{display:grid;gap:14px}.spt-fleet-usage-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.spt-fleet-usage-head h3{margin:0 0 5px;font-size:1.3rem}.spt-fleet-usage-head p{margin:0;max-width:1050px}.spt-fleet-legend{display:flex;gap:8px 14px;align-items:center;flex-wrap:wrap;font-size:.82rem;color:var(--spt-muted)}.spt-fleet-legend span{display:inline-flex;align-items:center;gap:6px}.spt-fleet-legend span:before{content:"";width:22px;height:10px;border-radius:3px;border:1px solid var(--spt-border);display:inline-block}.spt-fleet-legend .driver:before{background:var(--spt-surface-2)}.spt-fleet-legend .idle:before{background:color-mix(in srgb,var(--spt-accent) 10%,white)}.spt-fleet-legend .person:before{background:repeating-linear-gradient(90deg,var(--spt-accent) 0 3px,color-mix(in srgb,var(--spt-accent) 25%,white) 3px 6px)}.spt-fleet-legend .empty:before{background:color-mix(in srgb,var(--spt-accent) 48%,white)}.spt-fleet-legend .unavailable:before{background:repeating-linear-gradient(135deg,#d7dbe0 0 4px,#f3f4f6 4px 8px)}.spt-fleet-legend .problem:before{background:#dc2626;border-color:#b91c1c}.spt-fleet-legend .restriction:before{background:rgba(245,158,11,.26);border-color:#d97706}
.spt-fleet-scroll{overflow-x:auto;border:1px solid var(--spt-border);border-radius:12px;background:var(--spt-surface);overscroll-behavior-inline:contain}.spt-fleet-board{min-width:calc(190px + var(--spt-fleet-width));width:max-content}.spt-fleet-header,.spt-fleet-row{display:grid;grid-template-columns:190px var(--spt-fleet-width);min-width:calc(190px + var(--spt-fleet-width))}.spt-fleet-header{position:sticky;top:0;z-index:12;background:var(--spt-surface);border-bottom:1px solid var(--spt-border);min-height:64px}.spt-fleet-left-head,.spt-fleet-row-label{position:sticky;left:0;z-index:9;background:var(--spt-surface);border-right:1px solid var(--spt-border)}.spt-fleet-left-head{display:flex;align-items:flex-end;padding:10px 12px;font-weight:800}.spt-fleet-time-head{position:relative;height:64px;background:var(--spt-surface-2);overflow:hidden}.spt-fleet-day{position:absolute;top:0;height:28px;padding:5px 8px;border-right:2px solid var(--spt-border);background:color-mix(in srgb,var(--spt-surface-2) 82%,var(--spt-accent-bg));font-size:.78rem;white-space:nowrap;overflow:hidden}.spt-fleet-hour{position:absolute;top:28px;bottom:0;border-left:1px solid var(--spt-border);font-size:.72rem;color:var(--spt-muted)}.spt-fleet-hour span{position:absolute;top:7px;left:4px;white-space:nowrap}.spt-fleet-restriction-head{position:absolute;top:28px;bottom:0;border:0;border-left:2px solid #d97706;border-right:2px solid #d97706;background:rgba(245,158,11,.18);z-index:5;cursor:help;padding:0;min-width:3px}
.spt-fleet-row{min-height:84px;border-bottom:1px solid var(--spt-border)}.spt-fleet-row:last-child{border-bottom:0}.spt-fleet-row-label{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:10px 12px}.spt-fleet-row-label strong{font-size:.98rem}.spt-fleet-row-label span{font-size:.76rem;color:var(--spt-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spt-fleet-timeline{position:relative;min-height:84px;background:var(--spt-surface)}.spt-fleet-gridline{position:absolute;top:0;bottom:0;border-left:1px solid color-mix(in srgb,var(--spt-border) 72%,transparent);z-index:0}.spt-fleet-restriction-zone{position:absolute;top:0;bottom:0;background:rgba(245,158,11,.08);border-left:1px solid rgba(217,119,6,.45);border-right:1px solid rgba(217,119,6,.35);z-index:1;pointer-events:none}
.spt-fleet-driver-lane{position:absolute;left:0;right:0;top:8px;height:26px;z-index:5}.spt-fleet-driver-block{position:absolute;top:0;height:26px;border:1px solid color-mix(in srgb,var(--spt-fleet-color) 48%,var(--spt-border));border-radius:6px;background:color-mix(in srgb,var(--spt-fleet-color) 16%,var(--spt-surface));color:var(--spt-text);padding:3px 7px;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font:inherit;font-size:.75rem;font-weight:700;cursor:help;min-width:2px}.spt-fleet-driver-block.is-static{border-style:dashed}.spt-fleet-driver-block span{pointer-events:none}
.spt-fleet-activity-lane{position:absolute;left:0;right:0;bottom:9px;height:28px;border-radius:5px;overflow:hidden;z-index:3;border:1px solid color-mix(in srgb,var(--spt-fleet-color) 20%,var(--spt-border))}.spt-fleet-activity-lane.is-available,.spt-fleet-availability-window.is-available{background:color-mix(in srgb,var(--spt-fleet-color) 11%,var(--spt-surface))}.spt-fleet-activity-lane.is-unavailable,.spt-fleet-availability-window.is-unavailable{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--spt-muted) 22%,var(--spt-surface)) 0 4px,color-mix(in srgb,var(--spt-muted) 7%,var(--spt-surface)) 4px 8px)}.spt-fleet-availability-window{position:absolute;top:0;bottom:0;z-index:1}.spt-fleet-segment{position:absolute;top:0;bottom:0;border:0;border-left:1px solid color-mix(in srgb,var(--spt-fleet-color) 72%,#000);border-right:1px solid color-mix(in srgb,var(--spt-fleet-color) 72%,#000);padding:0;cursor:help;z-index:4;min-width:2px}.spt-fleet-segment.is-person{background:repeating-linear-gradient(90deg,var(--spt-fleet-color) 0 3px,color-mix(in srgb,var(--spt-fleet-color) 32%,var(--spt-surface)) 3px 6px)}.spt-fleet-segment.is-empty{background:color-mix(in srgb,var(--spt-fleet-color) 52%,var(--spt-surface))}
.spt-fleet-open-row .spt-fleet-row-label{background:color-mix(in srgb,#dc2626 5%,var(--spt-surface))}.spt-fleet-problem-lane{position:absolute;left:0;right:0;top:28px;height:30px}.spt-fleet-problem{position:absolute;top:0;height:30px;background:#dc2626;border:1px solid #991b1b;border-radius:4px;cursor:help;z-index:6;min-width:3px;padding:0}.spt-fleet-foot{font-size:.78rem;color:var(--spt-muted)}
.spt-fleet-tooltip{position:fixed;z-index:100000;width:min(520px,calc(100vw - 24px));padding:11px 12px;border:1px solid var(--spt-border);border-radius:10px;background:var(--spt-surface);color:var(--spt-text);box-shadow:0 12px 30px rgba(0,0,0,.18);pointer-events:none}.spt-fleet-tooltip[hidden]{display:none}.spt-fleet-tip-content{display:grid;gap:5px}.spt-fleet-tip-content strong{font-size:.95rem}.spt-fleet-tip-content span{font-size:.82rem;line-height:1.35;color:var(--spt-muted)}
@media(max-width:760px){.spt-fleet-board{min-width:calc(150px + var(--spt-fleet-width))}.spt-fleet-header,.spt-fleet-row{grid-template-columns:150px var(--spt-fleet-width);min-width:calc(150px + var(--spt-fleet-width))}.spt-fleet-left-head,.spt-fleet-row-label{padding-left:8px;padding-right:8px}.spt-fleet-row-label strong{font-size:.86rem}}
@media print{.spt-fleet-scroll{overflow:visible!important;border:0!important}.spt-fleet-board{transform-origin:top left}.spt-fleet-tooltip{display:none!important}}


/* v0.40.1 Jetzt-Zeit-Marker für Fahrzeugeinsatz und Positionsbesetzung */
.spt-fleet-board,.spt-position-coverage-scroll{position:relative}
.spt-now-marker{position:absolute;top:0;bottom:0;width:0;border-left:4px solid var(--spt-text);z-index:14;pointer-events:none;filter:drop-shadow(0 0 1px var(--spt-surface));}
.spt-now-marker[hidden]{display:none!important}
.spt-now-marker-triangle{position:absolute;top:27px;left:-8px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:9px solid var(--spt-text);}
.spt-now-marker-label{position:absolute;top:5px;left:0;transform:translateX(-50%);padding:1px 5px;border-radius:4px;background:var(--spt-text);color:var(--spt-surface);font-size:.66rem;font-weight:800;line-height:1.35;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}
.spt-now-marker-coverage{z-index:9}
.spt-now-marker-coverage .spt-now-marker-triangle{top:38px}
.spt-now-marker-coverage .spt-now-marker-label{top:13px}
@media(max-width:900px){.spt-position-coverage[data-spt-now-root]{--spt-now-left-offset:210px}}
@media(max-width:760px){.spt-fleet-usage[data-spt-now-root]{--spt-now-left-offset:150px}}
@media print{.spt-now-marker{display:none!important}}
