:root{--color-bg:#07101e;--color-surface:#0d1b2e;--color-surface-2:#142033;--color-border:#1c2e42;--color-border-2:#243447;--color-text:#e8f0f8;--color-muted:#5a7a96;--color-muted-2:#8aabb8;--color-blue:#4f9cf9;--color-blue-dim:#0e2a4a;--color-green:#2dd88a;--color-green-dim:#0b2e1e;--color-yellow:#f5c842;--color-red:#f26b6b;--color-red-dim:#2d0a0a;--bg:var(--color-bg);--surface:var(--color-surface);--border:var(--color-border);--text:var(--color-text);--muted:var(--color-muted);--blue:var(--color-blue);--green:var(--color-green);--yellow:var(--color-yellow);--red:var(--color-red);--r-sm:8px;--r-md:14px;--r-lg:18px;--r-xl:24px;--shadow-card:0 2px 12px #00000080, 0 0 0 1px #ffffff0a;--shadow-popup:0 8px 32px #000000b3, 0 0 0 1px #ffffff0f}*,:before,:after{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);overscroll-behavior:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;margin:0;font-family:-apple-system,SF Pro Display,Segoe UI,system-ui,sans-serif}button,[role=button]{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}a{color:inherit;text-decoration:none}.card{background:var(--color-surface);border-radius:var(--r-md);border:1px solid var(--color-border);box-shadow:var(--shadow-card)}.card-elevated{background:var(--color-surface-2);border-radius:var(--r-md);border:1px solid var(--color-border-2);box-shadow:var(--shadow-popup)}.app-header{padding:env(safe-area-inset-top,0) 16px 0;padding-top:calc(env(safe-area-inset-top,0) + 16px);background:linear-gradient(180deg, var(--color-bg) 60%, transparent);z-index:40;-webkit-backdrop-filter:blur(12px);padding-bottom:12px;position:sticky;top:0}.header-title{letter-spacing:-.5px;color:var(--color-text);font-size:22px;font-weight:700;line-height:1.2}.header-subtitle{color:var(--color-muted);margin-top:1px;font-size:13px}.bottom-nav{height:calc(56px + env(safe-area-inset-bottom,0));padding-bottom:env(safe-area-inset-bottom,0);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--color-border);z-index:50;background:#07101ed9;align-items:flex-start;padding-top:4px;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{color:var(--color-muted);letter-spacing:.02em;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:6px 4px;font-size:10px;font-weight:500;transition:color .18s;display:flex}.nav-item.active{color:var(--color-blue)}.nav-item .nav-icon{font-size:22px;line-height:1;transition:transform .18s}.nav-item.active .nav-icon{transform:scale(1.12)}.leg-card{background:var(--color-surface);border-radius:var(--r-md);border:1px solid var(--color-border);box-shadow:var(--shadow-card);transition:border-color .18s;overflow:hidden}.leg-card.orphan{background:linear-gradient(135deg, var(--color-surface) 0%, #1a0d0d 100%);border-color:#5c1a1a}.leg-card-stripe{border-radius:0;flex-shrink:0;align-self:stretch;width:4px}.leg-card-body{flex:1;justify-content:space-between;align-items:center;gap:10px;min-width:0;padding:12px 12px 12px 14px;display:flex}.driver-badge{cursor:pointer;border:none;border-radius:100px;flex-shrink:0;align-items:center;gap:6px;min-height:36px;padding:6px 12px;font-size:12px;font-weight:600;transition:all .18s;display:flex}.driver-badge.self{color:var(--color-green);background:#2dd88a14;border-color:#2dd88a40}.driver-badge.orphan{color:var(--color-red);background:#f26b6b26;border:1px solid #f26b6b4d}.driver-badge.assigned{color:var(--color-blue);background:#4f9cf91f;border:1px solid #4f9cf940}.driver-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:10px;font-weight:700;display:flex}.picker-panel{border-top:1px solid var(--color-border);background:var(--color-surface-2);padding:14px 16px;animation:.2s ease-out slideDown}@keyframes slideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.picker-label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-muted);margin-bottom:10px;font-size:11px;font-weight:600}.picker-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.picker-btn{border-radius:var(--r-sm);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;align-items:center;gap:8px;min-height:44px;padding:10px 12px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.picker-btn:hover{background:var(--color-border)}.picker-btn.selected{border-color:var(--color-blue);background:#4f9cf914}.picker-btn.none-btn{color:var(--color-muted);grid-column:1/-1;justify-content:center}.picker-btn.self-btn{color:var(--color-green);background:#2dd88a14;border-color:#2dd88a4d;grid-column:1/-1;justify-content:center}.status-banner{border-radius:var(--r-md);align-items:center;gap:8px;margin:0 16px;padding:11px 16px;font-size:13px;font-weight:500;display:flex}.status-banner.ok{background:var(--color-green-dim);color:var(--color-green);border:1px solid #2dd88a33}.status-banner.warn{background:var(--color-red-dim);color:var(--color-red);border:1px solid #f26b6b40}.status-banner.neutral{background:var(--color-surface);color:var(--color-muted);border:1px solid var(--color-border)}.timeline{padding-left:48px;position:relative}.timeline:before{content:"";background:linear-gradient(180deg, var(--color-border-2) 0%, transparent 100%);border-radius:2px;width:2px;position:absolute;top:8px;bottom:8px;left:20px}.timeline-node{border:2px solid var(--color-bg);width:22px;height:22px;box-shadow:0 0 0 2px var(--color-border-2);border-radius:50%;justify-content:center;align-items:center;font-size:10px;display:flex;position:absolute;left:10px}.timeline-item{margin-bottom:12px;position:relative}.timeline-gap{align-items:center;gap:8px;margin-left:-48px;padding:6px 0 6px 48px;display:flex}.timeline-gap-line{background:var(--color-border);flex:1;height:1px}.timeline-gap-label{border-radius:100px;padding:2px 8px;font-size:11px;font-weight:500}.section-label{text-transform:uppercase;letter-spacing:.1em;color:var(--color-muted);margin-bottom:10px;font-size:11px;font-weight:700}.day-header{text-transform:uppercase;letter-spacing:.08em;color:var(--color-muted-2);margin-bottom:8px;padding:0 2px;font-size:12px;font-weight:700}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 24px;display:flex}.empty-state .icon{opacity:.6;font-size:48px}.empty-state .title{color:var(--color-text);font-size:15px;font-weight:600}.empty-state .sub{color:var(--color-muted);font-size:13px}.week-nav-btn{border-radius:var(--r-sm);border:1px solid var(--color-border);background:var(--color-surface-2);width:36px;height:36px;color:var(--color-text);justify-content:center;align-items:center;font-size:13px;transition:background .15s;display:flex}.week-nav-btn:hover{background:var(--color-border)}.week-nav-today{border-radius:var(--r-sm);border:1px solid var(--color-border);background:var(--color-surface-2);height:36px;color:var(--color-muted-2);align-items:center;padding:0 12px;font-size:12px;font-weight:600;transition:background .15s;display:flex}.week-nav-today:hover{background:var(--color-border)}.icon-btn{border-radius:var(--r-sm);border:1px solid var(--color-border);background:var(--color-surface-2);width:36px;height:36px;color:var(--color-muted);flex-shrink:0;justify-content:center;align-items:center;font-size:15px;transition:background .15s,color .15s;display:flex}.icon-btn:hover{background:var(--color-border);color:var(--color-text)}.flex{display:flex}.flex-1{flex:1}.flex-col{flex-direction:column}.flex-shrink-0{flex-shrink:0}.inline-flex{display:inline-flex}.inline-block{display:inline-block}.block{display:block}.hidden{display:none}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.top-0{top:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.z-50{z-index:50}.w-full{width:100%}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-7{width:1.75rem}.w-16{width:4rem}.h-px{height:1px}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-7{height:1.75rem}.min-h-dvh{min-height:100dvh}.min-w-0{min-width:0}.max-w-sm{max-width:24rem}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-baseline{align-items:baseline}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.self-stretch{align-self:stretch}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-2>*+*{margin-top:.5rem}.space-y-3>*+*{margin-top:.75rem}.space-y-4>*+*{margin-top:1rem}.space-y-5>*+*{margin-top:1.25rem}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-safe{padding-top:env(safe-area-inset-top,0)}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pb-14{padding-bottom:3.5rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pr-1{padding-right:.25rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.uppercase{text-transform:uppercase}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.italic{font-style:italic}.text-white{color:#fff}.text-red-300{color:#fca5a5}.text-red-400{color:var(--color-red)}.text-yellow-400{color:var(--color-yellow)}.text-green-400{color:var(--color-green)}.text-blue-400{color:var(--color-blue)}.bg-red-950{background-color:var(--color-red-dim)}.bg-red-800{background-color:#5c1a1a}.bg-blue-500{background-color:var(--color-blue)}.bg-green-400{background-color:var(--color-green)}.bg-slate-600{background-color:#2a3d52}.bg-slate-700{background-color:var(--color-border)}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--r-sm)}.rounded-xl{border-radius:var(--r-md)}.border{border-width:1px}.outline-none{outline:none}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.w-full table{width:100%}.transition-colors{transition:background-color .15s,color .15s}.transition-opacity{transition:opacity .15s}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.disabled\:opacity-50:disabled{opacity:.5}.hover\:bg-slate-700:hover{background:var(--color-border)}.hover\:bg-red-900:hover{background:#5c1a1a}.hover\:bg-red-950:hover{background:var(--color-red-dim)}.cursor-pointer{cursor:pointer}.focus\:ring-2:focus{box-shadow:0 0 0 2px var(--color-blue)}
