
:root{font:14px/1.45 Inter,system-ui,-apple-system,sans-serif;color:#e9f0fb;background:#0b1220}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 65% -15%,#1d365b 0,#0b1220 55%);min-height:100vh}.app{max-width:1600px;margin:auto;padding:20px}.header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.brand{font-size:1.4rem;font-weight:750;letter-spacing:-.03em}.brand span{color:#49c5c1}.muted{color:#91a2bb}.layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:16px}.panel{background:linear-gradient(145deg,#131f32,#101a2a);border:1px solid #263852;border-radius:14px;padding:16px;box-shadow:0 14px 35px #0002}.library{height:calc(100vh - 105px);min-height:600px;display:flex;flex-direction:column}.library h2,.panel h2{font-size:.95rem;margin:0 0 12px;letter-spacing:.01em}.tools{display:grid;gap:8px}.input,select{font:inherit;color:#e9f0fb;background:#0d1727;border:1px solid #30435f;border-radius:8px;padding:9px 10px;width:100%}.flight-list{overflow:auto;margin-top:10px}.flight{padding:10px;border-radius:9px;border:1px solid transparent;cursor:pointer;margin-bottom:4px}.flight:hover{background:#192942}.flight.active{background:#1d3555;border-color:#3973bb}.flight-name{font-weight:650;overflow-wrap:anywhere}.flight-meta{font-size:.78rem;color:#91a2bb;margin-top:2px}.content{min-width:0;display:grid;gap:14px}.title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}.flight-title{font-size:1.35rem;font-weight:720;letter-spacing:-.025em}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:9px}.metric{padding:12px;background:#0d1828;border:1px solid #263852;border-radius:10px}.metric label{display:block;color:#9bacbf;font-size:.76rem}.metric strong{display:block;font-size:1.15rem;margin-top:5px;font-variant-numeric:tabular-nums}.metric small{color:#91a2bb}.chart-wrap{height:330px;position:relative}.chart-wrap canvas{width:100%;height:100%;display:block}.legend{display:flex;flex-wrap:wrap;gap:16px;color:#9bacbf;font-size:.78rem}.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.visual-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:14px}.visual-grid .panel{min-width:0}.map{height:310px;border-radius:10px;overflow:hidden;background:#0a1422}.profile-table{width:100%;border-collapse:collapse}.profile-table td,.profile-table th{padding:8px;border-bottom:1px solid #263852;text-align:left}.profile-table td:last-child,.profile-table th:last-child{text-align:right}.badge{display:inline-block;background:#153a48;color:#7fe0d0;padding:3px 8px;border-radius:999px;font-size:.75rem}.notice{font-size:.78rem;color:#91a2bb}.compare-select{max-width:240px}.empty{padding:26px;text-align:center;color:#91a2bb}.leaflet-container{background:#101b2b}
@media(max-width:980px){.layout{grid-template-columns:1fr}.library{height:auto;min-height:0}.flight-list{max-height:250px}.visual-grid{grid-template-columns:1fr}}@media(max-width:560px){.app{padding:12px}.chart-wrap{height:260px}.header{align-items:flex-start}}
.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.plot{background:#0b1626;border:1px solid #253752;border-radius:10px;padding:10px;min-width:0}.plot label{display:block;color:#a9bad0;font-size:.77rem;margin-bottom:5px}.plot canvas{width:100%;height:170px;display:block}.distance-axis{display:flex;justify-content:space-between;color:#8fa2bd;font-size:.75rem;padding:7px 4px}.top-view{display:grid;place-items:center;background:#0b1626;min-height:310px}.top-view svg{width:100%;height:100%;min-height:280px}.top-view-empty{padding:24px;color:#62728a;text-align:center;font-size:.9rem}.crosshair{stroke:#dbe9ff;stroke-dasharray:4 4;stroke-width:1;opacity:.85}
.viewer-plot{height:450px;background:#091421;border:1px solid #24364e;border-radius:10px;overflow:hidden}.viewer-plot canvas{display:block;width:100%;height:100%}.legend{display:flex;flex-wrap:wrap;gap:14px;margin:8px 0;color:#9bacbf;font-size:.76rem}.legend span:before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;background:#55a8ff}.legend span:nth-child(1):before{background:#a8463b}.legend span:nth-child(2):before{background:#1e9ca1}.legend span:nth-child(3):before{background:#e1595f}.legend span:nth-child(4):before{background:#49b675}.legend span:nth-child(5):before{background:#d4deed}
/* Light, high-contrast workspace */
:root{color:#1b2c45;background:#eef3f9}body{background:linear-gradient(145deg,#edf4fc 0%,#f7f9fc 52%,#e9f0f8 100%);color:#1b2c45}.panel{background:linear-gradient(145deg,#fff,#f9fbfe);border-color:#d5e0ee;box-shadow:0 8px 22px #264a7512}.muted,.flight-meta,.notice,.legend,.metric label,.metric small{color:#62728a}.input,select{color:#20334e;background:#fff;border-color:#c7d4e4}.flight:hover{background:#edf4fc}.flight.active{background:#e5f0ff;border-color:#82aee8}.metric{background:#f2f7fd;border-color:#d5e2f1}.profile-table td,.profile-table th{border-color:#e1e8f1}.profile-table th{color:#52647e}.map{background:#eaf0f6}.top-view{background:#f3f7fc}.badge{background:#e4f5f2;color:#17796f}.empty{color:#667790}.library{background:#fff}
.averages{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:-2px 0 16px}.average-card{padding:14px 16px;border-radius:12px;background:linear-gradient(135deg,#fff,#f4f8fd);border:1px solid #d5e1ef;border-left:4px solid #3c7ee8;box-shadow:0 5px 16px #264a750e}.average-card:nth-child(2){border-left-color:#15a59b}.average-card:nth-child(3){border-left-color:#8b5ed7}.average-card:nth-child(4){border-left-color:#e99a2e}.average-label{font-size:.78rem;color:#63738a}.average-value{font-size:1.3rem;font-weight:750;color:#1b2c45;margin-top:4px}.average-note{font-size:.72rem;color:#7a899d;margin-top:3px}.viewer-plot{background:#f8fbff;border-color:#d6e1ee}.plot{background:#f7fafe;border-color:#d6e1ee}.crosshair{stroke:#637b98}.legend span:before{box-shadow:0 0 0 2px #fff}
@media(max-width:980px){.averages{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.averages{grid-template-columns:1fr}}
.overview-legend{gap:8px;margin:8px 0 14px}.plot-toggle{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid #cbd8e7;border-radius:999px;background:#fff;color:#344963;font:inherit;font-size:.76rem;cursor:pointer;transition:background .15s,border-color .15s,opacity .15s}.plot-toggle:hover{background:#edf4fc;border-color:#8aa9cf}.plot-toggle:focus-visible{outline:2px solid #3c7ee8;outline-offset:2px}.plot-toggle i{display:inline-block;width:9px;height:9px;border-radius:50%;background:#64748b}.plot-toggle[data-series="0"] i{background:#a8463b}.plot-toggle[data-series="1"] i{background:#1e9ca1}.plot-toggle[data-series="2"] i{background:#e1595f}.plot-toggle[data-series="3"] i{background:#49b675}.plot-toggle[data-series="4"] i{background:#647b99}.plot-toggle:not(.is-visible){opacity:.52;background:#f0f3f7;color:#78869a}.plot-toggle:not(.is-visible) i{background:#aeb9c8}.plot-toggle:not(.is-visible)::after{content:"hidden";font-size:.67rem;color:#78869a}
.metric-action{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:transform .12s,border-color .12s,box-shadow .12s}.metric-action:hover{transform:translateY(-1px);border-color:#7ea9e5;box-shadow:0 5px 14px #264a7518}.metric-action:focus-visible{outline:2px solid #3c7ee8;outline-offset:2px}.metric-action.is-active{border-color:var(--marker-color,#2878d0);box-shadow:inset 0 0 0 1px var(--marker-color,#2878d0)}.metric-action[data-marker="exit-line"]{--marker-color:#2878d0}.metric-action[data-marker="inflation-one"]{--marker-color:#a34fd1}.metric-action[data-marker="exit-one"]{--marker-color:#e18132}
.header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.route-link{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid #9bbce8;border-radius:9px;background:#edf5ff;color:#1c5aa6;text-decoration:none;font-weight:650;font-size:.84rem}.route-link:hover{background:#dfedff;border-color:#6c9ce0}.route-link:focus-visible{outline:2px solid #3c7ee8;outline-offset:2px}
.viewer-plot canvas{cursor:crosshair;touch-action:pan-y}.viewer-plot canvas:focus-visible{outline:3px solid #3c7ee8;outline-offset:-3px}.overview-readout{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;min-height:42px;margin:10px 0 0;padding:9px 12px;border:1px solid #d6e1ee;border-radius:9px;background:#f3f7fc;color:#344963;font-size:.82rem;font-variant-numeric:tabular-nums}.overview-readout strong{color:#1b2c45}.overview-readout .readout-muted{color:#718198}
