.afm-route-range{height:2px;appearance:none;border-radius:999px;background:#d9e1ec;cursor:pointer}.afm-route-range::-webkit-slider-thumb{width:10px;height:10px;appearance:none;border:2px solid #fff;border-radius:999px;background:#0066ff;box-shadow:0 0 0 1px rgba(0,102,255,.24)}.afm-route-range::-moz-range-thumb{width:8px;height:8px;border:2px solid #fff;border-radius:999px;background:#0066ff;box-shadow:0 0 0 1px rgba(0,102,255,.24)}.afm-route-range:focus-visible{outline:2px solid rgba(0,102,255,.35);outline-offset:5px}.afm-route-range:disabled{cursor:default;opacity:.45}.os-db-root{display:flex;min-height:0;flex:1;flex-direction:column;gap:.85rem;padding-bottom:.5rem}.os-db-scheduling-shell{padding:.75rem 0 0;border:none;background:transparent}.os-db-page-header{flex-shrink:0}.os-db-header-band{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.os-db-header-copy h1{margin:0;font-size:1.5rem;color:var(--afm-ink);letter-spacing:-.02em;line-height:1.2}.os-db-subtitle{margin:.3rem 0 0;color:var(--afm-muted);font-size:.8125rem;max-width:36rem;line-height:1.4}.os-db-col-head,.os-db-date-pill,.os-db-job-card-foot,.os-db-kpi-top,.os-db-timeline-foot,.os-db-timeline-head,.os-db-tl-block-top,.os-db-toolbar{display:flex;align-items:center;gap:.5rem}.os-db-toolbar{flex-wrap:wrap;justify-content:flex-end}.os-db-date-pill{position:relative;border:1px solid var(--afm-border);border-radius:999px;background:#fff;padding:.2rem .35rem;box-shadow:0 1px 2px rgba(15,23,42,.04)}.os-db-date-picker{position:relative;display:inline-flex;align-items:center;cursor:pointer}.os-db-date-label{font-size:.875rem;font-weight:600;color:var(--afm-ink);min-width:8.75rem;text-align:center;white-space:nowrap}.os-db-date-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0;margin:0}.os-db-icon-btn{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:999px;background:transparent;width:1.85rem;height:1.85rem;color:var(--afm-body);cursor:pointer}.os-db-icon-btn:hover{background:var(--afm-muted-bg,#f1f5f9)}.os-db-kpi-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.os-db-kpi-card{border:1px solid var(--afm-border);border-left-width:4px;border-radius:14px;background:#fff;padding:.9rem 1rem;box-shadow:0 1px 3px rgba(15,23,42,.05)}.os-db-kpi-amber{border-left-color:#f59e0b}.os-db-kpi-green{border-left-color:#16a34a}.os-db-kpi-blue{border-left-color:#0066ff}.os-db-kpi-action{border-left-color:#8b5cf6}.os-db-kpi-value-row{display:flex;align-items:center;gap:.75rem}.os-db-kpi-value-row .os-db-progress{flex:1;max-width:9rem;margin:0}.os-db-badge-action{display:inline-block;border-radius:999px;background:#eaf3ff;color:#0052cc;font-size:.65rem;font-weight:700;padding:.12rem .45rem;white-space:nowrap;text-decoration:none}.os-db-kpi-top{justify-content:space-between;margin-bottom:.15rem}.os-db-kpi-label{margin:0;color:var(--afm-muted);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.os-db-kpi-value{margin:.15rem 0;font-size:1.65rem;font-weight:700;color:var(--afm-ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.15}.os-db-kpi-meta{margin:0;color:var(--afm-muted);font-size:.75rem}.os-db-badge-ok,.os-db-badge-warn{display:inline-block;border-radius:999px;font-size:.65rem;font-weight:700;padding:.12rem .45rem;white-space:nowrap}.os-db-badge-ok{background:#dcfce7;color:#166534}.os-db-badge-warn{background:#ffedd5;color:#9a3412}.os-db-progress{height:6px;border-radius:999px;background:#e8eef7;overflow:hidden;margin:.4rem 0 .35rem}.os-db-progress-fill{height:100%;background:#0066ff;border-radius:999px}.os-db-dispatch-btn,.os-db-primary-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border-radius:10px;background:#0066ff;color:#fff;font-size:.8125rem;font-weight:600;padding:.5rem .9rem;border:none;text-decoration:none;cursor:pointer}.os-db-dispatch-btn:disabled,.os-db-primary-btn:disabled{opacity:.45;cursor:not-allowed}.os-db-ghost-btn{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--afm-border);border-radius:10px;background:#fff;color:var(--afm-body);font-size:.8125rem;font-weight:500;padding:.45rem .75rem;cursor:pointer}.os-db-ghost-btn:disabled{opacity:.5;cursor:not-allowed}.os-db-board{display:grid;grid-template-columns:minmax(240px,280px) minmax(0,1fr) minmax(280px,320px);gap:.85rem;min-height:560px;flex:1}.os-db-inspector,.os-db-timeline,.os-db-unassigned{border:1px solid var(--afm-border);border-radius:14px;background:#fff;min-height:0;overflow:auto;padding:.85rem;box-shadow:0 1px 3px rgba(15,23,42,.04)}.os-db-unassigned.is-drop-active{box-shadow:inset 0 0 0 2px #0066ff}.os-db-count{display:inline-flex;min-width:1.35rem;justify-content:center;border-radius:999px;background:#eef2f7;color:#475569;font-size:.7rem;font-weight:700;padding:.1rem .4rem}.os-db-col-head{justify-content:space-between;margin-bottom:.25rem}.os-db-col-head h2,.os-db-timeline-head h2{margin:0;font-size:.9rem;font-weight:700;color:var(--afm-ink)}.os-db-helper{margin:0 0 .65rem;color:var(--afm-muted);font-size:.72rem;line-height:1.35}.os-db-job-card{display:block;width:100%;text-align:left;border-radius:12px;background:#fff;padding:.7rem .75rem .7rem .85rem;margin-bottom:.55rem;border:1px solid var(--afm-border);border-left-width:4px;box-shadow:0 1px 2px rgba(15,23,42,.04);cursor:pointer}.os-db-job-card.is-selected{box-shadow:0 0 0 2px rgba(0,102,255,.35)}.os-db-job-card.is-dragging{opacity:.5}.os-db-accent-blue{border-left-color:#0066ff}.os-db-accent-green{border-left-color:#16a34a}.os-db-accent-orange{border-left-color:#ea580c}.os-db-accent-slate{border-left-color:#94a3b8}.os-db-accent-teal{border-left-color:#0d9488}.os-db-accent-amber{border-left-color:#f59e0b}.os-db-job-card-when{display:inline-flex;align-items:center;gap:.4rem}.os-db-time-pill{display:inline-flex;border-radius:999px;padding:.14rem .5rem;font-size:.68rem;font-weight:700;white-space:nowrap}.os-db-time-blue{background:#eaf3ff;color:#0052cc}.os-db-time-teal{background:#ccfbf1;color:#0f766e}.os-db-time-amber{background:#fef3c7;color:#b45309}.os-db-time-green{background:#dcfce7;color:#166534}.os-db-time-orange{background:#ffedd5;color:#c2410c}.os-db-time-slate{background:#e2e8f0;color:#475569}.os-db-job-card-duration{color:var(--afm-muted);font-size:.72rem;font-weight:600}.os-db-job-card-chips{display:inline-flex;flex-wrap:wrap;gap:.3rem}.os-db-chip{display:inline-flex;border-radius:6px;background:#f1f5f9;color:#475569;font-size:.62rem;font-weight:600;padding:.14rem .4rem;white-space:nowrap}.os-db-job-card-title{margin:.25rem 0 .15rem;font-weight:700;color:var(--afm-ink);font-size:.875rem;line-height:1.25}.os-db-job-card-meta,.os-db-job-card-resources,.os-db-job-card-route{margin:0;color:var(--afm-muted);font-size:.72rem}.os-db-job-card-foot{justify-content:space-between;margin-top:.45rem}.os-db-job-card-price{margin:0;font-weight:700;color:var(--afm-ink);font-size:.8125rem;font-variant-numeric:tabular-nums}.os-db-sep{opacity:.45}.os-db-drag-handle{display:inline-flex;color:#94a3b8;cursor:grab;padding:.15rem}.os-db-drag-handle:active{cursor:grabbing}.os-db-crew-meta-reorder{cursor:grab;user-select:none;outline:none}.os-db-crew-meta-reorder:active{cursor:grabbing}.os-db-crew-meta-reorder:focus-visible{box-shadow:inset 0 0 0 2px rgba(0,102,255,.35)}.os-db-crew-meta-reorder.is-ordering{opacity:.72}.os-db-lane-resize{position:absolute;left:0;right:0;bottom:0;height:8px;z-index:6;cursor:ns-resize;touch-action:none;background:transparent}html[data-afm-crew-row-reordering] .os-db-lane-resize{pointer-events:none!important}.os-db-lane-resize:active,.os-db-lane-resize:hover{background:linear-gradient(180deg,transparent 0,transparent 35%,rgba(0,102,255,.18) 0,rgba(0,102,255,.18) 65%,transparent 0,transparent)}.os-db-job-card-meta{display:flex;justify-content:space-between;gap:.35rem;align-items:center}.os-db-status{font-size:.58rem;font-weight:700;letter-spacing:.03em;border-radius:4px;padding:.12rem .35rem;white-space:nowrap}.os-db-status-scheduled{background:rgba(37,99,235,.15);color:#0052cc}.os-db-status-dispatched{background:rgba(13,148,136,.16);color:#0f766e}.os-db-status-in_progress{background:rgba(234,88,12,.18);color:#c2410c}.os-db-status-done{background:#e2e8f0;color:#475569}.os-db-unassigned-foot{display:flex;align-items:center;gap:.4rem;margin:.5rem 0 0;padding:.55rem .65rem;border-radius:10px;background:#f0fdf4;color:#166534;font-size:.75rem;font-weight:600}.os-db-unassigned-foot-icon{display:inline-flex;color:#16a34a}.os-db-timeline{display:flex;flex-direction:column;padding:.75rem .75rem .65rem}.os-db-timeline-head{justify-content:space-between;flex-wrap:wrap;margin-bottom:.55rem;gap:.5rem .75rem}.os-db-timeline-legend{display:flex;flex-wrap:wrap;gap:.65rem;font-size:.68rem;color:var(--afm-muted)}.os-db-dot{display:inline-block;width:8px;height:8px;border-radius:999px;margin-right:.25rem}.os-db-dot-dispatched{background:#0d9488}.os-db-dot-progress{background:#ea580c}.os-db-dot-done{background:#16a34a}.os-db-day-zoom{display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--afm-border);border-radius:8px;padding:.2rem .45rem;font-size:.7rem;color:var(--afm-muted);background:#f8fafc}.os-db-day-zoom strong{color:var(--afm-ink);font-weight:600}.os-db-timeline-scroll{overflow-x:auto;flex:1;border:1px solid var(--afm-border);border-radius:12px;background:#fafbfc}.os-db-crew-row,.os-db-grid-header{display:flex;position:relative;border-bottom:1px solid var(--afm-border)}.os-db-grid-corner{shrink:0;flex-shrink:0;border-right:1px solid var(--afm-border);background:#fff;display:flex;align-items:center;padding:0 .55rem;font-size:.58rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--afm-muted)}.os-db-crew-track,.os-db-hours{position:relative;flex-shrink:0}.os-db-hours{display:flex;background:#fff}.os-db-hour{padding:.45rem .15rem;text-align:center;font-size:.68rem;font-weight:600;color:var(--afm-muted)}.os-db-crew-meta,.os-db-hour{flex-shrink:0;border-right:1px solid var(--afm-border)}.os-db-crew-meta{padding:.55rem .55rem .45rem;background:#fff;display:flex;flex-direction:column;gap:.35rem}.os-db-crew-meta-top{display:flex;gap:.45rem;align-items:flex-start}.os-db-crew-id{width:1.65rem;height:1.65rem;border-radius:999px;background:#e8f1ff;font-size:.65rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.os-db-crew-meta-text{min-width:0;flex:1}.os-db-crew-name{margin:0;font-size:.78rem;font-weight:700;color:var(--afm-ink);text-transform:capitalize}.os-db-crew-sub{margin:.1rem 0 0;font-size:.65rem;color:var(--afm-muted);line-height:1.3}.os-db-crew-truck{color:#64748b;font-weight:600}.os-db-crew-slots{width:100%}.os-db-crew-meta--assign{position:relative}.dbv-lane--assign,.os-db-crew-meta--assign{flex-direction:column;align-items:stretch;padding:4px 6px;gap:0;overflow:hidden}.os-db-crew-lane-head{display:flex;flex-shrink:0;align-items:center;gap:6px;min-width:0;padding:2px 2px 4px;cursor:inherit}.os-db-crew-lane-head__label{min-width:0;overflow:hidden;color:#0b132b;font-size:11px;font-weight:700;letter-spacing:-.01em;line-height:1.2;text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap}.os-db-lane-assign{display:flex;width:100%;min-width:0;height:100%;max-height:72px;flex-direction:column;gap:2px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;cursor:inherit;transition:opacity .15s ease}.os-db-lane-assign::-webkit-scrollbar,.os-db-lane-assign__chips::-webkit-scrollbar{display:none}.os-db-lane-assign.is-saving{opacity:.58}.os-db-lane-assign__row{display:grid;grid-template-columns:13px minmax(0,1fr);min-height:17px;align-items:center;gap:4px;padding:0 2px;border:1px solid transparent;border-radius:6px;transition:background-color .14s cubic-bezier(.16,1,.3,1),border-color .14s cubic-bezier(.16,1,.3,1)}.os-db-lane-assign__row.is-drag-over{border-color:#c9dcff;background:#eaf3ff}.os-db-lane-assign__icon{width:12px;height:12px;color:#64748b;stroke-width:1.7}.os-db-lane-assign__chips{display:flex;min-width:0;align-items:center;gap:3px;overflow-x:auto;scrollbar-width:none}.os-db-lane-assign__empty{overflow:hidden;color:#8a97ad;font-size:9px;font-weight:500;line-height:15px;text-overflow:ellipsis;white-space:nowrap}.os-db-lane-chip{display:inline-flex;height:17px;min-width:0;max-width:100%;flex:0 0 auto;align-items:center;gap:1px;padding:0 3px 0 6px;border:1px solid #e3e8f0;border-radius:5px;background:#f4f5f7;color:#0b132b;cursor:grab;transition:border-color .15s ease,background-color .15s ease,color .15s ease,opacity .15s ease}.os-db-lane-chip:hover{border-color:#c3ccda;background:#f3f6fa}.os-db-lane-chip:active{cursor:grabbing}.os-db-lane-chip.is-dragging{opacity:.45}.os-db-lane-chip--primary{border-color:#c9dcff;background:#eaf3ff;color:#0066ff}.os-db-lane-chip__text{max-width:112px;overflow:hidden;font-size:9.5px;font-weight:650;line-height:15px;text-overflow:ellipsis;white-space:nowrap}.os-db-lane-chip--favorite{box-shadow:inset 0 0 0 1px rgba(0,102,255,.35)}.os-db-lane-chip__star{display:inline-flex;width:12px;height:14px;flex:0 0 auto;align-items:center;justify-content:center;border:0;border-radius:3px;background:transparent;color:#c3ccda;font-size:9px;line-height:1;opacity:.65;cursor:pointer;transition:background-color .15s ease,color .15s ease,opacity .15s ease}.os-db-lane-chip__star.is-on{color:#0066ff;opacity:1}.os-db-lane-chip:hover .os-db-lane-chip__star,.os-db-lane-chip__star.is-on,.os-db-lane-chip__star:focus-visible{opacity:1}.os-db-lane-chip__star:hover{background:#ffffff;color:#0066ff}.os-db-lane-chip__remove{display:inline-flex;width:12px;height:14px;flex:0 0 auto;align-items:center;justify-content:center;border:0;border-radius:3px;background:transparent;color:#8a97ad;font-size:11px;line-height:1;opacity:0;cursor:pointer;transition:background-color .15s ease,color .15s ease,opacity .15s ease}.os-db-lane-chip:hover .os-db-lane-chip__remove,.os-db-lane-chip__remove:focus-visible{opacity:1}.os-db-lane-chip__remove:hover{background:#ffffff;color:#d13438}.afm-assign-board{width:100%;padding:.45rem .5rem .55rem;border-radius:1rem;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(248,250,252,.98)),#f8fafc;border:1px solid #e3e8f0;box-shadow:0 1px 2px rgba(15,23,42,.04),0 8px 20px rgba(15,23,42,.04)}.afm-assign-board--compact{padding:.35rem .4rem .45rem;border-radius:.85rem}.afm-assign-board__hint{margin:0 0 .4rem;font-size:10px;font-weight:500;color:#94a3b8;letter-spacing:.01em}.afm-assign-lanes{display:flex;flex-direction:column;gap:.28rem}.afm-assign-lane{display:grid;grid-template-columns:4.4rem minmax(0,1fr);gap:.4rem;align-items:center;min-height:2.15rem;padding:.22rem .35rem .22rem .4rem;border-radius:.7rem;background:rgba(255,255,255,.72);border:1px solid transparent;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.afm-assign-lane.is-drag-over{background:#eaf3ff;border-color:rgba(0,102,255,.35);box-shadow:inset 0 0 0 1px rgba(0,102,255,.12);transform:translateY(-1px)}.afm-assign-lane.is-disabled{pointer-events:none;opacity:.5}.afm-assign-lane__meta{display:flex;align-items:center;gap:.3rem;min-width:0}.afm-assign-lane__label{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#64748b}.afm-assign-lane__count{min-width:1rem;height:1rem;padding:0 .28rem;border-radius:999px;background:#e8f1ff;color:#0066ff;font-size:9px;font-weight:700;line-height:1rem;text-align:center;font-variant-numeric:tabular-nums}.afm-assign-lane__track{display:flex;flex-wrap:wrap;align-items:center;gap:.28rem;min-height:1.7rem;padding:.12rem .15rem;border-radius:.55rem;background:repeating-linear-gradient(90deg,rgba(0,102,255,.045),rgba(0,102,255,.045) 8px,transparent 0,transparent 16px)}.afm-assign-lane.is-drag-over .afm-assign-lane__track{background:repeating-linear-gradient(90deg,rgba(0,102,255,.12),rgba(0,102,255,.12) 8px,rgba(234,243,255,.65) 0,rgba(234,243,255,.65) 16px)}.afm-assign-lane__empty{font-size:10.5px;font-weight:500;color:#a0aec0;padding-left:.15rem}.afm-assign-tile{display:inline-flex;max-width:100%;align-items:center;gap:.28rem;height:1.55rem;padding:0 .28rem 0 .35rem;border-radius:.45rem;border:1px solid #d9e1ec;background:#ffffff;color:#0b132b;font-size:11px;font-weight:600;line-height:1;cursor:grab;box-shadow:0 1px 2px rgba(15,23,42,.05);transition:transform .14s cubic-bezier(.16,1,.3,1),box-shadow .14s ease,border-color .14s ease,opacity .14s ease}.afm-assign-tile:hover{border-color:#c3ccda;box-shadow:0 2px 8px rgba(15,23,42,.08);transform:translateY(-1px)}.afm-assign-tile.is-dragging,.afm-assign-tile:active{cursor:grabbing;opacity:.35;transform:scale(.97)}.afm-assign-tile--truck{border-color:#c9dcff;background:linear-gradient(180deg,#f5f9ff,#eaf3ff);color:#0052cc}.afm-assign-tile__grip{display:inline-flex;flex-direction:column;justify-content:center;gap:2px;width:8px;opacity:.45}.afm-assign-tile__grip span{display:block;width:8px;height:1.5px;border-radius:999px;background:currentColor}.afm-assign-tile__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:7.5rem}.afm-assign-tile__remove{display:inline-flex;align-items:center;justify-content:center;width:1.05rem;height:1.05rem;margin-left:.05rem;border-radius:.3rem;color:#94a3b8;font-size:13px;line-height:1;transition:background-color .14s ease,color .14s ease}.afm-assign-tile__remove:hover{background:#f3f6fa;color:#0b132b}.afm-assign-tile--truck .afm-assign-tile__remove:hover{background:rgba(0,102,255,.1);color:#0052cc}.afm-assign-chip{display:inline-flex;max-width:100%;align-items:center;gap:.2rem;padding:.15rem .45rem;border-radius:.45rem;border:1px solid #e3e8f0;font-size:11px;font-weight:600;line-height:1.25;background:#fff;color:#0b132b}.afm-assign-chip--truck{background:#eaf3ff;border-color:#d7e7ff;color:#0052cc}.afm-assign-chip__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.afm-assign-drag-ghost{position:fixed;top:-200px;left:-200px;z-index:10000;display:inline-flex;align-items:center;gap:.35rem;height:2rem;padding:0 .7rem 0 .55rem;border-radius:.55rem;border:1px solid rgba(0,102,255,.28);background:rgba(255,255,255,.96);color:#0b132b;font-size:12px;font-weight:700;box-shadow:0 8px 24px rgba(15,23,42,.16),0 0 0 4px rgba(0,102,255,.08);pointer-events:none}.afm-assign-drag-ghost.is-truck{background:linear-gradient(180deg,#f5f9ff,#eaf3ff);color:#0052cc}.afm-assign-drag-ghost__sparkle,.afm-assign-drag-ghost__sparkle--2{width:6px;height:6px;border-radius:999px;background:#0066ff;box-shadow:0 0 8px rgba(0,102,255,.65);animation:afm-assign-sparkle .42s ease-in-out infinite}.afm-assign-drag-ghost__sparkle--2{width:4px;height:4px;background:#9ec5ff;animation-delay:.12s}@keyframes afm-assign-sparkle{0%,to{transform:scale(.7);opacity:.55}50%{transform:scale(1.25);opacity:1}}.afm-assign-trail-dot{position:fixed;z-index:9999;border-radius:999px;pointer-events:none;transform:translate(-50%,-50%) scale(1);animation:afm-assign-trail-fade .42s ease-out forwards}@keyframes afm-assign-trail-fade{0%{opacity:.95;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.2)}}.os-db-crew-track{position:relative;min-height:5.5rem;background:#fafbfc}.os-db-crew-track.is-drop{background:rgba(0,102,255,.06)}.os-db-hour-lines{position:absolute;inset:0;display:flex;pointer-events:none}.os-db-hour-line{flex-shrink:0;height:100%;border-right:1px solid rgba(148,163,184,.35)}.os-db-now-line{position:absolute;top:0;bottom:0;width:2px;z-index:12;pointer-events:none}.os-db-now-badge{position:absolute;top:.2rem;left:50%;transform:translateX(-50%);background:#ef4444;color:#fff;font-size:.6rem;font-weight:700;border-radius:999px;padding:.1rem .35rem;white-space:nowrap;box-shadow:0 1px 2px rgba(239,68,68,.35)}.os-db-snap-ghost{position:absolute;top:.4rem;bottom:.4rem;width:7.5rem;border:2px dashed #0066ff;border-radius:10px;background:rgba(0,102,255,.05);z-index:2;pointer-events:none;display:flex;align-items:center;justify-content:center}.os-db-snap-ghost span{font-size:.62rem;font-weight:700;color:#0052cc;background:#eaf3ff;padding:.15rem .5rem;border-radius:999px}.os-db-open-hint{left:.65rem;font-size:.68rem;color:var(--afm-muted);z-index:1}.os-db-open-hint,.os-db-release-hint{position:absolute;pointer-events:none;white-space:nowrap}.os-db-release-hint{right:.65rem;top:.3rem;font-size:.65rem;font-weight:600;color:#0066ff;z-index:2}.os-db-tl-abs{position:absolute;top:.4rem;z-index:3}.os-db-route-gap{position:absolute;top:.55rem;z-index:2;display:flex;height:calc(100% - 1.1rem);min-width:.25rem;align-items:center;justify-content:center;color:#64748b;pointer-events:none;overflow:hidden}.os-db-route-gap-line{position:absolute;right:0;left:0;top:50%;border-top:1px dashed #c3ccda}.os-db-route-gap-drive{position:absolute;top:18%;bottom:18%;left:0;border-radius:.35rem;background:rgba(148,163,184,.18);border:1px solid rgba(148,163,184,.35)}.os-db-route-gap-badge{position:relative;z-index:1;max-width:calc(100% - 4px);border:1px solid #d9e1ec;border-radius:999px;background:#fff;padding:.18rem .38rem;box-shadow:0 1px 2px rgba(16,24,40,.05);font-size:.5625rem;font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums}.os-db-route-gap-badge,.os-db-route-gap-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.os-db-route-gap-meta{position:absolute;top:calc(50% + .85rem);left:50%;width:max-content;max-width:min(100%,7.5rem);transform:translateX(-50%);color:#64748b;font-size:.48rem;font-weight:600;line-height:1.1;text-align:center}.os-db-route-gap.is-tight{color:#b45309}.os-db-route-gap.is-tight .os-db-route-gap-line{border-top-color:#f59e0b}.os-db-route-gap.is-tight .os-db-route-gap-drive{background:rgba(245,158,11,.16);border-color:rgba(245,158,11,.4)}.os-db-route-gap.is-tight .os-db-route-gap-badge{border-color:#f5c16c;background:#fff7e8;color:#b45309}.os-db-route-gap.is-late{color:#b91c1c}.os-db-route-gap.is-late .os-db-route-gap-line{border-top-color:#ef4444}.os-db-route-gap.is-late .os-db-route-gap-drive{background:rgba(239,68,68,.14);border-color:rgba(239,68,68,.4);width:100%!important}.os-db-route-gap.is-late .os-db-route-gap-badge{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.os-db-route-gap.is-clear .os-db-route-gap-line{border-top-color:#86c69d}.os-db-route-gap.is-clear .os-db-route-gap-drive{background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.35)}.os-db-route-gap.is-clear .os-db-route-gap-badge{border-color:#bbf7d0;background:#f0fdf4;color:#15803d}.os-db-tl-abs.is-faded{opacity:.55}.os-db-tl-block{height:100%;min-height:4.4rem;border-radius:10px;padding:.45rem .55rem;color:var(--afm-ink);cursor:grab;box-shadow:0 1px 3px rgba(15,23,42,.08);border:1.5px solid transparent}.os-db-tl-block.is-selected{box-shadow:0 0 0 2px #fff,0 0 0 4px #0066ff}.os-db-tl-block.is-dragging{opacity:.55}.os-db-tl-blue{background:#eaf3ff;border-color:#0066ff}.os-db-tl-green{background:#e7f6ee;border-color:#16a34a}.os-db-tl-teal{background:#e5f7f5;border-color:#0d9488}.os-db-tl-amber,.os-db-tl-orange{background:#fdf1df;border-color:#d97706}.os-db-tl-slate{background:#f1f5f9;border-color:#94a3b8}.os-db-tl-block-top{justify-content:space-between;gap:.35rem;align-items:flex-start}.os-db-tl-block-title{margin:0;font-size:.72rem;font-weight:700;line-height:1.25;flex:1;min-width:0}.os-db-tl-block-route,.os-db-tl-block-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.os-db-tl-block-route{margin:.2rem 0 0;font-size:.62rem;color:var(--afm-muted)}.os-db-job-meta-chips{display:flex;flex-wrap:wrap;gap:.2rem .28rem;margin-top:.18rem;min-width:0}.os-db-job-meta-chips--board{flex-wrap:nowrap;overflow:hidden}.os-db-meta-chip{display:inline-flex;align-items:center;max-width:100%;padding:.05rem .35rem;border-radius:999px;border:1px solid #e3e8f0;background:rgba(255,255,255,.72);color:#334155;font-size:.58rem;font-weight:650;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.os-db-job-meta-chips--board .os-db-meta-chip{font-size:.52rem;padding:.02rem .28rem}.os-db-job-hover-portal{pointer-events:none}.os-db-job-hover{border:1px solid #e3e8f0;border-radius:.75rem;background:#ffffff;box-shadow:0 1px 2px rgba(15,23,42,.04),0 8px 24px rgba(15,23,42,.08);padding:.65rem .75rem;color:#0b132b}.os-db-job-hover-title{margin:0 0 .45rem;font-size:.78rem;font-weight:700;letter-spacing:-.01em}.os-db-job-hover-list{margin:0;display:grid;gap:.28rem}.os-db-job-hover-row{display:grid;grid-template-columns:4.2rem 1fr;gap:.4rem;align-items:start}.os-db-job-hover-row dt{margin:0;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.os-db-job-hover-row dd{margin:0;font-size:.7rem;font-weight:600;color:#0b132b;line-height:1.35;word-break:break-word}.os-db-tl-block .os-db-status{background:#fff;border:1px solid;border-radius:999px;padding:.1rem .45rem}.os-db-tl-progress{height:4px;border-radius:999px;background:rgba(15,23,42,.1);overflow:hidden;margin-top:.4rem}.os-db-tl-progress-fill{height:100%;border-radius:999px;background:#b45309}.os-db-timeline-foot{justify-content:space-between;margin-top:.55rem;flex-wrap:wrap;gap:.45rem .75rem}.os-db-timeline-foot-left{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.os-db-foot-link{font-size:.75rem;font-weight:600}.os-db-add-crew{display:inline-flex;color:#0066ff;font-size:.8125rem;font-weight:600;text-decoration:none}.os-db-empty-rows,.os-db-snap-hint{color:var(--afm-muted);font-size:.7rem}.os-db-empty-rows{padding:1.5rem .5rem}.os-db-inspector-head{margin-bottom:.45rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.os-db-inspector-menu{color:var(--afm-muted);font-size:.9rem;font-weight:700;letter-spacing:.08em;text-decoration:none;line-height:1;padding:.1rem .25rem;border-radius:6px}.os-db-inspector-menu:hover{background:#f1f5f9;color:var(--afm-ink)}.os-db-ready-badge{display:inline-flex;border-radius:999px;background:#dcfce7;color:#166534;font-size:.65rem;font-weight:800;letter-spacing:.05em;padding:.2rem .55rem}.os-db-ready-badge.is-sent{background:#e0e7ff;color:#3730a3}.os-db-ready-badge.is-draft{background:#ffedd5;color:#9a3412}.os-db-inspector-title{margin:0;font-size:1.05rem;font-weight:700;color:var(--afm-ink);line-height:1.25}.os-db-inspector-window{margin:.25rem 0 .85rem;color:var(--afm-muted);font-size:.75rem}.os-db-inspector-empty{margin:1rem 0;color:var(--afm-muted);font-size:.8125rem}.os-db-inspector-dl{margin:0;display:grid;gap:.5rem}.os-db-inspector-dl div{display:grid;grid-template-columns:5.25rem 1fr;gap:.35rem;font-size:.8125rem}.os-db-inspector-dl dt{color:var(--afm-muted);font-weight:500}.os-db-inspector-dl dd{margin:0;color:var(--afm-ink);font-weight:600;text-align:right}.os-db-checks-card{margin-top:1rem;border:1px solid var(--afm-border);border-radius:12px;background:#f8fafc;padding:.65rem .75rem}.os-db-inspector-sub{margin:0 0 .25rem;font-size:.75rem;font-weight:700;color:var(--afm-ink)}.os-db-checklist{list-style:none;margin:0;padding:0}.os-db-check{display:flex;align-items:center;gap:.5rem;padding:.32rem 0;font-size:.78rem;font-weight:600;color:var(--afm-ink)}.os-db-check.is-open{color:#9a3412}.os-db-check-copy{min-width:0;display:grid;gap:.16rem}.os-db-check-detail{color:var(--afm-muted);font-size:.625rem;font-weight:500;line-height:1.35}.os-db-check-icon{width:1.05rem;height:1.05rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.os-db-check.is-ok .os-db-check-icon{border-radius:999px;background:#16a34a;color:#fff}.os-db-check.is-ok .os-db-check-icon svg{width:9px;height:9px}.os-db-check-open-dot{width:.65rem;height:.65rem;border-radius:999px;border:2px solid #ea580c;display:inline-block}.os-db-check-action{margin-left:auto}.os-db-route-status{display:inline-flex;align-items:center;border-radius:999px;padding:.18rem .4rem;background:#f1f5f9;color:#64748b;font-size:.5625rem;font-weight:700;text-transform:capitalize}.os-db-route-status.is-clear{background:#f0fdf4;color:#15803d}.os-db-route-status.is-tight{background:#fff7e8;color:#b45309}.os-db-route-status.is-late{background:#fef2f2;color:#b91c1c}.os-db-dispatch-btn{width:100%;margin-top:.85rem;padding:.75rem 1rem;border-radius:12px;font-size:.875rem}.os-db-link,.os-db-link-btn{background:none;border:none;color:#0066ff;font-size:.8125rem;font-weight:600;cursor:pointer;padding:0;text-decoration:none;display:inline-flex;align-items:center;gap:.35rem}.os-db-link-btn{margin-top:.65rem;width:100%;justify-content:center;border:1px solid var(--afm-border);border-radius:12px;background:#fff;color:var(--afm-ink);font-size:.78rem;padding:.6rem .9rem;box-shadow:0 1px 2px rgba(15,23,42,.04)}.os-db-link-btn:hover:not(.is-disabled){background:#f8fafc}.os-db-link-btn.is-disabled{color:var(--afm-muted);cursor:default}.os-db-status-dot{width:.45rem;height:.45rem;border-radius:999px;background:#16a34a;display:inline-block}.os-db-inspector-foot,.os-db-publish-status{margin-top:.55rem;color:var(--afm-muted);font-size:.7rem}.os-db-inspector-workspace{margin-top:.55rem;display:inline-block}.os-db-resources-drawer{margin-top:.65rem;border:1px solid var(--afm-border);border-radius:10px;padding:.55rem .65rem;background:#f8fafc}.os-db-resources-inline{margin-top:.55rem}.os-db-resource-list-inline{display:flex;flex-wrap:wrap;gap:.35rem .75rem;max-height:120px}.os-db-resource-list-inline>li{min-width:8rem}.os-db-resources-toggle{background:none;border:none;color:var(--afm-muted);font-size:.7rem;font-weight:600;cursor:pointer;padding:.2rem 0}.os-db-resource-tabs{display:flex;flex-wrap:wrap;gap:.25rem;margin:.35rem 0}.os-db-resource-tab{border:none;border-radius:6px;background:transparent;color:var(--afm-muted);font-size:.68rem;font-weight:600;padding:.25rem .4rem;cursor:pointer}.os-db-resource-tab.is-active{background:rgba(0,102,255,.1);color:#0066ff}.os-db-resource-list{list-style:none;margin:0;padding:0;max-height:140px;overflow:auto}.os-db-resource-row{display:flex;cursor:grab;align-items:center;justify-content:space-between;gap:.5rem;border-bottom:1px solid var(--afm-border);padding:.4rem 0;font-size:.75rem}.os-db-resource-row:active{cursor:grabbing}.os-week-summary{display:grid;flex-shrink:0;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid #eef2f7;background:#fff;padding:.6rem .75rem}.os-week-summary>button,.os-week-summary>div{min-width:0;border:0;border-right:1px solid #eef2f7;background:transparent;padding:.1rem .85rem;color:#0b132b}.os-week-summary>:first-child{padding-left:0}.os-week-summary>:last-child{border-right:0}.os-week-summary small,.os-week-summary span,.os-week-summary strong{display:block}.os-week-summary span{font-size:.625rem;font-weight:600;color:#64748b}.os-week-summary strong{margin-top:.08rem;font-size:1rem;line-height:1.2;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.os-week-summary small{margin-top:.08rem;overflow:hidden;color:#8a97ad;font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.os-week-summary .is-attention small,.os-week-summary .is-attention strong{color:#c2410c}.os-dispatch-resources.os-dispatch-resources-open{display:flex;width:172px;background:#fbfcfe}.os-dispatch-week-controls{min-height:2.65rem;gap:.25rem;border-bottom-color:#eef2f7;padding:.42rem .65rem}.os-dispatch-week-controls .os-dispatch-pill{height:1.85rem;border-color:transparent;border-radius:.5rem;padding:.25rem .5rem;font-size:.6875rem;box-shadow:none}.os-dispatch-week-controls .os-dispatch-pill.is-active,.os-dispatch-week-controls .os-dispatch-pill:hover{border-color:transparent;background:#eaf3ff;color:#0066ff}.os-dispatch-text-toggle{display:inline-flex;height:1.75rem;align-items:center;border:0;border-radius:.45rem;background:transparent;padding:0 .45rem;color:#64748b;font-size:.625rem;font-weight:600;transition:background .15s,color .15s}.os-dispatch-text-toggle:hover{background:#f3f6fa;color:#0b132b}.os-dispatch-text-toggle.is-active{background:#eaf3ff;color:#0066ff}.os-dispatch-grid-header{box-shadow:0 1px 0 #eef2f7}.os-dispatch-row-header{position:sticky;left:0;z-index:4;justify-content:center;border-color:#eef2f7;background:rgba(255,255,255,.97);padding:.45rem .55rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.os-dispatch-grid-cell,.os-dispatch-grid-cell-alt{border-color:#eef2f7;background:#fbfcfe}.os-dispatch-grid-cell-alt{background:#f8fafc}.os-dispatch-grid-cell-today{background:#f4f8ff}.os-dispatch-job-block{top:.28rem;min-height:2.5rem;border:1px solid #d9e1ec;border-left:2px solid #0066ff;border-radius:.45rem;background:rgba(255,255,255,.96);padding:.28rem .35rem;color:#0b132b;box-shadow:0 1px 2px rgba(15,23,42,.05);transition:border-color .15s,box-shadow .15s,transform .15s}.os-dispatch-job-block:hover{z-index:4;border-color:#b8c5d8;transform:translateY(-1px);box-shadow:0 5px 14px rgba(15,23,42,.09)}.os-dispatch-job-block-entry,.os-dispatch-job-block-estimate,.os-dispatch-job-block-install,.os-dispatch-job-block-move,.os-dispatch-job-block-off{background:rgba(255,255,255,.96);color:#0b132b}.os-dispatch-job-block-install{border-left-color:#16a34a}.os-dispatch-job-block-estimate{border-left-color:#64748b}.os-dispatch-job-block-entry{border-left-color:#d97706}.os-dispatch-job-block-off{border-left-color:#94a3b8;background:#f8fafc}.os-dispatch-job-block-selected{outline:none;border-color:#0066ff;box-shadow:0 0 0 2px rgba(0,102,255,.14)}.os-dispatch-job-block-kicker{display:flex;align-items:center;gap:.22rem;overflow:hidden;color:#64748b;font-size:.5rem;font-weight:600;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.os-dispatch-job-status-dot{width:5px;height:5px;flex-shrink:0;border-radius:999px;background:#0066ff}.os-dispatch-job-status-dot.is-dispatched{background:#0d9488}.os-dispatch-job-status-dot.is-progress{background:#d97706}.os-dispatch-job-status-dot.is-done{background:#16a34a}.os-dispatch-job-block-title{margin-top:.08rem;font-size:.58rem;line-height:1.2}.os-dispatch-job-block-route{display:block;margin-top:.08rem;overflow:hidden;color:#64748b;font-size:.48rem;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.os-week-unassigned-rail{flex-shrink:0;border-top:1px solid #eef2f7;background:#fff}.os-week-unassigned-trigger{display:flex;width:100%;min-height:2rem;align-items:center;justify-content:space-between;border:0;background:transparent;padding:.35rem .75rem;color:#64748b;font-size:.625rem;font-weight:600}.os-week-unassigned-trigger strong{margin-left:.25rem;color:#0b132b;font-variant-numeric:tabular-nums}.os-week-unassigned-list{display:flex;min-height:3.25rem;gap:.45rem;overflow-x:auto;padding:.35rem .75rem .65rem}.os-week-unassigned-list.is-drop-active{background:#eaf3ff;box-shadow:inset 0 2px #0066ff}.os-week-unassigned-job{display:flex;min-width:150px;flex-direction:column;border:1px solid #e3e8f0;border-radius:.55rem;background:#fff;padding:.42rem .55rem;text-align:left;box-shadow:0 1px 2px rgba(15,23,42,.04)}.os-week-unassigned-job strong{color:#0b132b;font-size:.625rem}.os-week-unassigned-job span{margin-top:.1rem;color:#64748b;font-size:.55rem}.os-dispatch-toolbar{min-height:2.75rem;align-items:flex-end;border-bottom-color:#eef2f7;padding:0 .2rem}.os-dispatch-tabs{gap:.25rem}.os-dispatch-tab{position:relative;border:1px solid transparent;border-radius:999px;padding:.5rem .7rem;color:#64748b;font-size:.6875rem;font-weight:600}.os-dispatch-tab:hover{color:#0b132b}.os-dispatch-tab-active{border-color:transparent;color:#0b132b;background:#ffffff}.os-dispatch-tab-active:after{position:absolute;inset:2px;border:1px solid #c3ccda;border-top-color:#8793a7;border-radius:inherit;content:"";pointer-events:none;animation:os-dispatch-tab-orbit 3s linear infinite}@keyframes os-dispatch-tab-orbit{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.os-dispatch-tab-active:after{animation:none}}.os-dispatch-toolbar-actions{gap:.35rem;padding-bottom:.35rem}.os-dispatch-view-switch{display:inline-flex;align-items:center;gap:.15rem;padding:.15rem;border:1px solid #d9e1ec;border-radius:.6rem;background:#f3f6fa}.os-dispatch-view-switch button{min-height:1.55rem;border:0;border-radius:.42rem;background:transparent;padding:.2rem .55rem;color:#64748b;font-size:.65rem;font-weight:650;transition:background .15s,color .15s,box-shadow .15s}.os-dispatch-view-switch button.is-active{background:#fff;color:#0066ff;box-shadow:0 1px 3px rgba(15,23,42,.1)}.os-dispatch-filter-btn,.os-dispatch-primary-btn{min-height:1.95rem;border-radius:.5rem;padding:.35rem .65rem;font-size:.6875rem}.os-db-dispatch-btn,.os-db-primary-btn,.os-dispatch-primary-btn{background:linear-gradient(180deg,#1473ff,#0066ff 58%,#005bdc);box-shadow:inset 0 1px rgba(255,255,255,.3),0 3px 9px rgba(0,102,255,.18)}.os-db-dispatch-btn:hover,.os-db-primary-btn:hover,.os-dispatch-primary-btn:hover{background:#0052cc}.os-db-root{gap:.65rem}.os-db-header-copy h1{font-size:1.25rem;font-weight:700}.os-db-subtitle{margin-top:.18rem;font-size:.7rem}.os-db-kpi-strip{gap:.55rem}.os-db-kpi-card{border-left-width:1px;border-color:#e3e8f0;border-radius:.75rem;padding:.62rem .75rem;box-shadow:0 1px 2px rgba(16,24,40,.04)}.os-db-accent-amber,.os-db-accent-blue,.os-db-accent-green,.os-db-accent-purple,.os-db-kpi-action,.os-db-kpi-amber,.os-db-kpi-blue,.os-db-kpi-green{border-left-color:#e3e8f0}.os-db-kpi-label{font-size:.6rem;text-transform:none;letter-spacing:0}.os-db-kpi-value{margin:.08rem 0;font-size:1.28rem}.os-db-kpi-meta{font-size:.625rem}.os-db-board{grid-template-columns:minmax(180px,215px) minmax(0,1fr);gap:.6rem;min-height:500px}.os-db-board.has-inspector{grid-template-columns:minmax(180px,215px) minmax(0,1fr) minmax(245px,280px)}.os-db-inspector,.os-db-timeline,.os-db-unassigned{border-color:#e3e8f0;border-radius:.75rem;padding:.68rem;box-shadow:0 1px 2px rgba(16,24,40,.04)}.os-db-job-card{border-left-width:1px;border-color:#e3e8f0;border-radius:.65rem;padding:.55rem .6rem;box-shadow:none;transition:background .15s,border-color .15s,transform .15s}.os-db-job-card:hover{border-color:#cbd5e1;background:#fbfcfe;transform:translateY(-1px)}.os-db-timeline-scroll{border-width:1px 0;border-color:#eef2f7;border-radius:0;background:linear-gradient(180deg,rgba(234,243,255,.32),transparent 5rem),#fbfcfe}.os-db-crew-track{min-height:4.75rem;background:linear-gradient(90deg,rgba(0,102,255,.018),transparent 30%),#fbfcfe}.os-db-tl-block{min-height:3.75rem;border-width:1px;border-radius:.55rem;padding:.38rem .45rem;box-shadow:0 1px 2px rgba(15,23,42,.05)}.os-db-tl-blue{border-color:#d9e1ec #d9e1ec #d9e1ec #0066ff;background:#f7faff}.os-db-tl-green{border-color:#d9e1ec #d9e1ec #d9e1ec #16a34a;background:#f7fcf8}.os-db-tl-teal{border-color:#d9e1ec #d9e1ec #d9e1ec #0d9488;background:#f6fcfb}.os-db-tl-amber,.os-db-tl-orange{border-color:#d9e1ec #d9e1ec #d9e1ec #d97706;background:#fffbf5}.os-db-tl-slate{border-color:#d9e1ec #d9e1ec #d9e1ec #94a3b8;background:#f8fafc}.os-db-dot-scheduled{background:#0066ff}.os-db-timeline{overflow:hidden;padding:0;border-color:#e3e8f0;background:radial-gradient(circle at 88% -30%,rgba(0,102,255,.1),transparent 34%),#fff;box-shadow:0 1px 2px rgba(15,23,42,.04),0 10px 28px rgba(15,23,42,.045)}.os-db-timeline-head{min-height:3.8rem;margin:0;padding:.7rem .85rem .62rem;border-bottom:1px solid rgba(227,232,240,.82);background:rgba(255,255,255,.76);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.os-db-timeline-title{display:flex;min-width:11rem;align-items:center;gap:.55rem}.os-db-timeline-title h2{margin:0;font-size:.82rem;font-weight:700;letter-spacing:-.015em;color:#0b132b}.os-db-timeline-title p{margin:.08rem 0 0;font-size:.59rem;font-weight:500;color:#64748b}.os-db-live-mark{width:.5rem;height:.5rem;flex:0 0 auto;border:2px solid #fff;border-radius:999px;background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.11),0 0 10px rgba(22,163,74,.28)}.os-db-day-mode{display:inline-flex;min-height:1.75rem;align-items:center;gap:.35rem;padding:0 .55rem;border:1px solid rgba(217,225,236,.9);border-radius:999px;background:rgba(255,255,255,.84);color:#334155;font-size:.62rem;font-weight:650;box-shadow:inset 0 1px rgba(255,255,255,.75)}.os-db-day-mode-dot{width:.28rem;height:.28rem;border-radius:999px;background:#0066ff;box-shadow:0 0 0 3px rgba(0,102,255,.09)}.os-db-day-summary{display:flex;min-height:2.2rem;align-items:center;gap:0;padding:0 .85rem;overflow-x:auto;color:#64748b;font-size:.61rem;white-space:nowrap}.os-db-day-summary>span{display:inline-flex;align-items:baseline;gap:.25rem;padding-right:.75rem}.os-db-day-summary>span+span{padding-left:.75rem;border-left:1px solid #eef2f7}.os-db-day-summary strong{color:#0b132b;font-size:.72rem;font-variant-numeric:tabular-nums}.os-db-day-summary .has-attention,.os-db-day-summary .has-attention strong{color:#b45309}.os-db-grid-header{position:sticky;top:0;z-index:4;box-shadow:0 1px rgba(227,232,240,.78)}.os-db-grid-corner,.os-db-hours{background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.os-db-hour{border-right-color:#eef2f7;padding-block:.52rem;font-size:.61rem;font-variant-numeric:tabular-nums}.os-db-crew-row{border-bottom-color:#e3e8f0}.os-db-crew-meta{justify-content:center;border-right-color:#eef2f7;background:rgba(255,255,255,.92)}.os-db-crew-id{background:linear-gradient(145deg,#f4f8ff,#e6f0ff);color:#0066ff;box-shadow:inset 0 1px rgba(255,255,255,.9),0 1px 3px rgba(0,102,255,.1)}.os-db-crew-name{letter-spacing:-.01em}.os-db-hour-line{border-right-color:rgba(203,213,225,.42)}.os-db-open-hint{top:50%;left:.7rem;transform:translateY(-50%);padding-left:1.05rem;color:#748197;font-size:.6rem;font-weight:500}.os-db-open-hint:before{position:absolute;left:0;top:50%;width:.7rem;height:1px;background:#a9b5c5;content:""}.os-db-now-line{width:1px;background:#ef4444;box-shadow:0 0 8px rgba(239,68,68,.28)}.os-db-now-badge{border:2px solid #fff;box-shadow:0 2px 7px rgba(239,68,68,.22)}.os-db-timeline-foot{min-height:2.7rem;padding:.58rem .85rem;border-top:0;background:linear-gradient(180deg,#fff,#fbfcfe)}.os-dispatch-resource-rail{min-width:0;min-height:0;overflow:visible;border:1px solid #e3e8f0;border-radius:.75rem;background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.04);transition:border-color .15s,box-shadow .15s}.os-dispatch-resource-rail.is-drop-active{border-color:#0066ff;box-shadow:0 0 0 3px rgba(0,102,255,.08)}.os-dispatch-resource-rail-head{display:flex;min-height:2.7rem;align-items:center;justify-content:space-between;gap:.35rem;padding:.45rem .5rem 0;border-bottom:1px solid #eef2f7}.os-dispatch-resource-tabs{display:flex;min-width:0;align-self:stretch;gap:.1rem}.os-dispatch-resource-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;padding:.45rem .38rem .38rem;color:#64748b;font-size:.59rem;font-weight:650;white-space:nowrap}.os-dispatch-resource-tabs button.is-active{border-bottom-color:#0066ff;color:#0066ff}.os-dispatch-add-worker,.os-dispatch-roster-star{display:inline-flex;height:1.125rem;width:1.125rem;flex-shrink:0;align-items:center;justify-content:center;border:0;border-radius:.25rem;background:transparent;color:#c3ccda;font-size:.625rem;line-height:1;cursor:pointer;transition:background-color .15s ease,color .15s ease}.os-dispatch-roster-star.is-on{color:#0066ff}.os-dispatch-roster-star:hover{background:#eaf3ff;color:#0066ff}.os-dispatch-roster-star:disabled{opacity:.5;cursor:wait}.os-dispatch-roster-grade{border:0;border-bottom:1px dotted #c3ccda;background:transparent;padding:0;color:#0066ff;font-size:.5625rem;font-weight:700;line-height:1.2;letter-spacing:.02em;text-transform:uppercase;cursor:pointer}.os-dispatch-roster-grade:hover{border-bottom-color:#0066ff}.os-dispatch-roster-grade:disabled{opacity:.5;cursor:wait}.os-dispatch-resource-assign{border:0;border-radius:.4rem;background:transparent;color:#0066ff;font-size:.6rem;font-weight:650}.os-dispatch-add-worker:hover,.os-dispatch-resource-assign:hover{background:#eaf3ff}.os-dispatch-resource-content{max-height:34rem;overflow-y:auto;padding:.55rem}.os-dispatch-resource-empty{margin:0;padding:1.5rem .5rem;text-align:center;color:#64748b;font-size:.67rem}.os-dispatch-resource-job{position:relative}.os-dispatch-resource-job>.relative{display:flex;justify-content:flex-end;margin-top:.15rem}.os-dispatch-resource-person{display:flex;min-height:2.6rem;align-items:center;gap:.5rem;border:1px solid #eef2f7;border-radius:.65rem;background:#fff;padding:.42rem .48rem;cursor:grab;transition:background .15s,border-color .15s,transform .15s}.os-dispatch-resource-person:hover{border-color:#d9e1ec;background:#fbfcfe;transform:translateY(-1px)}.os-dispatch-resource-person:active{cursor:grabbing}.os-dispatch-resource-person.is-rail-drop{border-color:#0066ff;background:#eaf3ff;box-shadow:inset 0 0 0 1px rgba(0,102,255,.25)}.os-dispatch-resource-person small,.os-dispatch-resource-person strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.os-dispatch-resource-person strong{color:#0b132b;font-size:.67rem;font-weight:650}.os-dispatch-resource-person small{margin-top:.08rem;color:#64748b;font-size:.56rem;text-transform:capitalize}.os-dispatch-resource-avatar{display:inline-flex;width:1.6rem;height:1.6rem;flex:0 0 auto;align-items:center;justify-content:center;border-radius:999px;background:#eaf3ff;color:#0066ff;font-size:.62rem;font-weight:750}.os-dispatch-resource-avatar.is-truck{border-radius:.5rem}.os-worker-modal-backdrop{position:fixed;inset:0;z-index:140;display:grid;place-items:center;background:rgba(11,19,43,.28);padding:1rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.os-worker-modal{width:min(31rem,100%);border:1px solid #e3e8f0;border-radius:1rem;background:#fff;box-shadow:0 24px 70px rgba(15,23,42,.2);padding:1.1rem}.os-worker-modal>footer,.os-worker-modal>header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.os-worker-modal>header h2{margin:0;color:#0b132b;font-size:1rem;font-weight:700}.os-worker-modal>header p,.os-worker-mode-hint{margin:.18rem 0 0;color:#64748b;font-size:.67rem}.os-worker-modal>header>button{display:inline-grid;width:2rem;height:2rem;place-items:center;border:0;border-radius:999px;background:transparent;color:#64748b;font-size:1.2rem}.os-worker-mode-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:.2rem;margin-top:1rem;border-bottom:1px solid #eef2f7}.os-worker-mode-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;padding:.55rem .35rem;color:#64748b;font-size:.68rem;font-weight:650}.os-worker-mode-tabs button.is-active{border-bottom-color:#0066ff;color:#0066ff}.os-worker-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:.9rem}.os-worker-form-grid label{color:#64748b;font-size:.6rem;font-weight:650}.os-worker-form-grid label>input,.os-worker-money-input{width:100%;min-height:2.35rem;margin-top:.3rem;border:1px solid #e3e8f0;border-radius:.55rem;background:#fff;color:#0b132b;font-size:.75rem;outline:none}.os-worker-form-grid label>input{padding:0 .65rem}.os-worker-form-grid label>input:focus,.os-worker-money-input:focus-within{border-color:#0066ff;box-shadow:0 0 0 3px rgba(0,102,255,.08)}.os-worker-role-choices{display:flex;gap:.15rem;margin-top:.3rem}.os-worker-role-choices button{min-height:2.35rem;flex:1;border:1px solid #e3e8f0;background:#fff;color:#64748b;font-size:.62rem;text-transform:capitalize}.os-worker-role-choices button:first-child{border-radius:.55rem 0 0 .55rem}.os-worker-role-choices button:last-child{border-radius:0 .55rem .55rem 0}.os-worker-role-choices button.is-active{border-color:#0066ff;background:#eaf3ff;color:#0066ff}.os-worker-money-input{display:flex;align-items:center;padding:0 .65rem}.os-worker-money-input input{min-width:0;flex:1;border:0;background:transparent;padding-left:.25rem;outline:none}.os-worker-modal-error{margin:.75rem 0 0;color:#dc2626;font-size:.68rem}.os-worker-modal>footer{justify-content:flex-end;margin-top:1rem;padding-top:.85rem;border-top:1px solid #eef2f7}@media (max-width:640px){.os-worker-form-grid{grid-template-columns:1fr}.os-worker-form-grid .col-span-2{grid-column:auto}}.os-db-add-crew,.os-db-foot-link,.os-db-release-hint{color:#0066ff}.os-db-inspector-wrap{position:relative;min-width:0}.os-db-inspector-wrap>.os-db-inspector{height:100%}.os-db-inspector-close{position:absolute;top:.42rem;right:.42rem;z-index:5;display:inline-flex;width:1.65rem;height:1.65rem;align-items:center;justify-content:center;border:0;border-radius:999px;background:transparent;color:#64748b;font-size:1rem;line-height:1}.os-db-inspector-close:hover{background:#f3f6fa;color:#0b132b}@media (max-width:1100px){.os-db-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.os-db-board,.os-db-board.has-inspector{grid-template-columns:1fr}.os-week-summary{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:.55rem}.os-week-summary>:nth-child(2){border-right:0}}@media (max-width:1279px){[data-device=desktop] body:has(.os-dispatch-root){overflow-x:hidden}[data-device=desktop] body:has(.os-dispatch-root) .os-app-shell-desktop{min-width:0}}@media print{.os-db-resources-drawer,.os-db-toolbar,.os-dispatch-toolbar{display:none!important}}.dbv-scope{display:inline-flex;align-items:center;gap:.15rem;padding:.15rem;border:1px solid #e3e8f0;border-radius:.55rem;background:#f8fafc}.dbv-scope-btn{min-height:1.65rem;padding:0 .55rem;border:0;border-radius:.4rem;background:transparent;color:#64748b;font-size:.65rem;font-weight:650;cursor:pointer;transition:background .15s ease,color .15s ease}.dbv-scope-btn:hover{background:#f3f6fa;color:#0b132b}.dbv-scope-btn.is-active{background:#e8f1ff;color:#0066ff}.dbv-week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem;padding:.5rem .75rem;border-bottom:1px solid #eef2f7;background:#fbfcfe}.dbv-week-day{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;min-height:3.1rem;padding:.35rem .45rem;border:1px solid #e3e8f0;border-radius:.55rem;background:#fff;text-align:left;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.dbv-week-day:hover{border-color:#c3ccda}.dbv-week-day.is-active{border-color:#0066ff;box-shadow:0 0 0 2px rgba(0,102,255,.12);background:#f7faff}.dbv-week-day-dow{color:#64748b;font-size:.58rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.dbv-week-day-num{color:#0b132b;font-size:.85rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}.dbv-week-day-count{color:#64748b;font-size:.58rem;font-weight:600}.dbv-frame{position:relative;display:flex;min-height:280px;flex:1;flex-direction:column;border-top:1px solid #eef2f7;background:#fbfcfe}.dbv-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:none}.dbv-scroll::-webkit-scrollbar{display:none}.dbv-content{position:relative;min-width:100%}.dbv-now-line{top:0;bottom:0;width:2px;z-index:12;pointer-events:none;box-shadow:0 0 8px rgba(239,68,68,.28)}.dbv-now-badge,.dbv-now-line{position:absolute;background:#ef4444}.dbv-now-badge{top:.2rem;left:50%;transform:translateX(-50%);color:#fff;font-size:.6rem;font-weight:700;border-radius:999px;padding:.1rem .35rem;white-space:nowrap;border:2px solid #fff;box-shadow:0 2px 7px rgba(239,68,68,.22)}html[data-afm-dispatch-dragging],html[data-afm-dispatch-dragging] .dbv-scroll,html[data-afm-dispatch-dragging] .overflow-auto,html[data-afm-dispatch-dragging] .overflow-x-auto,html[data-afm-dispatch-dragging] .overflow-y-auto,html[data-afm-dispatch-dragging] body{overflow:hidden!important;overscroll-behavior:none!important;touch-action:none!important}.dbv-grid-header{position:sticky;top:0;z-index:5;display:flex;border-bottom:1px solid #e3e8f0;background:rgba(255,255,255,.96);box-shadow:0 1px rgba(227,232,240,.7)}.dbv-corner{position:sticky;left:0;z-index:6;align-items:center;padding:0 .65rem;border-right:1px solid #e3e8f0;background:#fff;color:#64748b;font-size:.58rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:ns-resize}.dbv-corner,.dbv-hours{flex-shrink:0;display:flex;user-select:none;touch-action:none}.dbv-hours{cursor:ew-resize}.dbv-hour{flex-shrink:0;border-right:1px solid #eef2f7;padding:.45rem .1rem;color:#64748b;font-size:.65rem;font-weight:650;text-align:center}.dbv-row{display:flex;border-bottom:1px solid #e3e8f0;min-height:var(--dbv-lane-height,88px)}.dbv-row.is-drop{background:#eaf3ff}.dbv-row.is-dragging,.os-db-crew-row.is-dragging{opacity:.42;background:#f3f6fa}.dbv-row.is-dragging .dbv-lane,.dbv-row.is-dragging .dbv-track,.os-db-crew-row.is-dragging .os-db-crew-meta,.os-db-crew-row.is-dragging .os-db-crew-track{filter:grayscale(.15)}.dbv-row.is-reorder-after,.dbv-row.is-reorder-before,.os-db-crew-row.is-reorder-after,.os-db-crew-row.is-reorder-before{background:#eaf3ff}.dbv-row.is-reorder-after:after,.dbv-row.is-reorder-before:before,.os-db-crew-row.is-reorder-after:after,.os-db-crew-row.is-reorder-before:before{content:"";position:absolute;left:6px;right:6px;height:4px;border-radius:999px;background:#0066ff;box-shadow:0 0 0 3px rgba(0,102,255,.18);z-index:8;pointer-events:none}.dbv-row.is-reorder-before:before,.os-db-crew-row.is-reorder-before:before{top:-2px}.dbv-row.is-reorder-after:after,.os-db-crew-row.is-reorder-after:after{bottom:-2px}.dbv-row-drag-ghost{display:flex!important;overflow:hidden;border-radius:.75rem;border:1px solid #0066ff;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.06),0 12px 28px rgba(15,23,42,.16);opacity:.96}.dbv-row-drag-ghost .os-db-lane-resize,.dbv-row-drag-ghost [role=separator]{display:none!important}.dbv-lane{position:sticky;left:0;z-index:20;flex-shrink:0;display:flex;gap:.4rem;min-height:var(--dbv-lane-height,88px);padding:.5rem;border-right:1px solid #e3e8f0;background:#fff;cursor:grab;user-select:none}.dbv-lane:active{cursor:grabbing}.dbv-track{position:relative;z-index:1;flex-shrink:0;width:var(--dbv-track-width,720px);min-height:var(--dbv-lane-height,88px);background:linear-gradient(90deg,rgba(0,102,255,.018),transparent 30%),#fafbfc}.dbv-hour-lines{pointer-events:none;position:absolute;inset:0;display:flex}.dbv-hour-line{flex-shrink:0;height:100%;border-left:1px solid #eef2f7}.dbv-scrollbar{position:absolute;z-index:8;background:rgba(241,245,249,.92);border:1px solid #e3e8f0}.dbv-scrollbar-x{right:16px;bottom:2px;left:8px;height:14px}.dbv-scrollbar-x,.dbv-scrollbar-y{border-radius:999px;pointer-events:auto}.dbv-scrollbar-y{top:8px;right:2px;bottom:20px;width:14px}.dbv-scrollbar-thumb{position:absolute;border-radius:999px;background:#c3ccda;box-shadow:inset 0 0 0 1px rgba(15,23,42,.04);cursor:grab;transition:background .12s ease;touch-action:none}.dbv-scrollbar-x .dbv-scrollbar-thumb{top:2px;bottom:2px;min-width:36px}.dbv-scrollbar-y .dbv-scrollbar-thumb{left:2px;right:2px;min-height:36px}.dbv-scrollbar-thumb:active,.dbv-scrollbar-thumb:hover{background:#94a3b8;cursor:grabbing}.dbv-scrollbar-thumb.is-stretching{background:#86efac;box-shadow:inset 0 0 0 1px rgba(22,163,74,.35);cursor:grabbing}.dbv-scrollbar-thumb.is-stretching .dbv-scrollbar-edge:after{background:#16a34a}.dbv-scrollbar-stretch{position:absolute;z-index:2;pointer-events:none;border-radius:999px;background:rgba(22,163,74,.45);box-shadow:0 0 0 1px rgba(22,163,74,.35)}.dbv-scrollbar-x .dbv-scrollbar-stretch{top:0;bottom:0}.dbv-scrollbar-y .dbv-scrollbar-stretch{left:0;right:0}.dbv-scrollbar-edge{position:absolute;z-index:1;background:transparent}.dbv-scrollbar-x .dbv-scrollbar-edge-end,.dbv-scrollbar-x .dbv-scrollbar-edge-start{top:-2px;bottom:-2px;width:14px;cursor:ew-resize}.dbv-scrollbar-x .dbv-scrollbar-edge-start{left:-2px}.dbv-scrollbar-x .dbv-scrollbar-edge-end{right:-2px}.dbv-scrollbar-x .dbv-scrollbar-edge-end:after,.dbv-scrollbar-x .dbv-scrollbar-edge-start:after{content:"";position:absolute;top:3px;bottom:3px;width:3px;border-radius:999px;background:rgba(15,23,42,.22)}.dbv-scrollbar-x .dbv-scrollbar-edge-start:after{left:4px}.dbv-scrollbar-x .dbv-scrollbar-edge-end:after{right:4px}.dbv-scrollbar-y .dbv-scrollbar-edge-end,.dbv-scrollbar-y .dbv-scrollbar-edge-start{left:-2px;right:-2px;height:14px;cursor:ns-resize}.dbv-scrollbar-y .dbv-scrollbar-edge-start{top:-2px}.dbv-scrollbar-y .dbv-scrollbar-edge-end{bottom:-2px}.dbv-scrollbar-y .dbv-scrollbar-edge-end:after,.dbv-scrollbar-y .dbv-scrollbar-edge-start:after{content:"";position:absolute;left:3px;right:3px;height:3px;border-radius:999px;background:rgba(15,23,42,.22)}.dbv-scrollbar-y .dbv-scrollbar-edge-start:after{top:4px}.dbv-scrollbar-y .dbv-scrollbar-edge-end:after{bottom:4px}.dbv-zoom-readout{position:absolute;right:18px;bottom:16px;z-index:7;display:inline-flex;gap:.65rem;padding:.2rem .45rem;border:1px solid #e3e8f0;border-radius:.4rem;background:rgba(255,255,255,.92);color:#64748b;font-size:.58rem;font-weight:600;pointer-events:none}.dbv-zoom-readout strong{color:#0b132b;font-variant-numeric:tabular-nums}.dbv-board-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid #eef2f7}