body{margin:0;padding:0}#splash-screen{position:fixed;z-index:1000;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;background-color:#181e23}#splash-screen img{margin-left:calc(100vw - 100%);margin-bottom:15px;width:200px}#splash-screen.hidden{opacity:0;visibility:hidden}.splash-spinner{animation:rotate 2s linear infinite;margin-left:calc(100vw - 100%);width:50px;height:50px}.splash-spinner .path{stroke:#76ad8a;stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.activity{position:absolute;height:32px;top:50%;transform:translateY(-50%);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3);z-index:1;transition:box-shadow .15s ease,transform .15s ease;-webkit-user-select:none;user-select:none}.activity.editable{cursor:grab}.activity.editable:active,.activity.dragging{cursor:grabbing;z-index:10;box-shadow:0 4px 20px #0006}.activity.driving:not([style*=background]){background:var(--driving)}.activity.on_duty:not([style*=background]){background:var(--on-duty)}.activity-content{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:0 8px}.activity-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resize-handle{position:absolute;top:0;bottom:0;width:12px;cursor:ew-resize;z-index:2;opacity:0;transition:opacity .15s ease,background .15s ease}.activity:hover .resize-handle,.activity.dragging .resize-handle{opacity:1}.resize-handle:before{content:"";position:absolute;top:50%;transform:translateY(-50%);width:4px;height:20px;background:#fff9;border-radius:2px}.resize-handle.left{left:-2px;border-radius:4px 0 0 4px}.resize-handle.left:before{left:4px}.resize-handle.right{right:-2px;border-radius:0 4px 4px 0}.resize-handle.right:before{right:4px}.resize-handle:hover{background:#ffffff1a}.resize-handle:hover:before{background:#ffffffe6}.activity.pinned{cursor:default}.activity.pinned:after{content:"";position:absolute;inset:0;border-radius:4px;pointer-events:none;background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(255,255,255,.25) 4px,rgba(255,255,255,.25) 8px)}.activity.pinned.driving:after{background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(0,100,0,.3) 4px,rgba(0,100,0,.3) 8px)}.activity.pinned.on_duty:after{background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(0,0,100,.3) 4px,rgba(0,0,100,.3) 8px)}.timeline-container{background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border);overflow:hidden}.hour-header{display:flex;border-bottom:1px solid var(--border)}.day-label-spacer{width:80px;flex-shrink:0;background:var(--bg-tertiary);border-right:1px solid var(--border)}.day-label-spacer.header-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 4px}.timeline-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.timeline-title.provisional{color:var(--accent);animation:pulse-text 1.5s ease-in-out infinite}.provisional-spinner{animation:spin 1s linear infinite;font-size:12px}@keyframes pulse-text{0%,to{opacity:.6}50%{opacity:1}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.hour-label{flex:1;text-align:center;padding:8px 0;font-size:11px;color:var(--text-muted);border-left:1px solid var(--hour-line)}.hour-label:first-of-type{border-left:none}.hour-label.noon{color:var(--text-secondary);font-weight:500}.day-row{display:flex;min-height:48px;border-bottom:1px solid var(--border)}.day-row:last-child{border-bottom:none}.day-label{width:80px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;color:var(--text-secondary);background:var(--bg-tertiary);border-right:1px solid var(--border)}.day-timeline{flex:1;position:relative;min-height:48px;padding:8px 0}.hour-grid{position:absolute;inset:0;display:flex;pointer-events:none}.hour-grid-line{flex:1;border-left:1px solid var(--hour-line)}.hour-grid-line:first-child{border-left:none}.shift-highlight{position:absolute;height:40px;top:50%;transform:translateY(-50%);pointer-events:none;z-index:5;box-sizing:border-box}.shift-drive-zone{border:2px dashed var(--driving-dark);background:color-mix(in srgb,var(--driving) 10%,transparent)}.shift-no-drive-zone{border:2px dashed #ef4444;background:#ef44441a}.shift-zone-left{border-radius:6px 0 0 6px;border-right:none}.shift-zone-right{border-radius:0 6px 6px 0;border-left:none}.shift-zone-only{border-radius:6px}.hover-line{position:absolute;top:0;bottom:0;width:2px;background:#f97316;opacity:.9;pointer-events:none;z-index:100;transform:translate(-50%)}.now-line{position:absolute;top:0;bottom:0;width:2px;background:#ef4444;opacity:.9;pointer-events:none;z-index:95;transform:translate(-50%)}.gap{position:absolute;height:32px;top:50%;transform:translateY(-50%);border-radius:4px;border:2px dashed var(--border);background:transparent;z-index:0;pointer-events:auto;cursor:context-menu;display:flex;align-items:center;justify-content:center}.gap.pinned{background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(128,128,128,.2) 4px,rgba(128,128,128,.2) 8px);border-color:var(--text-muted)}.gap.reset-34h{background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(128,128,128,.2) 4px,rgba(128,128,128,.2) 8px);border-color:var(--text-muted);cursor:not-allowed}.gap-label{font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 4px}.reset-tail{position:absolute;height:32px;top:50%;transform:translateY(-50%);border-radius:4px;background:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(128,128,128,.2) 4px,rgba(128,128,128,.2) 8px);border:1px dashed var(--text-muted);z-index:1;pointer-events:none;display:flex;align-items:center;justify-content:center}.reset-tail-label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--bg-secondary);padding:2px 6px;border-radius:3px;white-space:nowrap}.hos-tooltip{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:12px;z-index:1000;pointer-events:none;box-shadow:0 4px 12px #0000004d;min-width:200px}.hos-tooltip-time{font-weight:600;color:var(--text-primary);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border)}.hos-tooltip-row{display:flex;align-items:center;gap:8px;margin:4px 0}.hos-label{font-weight:500;color:var(--text-secondary);width:40px}.hos-value{color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:11px}.hos-remaining{color:var(--text-muted);font-size:10px;margin-left:auto}.hos-recap{color:var(--driving);font-weight:600;margin-left:4px}.hos-status-row{display:flex;align-items:flex-start;justify-content:space-between;padding:10px 16px;background:var(--bg-tertiary);border-top:1px solid var(--border);height:140px;overflow-y:auto}.hos-status-values{display:flex;align-items:center;gap:20px;flex:1;font-size:12px;min-width:0}.hos-status-time{font-weight:600;color:var(--text-primary);padding-right:16px;border-right:1px solid var(--border);min-width:100px}.hos-status-item{display:flex;align-items:center;gap:6px}.hos-status-item .hos-label{font-weight:500;color:var(--text-secondary);width:auto}.hos-status-item .hos-value{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-primary)}.hos-status-item .hos-remaining{color:var(--text-muted);font-size:10px;margin-left:4px}.hos-status-stack{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}.hos-status-main{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.hos-status-shifts{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;padding-bottom:2px;min-width:0}.hos-shift-card{display:flex;flex-direction:column;gap:2px;min-width:240px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg-secondary);flex-shrink:0}.hos-shift-line{display:flex;align-items:baseline;gap:6px;white-space:nowrap}.hos-shift-label{font-weight:600;color:var(--text-secondary)}.hos-shift-value{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-primary)}.hos-shift-sub{font-size:10px;color:var(--text-muted)}.hos-status-hint{color:var(--text-muted);font-style:italic}.hos-status-buttons{display:flex;gap:8px;flex-shrink:0}.verify-btn,.export-btn,.reset-btn,.apply-btn{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);padding:6px 16px;border-radius:4px;font-family:inherit;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s}.verify-btn:hover,.export-btn:hover,.reset-btn:hover{background:var(--bg-primary);border-color:var(--accent);color:var(--accent)}.apply-btn{border-color:var(--driving);color:var(--driving)}.apply-btn:hover{background:var(--driving);color:var(--bg-primary)}.verify-btn:disabled,.export-btn:disabled{opacity:.5;cursor:not-allowed}.export-btn:disabled:hover{background:var(--bg-secondary);border-color:var(--border);color:var(--text-primary)}.hos-playground{--bg-primary: #1a1d21;--bg-secondary: #22262b;--bg-tertiary: #2a2f35;--text-primary: #e4e6ea;--text-secondary: #8b9099;--text-muted: #5c6370;--accent: #4fc3f7;--violation-light: #fb7185;--violation: #f87171;--violation-dark: #dc2626;--gap: transparent;--border: #3a3f47;--hour-line: #2d3238}*{box-sizing:border-box}*:not(.material-symbols-outlined){font-family:Lato,Helvetica,Arial,sans-serif!important}.material-symbols-outlined.filled{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 24}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body{background-color:#181e23!important}.MuiDateRangeCalendar-root div[style="position: absolute; pointer-events: none; color: rgba(130, 130, 130, 0.62); z-index: 100000; width: 100%; text-align: center; bottom: 50%; right: 0px; letter-spacing: 5px; font-size: 24px;"],.MuiDataGrid-root div[style="position: absolute; pointer-events: none; color: rgba(130, 130, 130, 0.62); z-index: 100000; width: 100%; text-align: center; bottom: 50%; right: 0px; letter-spacing: 5px; font-size: 24px;"],iframe[style="position: fixed; top: 0px; left: 0px; width: 100%; height: 100%; border: none; z-index: 2147483647;"]{display:none}.scrollbar-hidden::-webkit-scrollbar{display:none;width:0}.mapboxgl-popup-content{padding:0!important;border-radius:0!important;background-color:transparent!important}.mapboxgl-popup-tip{display:none!important}.animate-pulse{animation:animatePulse 1.5s infinite linear}@keyframes animatePulse{0%{opacity:1}50%{opacity:0}to{opacity:1}}.MuiDataGrid-root .MuiDataGrid-columnHeaderTitle{color:#9a9eac!important;text-transform:uppercase;font-weight:700;font-size:14px}.MuiDataGrid-root .MuiDataGrid-cell .MuiDataGrid-detailPanelToggleCell[aria-label=Expand],.MuiDataGrid-root .MuiDataGrid-cell .MuiDataGrid-detailPanelToggleCell[aria-label=Collapse]{margin-top:-5px}.MuiDataGrid-root .MuiDataGrid-columnHeader--last .MuiDataGrid-columnSeparator--sideRight{display:none!important}.data-grid-row-surface-light{border-bottom:2px solid #9a9eac!important}.data-grid-row-surface-light.Mui-selected{background-color:inherit!important;color:#fff!important}.data-grid-row-surface-light:hover,.data-grid-row-surface-light.selected{background-color:#9a9eac40!important}.data-grid-row-surface-light:hover .MuiDataGrid-cell,.data-grid-row-surface-light.selected .MuiDataGrid-cell,.MuiDataGrid-editInputCell input{color:#fff}.MuiDataGrid-cell fieldset{border:none!important}.MuiMenu-root .MuiMenu-list .MuiMenuItem-root{padding-top:10px;padding-bottom:10px;color:#fff}
