:root { --sps-driver-ready: 1; }
.driver-workspace { max-width: 880px; margin: 0 auto; padding: 20px; color: #24323b; letter-spacing: 0; line-height: 1.45; }
.driver-workspace * { box-sizing: border-box; min-width: 0; letter-spacing: 0; }
.driver-workspace h1 { margin: 0; font-size: 16px; line-height: 1.35; }
.driver-workspace h2 { margin: 0 0 8px; font-size: 13px; line-height: 1.4; font-weight: 650; }
.driver-workspace h3 { margin: 0; font-size: 14px; line-height: 1.4; font-weight: 600; }
.driver-workspace p { margin: 4px 0; }
.driver-workspace h1, .driver-workspace h2, .driver-workspace h3, .driver-workspace p, .driver-workspace span, .driver-route li { overflow-wrap: break-word; hyphens: auto; }
.driver-heading { display: grid; grid-template-columns: minmax(0, 1fr) 44px; align-items: center; gap: 12px; }
.driver-heading p, .driver-note { color: #62737d; font-size: 12px; }
.driver-status { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin-top: 10px; padding-bottom: 12px; font-size: 12px; color: #62737d; border-bottom: 1px solid #dce3e7; }
.driver-online, .driver-offline { font-weight: 600; }
.driver-online { color: #17664d; }
.driver-offline, .driver-pending-count { color: #985016; }
.driver-online::before, .driver-offline::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 6px; border-radius: 50%; background: currentColor; vertical-align: 1px; }
.driver-trip { padding: 12px 0; }
.driver-trip-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; font-size: 12px; color: #62737d; }
.driver-trip-meta strong { color: #17664d; font-weight: 600; }
.driver-next-stop { margin-top: 12px; }
.driver-next-stop h2 { margin: 4px 0 0; font-size: 16px; line-height: 1.4; font-weight: 650; }
.driver-stage-result { margin-top: 12px !important; font-size: 14px; }
.driver-task-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.driver-task-layout.driver-has-finish { grid-template-columns: minmax(0, 1fr) minmax(240px, .8fr); }
.driver-task-sidebar { border-left: 1px solid #dce3e7; padding-left: 20px; }
.driver-section-count { margin-left: 6px; font-size: 12px; font-weight: 500; color: #62737d; }
.driver-workspace button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; max-width: 100%; padding: 10px 14px; border: 1px solid #a8b7bf; border-radius: 6px; background: #fff; color: #24323b; font: inherit; font-size: 14px; font-weight: 600; line-height: 1.4; text-align: center; cursor: pointer; white-space: normal; overflow-wrap: break-word; }
.driver-workspace button:hover:enabled { background: #eef5f2; border-color: #17664d; }
.driver-workspace button:disabled { color: #677780; background: #eaf0ed; border-color: #d3ded8; cursor: default; }
.driver-workspace button[data-action="start"], .driver-workspace button[data-action="finish"], .driver-primary-action button { min-height: 48px; background: #17664d; color: #fff; border-color: #17664d; font-size: 15px; }
.driver-workspace button[data-action="start"]:hover:enabled, .driver-workspace button[data-action="finish"]:hover:enabled, .driver-workspace .driver-primary-action button:hover:enabled { background: #12513e; border-color: #12513e; color: #fff; }
.driver-workspace button[data-action="start"]:disabled, .driver-workspace button[data-action="finish"]:disabled, .driver-primary-action button:disabled { background: #e3eae6; color: #637269; border-color: #d3ded8; }
.driver-workspace .driver-icon-button { flex: 0 0 44px; width: 44px; height: 44px; padding: 11px; background: transparent; border-color: #d5dfe3; }
.driver-icon { flex: 0 0 20px; width: 20px; height: 20px; }
.driver-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 10px 0 0; }
.driver-primary-action button { width: 100%; }
.driver-start-actions .driver-note { flex-basis: 100%; }
.driver-workspace label { display: grid; gap: 6px; margin: 10px 0; font-size: 14px; line-height: 1.45; }
.driver-workspace .driver-check { display: flex; align-items: flex-start; gap: 10px; width: 100%; color: #526670; }
.driver-check input { flex: 0 0 20px; width: 20px; height: 20px; margin: 1px 0 0; accent-color: #17664d; }
.driver-workspace select, .driver-workspace textarea { width: 100%; min-height: 44px; padding: 10px; border: 1px solid #a8b7bf; border-radius: 5px; font: inherit; background: #fff; color: #24323b; }
.driver-workspace :focus-visible { outline: 3px solid #246bb2; outline-offset: 3px; }
.driver-passenger { padding: 12px 0; border-bottom: 1px solid #dce3e7; }
.driver-passenger:first-of-type { padding-top: 4px; }
.driver-passenger-heading { display: grid; gap: 3px; }
.driver-passenger-heading span { font-size: 12px; font-weight: 500; color: #24648b; }
.driver-passenger-heading .driver-local-fact { color: #985016; }
.driver-passenger-route { font-size: 12px; color: #62737d; }
.driver-passenger details { margin-top: 4px; }
.driver-workspace summary { min-height: 44px; padding: 12px 0; cursor: pointer; font-size: 13px; color: #526670; overflow-wrap: break-word; }
.driver-passenger summary { color: #526670; }
.driver-finish .driver-check { margin: 0 0 12px; }
.driver-finish button { width: 100%; }
.driver-completed > summary { color: #17664d; }
.driver-route-details { margin-top: 12px; border-top: 1px solid #dce3e7; }
.driver-route { margin: 4px 0 12px; padding-left: 20px; font-size: 14px; }
.driver-route li { padding: 6px 0; }
.driver-route time { display: block; color: #62737d; font-size: 12px; }
.driver-queue { margin-top: 8px; padding: 12px 0; border-top: 1px solid #dce3e7; }
.driver-queue-heading { display: grid; grid-template-columns: minmax(0, 1fr) 44px; align-items: center; gap: 12px; }
.driver-queue-heading h2 { margin: 0; font-size: 13px; }
.driver-queue .driver-note { margin: 4px 0; }
.driver-queue ol { list-style: none; padding: 0; margin: 0; }
.driver-queue li { padding: 12px 0; border-top: 1px solid #e4eaed; font-size: 13px; }
.driver-queue li > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; }
.driver-queue li > span, .driver-queue time { color: #62737d; }
.driver-queue code { display: block; margin-top: 6px; font: 12px/1.5 ui-monospace, monospace; color: #62737d; overflow-wrap: anywhere; }
.driver-diagnostic-actions button { justify-content: flex-start; font-weight: 500; }
.driver-diagnostic-actions [data-action="discard"] { color: #985016; }
.driver-empty { padding: 24px 0; color: #62737d; }
.driver-workspace .alert { font-size: 13px; }
.app-driver .app-header { flex-wrap: wrap; gap: 4px 8px; padding: 8px 16px; }
.app-driver .app-header > span:first-child { flex: 1 1 auto; font-size: 14px; font-weight: 600; }
.app-driver .app-header > .muted { font-size: 12px; }
.app-driver .app-header .btn { min-height: 44px; padding: 8px 12px; border-radius: 6px; font-size: 13px; }
.app-driver .app-clock { order: 2; flex-basis: 100%; font-size: 12px; }
@media (max-width: 760px) {
  .driver-workspace { padding: 16px; }
  .driver-task-layout, .driver-task-layout.driver-has-finish { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .driver-task-sidebar { border-left: 0; padding: 12px 0 0; border-top: 1px solid #dce3e7; }
  .driver-actions > button { flex: 1 1 auto; }
  .driver-diagnostic-actions { flex-direction: column; align-items: stretch; }
  .driver-diagnostic-actions button { flex: 0 0 auto; width: 100%; }
}
