:root{--ink:#171717;--muted:#66645f;--paper:#f4f1ea;--surface:#fffdf8;--line:#d9d2c4;--coal:#25211c;--amber:#d99b16;--red:#c7392f;--green:#25755c;--blue:#236192;--unknown:#6b6f76;--shadow:0 18px 50px rgba(37,33,28,0.12)}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--paper);color:var(--ink);font-family:Aptos,DIN Alternate,Bahnschrift,Helvetica Neue,sans-serif;letter-spacing:0}button,input,textarea{font:inherit}button{cursor:pointer}.appShell{min-height:100vh;padding:24px;background:linear-gradient(90deg,rgba(37,33,28,.05) 1px,transparent 1px),linear-gradient(rgba(37,33,28,.04) 1px,transparent 1px),var(--paper);background-size:36px 36px}.accessGate{display:grid;min-height:100vh;place-items:center;padding:24px;background:linear-gradient(90deg,rgba(37,33,28,.06) 1px,transparent 1px),linear-gradient(rgba(37,33,28,.05) 1px,transparent 1px),var(--paper);background-size:36px 36px}.accessPanel{display:grid;grid-gap:22px;gap:22px;width:min(440px,100%);padding:26px;border:1px solid #0d0c0a;background:var(--coal);color:#fff;box-shadow:var(--shadow)}.accessPanel .kicker{color:#d7c6a0}.accessPanel h1{margin:0;font-size:clamp(2rem,6vw,3.35rem);line-height:.95}.accessCopy{max-width:34ch;margin:12px 0 0;color:#eee7d9;line-height:1.45}.accessMark{display:grid;width:52px;height:52px;place-items:center;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#d7c6a0}.accessForm{display:grid;grid-gap:10px;gap:10px}.accessField{display:grid;grid-template-columns:auto auto 1fr;align-items:center;grid-gap:9px;gap:9px;min-height:54px;padding:0 12px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.08);color:#eee7d9;font-weight:800}.accessField input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:#fff}.accessButton{width:100%;border-color:#d7c6a0;background:#d7c6a0;color:var(--coal)}.accessError{margin:0;color:#ffd7ce;font-size:.86rem;font-weight:800}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:18px 20px;color:#fff;background:var(--coal);border:1px solid #0d0c0a;box-shadow:var(--shadow)}.panel h2,.topbar h1{margin:0;font-size:clamp(1.35rem,2vw,2rem);line-height:1}.kicker{margin:0 0 6px;color:var(--muted);font-size:.73rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.topbar .kicker{color:#d7c6a0}.appContent{min-width:0}.actionMeta,.bufferRow,.errorBanner,.fileUpload,.filterToggle,.infoBanner,.metric,.panelActionLink,.panelHeader,.panelHeaderActions,.primaryButton,.reviewRow,.simulationControl,.statusPill,.statusStrip,.viewTab,.viewTabs{display:flex;align-items:center}.statusStrip{flex-wrap:wrap;justify-content:flex-end;gap:10px;color:#eee7d9;font-size:.92rem}.statusPill{padding:0 10px}.simulationControl,.statusPill{gap:7px;min-height:34px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08)}.simulationControl{padding:0 8px;color:#fff;font-weight:800}.simulationControl button,.simulationControl input{height:26px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.09);color:#fff;font:inherit;font-size:.86rem;font-weight:800}.simulationControl input{width:86px;padding:0 4px}.simulationControl button{padding:0 8px;cursor:pointer}.uploadBand{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto;grid-gap:12px;gap:12px;margin:16px 0}.uploadBand.singleUpload{grid-template-columns:minmax(260px,1fr) auto}.viewTabs{gap:8px;margin:0 0 16px;padding:6px;overflow-x:auto;border:1px solid var(--line);background:rgba(255,253,248,.78)}.viewTab{gap:8px;min-height:40px;padding:0 13px;white-space:nowrap;border:1px solid transparent;background:transparent;color:var(--muted);font-weight:800}.viewTab.active{border-color:var(--coal);background:var(--coal);color:#fff}.filterToggle{gap:8px;min-height:36px;padding:0 10px;border:1px solid var(--line);background:#f8f5ee;color:var(--coal);font-size:.85rem;font-weight:800}.filterToggle input{width:16px;height:16px;accent-color:var(--blue)}.fileUpload,.primaryButton{min-height:58px;border:1px solid var(--line);background:var(--surface);color:var(--ink);box-shadow:0 8px 24px rgba(37,33,28,.08)}.fileUpload{position:relative;gap:12px;padding:10px 14px}.fileUpload input{position:absolute;inset:0;opacity:0;cursor:pointer}.fileUpload small,.fileUpload strong{display:block}.bufferRow small,.fileUpload small,td small{color:var(--muted);font-size:.75rem}.fileIcon{display:grid;width:34px;height:34px;place-items:center;color:#fff;background:var(--blue)}.primaryButton{gap:9px;justify-content:center;padding:0 18px;font-weight:800;border-color:var(--coal);background:var(--coal);color:#fff}.infoBanner{gap:10px;margin:-4px 0 16px;padding:12px 14px;border:1px solid rgba(35,97,146,.32);background:rgba(35,97,146,.1);color:var(--blue);font-weight:800}.primaryButton:disabled{cursor:not-allowed;opacity:.48}.spin{animation:spin .9s linear infinite}.errorBanner{gap:10px;margin:0 0 16px;padding:12px 14px;border:1px solid rgba(199,57,47,.35);background:#fff4f1;color:var(--red)}.metricGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:16px}.metric{gap:10px;min-height:76px;padding:14px;background:var(--surface);border:1px solid var(--line)}.metric svg{width:22px;height:22px;color:var(--blue)}.metric small{flex:1 1;color:var(--muted)}.metric strong{font-size:1.8rem}.workspaceGrid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.7fr);grid-gap:16px;gap:16px}.twoColumn{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.72fr);grid-gap:16px;gap:16px;margin-top:16px}.panel{min-width:0;padding:16px;background:rgba(255,253,248,.94);border:1px solid var(--line);box-shadow:var(--shadow)}.panelHeader{justify-content:space-between;gap:12px;margin-bottom:14px}.panelHeader svg{color:var(--blue)}.panelHeaderActions{flex-wrap:wrap;justify-content:flex-end;gap:8px}.panelActionLink{min-height:34px;gap:6px;padding:0 9px;border:1px solid var(--line);background:#f8f5ee;color:var(--coal);font-size:.82rem;font-weight:900;text-decoration:none;white-space:nowrap}.actionList,.bufferGrid,.reviewList,.timeline{display:grid;grid-gap:10px;gap:10px}.actionItem{padding:12px;border-left:5px solid var(--unknown);background:#f8f5ee}.actionItem h3,.actionItem p{margin:8px 0 0}.actionItem p{color:#3f3b35;line-height:1.4}.actionItem small{display:block;margin-top:8px;color:var(--muted)}.swapProposal{display:flex;align-items:flex-start;gap:8px;margin-top:10px;padding:8px 10px;border:1px solid rgba(35,97,146,.28);background:rgba(35,97,146,.08);color:#1d4f78;font-weight:700}.swapOptions{display:grid;grid-gap:6px;gap:6px}.swapOption{display:grid;grid-gap:2px;gap:2px}.swapOption small{margin:0;color:#356384;font-weight:600}.reasoningList{margin:10px 0 0;padding-left:18px;color:#3f3b35;line-height:1.4}.actionMeta{gap:8px;font-size:.86rem}.severityDot{display:inline-block;width:13px;height:13px;border:2px solid rgba(0,0,0,.12);border-radius:50%;vertical-align:middle}.severity-green{--status-color:var(--green);border-color:var(--green)}.severity-yellow{--status-color:var(--amber);border-color:var(--amber)}.severity-red{--status-color:var(--red);border-color:var(--red)}.severity-unknown{--status-color:var(--unknown);border-color:var(--unknown)}.severityDot.severity-green,.severityDot.severity-red,.severityDot.severity-unknown,.severityDot.severity-yellow{background:var(--status-color)}.tableScroller{overflow-x:auto}table{width:100%;min-width:760px;border-collapse:collapse;font-size:.88rem}td,th{padding:10px 8px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}td small,td strong{display:block}.emptyCell,.emptyState,.muted{color:var(--muted)}.emptyState{display:grid;min-height:180px;place-items:center;align-content:center;grid-gap:10px;gap:10px;border:1px dashed var(--line)}.bufferRow,.reviewRow{justify-content:space-between;gap:12px;min-height:42px;padding:8px 10px;background:#f8f5ee}.reviewRow{grid-template-columns:86px minmax(64px,.5fr) minmax(120px,1fr) 86px;display:grid;align-items:center}meter{width:100%}.bufferRow input{width:76px;height:36px;padding:0 8px;border:1px solid var(--line);background:#fff;text-align:right}.timelinePanel{margin-top:16px}.timelineLane{display:grid;grid-template-columns:minmax(170px,260px) 1fr;align-items:center;grid-gap:12px;gap:12px}.timelineLane strong{overflow:hidden;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.timelineTrack{position:relative;height:28px;background:repeating-linear-gradient(90deg,#ede5d7,#ede5d7 1px,transparent 0,transparent 8.33%);border:1px solid var(--line)}.timelineBar{position:absolute;top:5px;bottom:5px;min-width:7px;background:var(--blue)}.timelineBar.crewBar{background:var(--amber)}.timetablePreview{display:grid;grid-gap:12px;gap:12px;margin-bottom:16px;color:inherit;text-decoration:none}.timetablePreview:hover{border-color:rgba(35,97,146,.42)}.previewDate,.previewLaneHeader,.previewRide,.previewSummary,.timetablePreviewHeader{display:flex;align-items:center}.timetablePreviewHeader{justify-content:space-between;gap:14px}.timetablePreviewHeader h2{margin:0;font-size:1.2rem;line-height:1.1}.previewDate{gap:7px;white-space:nowrap}.previewDate,.previewSummary{color:var(--muted);font-weight:800}.previewSummary{gap:8px}.previewSummary strong{color:var(--coal);font-size:1.65rem;line-height:1}.previewSummary svg{margin-left:auto;color:var(--blue)}.previewLaneGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:8px;gap:8px}.previewLane{min-width:0;padding:10px;border:1px solid var(--line);background:#f8f5ee}.previewLaneHeader{justify-content:space-between;gap:8px}.previewLaneHeader strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.previewLaneHeader span{color:var(--muted);font-weight:900}.previewLane small{display:block;margin-top:2px;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.previewRideStack{display:grid;grid-gap:6px;gap:6px;margin-top:10px}.previewRide{gap:7px;min-height:30px;padding:6px 8px;overflow:hidden;border-radius:6px;color:#172033}.previewRide b{flex:0 0 auto;font-size:.76rem}.previewRide em{overflow:hidden;font-size:.78rem;font-style:normal;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.previewEmpty{min-height:82px;padding:16px;border:1px dashed var(--line);color:var(--muted);font-weight:800}.timetablePage{grid-gap:12px;gap:12px}.flightBoardPage,.timetablePage{display:grid;min-width:0;margin-top:16px}.flightBoardPage{grid-gap:14px;gap:14px}.flightBoardActions,.flightBoardHeader{display:flex;align-items:center}.flightBoardHeader{justify-content:space-between;gap:16px}.flightBoardHeader h2{margin:0;font-size:1.35rem;line-height:1.1}.flightBoardActions{flex-wrap:wrap;justify-content:flex-end;gap:10px}.dateInputLabel,.laneHeaderMeta,.modalActions,.paxCount,.rideFooter,.rideModalHeader,.searchField,.timetableDateCluster,.timetablePageActions,.timetablePageHeader,.timetableToolbar{display:flex;align-items:center}.timetablePageHeader{justify-content:space-between;gap:16px;padding:2px 0 4px}.timetablePageHeader h2{margin:0;font-size:1.35rem;line-height:1.1}.timetablePageActions{justify-content:flex-end;gap:10px}.timetablePageActions>span{color:var(--muted);font-size:.9rem;font-weight:800}.timetableToolbar{display:grid;grid-template-columns:minmax(0,max-content) minmax(260px,1fr) max-content;align-items:center;grid-gap:10px;gap:10px;padding:10px;border:1px solid var(--line);background:rgba(255,253,248,.94)}.timetableDateCluster{flex-wrap:wrap;gap:8px;min-width:0}.iconButton,.miniIconButton,.secondaryButton{min-height:38px;border:1px solid var(--line);background:var(--surface);color:var(--coal);font-weight:800}.iconButton,.miniIconButton{display:inline-grid;place-items:center;width:38px;padding:0}.miniIconButton{width:32px;min-height:32px}.secondaryButton{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 12px;text-decoration:none}.dateInputLabel,.searchField{gap:8px;min-height:38px;padding:0 10px;border:1px solid var(--line);background:#fff;color:var(--muted)}.dateInputLabel input,.rideModalForm input,.rideModalForm textarea,.searchField input{border:0;outline:0;background:transparent;color:var(--ink)}.dateInputLabel input{width:130px}.searchField{min-width:0}.searchField input{width:100%;min-width:0}.selectedDateLabel{min-width:0;overflow:hidden;color:var(--coal);font-size:.92rem;text-overflow:ellipsis;white-space:nowrap}.toolbarCount{align-self:center;color:var(--muted);font-size:.86rem;font-weight:800;white-space:nowrap}.timetablePanel{min-width:0;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.timetableScroll{position:relative;max-height:calc(100vh - 292px);min-height:560px;overflow:auto;overscroll-behavior:contain;background:#fff}.timetableGrid{display:grid;width:100%;background:#fff}.timetableLaneHeader,.timetableTimeColumn,.timetableTimeHeader{background:#fafafa}.timetableTimeHeader{left:0;z-index:9;grid-column:1;align-items:flex-end;justify-content:flex-end;padding:0 14px 14px 0;box-shadow:10px 0 18px rgba(23,23,23,.04);color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.timetableLaneHeader,.timetableTimeHeader{position:-webkit-sticky;position:sticky;top:0;grid-row:1;display:flex;border-right:1px solid #e8e8e8;border-bottom:1px solid #e8e8e8}.timetableLaneHeader{z-index:6;justify-content:space-between;gap:12px;min-width:0;padding:14px 14px 12px;background:#fbfaf7}.timetableLaneHeader span,.timetableLaneHeader strong{display:block}.timetableLaneHeader strong{font-size:1rem}.timetableLaneHeader span,.timetableLaneHeader strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timetableLaneHeader span{color:var(--muted);font-size:.82rem;font-weight:700}.laneHeaderMeta{flex:0 0 auto;justify-content:flex-end;gap:8px;text-align:right}.timetableTimeColumn{position:-webkit-sticky;position:sticky;left:0;z-index:5;grid-column:1;grid-row:2;height:var(--timeline-height);border-right:1px solid #e8e8e8}.timeMark{position:absolute;top:var(--time-top);right:12px;color:#687286;font-size:.86rem;font-weight:800;transform:translateY(-50%)}.timetableLane{position:relative;grid-row:2;min-width:0;height:var(--timeline-height);overflow:hidden;border-right:1px solid #ececec;background:linear-gradient(90deg,rgba(37,33,28,.018) 1px,transparent 0),#fff;background-size:20px 100%}.laneHourLine{position:absolute;right:0;left:0;top:var(--line-top);border-top:1px solid #eef0f3}.rideBlock{position:absolute;top:var(--ride-top);left:calc(var(--ride-left) + 8px);width:calc(var(--ride-width) - 12px);height:var(--ride-height);min-width:0;padding:10px 11px;overflow:hidden;border:1px solid rgba(23,23,23,.06);border-radius:8px;color:#172033;text-align:left;box-shadow:0 12px 30px rgba(28,42,61,.12);touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.rideBlock:hover{box-shadow:0 16px 34px rgba(28,42,61,.18);transform:translateY(-1px)}.rideBlock.compactRide{padding:8px 10px}.rideResizeHandle{position:absolute;right:12px;left:12px;z-index:2;height:10px;cursor:ns-resize}.rideResizeHandle:after{position:absolute;right:42%;left:42%;height:3px;border-radius:999px;background:rgba(23,32,51,.28);content:"";opacity:0;transition:opacity .12s ease}.rideBlock:hover .rideResizeHandle:after{opacity:1}.rideResizeStart{top:0}.rideResizeStart:after{top:3px}.rideResizeEnd{bottom:0}.rideResizeEnd:after{bottom:3px}.rideBlock span,.rideBlock strong{display:block}.rideTime{margin-bottom:5px;font-size:.78rem;font-weight:800;color:rgba(23,32,51,.74)}.rideBlock strong{display:-webkit-box;overflow:hidden;font-size:.96rem;line-height:1.2;-webkit-box-orient:vertical;-webkit-line-clamp:2}.compactRide .rideTime{margin-bottom:2px;padding-right:42px;font-size:.83rem}.compactRide strong{padding-right:42px;font-size:.98rem;line-height:1.08;-webkit-line-clamp:1}.rideDestination{display:-webkit-box;margin-top:5px;overflow:hidden;color:rgba(23,32,51,.7);font-size:.84rem;line-height:1.2;-webkit-box-orient:vertical;-webkit-line-clamp:2}.compactRide .rideDestination{display:none}.rideFooter{position:absolute;right:12px;bottom:9px;left:12px;justify-content:flex-end;gap:8px}.compactRide .rideFooter{top:8px;right:9px;bottom:auto;left:auto}.paxCount{gap:4px;color:rgba(23,32,51,.78);font-size:.78rem;font-weight:900;white-space:nowrap}.tone-0{background:#93aaf6}.tone-1{background:#8edbd3}.tone-2{background:#dca0f1}.tone-3{background:#86dfa5}.tone-4{background:#f5c56d}.tone-5{background:#f49b92}.tone-6{background:#d7dde7}.timetableEmptyState{position:absolute;top:94px;left:104px;z-index:7;display:grid;grid-gap:8px;gap:8px;width:min(430px,calc(100% - 124px));padding:14px;border:1px solid rgba(35,97,146,.22);background:rgba(255,253,248,.96);box-shadow:0 16px 42px rgba(37,33,28,.12)}.timetableEmptyState strong{font-size:1rem}.timetableEmptyState span{color:var(--muted);font-size:.9rem;font-weight:700;line-height:1.35}.timetableEmptyState .secondaryButton{justify-self:start;margin-top:2px}.modalOverlay{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:rgba(23,23,23,.32)}.rideModal{width:min(760px,100%);max-height:min(760px,calc(100vh - 40px));overflow:auto;background:#fff;border:1px solid var(--line);box-shadow:0 26px 70px rgba(23,23,23,.22)}.rideModalHeader{justify-content:space-between;gap:16px;padding:18px;border-bottom:1px solid var(--line)}.rideModalHeader h2{margin:0 0 4px;font-size:1.25rem}.rideModalHeader span{color:var(--muted);font-weight:800}.rideModalForm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;padding:18px}.rideModalForm label{display:grid;grid-gap:6px;gap:6px}.rideModalForm label span{color:var(--muted);font-size:.76rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.rideModalForm input,.rideModalForm textarea{width:100%;min-height:40px;padding:9px 10px;border:1px solid var(--line);background:#fff}.rideModalForm textarea{resize:vertical}.fullField,.modalActions{grid-column:1/-1}.modalActions{justify-content:flex-end;gap:10px;padding-top:4px}.compactButton{min-height:40px;padding:0 14px;box-shadow:none}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:980px){.metricGrid,.rideModalForm,.timetableToolbar,.twoColumn,.uploadBand,.workspaceGrid{grid-template-columns:1fr}.topbar{align-items:start;flex-direction:column}.statusStrip{justify-content:flex-start}.timelineLane{grid-template-columns:1fr}.flightBoardHeader,.timetablePageHeader{align-items:flex-start;flex-direction:column}.timetableScroll{max-height:68vh;min-height:520px}.timetableEmptyState{left:100px;width:min(360px,calc(100% - 116px))}.modalActions{justify-content:stretch}.modalActions button{flex:1 1}}@media (max-width:520px){body,html{overflow-x:hidden}.appShell{padding:16px}.flightBoardActions,.timetablePageActions{width:100%;flex-wrap:wrap;justify-content:flex-start}.timetableDateCluster{align-items:stretch}.dateInputLabel{flex:1 1 160px;min-width:0}.dateInputLabel input,.searchField{width:100%}.timetableEmptyState{left:96px;width:min(260px,calc(100vw - 132px))}}