:root{--nav:#101d33;--bg:#f3f5f9;--ink:#17273e;--muted:#768295;--line:#e6eaf1;--blue:#2764e7;--green:#159879;--radius:15px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}button,input,select{font:inherit}button{cursor:pointer;border:0;border-radius:8px;padding:11px 19px;background:var(--blue);color:white;font-weight:600;transition:.15s}button:hover{filter:brightness(1.08);transform:translateY(-1px)}button:disabled{opacity:.45;cursor:not-allowed;transform:none}button.secondary{background:#edf1f8;color:#526278}button.outline{background:transparent;color:var(--blue);border:1px solid #cddbf8}button.danger{background:#fff0ef;color:#bf493f}button.small{padding:7px 13px;font-size:12px}a{color:var(--blue)}aside{position:fixed;inset:0 auto 0 0;width:232px;background:var(--nav);color:#d5deeb;padding:30px 19px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;font-size:17px;font-weight:750;letter-spacing:1px;padding:0 5px}.brand small{display:block;font-size:10px;color:#7d8da5;font-weight:400;letter-spacing:2px;margin-top:3px}.logo{background:#2d66e3;border-radius:11px;width:38px;height:38px;display:grid;place-items:center;font-size:25px}.company{margin:36px 3px 22px;padding-bottom:25px;border-bottom:1px solid #ffffff12}.company strong{display:block;font-size:14px;color:white;overflow-wrap:anywhere}.company span{font-size:11px;color:#7e91aa;letter-spacing:1px}nav{display:flex;flex-direction:column;gap:7px}nav button{display:flex;gap:14px;text-align:left;background:transparent;color:#91a2bb;padding:13px 15px;font-weight:500}nav button.active{background:#273d64;color:white}nav button .icon{font-size:17px;width:19px;text-align:center}.aside-bottom{margin-top:auto;padding:20px 6px 0}.connection{font-size:11px;color:#93a3bc;line-height:1.7}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#75849a;margin-right:7px}.dot.on{background:#49d2ab;box-shadow:0 0 0 4px #49d2ab13}.version{margin-top:22px;font-size:10px;letter-spacing:1.5px;color:#5c718d;display:flex;justify-content:space-between}.workspace{margin-left:232px}header{height:91px;background:white;border-bottom:1px solid var(--line);padding:20px 35px;display:flex;align-items:center;justify-content:space-between}.eyebrow{font-size:9px;letter-spacing:2px;color:#9aa5b5}#breadcrumb{font-weight:650;font-size:16px}.header-right{display:flex;align-items:center;gap:17px}time{color:#8c97a7;font:11px Consolas,monospace}.badge{display:inline-block;border-radius:5px;padding:4px 8px;font-size:10px;font-weight:700;letter-spacing:.4px;background:#e9f1ff;color:#3467c5}.badge.green{background:#e8f6f0;color:#1b8a6c}.badge.orange{background:#fff3dd;color:#ac791f}.badge.gray{background:#eff1f5;color:#7a8797}main{width:100%;max-width:none;padding:31px 35px;min-height:calc(100vh - 142px)}h1,h2,h3,p{margin:0}h1{font-size:27px;font-weight:720;letter-spacing:-.5px}h2{font-size:17px;font-weight:680}h3{font-size:14px}.muted{color:var(--muted)}.lead{color:var(--muted);margin-top:5px;font-size:13px}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px;gap:16px}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.stats{display:grid;grid-template-columns:1.55fr repeat(3,1fr);gap:16px;margin-bottom:24px}.stat,.card{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.stat{padding:21px 22px}.stat label{display:block;font-size:11px;color:var(--muted);margin-bottom:10px}.stat .value{font:600 27px/1.2 "Segoe UI",sans-serif;letter-spacing:-.8px}.stat .value.money{font-size:22px;white-space:nowrap}.stat small{display:block;color:#9ca6b5;font-size:10px;margin-top:10px}.stat .unit{font-size:12px;letter-spacing:0;color:var(--muted);margin-left:5px}.grid2{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(270px,1fr);gap:20px}.card-head{display:flex;justify-content:space-between;align-items:center;padding:20px 23px;border-bottom:1px solid var(--line)}.card-body{padding:23px}.map-wrap{height:330px;position:relative;background:#e8eff7}.map-wrap.large{height:415px}canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.map-label{position:absolute;bottom:10px;left:14px;color:#8293a9;font-size:9px;pointer-events:none;letter-spacing:.5px}.map-control{position:absolute;right:12px;bottom:12px;padding:6px 10px!important;background:white!important;color:#62748c!important;font-size:10px;box-shadow:0 3px 12px #17273e14}.route-strip{padding:18px 23px;display:flex;gap:17px;align-items:center;border-top:1px solid var(--line)}.airport-code{font:700 25px/1.2 Consolas,monospace;letter-spacing:1px}.airport-name{font-size:10px;color:var(--muted);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-line{flex:1;color:#92a7c4;font-size:15px;text-align:center;display:flex;align-items:center;gap:8px}.route-line:before,.route-line:after{content:"";height:1px;background:#dce5f1;flex:1}.row{display:flex;justify-content:space-between;align-items:center;padding:15px 0;border-bottom:1px solid var(--line);gap:14px}.row:last-child{border-bottom:0}.row small{color:var(--muted);font-size:11px;display:block}.row strong{font-size:13px}.hint{padding:14px 17px;background:#edf3ff;border:1px solid #dce7fa;color:#627898;font-size:12px;border-radius:9px;margin-bottom:20px}.hint.warning{background:#fff8e9;border-color:#f2e6c7;color:#9c7b3c}.hint strong{color:inherit}.empty{text-align:center;padding:46px 20px;color:var(--muted)}.empty b{display:block;font-size:17px;color:var(--ink);margin-bottom:8px}.empty button{margin-top:17px}.section{margin-top:24px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{color:#8d99aa;font-size:10px;letter-spacing:.5px;background:#fcfdff;font-weight:550;padding:13px 20px}td{padding:16px 20px;border-top:1px solid var(--line);font-size:12px}td strong{font-weight:650}.mono{font-family:Consolas,monospace}.aircraft-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.aircraft-card{padding:24px}.aircraft-card .top{display:flex;justify-content:space-between;align-items:center}.aircraft-card h2{font-size:20px}.plane-art{height:120px;width:100%;margin:5px 0;color:#a1b3cd}.plane-art svg{width:100%;height:100%}.aircraft-specs{display:flex;gap:32px;margin:7px 0 22px}.aircraft-specs label{font-size:10px;color:var(--muted);display:block}.aircraft-specs strong{font-size:17px}.purchase-line{display:flex;align-items:center;justify-content:space-between;padding-top:18px;border-top:1px solid var(--line)}.price{font-size:21px;font-weight:700;letter-spacing:-.5px}.price small{display:block;font-size:9px;color:var(--muted);font-weight:400;letter-spacing:0}form{display:grid;gap:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}label.field{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#596a81}.field small{font-size:10px;color:#95a0b0}input,select{min-width:0;border:1px solid #dbe2ec;background:white;color:var(--ink);border-radius:8px;padding:11px 12px;width:100%;outline:none}input:focus,select:focus{border-color:#789feb;box-shadow:0 0 0 3px #2764e711}input[type=checkbox]{width:auto;accent-color:var(--blue)}.quote{padding:19px;background:#f6f8fc;border-radius:9px;font-size:12px;line-height:1.9}.quote .big{font-size:24px;color:var(--blue);font-weight:650}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:20px}.metrics .stat{padding:18px}.metrics .value{font:600 30px Consolas,monospace}.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:22px 0 0}.event{border-top:2px solid #e5ebf3;padding-top:13px;position:relative}.event:before{content:"";width:8px;height:8px;border-radius:50%;background:#d7e0ed;position:absolute;top:-5px;left:0}.event.done{border-color:#75bca9}.event.done:before{background:#1b9b79}.event b{display:block;font-size:11px}.event span{font:12px Consolas,monospace;color:var(--muted)}.flight-id{font:600 28px Consolas,monospace}.score{font:700 58px/1.1 "Segoe UI",sans-serif;color:var(--green);letter-spacing:-2px}.score small{font-size:16px;color:var(--muted);letter-spacing:0}.notice-list{padding-left:17px;color:var(--muted);font-size:12px;line-height:2}.onboarding{max-width:910px;margin:30px auto;display:grid;grid-template-columns:1fr 1.2fr;background:white;border:1px solid var(--line);border-radius:18px;overflow:hidden}.welcome{background:#182d4e;color:white;padding:45px 32px}.welcome .logo{margin-bottom:35px}.welcome h1{font-size:31px;line-height:1.4}.welcome p{font-size:12px;color:#a8b8d0;margin-top:18px;line-height:1.9}.welcome .steps{margin-top:50px;color:#afc1dd;font-size:12px;line-height:2.5}.onboarding .form-side{padding:36px}.full{grid-column:1/-1}.spacer{height:20px}footer{font-size:10px;color:#9aa7b7;padding:13px 35px;border-top:1px solid #e6eaf1;display:flex;justify-content:space-between}dialog{border:1px solid var(--line);border-radius:17px;padding:28px;width:560px;max-width:94vw;max-height:90vh;color:var(--ink);box-shadow:0 24px 100px #07132944}dialog::backdrop{background:#0b18385e;backdrop-filter:blur(3px)}dialog h2{font-size:21px;margin-bottom:9px}dialog .actions{justify-content:flex-end;margin-top:23px}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(100px);background:#142541;color:white;padding:13px 22px;border-radius:10px;z-index:10;opacity:0;transition:.2s;max-width:85vw;font-size:13px}#toast.show{transform:translateX(-50%);opacity:1}.text-right{text-align:right}.hidden{display:none!important}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.status-text{font-size:11px;overflow-wrap:anywhere}.inline-check{display:flex;align-items:center;gap:8px;font-size:11px;color:#7c8799}.long-money{font-size:19px}.profile-toggle{margin-top:15px}.mini-caption{font-size:10px;color:#8b99ac;margin-top:8px}@media(min-width:1600px){.map-wrap.large{height:490px}}@media(max-width:1150px){aside{width:190px;padding:25px 12px}.workspace{margin-left:190px}main{padding:24px}.stats{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.brand{font-size:14px}.map-wrap.large{height:360px}.header-right time{display:none}}@media(max-width:720px){aside{position:static;width:100%;padding:13px;display:block}.brand,.company,.aside-bottom{display:none}nav{flex-direction:row;overflow:auto}nav button{padding:8px;white-space:nowrap;font-size:11px;gap:5px}.workspace{margin:0}header{height:72px;padding:12px 18px}.eyebrow{display:none}.header-right{gap:6px}.badge{font-size:9px}main{padding:18px}h1{font-size:22px}.stats,.aircraft-grid,.onboarding,.form-grid,.metrics{grid-template-columns:1fr 1fr}.onboarding{display:block}.welcome{display:none}.onboarding .form-side{padding:24px}.stats{gap:10px}.stat{padding:16px}.stat .value.money{font-size:17px}.page-head{align-items:flex-start}.page-head .actions{justify-content:flex-end}.grid2{gap:15px}.card-body{padding:18px}.aircraft-grid{grid-template-columns:1fr}footer span{display:none}.header-right .small{font-size:10px}.event span{font-size:10px}}

.timing{display:inline-block;font-size:10px;white-space:nowrap;font-family:Consolas,"Microsoft YaHei",monospace}.timing b{display:inline!important;font-size:11px!important}.timing.delayed{color:#d42f3d}.timing.early{color:#16816d}.timing.ontime{color:#54708e}.timing.pending{color:#98a6b7}.timing-pair{margin-top:5px;color:#92a0b1;font-size:10px}.event .timing{display:block;margin-top:6px}.timeline{gap:7px}.event span{font-size:11px}

body.no-company aside{display:none}body.no-company .workspace{margin-left:0}input[readonly]{background:#f0f3f8;color:#60718a}.timing{font-family:Consolas,"Microsoft YaHei",monospace}.timeline{gap:8px}.table-wrap{overflow-x:auto}

.event .timing{font-family:inherit}

.save-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.slot-card{padding:16px}.slot-card h3{margin-bottom:10px}.equipment-panel{border-top:1px solid #dfe7f1;margin-top:18px;padding-top:18px}.equipment-panel h3{margin-bottom:10px}

#equipmentLive{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 24px;padding:20px;margin:0 0 24px}#equipmentLive h3,#equipmentLive p{grid-column:1/-1}#equipmentLive .row{gap:10px}@media(max-width:800px){#equipmentLive{grid-template-columns:repeat(2,minmax(0,1fr))}}

.event span{font-family:inherit}

.equipment-diagnostics{grid-column:1/-1;display:flex;gap:12px;align-items:center;flex-wrap:wrap}

/* Fluid desktop workspace; use all space to the right of navigation. */
.workspace{min-width:0;min-height:100vh;display:flex;flex-direction:column}
main{flex:1;min-width:0}
#weightLive{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 24px;padding:20px;margin:0 0 20px}
#weightLive h3,#weightLive p{grid-column:1/-1}
#weightLive .row{min-width:0;gap:10px}
#weightLive .row strong{white-space:nowrap}
@media(min-width:1600px){.map-wrap.large{height:clamp(490px,48vh,760px)}}
@media(max-width:1000px){#weightLive{grid-template-columns:1fr}}

.qar-panel{margin-bottom:20px}.qar-panel .card-head{padding:0 0 14px}.qar-json{max-height:360px;overflow:auto;white-space:pre-wrap;font-size:11px}.qar-panel .table-wrap{max-height:320px;overflow:auto}dialog:has(.qar-json){width:1100px}details{margin-top:18px}
dialog:has(.qar-body){width:1100px}

.takeoff-speeds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.aircraft-photo{margin:0;background:#edf2f7;border-radius:12px;overflow:hidden}.aircraft-photo img{display:block;width:100%;height:250px;object-fit:contain}.aircraft-photo figcaption{padding:8px 12px;font-size:11px;color:var(--muted);line-height:1.6}.aircraft-photo a{color:inherit}#dialogContent .aircraft-photo img{height:280px}@media(max-width:600px){.aircraft-photo img{height:210px}.takeoff-speeds{gap:8px}}

.financial-stats,.cost-config-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.financial-stats{grid-template-columns:repeat(4,minmax(0,1fr));padding:18px 0}.financial-stats b{display:block;font-size:19px;margin-top:8px}.cost-group td{background:#f1f5fa;font-weight:600}.financial-totals{max-width:620px;margin:24px 0 0 auto}.boarding-input{margin:18px 0}.boarding-input summary{cursor:pointer;margin-bottom:16px}.timeline .event span{white-space:normal;font-size:12px}@media(max-width:900px){.financial-stats,.cost-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.financial-stats,.cost-config-grid{grid-template-columns:1fr}}

.money-income{color:#087454!important}.money-expense{color:#b42332!important}.money-neutral{color:#64748b!important}
