:root{--bg:#f5f6f8;--panel:#fff;--border:#e2e4e9;--text:#1f2430;--text-dim:#6b7280;--brand:#1a3a5c;--brand-2:#1a5c3a;--error:#c0392b;--error-bg:#fdecea;--warning:#b7791f;--warning-bg:#fdf6e3;--radius:8px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px}h1,h2,h3{margin:0;font-weight:600}button{cursor:pointer;font-family:inherit}select,input{border:1px solid var(--border);background:#fff;border-radius:6px;padding:5px 8px;font-family:inherit;font-size:13px}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{background:linear-gradient(135deg, var(--brand), var(--brand-2));color:#fff;z-index:30;align-items:center;gap:14px;padding:12px 20px;display:flex;position:sticky;top:0}.topbar h1{white-space:nowrap;font-size:1.05rem}.topbar-spacer{flex:1}.topbar-stats{opacity:.95;font-size:.85rem}.topbar-user{opacity:.9;white-space:nowrap;font-size:.8rem}.stat-error{color:#ffb3b3;font-weight:700}.stat-warning{color:#ffe9a8;font-weight:700}.run-status{text-transform:uppercase;background:#fff3;border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:600}.run-status-approved{background:#2e8b57}.btn{border:none;border-radius:6px;padding:6px 14px;font-size:.8rem;font-weight:600}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:var(--brand);background:#fff}.btn-approve{color:#fff;background:#2e8b57}.btn-ghost{border:1px solid var(--border);color:var(--text-dim);background:0 0}.btn-small{padding:3px 9px;font-size:.72rem}.btn-danger{color:#fff;background:#b3261e}.topbar .btn-ghost{color:#fff;border-color:#fff6}.error-banner{background:var(--error-bg);color:var(--error);padding:8px 20px;font-size:.85rem}.layout{flex:1;grid-template-columns:300px 1fr;align-items:start;gap:20px;padding:20px;display:grid}.main-col h2,.side-col h2{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);margin-bottom:10px;font-size:.9rem}.empty-state{color:var(--text-dim);background:var(--panel);border-radius:var(--radius);border:1px dashed var(--border);padding:20px;font-style:italic}.driver-board{flex-direction:column;gap:12px;display:flex}.driver-board-unassigned{border-top:1px dashed var(--border);margin-top:20px;padding-top:12px}.driver-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.driver-card-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;margin-bottom:8px;padding-bottom:8px;display:flex}.driver-name{font-size:.95rem;font-weight:700}.driver-classes{color:var(--text-dim);font-size:.72rem}.trip-row{border-bottom:1px solid #f0f1f3;padding:8px 0}.trip-row:last-child{border-bottom:none}.trip-row-override{background:#fbfbf4}.trip-row-main{flex-wrap:wrap;align-items:flex-start;gap:10px;display:flex}.trip-number{color:var(--text-dim);padding-top:4px;font-size:.78rem;font-weight:700}.trip-vehicle{white-space:nowrap;flex-direction:column;font-size:.78rem;display:flex}.vehicle-plate{font-weight:700}.vehicle-model{color:var(--text-dim);font-size:.7rem}.load-state{color:var(--text-dim);background:#eef2f7;border-radius:4px;align-self:center;padding:2px 6px;font-size:.65rem;font-weight:700}.load-state-fl{color:var(--error);background:#fde2e2}.route-summary{flex:1;min-width:260px}.route-summary-head{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px;font-size:.78rem;display:flex}.badge{text-transform:uppercase;border-radius:4px;padding:2px 6px;font-size:.65rem;font-weight:700}.badge-arrival{color:#155034;background:#efe}.badge-departure{color:#1a4080;background:#eef4ff}.badge-type{color:var(--text-dim);background:#f0f0f0}.route-terminal{font-weight:700}.route-time,.route-pax{color:var(--text-dim)}.route-stops{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.route-stops li{color:var(--text-dim);align-items:center;gap:8px;font-size:.75rem;display:flex}.stop-hotel{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.stop-group-id{font-variant-numeric:tabular-nums;color:var(--text-dim);flex:none}.tag{text-transform:uppercase;border-radius:3px;padding:1px 5px;font-size:.62rem;font-weight:700}.tag-baby{color:#ff0;background:#c00}.tag-amended{background:var(--warning-bg);color:var(--warning);cursor:help}.stop-flight-time{flex:none;align-items:center;gap:4px;display:flex}.flight-time-amended{color:var(--warning);font-weight:700}.flight-time-editor{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.flight-time-note-input{width:220px}.tag-yellow{color:#7a6a00;background:#fff59d}.tag-red{color:#7a0000;background:#ffb3b3}.tag-manual{color:#7a5c00;background:#ffe9a8}.tag-mismatch{background:var(--error-bg);color:var(--error);font-weight:700}.tag-ru{color:#2b3a8f;background:#e3e8ff;margin-left:6px}.tag-backup{color:#555;background:#eee;margin-left:6px}.schedule-ru-toggle{color:#2b3a8f;align-items:center;gap:3px;margin-left:8px;font-size:11px;font-weight:600;display:inline-flex}.schedule-ru-toggle input{margin:0}.assign-control{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.view-toggle{top:var(--topbar-h,56px);z-index:20;background:var(--bg);gap:6px;margin-bottom:12px;padding:6px 0;display:flex;position:sticky}.view-toggle .tab-jobs{color:#fff;background:#2f9e44;border-color:#2f9e44}.view-toggle .tab-by-driver{color:#1a1a1a;background:#eab308;border-color:#eab308}.view-toggle .tab-schedule{color:#fff;background:#dc4c4c;border-color:#dc4c4c}.view-toggle .tab-fleet{color:#fff;background:#9061e0;border-color:#9061e0}.view-toggle .tab-jobs.btn-active,.view-toggle .tab-by-driver.btn-active,.view-toggle .tab-schedule.btn-active,.view-toggle .tab-fleet.btn-active{box-shadow:inset 0 0 0 2px var(--brand)}.job-toolbar-sticky{top:var(--sticky-header-h,100px);z-index:15;background:var(--bg);padding-top:4px;position:sticky}.job-filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.job-filters-flight-input{width:110px}.job-filters-count{color:var(--text-dim);margin-left:auto;font-size:.75rem}.schedule-sticky-header{top:var(--sticky-header-h,100px);z-index:15;background:var(--bg);padding-top:4px;position:sticky}.schedule-actions{align-items:center;gap:10px;margin-bottom:16px;display:flex}.schedule-refresh-result{color:var(--text-dim);font-size:.8rem}.schedule-add-driver{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:20px;padding:12px;display:flex}.schedule-add-driver h3{width:100%;margin-bottom:2px}.schedule-hint{width:100%;color:var(--text-dim);margin:0 0 4px;font-size:.8rem}.tag-role{text-transform:uppercase;opacity:.7;margin-left:4px;font-size:.7rem}.schedule-ru-check{align-items:center;gap:4px;font-size:.85rem;display:flex}.schedule-field-label{color:var(--text-dim);align-items:center;gap:4px;font-size:.8rem;display:flex}.schedule-history-controls{align-items:center;gap:12px;margin-bottom:8px;font-size:.8rem;display:flex}.schedule-history-summary{margin:4px 0 8px;font-size:.8rem;font-weight:600}.schedule-table{border-collapse:collapse;width:100%}.schedule-table th,.schedule-table td{text-align:left;border-bottom:1px solid var(--border);padding:6px 8px;font-size:.85rem}.schedule-table thead th{top:var(--row-top,0px);z-index:14;background:var(--bg);vertical-align:middle;position:sticky}.schedule-thead-filters th{padding-top:4px;padding-bottom:8px;font-weight:400}.schedule-thead-range{flex-direction:column;gap:3px;display:flex}.schedule-thead-range input{width:100%}.schedule-table .tag{font-size:.85rem}.schedule-history{background:var(--bg);padding:6px 8px 10px}.schedule-history ul{margin:0;padding-left:18px}.schedule-history-source{color:var(--text-dim);font-size:.75rem}.multiselect{position:relative}.multiselect-trigger{border:1px solid var(--border);color:var(--text);text-align:left;background:#fff;border-radius:6px;align-items:center;gap:6px;min-width:110px;padding:5px 8px;font-family:inherit;font-size:13px;display:flex}.multiselect-caret{color:var(--text-dim);margin-left:auto;font-size:.7rem}.multiselect-menu{z-index:10;background:var(--panel);border:1px solid var(--border);border-radius:6px;min-width:200px;max-height:320px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 4px 16px #0000001f}.multiselect-option{cursor:pointer;white-space:nowrap;border-radius:4px;align-items:center;gap:8px;padding:6px 8px;font-size:.8rem;display:flex}.multiselect-option:hover{background:var(--bg)}.multiselect-option-selected{color:#1a4080;background:#eef4ff;font-weight:600}.multiselect-check{width:12px;color:inherit;font-weight:700}.btn-active{background:var(--brand);color:#fff;border-color:var(--brand)}.job-list{flex-direction:column;gap:10px;display:flex}.job-row{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.job-row-unassigned{border:1px solid #e0356b;box-shadow:0 0 0 1px #e0356b59,0 0 14px 2px #e0356b66}.job-row-selected{outline:2px solid var(--brand);outline-offset:-1px}.job-join-checkbox{color:var(--text-dim);align-items:center;gap:6px;font-size:.75rem;display:flex}.job-join-checkbox-disabled{opacity:.5}.job-join-hint{font-style:italic}.join-bar{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:12px;margin-bottom:10px;padding:8px 12px;font-size:.85rem;display:flex}.job-assigned{border-top:1px solid #f0f1f3;align-items:center;gap:10px;padding-top:6px;font-size:.82rem;display:flex}.job-split-stops{align-items:center;gap:10px;padding-top:4px;font-size:.8rem;display:flex}.districts-panel{max-width:640px}.districts-table{border-collapse:collapse;width:100%;font-size:.85rem}.districts-table th,.districts-table td{text-align:left;border-bottom:1px solid var(--border);padding:6px 10px}.districts-table input{width:220px}.districts-zone-grouped{background:var(--panel)}.job-picker{border-top:1px solid #f0f1f3;flex-wrap:wrap;align-items:center;gap:6px;padding-top:6px;display:flex}.roster-panel h3{color:var(--text-dim);margin:0 0 8px;font-size:.8rem}.roster-list{flex-direction:column;gap:6px;margin:0 0 18px;padding:0;list-style:none;display:flex}.roster-driver,.roster-vehicle{background:var(--panel);border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 8px;padding:6px 10px;font-size:.78rem;display:flex}.roster-driver-name{font-weight:600}.roster-driver-meta,.roster-vehicle-meta{color:var(--text-dim);white-space:nowrap;font-size:.72rem}.roster-vehicle-plate{font-weight:600}.roster-vehicle-in-use{opacity:.55}.attention-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;padding:10px 12px}.attention-card.exception-error{border-left:3px solid var(--error)}.attention-card.exception-warning{border-left:3px solid var(--warning)}.exception-line{margin:4px 0;font-size:.78rem}.exception-line.exception-error{color:var(--error)}.exception-line.exception-warning{color:var(--warning)}.rustar-write-overlay{z-index:100;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.rustar-write-panel{background:var(--panel);border-radius:var(--radius);width:min(900px,92vw);max-height:85vh;padding:20px;overflow-y:auto;box-shadow:0 12px 40px #0000004d}.rustar-write-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.rustar-write-actions{gap:8px;margin-top:14px;display:flex}.login-page{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:14px;width:min(320px,90vw);padding:32px;display:flex;box-shadow:0 8px 30px #00000014}.login-card h1{text-align:center;margin-bottom:4px;font-size:1.1rem}.login-field{color:var(--text-dim);flex-direction:column;gap:4px;font-size:.8rem;display:flex}.login-field input{padding:8px 10px;font-size:.9rem}.login-submit{background:var(--brand);color:#fff;padding:8px 14px}.activity-log-filters{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.activity-log-table{border-collapse:collapse;width:100%;font-size:.8rem}.activity-log-table th,.activity-log-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:6px 10px}.activity-log-row-error{background:var(--error-bg)}.activity-log-body{color:var(--text-dim);overflow-wrap:anywhere;max-width:480px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem}
