:root{--banner-gap:2px;--banner-padding:12px 14px;color-scheme:light dark;--bg:light-dark(#edf1f6,#08111c);--shell:light-dark(#f7f9fc,#101824);--card:light-dark(#fff,#172231);--line:light-dark(#dbe2ec,#2e3b4d);--text:light-dark(#071536,#eef4ff);--muted:light-dark(#68758d,#aab6cb);--soft:light-dark(#eef3f9,#202d3d);--blue:#0877ed;--blue-soft:light-dark(#eaf4ff,#142e4b);--green:light-dark(#167344,#78dca6);--amber:light-dark(#955900,#ffc369);--red:#d33b3b}
*{box-sizing:border-box}html{width:100%;max-width:100%;overflow-x:clip;overscroll-behavior-x:none;font-size:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg);scroll-behavior:smooth}body{width:100%;max-width:100%;overflow-x:clip;overscroll-behavior-x:none;margin:0;padding:env(safe-area-inset-top) 12px calc(18px + env(safe-area-inset-bottom));background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}button,input,select,textarea{font:inherit}.app{width:100%;max-width:760px;min-width:0;margin:auto;overflow:visible}.shell{width:100%;max-width:100%;min-width:0;background:var(--shell);padding:0 10px 10px;border-radius:22px;min-height:calc(100vh - 24px);overflow:visible}
.pull-refresh{position:fixed;z-index:1000;top:50%;left:50%;display:flex;align-items:center;justify-content:center;width:230px;min-height:230px;padding:0;border:0;background:transparent;box-shadow:none;overflow:visible;opacity:0;transform:translate(-50%,-50%) scale(.82);transition:transform .18s ease,opacity .18s ease;pointer-events:none}.pull-refresh-plane-wrap{position:absolute;z-index:1;inset:0;transition:transform .16s ease}.pull-refresh-plane{position:absolute;top:calc(50% + 25px);left:50%;display:block;width:230px;max-width:none;transform:translate(-50%,-50%) rotate(-90deg);transform-origin:center;filter:drop-shadow(0 5px 7px #0005)}.pull-refresh.ready .pull-refresh-plane-wrap{transform:translateY(-7px)}.pull-refresh.refreshing{min-height:230px}.pull-refresh.refreshing .pull-refresh-plane-wrap{animation:plane-climb .7s ease-in-out infinite alternate}@keyframes plane-climb{to{transform:translateY(-12px)}}
.topbar{isolation:isolate;position:-webkit-sticky;position:sticky;z-index:50;top:env(safe-area-inset-top);display:flex;align-items:center;justify-content:flex-start;gap:10px;margin:0 -2px;padding:4px 4px 3px;border-radius:0;background:var(--shell);box-shadow:0 5px 14px #07153612}.brand{flex:0 0 auto;color:var(--text);font-size:1.944rem;font-weight:700;text-align:left;letter-spacing:-.02em;text-decoration:none}.top-links{display:flex;align-items:center;gap:8px;min-width:0;margin-left:auto}.top-action{display:flex;align-items:center;min-height:44px;padding:8px 3px;border:0;background:transparent;color:var(--blue);font:inherit;line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer}.top-action+.top-action{border-left:1px solid var(--line);padding-left:11px}.menu-btn{display:grid;align-content:center;gap:5px;flex:0 0 44px;width:44px;height:44px;padding:10px;border:0;border-radius:11px;background:transparent;cursor:pointer}.menu-btn span{display:block;width:24px;height:2.5px;border-radius:2px;background:var(--text)}.menu-backdrop{position:fixed;z-index:80;inset:0;background:#02081799;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}.menu-backdrop.open{opacity:1;visibility:visible}.side-menu{position:fixed;z-index:90;top:0;bottom:0;left:0;width:min(82vw,340px);padding:calc(env(safe-area-inset-top) + 14px) 14px calc(env(safe-area-inset-bottom) + 18px);background:var(--card);box-shadow:12px 0 40px #0005;transform:translateX(-105%);visibility:hidden;transition:transform .22s ease,visibility .22s ease;overflow-y:auto}.side-menu.open{transform:translateX(0);visibility:visible}.side-menu-head{display:grid;grid-template-columns:var(--close-size) minmax(0,1fr) var(--close-size);align-items:center;padding:0 6px 12px;border-bottom:1px solid var(--line);font-size:1.25rem}.side-menu-brand{display:flex;grid-column:2;align-items:center;justify-self:center;gap:8px;min-width:0}.side-menu-plane{display:block;width:76px;height:38px;object-fit:contain}.side-menu-close{grid-column:1;grid-row:1;justify-self:start}.side-menu-title{padding:18px 9px 7px;color:var(--muted);font-size:.74rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.side-menu-home-title{display:block;width:100%;border:0;background:transparent;text-align:left;cursor:pointer}.side-menu-item{display:flex;width:100%;align-items:center;min-height:52px;padding:12px 9px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);font:inherit;text-align:left;text-decoration:none;cursor:pointer}.side-menu-item:active{background:var(--blue-soft);color:var(--blue)}body.menu-open{overflow:hidden}.file-input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.shell>section.card:first-of-type{margin-top:6px}
.topbar::before{content:"";position:absolute;left:-100vw;right:-100vw;bottom:100%;height:100vh;background:var(--bg);pointer-events:none}
.privacy{display:flex;align-items:center;gap:7px;margin:0 4px 10px;color:var(--muted);font-size:.78rem}.brief-privacy{justify-content:center;margin:10px 4px 0}.privacy-dot{width:7px;height:7px;border-radius:50%;background:var(--green)}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px;margin-top:12px;box-shadow:0 1px 2px light-dark(#0715360a,#0003)}
.flight-meta{display:grid;grid-template-columns:auto auto auto 1fr;align-items:center;gap:10px;color:light-dark(#205999,#7db7ff);font-weight:650;letter-spacing:.025em;margin-bottom:12px;white-space:nowrap}.flight-date-short{color:var(--text);letter-spacing:.02em}.route{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;gap:12px}.route-origin{justify-self:start;text-align:left}.route-destination{justify-self:end;text-align:right}.route-center{justify-self:center;text-align:center;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.route-center *{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.code{font-size:1.75rem;font-weight:650;letter-spacing:-.03em}.label,.note{color:var(--muted)}.plane{display:grid;place-items:center;padding-top:2px}.plane img{display:block;width:41px;height:41px;object-fit:contain;-webkit-user-drag:none}.route-plan-stack{display:grid;gap:8px;margin-top:6px;color:var(--text);font-size:1.08rem;font-weight:750;line-height:1.25;white-space:nowrap;font-variant-numeric:tabular-nums}.airport-time-block{margin-top:4px}.airport-time-block>.label{color:var(--text);font-size:1.08rem;font-weight:700}.actual-time-label{margin-top:9px;color:var(--text);font-size:.936rem;font-weight:750;letter-spacing:.05em}.route-destination .top-clock{margin-left:auto}.airpl{background:var(--soft);padding:7px 11px;border-radius:10px;font:inherit;font-size:0.9rem;color:inherit;transition:color .18s ease,background .18s ease}.airpl.accepted{color:var(--green);background:light-dark(#e8f7ef,#15372a)}.check-inline{display:flex;align-items:center;justify-self:end;gap:6px;color:var(--muted);font-size:.82rem;font-weight:500;letter-spacing:0;cursor:pointer}.check-inline input,.check-row input{width:21px;height:21px;margin:0;accent-color:var(--blue)}
.grid{display:grid;gap:0;margin-top:14px}.summary{grid-template-columns:repeat(3,1fr);align-items:start}.summary .cell:nth-child(2){border-left:0;text-align:center}.summary .cell:last-child{border-left:0;text-align:right}.five{grid-template-columns:repeat(5,1fr)}.four{grid-template-columns:repeat(4,1fr)}.three{grid-template-columns:repeat(3,1fr)}.cell{padding:4px 10px;border-left:1px solid var(--line);min-width:0}.cell:first-child{border-left:0;padding-left:0}.label{font-size:.78rem;line-height:1.15}.value{font-weight:650;margin-top:4px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.note{font-size:.75rem;margin-top:2px}.status-good{color:var(--green)}
.hazard-btn{width:100%;margin-top:14px;border:0;border-radius:12px;padding:13px;text-align:left;background:var(--blue-soft);color:light-dark(#075fc7,#8bc1ff);cursor:pointer;min-height:46px}.hazard-btn.amber{background:light-dark(#fff4df,#3a2c16);color:var(--amber)}.list{list-style:none;padding:0;margin:8px 0 0}.list li{display:grid;grid-template-columns:108px 1fr;gap:12px;padding:11px 0;border-top:1px solid var(--line)}.list li:first-child{border-top:0}.list strong{font-weight:650}.list span{line-height:1.35}.hidden{display:none!important}
.hazard-btn.flight-details-trigger{border-radius:0;padding:10px 0;background:transparent;color:var(--blue);min-height:42px}
.tabs{position:-webkit-sticky;position:sticky;z-index:45;top:calc(env(safe-area-inset-top) + var(--topbar-height,60px) - 1px);display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:0 -2px;padding:7px 2px 6px;border-top:1px solid var(--line);border-radius:0 0 14px 14px;background:var(--shell);box-shadow:0 5px 14px #07153612}.tab{display:flex;align-items:center;justify-content:center;border-color:transparent;border-radius:0;font-weight:650}.tab:first-child{border-radius:14px 0 0 14px}.tab:last-child{border-radius:0 14px 14px 0}.tab.active{background:#087fad;color:#fff}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-head h2,.card h2{margin:0;font-size:1.08rem;font-weight:650}.runway-chip{display:inline-block;margin-left:6px;padding:3px 7px;border-radius:8px;background:var(--soft);color:var(--blue);font-size:1rem;vertical-align:2px}.link-btn{border:0;background:transparent;color:var(--blue);padding:8px;cursor:pointer;min-height:40px}.divider{border:0;border-top:1px solid var(--line);margin:13px 0}.departure-columns{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:14px}.departure-column{display:grid;align-content:start;gap:14px;padding:3px 16px}.departure-column:first-child{padding-left:0;border-right:1px solid var(--line)}.departure-field{min-width:0}.performance-row{margin-top:12px}.performance-speed-row{display:grid;grid-template-columns:1fr 3fr;margin-top:12px}.flaps-cell{padding-left:0;border-left:0}.speeds-group{border-left:1px solid var(--line);padding-left:12px}.speeds-label{margin-bottom:5px}.speed-values{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.speed-values>div{display:flex;align-items:baseline;gap:6px}.speed-values .value{margin-top:0}
.edit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin-top:14px}.edit-grid label{display:block;color:var(--muted);font-size:.82rem}.control{width:100%;min-height:44px;margin-top:5px;border:1px solid var(--line);border-radius:10px;padding:9px 11px;background:light-dark(#fff,#101a28);color:var(--text)}input.control,select.control,textarea.control{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:800;-webkit-text-fill-color:var(--text);opacity:1}.runway-inline{width:100%;max-width:132px;min-height:44px;margin-top:5px;border:1px solid var(--line);border-radius:10px;padding:8px 34px 8px 11px;background:light-dark(#fff,#101a28);color:var(--text);font-weight:800;-webkit-text-fill-color:var(--text)}textarea.control{min-height:86px;resize:vertical}.btn{font:inherit;text-align:center;text-decoration:none;border:1px solid var(--line);border-radius:11px;padding:11px 14px;background:var(--soft);color:var(--text);cursor:pointer;min-height:var(--button-min-height)}.btn.primary{border-color:transparent;background:var(--button-primary-bg);color:var(--button-primary-text);font-weight:650;box-shadow:var(--button-primary-shadow)}.btn.danger{color:var(--red)}.btn.block{display:block;width:100%;margin-top:14px}.open-flight-plan{background:#fff;color:#071536;border-color:var(--line);font-weight:700;text-align:center;text-decoration:none}.edit-grid .span2{grid-column:1/-1}.editor-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;grid-column:1/-1}.editor-actions>.btn{width:100%}.checks{display:grid;gap:10px;margin-top:12px}.check-row{display:flex!important;align-items:center;gap:10px;min-height:44px;cursor:pointer}.message-link{border:0;background:transparent;color:inherit;padding:2px 1px;font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.edit-grid:not(.hidden){padding-top:14px;border-top:1px solid var(--line)}
dialog{width:min(680px,calc(100vw - 24px));max-height:calc(100vh - 34px);border:1px solid var(--line);border-radius:20px;padding:0;background:var(--card);color:var(--text);box-shadow:0 24px 90px #0008}dialog::backdrop{background:#020817aa;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--line)}.dialog-head h2{font-size:1.05rem;margin:0}.dialog-body{padding:16px;overflow:auto}.close{display:inline-grid;place-items:center;flex:0 0 var(--close-size);border:0;padding:0 0 4px;background:var(--soft);color:var(--text);width:var(--close-size);height:var(--close-size);border-radius:50%;font-size:var(--close-font-size);line-height:1;cursor:pointer}.drop{border:1.5px dashed light-dark(#9fb4ca,#47627a);border-radius:15px;padding:24px 16px;text-align:center;background:light-dark(#f6f9fd,#0f1c2a)}.drop p{color:var(--muted);font-size:.88rem;margin:10px 0 0}.progress{height:5px;background:var(--soft);border-radius:99px;overflow:hidden;margin-top:14px}.progress span{display:block;width:0;height:100%;background:var(--blue);transition:width .25s}.redactions{display:grid;gap:8px;margin:14px 0}.redaction{display:flex;justify-content:space-between;gap:12px;padding:10px 11px;background:var(--soft);border-radius:10px}.redaction strong{color:var(--amber)}.saved-list{display:grid;gap:9px}.saved-flight{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px}.saved-flight button{margin-left:7px}.saved-flight p{margin:3px 0 0;color:var(--muted);font-size:.8rem}.deleted-flight-actions{display:grid;gap:8px}.deleted-flight-actions button{margin:0}.empty{text-align:center;color:var(--muted);padding:24px 10px}
.brand{font-size:2.3328rem}.control{text-transform:uppercase}.flight-meta #flightHeading{font-size:1.2em}.flight-details h3{margin:16px 0 4px;color:var(--muted);font-size:.78rem;font-weight:650;text-transform:uppercase;letter-spacing:.04em}.flight-details h3:first-child{margin-top:14px}.flight-route{margin:8px 0 2px;padding:11px 0 2px;border-top:1px solid var(--line);font-weight:650;line-height:1.45;overflow-wrap:anywhere}.flight-details-close{display:block;width:100%;margin:18px 0 2px;padding:14px;border:0;border-top:1px solid var(--line);background:transparent;color:light-dark(#075fc7,#8bc1ff);font:inherit;text-align:left;cursor:pointer}.section-actions{display:flex;align-items:center;gap:2px}.icon-btn{display:grid;place-items:center;width:40px;height:40px;border:0;background:transparent;color:var(--blue);font-size:1.25rem;cursor:pointer}.card:focus{outline:2px solid var(--blue);outline-offset:3px}.install{display:none}.footer{padding:18px 8px 8px;color:var(--muted);font-size:.75rem;line-height:1.4;text-align:center}
@media(max-width:560px){body{padding-left:6px;padding-right:6px}.shell{padding:7px;border-radius:16px}.card{padding:13px}.topbar{gap:5px}.brand{font-size:1.44rem}.top-action{padding-left:3px;padding-right:3px}.flight-meta{gap:7px;font-size:.9rem}.flight-date-short{font-size:.86rem}.airpl{padding:6px 9px}.check-inline{font-size:.77rem;gap:4px}.summary{grid-template-columns:repeat(3,1fr);row-gap:13px}.summary .cell:nth-child(3){border-left:0;padding-left:10px}.performance-row{grid-template-columns:repeat(3,minmax(0,1fr))}.performance-row .cell:nth-child(3){border-left:1px solid var(--line);padding-left:10px}.five{grid-template-columns:repeat(2,1fr);row-gap:13px}.four{grid-template-columns:repeat(2,1fr);row-gap:13px}.cell:nth-child(odd){border-left:0;padding-left:0}.list li{grid-template-columns:88px 1fr}.edit-grid{grid-template-columns:1fr}.edit-grid .span2{grid-column:auto}.code{font-size:1.5rem}.saved-flight{grid-template-columns:1fr}.saved-flight button{margin:6px 6px 0 0}}
@media(max-width:560px){.brand{font-size:2.0736rem}.top-links{gap:6px}.top-action{padding-left:1px;padding-right:1px}.top-action+.top-action{padding-left:8px}}
.card[id]{scroll-margin-top:110px}@media(max-width:560px){.topbar{gap:4px}.brand{font-size:2.05rem}.top-links{gap:3px}.top-action{font-size:.94rem;padding-left:0;padding-right:0}.top-action+.top-action{padding-left:5px}}
.performance-edit-fuels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.runway-chip.closed{background:light-dark(#ffe5e5,#4a1f25);color:var(--red);box-shadow:inset 0 0 0 1px var(--red)}.runway-inline.closed,.control.closed{border-color:var(--red);background:light-dark(#fff0f0,#351a20);box-shadow:0 0 0 1px var(--red)}
.performance-notice{white-space:pre-line}
.time-inline{width:100%;max-width:160px;min-height:44px;margin-top:5px;border:1px solid var(--line);border-radius:10px;padding:8px 11px;background:light-dark(#fff,#101a28);color:var(--text);font:inherit;font-weight:800;color-scheme:light dark}
.runway-chip.unknown{background:light-dark(#fff4df,#3a2c16);color:var(--amber);box-shadow:inset 0 0 0 1px var(--amber)}.runway-inline.unknown,.control.unknown{border-color:var(--amber);background:light-dark(#fff8e8,#332919);box-shadow:0 0 0 1px var(--amber)}
.airport-fob{margin-top:6px;color:var(--text);font-size:1.08rem;font-weight:700;font-variant-numeric:tabular-nums}
@media(display-mode:standalone){.install{display:none!important}}
.brand{display:flex;align-items:center;gap:6px}.brand-icon{width:40px;height:40px;flex:0 0 40px;border:1px solid var(--line);border-radius:50%;object-fit:cover}@media(max-width:560px){.brand{gap:4px}.brand-icon{width:38px;height:38px;flex-basis:38px}}
@media(orientation:landscape) and (min-width:700px){body{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.app{max-width:none;width:100%;margin:0}.shell{width:100%}.performance-row{grid-template-columns:repeat(3,minmax(0,1fr))}.performance-row .cell:nth-child(3){border-left:1px solid var(--line);padding-left:10px}}
.side-menu>.side-menu-item,.side-menu-section-item{padding-left:22px}
.top-action+.top-action{position:relative;border-left:0}.top-action+.top-action::before{content:"";position:absolute;left:0;top:50%;width:1px;height:22px;background:var(--line);transform:translateY(-50%)}
.landing-columns{margin-bottom:2px}.calculated-value{display:flex;align-items:center;background:var(--soft);font-weight:800}.switch-control{display:inline-flex;align-items:center;gap:9px;width:max-content;margin-top:8px;cursor:pointer}.switch-control input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.switch-track,.tracking-switch::before{position:relative;width:50px;height:28px;border:1px solid var(--line);border-radius:999px;background:var(--muted);transition:background .15s ease}.switch-track::after,.tracking-switch::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0005;transition:transform .15s ease}.switch-control input:checked+.switch-track,.tracking-switch[aria-checked=true]::before{border-color:var(--blue);background:var(--blue)}.switch-control input:checked+.switch-track::after,.tracking-switch[aria-checked=true]::after{transform:translateX(22px)}.switch-control input:focus-visible+.switch-track,.tracking-switch:focus-visible::before{outline:2px solid var(--blue);outline-offset:3px}.switch-state{min-width:2rem;color:var(--text);font-size:.9rem;font-weight:700}
.card.editing{outline:2px solid var(--blue);outline-offset:3px}
.card-input{display:block;width:100%;min-width:0;min-height:38px;margin-top:3px;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:4px 2px;background:transparent;color:var(--text);font-weight:750;text-transform:uppercase;-webkit-text-fill-color:var(--text)}.card-input:hover{border-bottom-color:var(--muted);background:transparent}.card-input:focus{outline:0;border-bottom:2px solid var(--blue);background:transparent}.input-with-suffix{display:flex;align-items:center;gap:5px}.input-with-suffix .card-input{flex:1}.input-with-suffix>span{flex:0 0 auto;color:var(--text)}.split-card-inputs{display:flex;align-items:center;gap:8px}.split-card-inputs .card-input{flex:1}.split-card-inputs .card-input.narrow{max-width:2.6rem}.runway-chip.card-input{display:inline-block;width:4.4rem;min-height:34px;margin:0 0 0 6px;padding:2px;vertical-align:1px}.speed-values .card-input{margin:0;padding:3px 2px}.departure-field>.card-input{font-size:1.12rem}.cell>.card-input,.cell .card-input{font-size:1rem}
#topFlightCard{margin-bottom:7px;padding-bottom:max(0px,calc(var(--design-card-padding,16px) - 10px))}
.top-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}.top-card-footer .flight-details-trigger{flex:0 1 auto;width:auto;margin-top:0}.pilot-notes-trigger{flex:0 0 auto;min-height:42px;border:0;padding:10px 0;background:transparent;color:var(--blue);font:inherit;font-weight:650;cursor:pointer}.pilot-notes-trigger:focus-visible{border-radius:4px;outline:2px solid var(--blue);outline-offset:2px}.top-departure-timer{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;white-space:nowrap}.top-departure-timer .t-counter{margin-left:0}
.side-menu-link-mark{margin-left:auto;color:var(--blue);font-size:.9rem}.work-apps-group{margin-top:18px;padding-top:2px;border-top:1px solid var(--line)}.work-apps-title{display:flex;align-items:center;justify-content:space-between}.work-apps-title span{font-size:.66rem;font-weight:600;letter-spacing:0;text-transform:none}.work-app-item{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:stretch;border-bottom:1px solid var(--line);transition:opacity .14s ease,background .14s ease}.work-app-item .side-menu-item{border-bottom:0;padding-left:5px}.work-app-drag{display:grid;place-items:center;width:40px;border:0;background:transparent;color:var(--muted);font-size:1.35rem;cursor:grab;touch-action:none}.work-app-drag:active{cursor:grabbing}.work-app-item.dragging{z-index:2;border-radius:10px;background:var(--blue-soft);opacity:.72}
.airpl{text-decoration:none}.airpl:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.flight-meta{position:relative;grid-template-columns:auto auto 1fr}.flight-meta .airpl{position:absolute;left:50%;transform:translateX(-50%)}.flight-meta .check-inline{justify-self:end}.setup-title-actions{display:flex;align-items:center;gap:8px}.custom-checklist-add{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:12px}.custom-checks{margin-top:8px}.custom-check-remove{border:0;background:transparent;color:var(--muted);font-size:1.2rem;cursor:pointer}
.control.preserve-case{text-transform:none}
.route-center{width:160px;max-width:160px}.route-comparison-head,.route-plan-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;justify-content:center;column-gap:0}.route-comparison-head{margin-top:5px;color:var(--muted);font-size:.64rem;font-weight:750;letter-spacing:.05em}.route-comparison-head span:first-child{text-align:right;padding-right:8px}.route-comparison-head span:last-child{text-align:left;padding-left:8px;border-left:1px solid var(--line)}.route-plan-stack{gap:5px;margin-top:3px}.route-plan-item{padding:2px 0}.route-estimate{text-align:right;padding-right:8px}.route-actual-value{text-align:left;padding-left:8px;border-left:1px solid var(--line)}.route-burn-label{grid-column:1/-1;text-align:center;font-size:.68em;font-weight:750;letter-spacing:.04em}.route-actual-value{font:inherit;font-variant-numeric:inherit}.route-center.actuals-hidden{width:66px;max-width:66px}.route-center.actuals-hidden .route-comparison-head,.route-center.actuals-hidden .route-plan-item{grid-template-columns:62px}.route-center.actuals-hidden .route-comparison-head span:last-child,.route-center.actuals-hidden .route-actual-value{display:none}
@media(max-width:560px){.route{gap:5px}.route-center{width:148px;max-width:148px}.route-comparison-head,.route-plan-item{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:0}.route-plan-stack{font-size:.9rem}.route-center.actuals-hidden{width:62px;max-width:62px}.route-center.actuals-hidden .route-comparison-head,.route-center.actuals-hidden .route-plan-item{grid-template-columns:58px}}
.t-counter{display:inline-flex;align-items:center;min-height:30px;margin-left:7px;padding:3px 8px;border:1px solid light-dark(#9ac7f5,#315b88);border-radius:9px;background:var(--blue-soft);color:var(--blue);font-size:.88rem;font-weight:800;letter-spacing:.02em;font-variant-numeric:tabular-nums;vertical-align:1px}.t-counter.near{border-color:light-dark(#e3af55,#8a632a);background:light-dark(#fff4df,#3a2c16);color:var(--amber)}.t-counter.overdue{border-color:color-mix(in srgb,var(--red) 55%,var(--line));background:color-mix(in srgb,var(--red) 14%,var(--card));color:var(--red)}
.t-counter{--ticker-strip:#2eae78;gap:8px;border-color:light-dark(#889aad,#74899f);background:linear-gradient(160deg,light-dark(#f3f6f9,#52677c),light-dark(#bbc9d4,#25394e) 58%,light-dark(#e1e8ee,#40566c));color:light-dark(#122a43,#f2f7fd);box-shadow:inset 0 1px light-dark(#ffffffbb,#ffffff25),0 2px 5px #07153618}.t-counter::before{content:"";flex:none;width:4px;height:20px;border-radius:4px;background:var(--ticker-strip);box-shadow:0 0 5px var(--ticker-strip)}.t-counter.near{--ticker-strip:#e5a72c}.t-counter.critical{--ticker-strip:#e0524b}.t-counter.overdue{--ticker-strip:#3d9bec}.t-counter.near,.t-counter.critical,.t-counter.overdue{border-color:light-dark(#889aad,#74899f);background:linear-gradient(160deg,light-dark(#f3f6f9,#52677c),light-dark(#bbc9d4,#25394e) 58%,light-dark(#e1e8ee,#40566c));color:light-dark(#122a43,#f2f7fd)}
.top-phase-timer .t-counter{height:2rem;min-height:0;padding-top:0;padding-bottom:0;border-radius:0;vertical-align:middle}.top-phase-timer .t-counter::before{height:70%;border-radius:0}
@media(max-width:560px){.top-phase-timer .t-counter{height:1.8rem}}
.card-select{appearance:auto;padding-right:28px}
.arrival-tracking{display:inline-block;margin-left:6px;color:var(--muted);font-size:.76rem;font-weight:700;white-space:nowrap}.arrival-tracking.early{color:var(--green)}.arrival-tracking.late{color:var(--amber)}
.counter-stop{min-height:30px;margin-left:4px;border:0;border-radius:8px;padding:3px 7px;background:var(--soft);color:var(--muted);font-size:.72rem;font-weight:700;vertical-align:1px;cursor:pointer}.counter-stop:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.side-menu{overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}
.alternate-plan-list{display:grid;gap:10px;margin-top:13px}.alternate-plan{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.alternate-plan-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.alternate-airport{font-size:1.18rem;font-weight:800}.alternate-fuel{font-weight:800;color:var(--blue)}.alternate-meta{margin-top:5px;color:var(--muted);font-size:.8rem;font-weight:650}.alternate-route{margin-top:8px;line-height:1.4;overflow-wrap:anywhere}.alternate-plan-empty{padding:10px 2px;color:var(--muted);font-size:.86rem}
.alternate-route-details h3{margin-top:14px}.flight-detail-alternate{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;padding:10px 0;border-top:1px solid var(--line)}.flight-detail-alternate strong{color:var(--blue)}.flight-detail-alternate span{line-height:1.4;overflow-wrap:anywhere}
.pilot-scratchpad{margin-top:14px;padding-top:13px;border-top:1px solid var(--line)}.pilot-scratchpad summary{min-height:44px;color:var(--blue);font-size:1rem;font-weight:700;line-height:44px;cursor:pointer}.pilot-scratchpad textarea{display:block;width:100%;min-height:224px;margin-top:8px;border:1px solid var(--line);border-radius:11px;padding:12px;background:light-dark(#fff,#101a28);color:var(--text);font:inherit;font-size:1rem;line-height:1.4;resize:vertical;text-transform:uppercase}.pilot-scratchpad textarea:focus{border-color:var(--blue);outline:2px solid color-mix(in srgb,var(--blue) 24%,transparent);outline-offset:1px}.scratchpad-count{margin-top:6px;color:var(--muted);font-size:.78rem;text-align:right;font-variant-numeric:tabular-nums}
.pilot-notes-dialog .dialog-head{flex:0 0 auto}.pilot-notes-body{display:flex;flex-direction:column;min-height:0;overflow:auto;overscroll-behavior:contain}.pilot-notes-body textarea{display:block;width:100%;min-height:180px;flex:1 1 auto;border:0;border-radius:0;padding:0;background:transparent;color:var(--text);font:inherit;line-height:1.5;resize:none;overflow:auto;text-transform:uppercase}.pilot-notes-body textarea:focus{outline:none}.pilot-notes-body textarea:focus-visible{box-shadow:0 1px 0 var(--blue)}
.pilot-notes-mode{display:flex;gap:4px;align-self:flex-start;margin-bottom:10px;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.pilot-notes-mode button,.pilot-notes-ink-actions button{min-height:38px;border:0;border-radius:7px;padding:6px 14px;background:transparent;color:var(--muted);font:inherit;font-weight:700}.pilot-notes-mode button.active{background:var(--blue);color:#fff}.pilot-notes-ink{display:flex;flex:1 1 auto;min-height:260px;flex-direction:column;gap:7px}.pilot-notes-ink canvas{display:block;width:100%;min-height:220px;flex:1 1 auto;border:1px solid var(--line);border-radius:10px;background:#fff;touch-action:none}.pilot-notes-ink-actions{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:.8rem}.pilot-notes-ink-actions span{margin-right:auto}.pilot-notes-ink-actions button{min-height:34px;padding:4px 9px;color:var(--blue)}
.performance-field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px;touch-action:pan-y}.performance-field{min-width:0;padding:10px;border-top:1px solid var(--line);border-left:1px solid var(--line);transition:background .12s ease,opacity .12s ease,transform .12s ease}.performance-field:nth-child(-n+3){border-top:0}.performance-field:nth-child(3n+1){border-left:0}.performance-field>.label{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:grab}.performance-field.dragging{z-index:2;border-radius:10px;background:var(--blue-soft);opacity:.78;transform:scale(.98)}.performance-field:focus-visible{border-radius:8px;outline:2px solid var(--blue);outline-offset:-2px}
.landing-performance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.landing-performance-grid .performance-field:nth-child(n){border-top:1px solid var(--line);border-left:1px solid var(--line)}.landing-performance-grid .performance-field:nth-child(-n+2){border-top:0}.landing-performance-grid .performance-field:nth-child(2n+1){border-left:0}
@media(prefers-color-scheme:dark){.card-input{border-bottom-color:#52627a;background:transparent;box-shadow:none}.card-input:hover{border-bottom-color:#71819a;background:transparent}.card-input:focus{border-bottom-color:var(--blue);background:transparent;box-shadow:none}}
.summary{grid-template-columns:repeat(2,minmax(0,1fr))}
.top-clock{display:block;width:100%;max-width:7rem;min-width:0;min-height:36px;margin-top:1px;border:0;border-radius:7px;padding:2px 0;background:transparent;color:var(--text);font:inherit;font-size:1.3rem;font-weight:780;font-variant-numeric:tabular-nums;color-scheme:light dark}.route-origin .top-clock{text-align:left}.route-origin .top-clock::-webkit-date-and-time-value{text-align:left}.route-destination .top-clock{text-align:right}.route-destination .top-clock::-webkit-date-and-time-value{text-align:right}.top-clock:focus{outline:2px solid var(--blue);outline-offset:2px}.plan-time-note{margin-top:4px;color:var(--text);font-size:1.056rem;font-weight:700;white-space:nowrap}
.runway-inline,.edit-grid .control{border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;padding-left:2px}.runway-inline:focus,.edit-grid .control:focus{outline:0;border-bottom:2px solid var(--blue);background:transparent}.runway-inline.closed,.runway-inline.unknown,.edit-grid .control.closed,.edit-grid .control.unknown{background:transparent;box-shadow:none}.runway-inline.closed,.edit-grid .control.closed{border-bottom-color:var(--red)}.runway-inline.unknown,.edit-grid .control.unknown{border-bottom-color:var(--amber)}
.runway-inline optgroup{font-weight:900}.runway-inline option{font-weight:500}
.runway-start-field{padding:9px 10px 10px;border:2px solid color-mix(in srgb,var(--blue) 72%,var(--line));border-radius:11px;background:var(--blue-soft)}.runway-start-field .label{color:var(--blue);font-weight:700}.runway-start-select{border-bottom-color:var(--blue);font-weight:800}.runway-start-select:focus{outline:2px solid var(--blue);outline-offset:2px;border-bottom-color:var(--blue)}.runway-start-select.closed{border-bottom-color:var(--red)}
.leave-by-heading{margin-bottom:7px;color:var(--text);font-weight:650}.leave-by-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:14px}.leave-by-label{display:block;color:var(--muted);font-size:.82rem}.head-to-work-time{display:block;width:100%;min-width:0;min-height:46px;margin:5px 0 14px;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:5px 2px;background:transparent;color:var(--text);font-size:1.08rem;font-weight:750;color-scheme:light dark}.head-to-work-list{display:grid}.head-to-work-item{display:grid;grid-template-columns:25px minmax(0,1fr) 38px;align-items:center;gap:9px;min-height:52px;border-bottom:1px solid var(--line)}.head-to-work-check{width:22px;height:22px;margin:0;accent-color:var(--blue)}.head-to-work-text{min-width:0;border:0;background:transparent;color:var(--text);font:inherit;font-weight:600}.head-to-work-item:has(.head-to-work-check:checked) .head-to-work-text{color:var(--muted);text-decoration:line-through}.head-to-work-text:focus{outline:0;border-bottom:2px solid var(--blue)}.head-to-work-remove{width:38px;height:38px;border:0;background:transparent;color:var(--muted);font-size:1.25rem;cursor:pointer}.head-to-work-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:end;margin-top:16px}.head-to-work-add .control{border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;text-transform:none}.local-note{margin:12px 0 0;color:var(--muted);font-size:.75rem;text-align:center}
.route-plan-item{position:relative;border-radius:6px;padding:1px 0;cursor:default;touch-action:pan-y;user-select:none;-webkit-user-select:none}.route-plan-stack.arranging{width:180px;margin-left:50%;padding:5px;border:1px dashed var(--blue);border-radius:10px;background:var(--blue-soft);transform:translateX(-50%)}.route-plan-stack.arranging .route-plan-item{grid-template-columns:72px 72px;padding-left:24px;cursor:grab;touch-action:none}.route-center.actuals-hidden .route-plan-stack.arranging .route-plan-item{grid-template-columns:132px}.route-plan-stack.arranging .route-plan-item::before{content:'≡';position:absolute;left:5px;top:50%;color:var(--blue);font-size:.9rem;font-weight:700;transform:translateY(-50%)}.route-plan-stack.arranging .route-plan-item:active{cursor:grabbing}.route-plan-stack.arranging .route-plan-item.dragging{background:var(--card);color:var(--blue);opacity:.78}.route-plan-item:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.route-plan-done{display:none;margin:7px auto 0;border:0;background:transparent;color:var(--blue);font:inherit;font-size:.86rem;font-weight:650;cursor:pointer}.route-plan-stack.arranging+.route-plan-done{display:block}
.footer-links{display:flex;align-items:center;justify-content:center;gap:22px;padding:4px 0 10px}.footer-links button,.footer-links a{border:0;background:transparent;color:var(--blue);font:inherit;font-size:1rem;text-decoration:none;cursor:pointer}.footer-links button:focus-visible,.footer-links a:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:4px}
.airport-fob,.airport-time-block>.label,.actual-time-label,.plan-time-note,.route-plan-stack{font-weight:400}
.confirmed-in-time{display:flex;align-items:baseline;justify-content:flex-end;gap:4px;margin-top:7px;color:var(--green);font-size:1.056rem;font-weight:400;white-space:nowrap}.route-origin .confirmed-in-time{justify-content:flex-start}.confirmed-in-time strong{font:inherit;font-variant-numeric:tabular-nums}
.actual-time-label{margin-top:16px}.top-clock{margin-top:5px}
.actual-time-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:10px;margin-top:14px}.actual-clock-departure{justify-self:start}.actual-clock-arrival{justify-self:end;text-align:right}.actual-clock .actual-time-label{margin:0 0 5px}.actual-clock-arrival .top-clock{margin-left:auto;text-align:right}.actual-clock-arrival .top-clock::-webkit-date-and-time-value{text-align:right}.clock-mode-block{text-align:center}.clock-mode-label{margin-bottom:5px;color:var(--muted);font-size:.82rem;font-weight:700}.clock-mode{display:flex;justify-content:center}.clock-mode button{min-width:68px;border:1px solid var(--line);padding:6px 12px;background:light-dark(#f7f9fc,#344256);color:var(--muted);font:inherit;font-size:.78rem;font-weight:650;cursor:pointer}.clock-mode button:first-child{border-radius:9px 0 0 9px}.clock-mode button:last-child{margin-left:-1px;border-radius:0 9px 9px 0}.clock-mode button.active{position:relative;border-color:var(--blue);background:light-dark(#d7eaff,#0d5ca8);color:light-dark(#075fc7,#fff)}.top-clock:disabled{opacity:1;-webkit-text-fill-color:var(--text);cursor:default}
@media(prefers-color-scheme:dark){.runway-inline{border-bottom-color:#52627a}}
#helpDialog[open]{position:fixed;display:flex;flex-direction:column;inset:max(12px,env(safe-area-inset-top)) 12px auto;width:min(680px,calc(100vw - 24px));max-height:calc(100dvh - max(24px,env(safe-area-inset-top)) - 12px);margin:0 auto;overflow:hidden}
.tps-workspace{display:grid;gap:16px}.tps-source-pane{position:sticky;z-index:2;top:-16px;padding:12px 0 8px;background:var(--card)}.tps-photo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.tps-zoom-controls{display:flex;align-items:center}.tps-zoom-controls button{min-width:38px;height:34px;border:1px solid var(--line);background:var(--soft);color:var(--text);font:inherit;cursor:pointer}.tps-zoom-controls button+button{margin-left:-1px}.tps-zoom-controls button:first-child{border-radius:8px 0 0 8px}.tps-zoom-controls button:last-child{border-radius:0 8px 8px 0}.tps-zoom-controls #tpsZoomReset{min-width:62px;font-size:.72rem}.tps-photo-viewport{width:100%;height:min(38dvh,330px);overflow:auto;border:1px solid var(--line);border-radius:12px;background:#0a111b;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.tps-preview{display:block;width:100%;max-width:none;height:auto;margin:0;object-fit:contain;transform-origin:top left}.tps-replace-photo{margin:8px 2px 0}.tps-entry-intro{margin:0 0 10px;color:var(--muted);font-size:.82rem;line-height:1.4}.tps-review-legend{display:flex;justify-content:flex-end;gap:14px;margin-bottom:8px;color:var(--muted);font-size:.72rem}.tps-review-legend span{display:flex;align-items:center;gap:5px}.tps-review-legend i{width:10px;height:10px;border-radius:3px}.tps-review-legend .changed{background:var(--blue)}.tps-review-legend .required{background:var(--red)}.tps-required-mark{color:var(--red)}.tps-comparison-head,.tps-comparison-row{display:grid;grid-template-columns:minmax(88px,1.15fr) minmax(64px,.8fr) minmax(105px,1fr);align-items:center;gap:8px}.tps-comparison-head{padding:7px 5px;color:var(--muted);font-size:.7rem;font-weight:650}.tps-comparison-row{min-height:54px;padding:6px 5px;border-top:1px solid var(--line)}.tps-comparison-row>strong{font-size:.78rem;font-weight:600}.tps-current{color:var(--muted);font-variant-numeric:tabular-nums}.tps-new{width:100%;min-width:0;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:7px 2px;background:transparent;color:var(--text);font:inherit;font-weight:650;font-variant-numeric:tabular-nums;text-transform:uppercase}.tps-comparison-row.changed .tps-new{border-bottom:2px solid var(--blue);color:var(--blue)}.tps-comparison-row.required-missing .tps-new{border-bottom:2px solid var(--red)}.tps-new:focus{outline:0;border-bottom-color:var(--blue)}.tps-confirm{margin-top:14px;line-height:1.3}.btn:disabled{cursor:not-allowed;opacity:.45}
.tps-source-actions{display:grid;grid-template-columns:1fr;gap:9px}.tps-source-actions .btn{width:100%}#arrivalFuelCard [data-direct-field="reserveFuel"]{font-size:1.18rem;font-weight:800}
#helpDialog .dialog-head{flex:0 0 auto}
#helpDialog .dialog-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
#helpDialog .help-title{display:flex;align-items:center;gap:8px;min-width:0}.help-pilot-icon{display:block;width:38px;height:38px;object-fit:contain}.help-jet-icon{display:block;width:72px;height:34px;object-fit:contain}
@media(max-width:420px){#helpDialog .help-title{gap:6px}.help-pilot-icon{width:34px;height:34px}.help-jet-icon{width:58px;height:30px}}
#landingPerformanceCard .runway-chip{padding:7px 11px;border-radius:10px;font-size:1rem;vertical-align:0}
@media(max-width:560px){#landingPerformanceCard .runway-chip{padding:6px 9px}}
.topbar,.tabs{-webkit-backface-visibility:hidden;backface-visibility:hidden}
.intersection-info{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}.intersection-info summary{cursor:pointer;color:var(--blue);font-weight:650;list-style-position:inside}.intersection-info>div{display:grid;gap:7px;margin-top:11px}.intersection-entry{display:grid;grid-template-columns:54px minmax(0,1fr);gap:8px;align-items:baseline;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}.intersection-entry strong{font-variant-numeric:tabular-nums}.intersection-entry span{text-transform:none}.intersection-entry em{grid-column:2;color:var(--blue);font-size:.74rem;font-style:normal}.intersection-entry.selected{border-color:light-dark(#78afe7,#315b88);background:var(--blue-soft)}
.performance-filename-label{display:block;color:var(--muted);font-size:.82rem}.performance-filename-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:7px}.performance-filename-row .control{border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding-left:2px;font-size:1rem;text-transform:none}.performance-filename-row .control:focus{outline:0;border-bottom:2px solid var(--blue)}.performance-filename-row span{padding-bottom:10px;color:var(--muted)}
.post-flight-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important}.post-flight-grid .post-flight-time-field{grid-column:span 3}.post-flight-grid .post-flight-data-field{grid-column:span 2}.post-flight-grid .performance-field:nth-child(n){border-top:1px solid var(--line);border-left:1px solid var(--line)}.post-flight-grid .performance-field:nth-child(-n+2){border-top:0}.post-flight-grid .performance-field:nth-child(1),.post-flight-grid .performance-field:nth-child(3){border-left:0}.post-flight-time{text-transform:none}.post-flight-actions{display:grid;gap:3px}.post-flight-actions .btn{margin-top:0;font-size:1rem;font-weight:700}.post-flight-actions{margin-top:3px}#getPerformanceSummary{border-color:var(--green);background:var(--green);color:light-dark(#fff,#071536)}
@media(max-width:460px){.tps-source-actions{grid-template-columns:1fr}}
@media(orientation:landscape) and (min-width:700px){#tpsDialog{width:min(1120px,calc(100vw - 24px))}.tps-workspace{grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);align-items:start}.tps-source-pane{top:0}.tps-photo-viewport{height:calc(100dvh - 170px)}.tps-entry-pane{min-width:0}}
html.plan-arranging,body.plan-arranging,html.performance-arranging,body.performance-arranging{overscroll-behavior-y:none}
#tpsDialog[open]{position:fixed;display:flex;flex-direction:column;inset:max(12px,env(safe-area-inset-top)) 12px auto;width:min(680px,calc(100vw - 24px));max-height:calc(100dvh - max(24px,env(safe-area-inset-top)) - 12px);margin:0 auto;overflow:hidden}
#tpsDialog .dialog-head{flex:0 0 auto}
#tpsDialog .dialog-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
#tpsOcrAcknowledgmentDialog .dialog-body>p:first-child{margin-top:0}
#tpsDialog #tpsDrop>p{font-size:1rem;line-height:1.5}
#tpsDialog .tps-source-pane{position:sticky;z-index:4;top:0;align-self:start;padding:10px 0 8px;background:var(--card);box-shadow:0 8px 12px -12px #0008}
#tpsDialog .tps-photo-viewport{height:min(34dvh,300px);touch-action:pan-x pan-y;overscroll-behavior:contain}

/* AirPal phase-card typography policy. Keep the top flight card independent. */
#departureView,#arrivalView{--phase-title-size:1.08rem;--phase-label-size:max(.82rem,14px);--phase-value-size:1rem;--phase-body-size:1rem;--phase-action-size:1rem}
#departureView .card,#arrivalView .card{font-size:var(--phase-body-size);line-height:1.35}
#departureView .card .section-head h2,#departureView .card>h2,#arrivalView .card .section-head h2,#arrivalView .card>h2{font-size:var(--phase-title-size);font-weight:650;line-height:1.25}
#departureView .card .label,#departureView .card .edit-grid label,#arrivalView .card .label,#arrivalView .card .edit-grid label{font-size:var(--phase-label-size);font-weight:400;line-height:1.2}
#departureView .card .card-input,#departureView .card .runway-inline,#departureView .card .value,#arrivalView .card .card-input,#arrivalView .card .runway-inline,#arrivalView .card .value{font-size:var(--phase-value-size);font-weight:750;line-height:1.25}
#departureView .card .link-btn,#departureView .card .hazard-btn,#departureView .card .check-row,#departureView .card .list,#arrivalView .card .link-btn,#arrivalView .card .hazard-btn,#arrivalView .card .check-row,#arrivalView .card .list{font-size:var(--phase-action-size)}
#departureView .card .runway-chip,#arrivalView .card .runway-chip{font-size:1rem}
.atis-detail-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-top:18px}.atis-detail-heading h3{margin:0}.atis-refresh{min-height:36px;border:0;background:transparent;color:var(--blue);font:inherit;font-size:.82rem;font-weight:700;cursor:pointer}.atis-refresh:disabled{color:var(--muted);cursor:wait}.atis-source-note{margin:7px 0 11px;color:var(--muted);font-size:.76rem;line-height:1.4}.atis-detail-grid{display:grid;gap:10px}.atis-detail-card{min-width:0;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.atis-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.atis-card-head strong{font-size:.92rem}.atis-code{display:inline-flex;align-items:center;min-height:28px;padding:3px 9px;border-radius:8px;background:var(--blue-soft);color:var(--blue);font-size:.82rem;font-weight:800;white-space:nowrap}.atis-meta{margin-top:4px;color:var(--muted);font-size:.72rem;font-weight:650}.atis-report{margin:9px 0 0;color:var(--text);font-size:.82rem;font-weight:400;line-height:1.45;overflow-wrap:anywhere;text-transform:none}.atis-detail-card.unavailable .atis-code{background:var(--card);color:var(--muted)}
@media(min-width:600px){.atis-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tps-keypad{position:fixed;z-index:20;left:50%;top:50%;transform:translate(-50%,-50%);width:min(300px,80vw);max-height:80dvh;overflow:auto;padding:clamp(14px,4vw,24px);border:1px solid var(--line);border-radius:14px;background:var(--card);box-shadow:0 14px 38px #0007}.tps-keypad-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;color:var(--muted);font-size:.9rem}.tps-keypad-head strong{font-size:1rem}.tps-keypad-head button{border:0;background:transparent;color:var(--blue);font:inherit;font-weight:700}.tps-keypad-special{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:9px}.tps-keypad-special button{min-height:44px;border:1px solid var(--blue);border-radius:8px;background:var(--blue-soft);color:var(--blue);font:inherit;font-weight:750}.tps-keypad-special .tps-keypad-done{grid-column:1/-1;border-color:var(--blue);background:var(--blue);color:#fff}.tps-keypad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tps-keypad-grid button{min-width:0;min-height:46px;border:1px solid var(--line);border-radius:8px;background:var(--soft);color:var(--text);font:inherit;font-size:1rem;font-weight:650}.tps-keypad-grid button:active,.tps-keypad-special button:active{border-color:var(--blue);background:var(--blue-soft)}.tps-keypad-grid .tps-keypad-clear{grid-column:span 2}.tps-keypad-grid .tps-keypad-done{border-color:var(--blue);background:var(--blue);color:#fff}.tps-new[data-tps-keypad]{cursor:pointer;caret-color:transparent}.tps-new[data-tps-keypad]:focus{border-bottom:2px solid var(--blue);background:var(--blue-soft)}
@media(orientation:landscape) and (min-width:700px){#tpsDialog[open]{inset:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));width:auto;max-width:none;height:auto;max-height:none;margin:0}#tpsDialog .dialog-body{padding:12px 16px}#tpsDialog .tps-photo-viewport{height:calc(100dvh - 120px);min-height:240px;max-height:none}}
.help-pilot-icon{border-radius:50%;object-fit:cover}.top-atis-link{display:block;min-height:30px;margin-top:2px;padding:2px 0;border:0;background:transparent;color:var(--blue);font:inherit;font-size:1rem;font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.route-destination .top-atis-link{margin-left:auto;text-align:right}
.runway-closure-dialog{border-top:5px solid var(--blue)}.runway-closure-dialog .dialog-head h2{color:var(--text)}.runway-closure-dialog .dialog-body p{font-size:1rem;font-weight:650;line-height:1.5}

/* TPS review keeps the imported values foremost and the source optional. */
#tpsDialog .tps-workspace{grid-template-columns:minmax(0,1fr)}
#tpsDialog .tps-review-messages{position:relative;z-index:5;display:grid;gap:var(--banner-gap);padding:2px 0;overflow:visible;background:var(--card)}
#tpsDialog .tps-review-messages>.message{margin:0;max-height:none;overflow:visible}
#tpsDialog .tps-sticky-source{position:sticky;z-index:4;top:3px;isolation:isolate;padding:0 0 2px;background:var(--card);box-shadow:0 8px 12px -12px #0008}
#tpsDialog .tps-sticky-source::before{content:"";position:absolute;z-index:-1;inset:-3px 0 auto;height:3px;background:var(--card)}
#tpsDialog .tps-source-pane{position:static;box-shadow:none;padding:0}
#tpsDialog .tps-photo-viewport{height:min(34dvh,300px);min-height:0}
#tpsDialog .tps-keypad{position:static;transform:none;width:min(260px,100%);max-height:none;margin:6px 0 12px auto;padding:10px;box-shadow:0 6px 16px #0003}
#tpsDialog .tps-keypad-grid,#tpsDialog .tps-keypad-special{gap:6px}
#tpsDialog .tps-keypad-grid button{min-height:44px}
#tpsDialog .tps-comparison-head,#tpsDialog .tps-comparison-row>strong{font-size:.875rem}
#tpsDialog .tps-entry-intro{font-size:1rem}
#tpsDialog .tps-review-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:8px 0 4px}
#tpsDialog #tpsSourceDetails{min-width:0}
#tpsDialog #tpsSourceDetails details{margin:0}
#tpsDialog .tps-review-meta .tps-review-legend{flex:0 0 auto;margin:1px 0 0}

.tps-review-actions{margin:0 0 12px;padding-top:0}
.tps-review-actions .btn{width:100%}
#tpsDialog .btn{font:inherit;min-height:44px}
#tpsDialog .btn.primary{font-weight:650}
@media(orientation:landscape) and (min-width:700px){#tpsDialog[open]{inset:12px 12px auto;width:min(760px,calc(100vw - 24px));max-height:calc(100dvh - 24px);height:auto;margin:0 auto}}

/* Shared notice appearance across import, status, connection and runway messages. */
.message,.drop .message,.performance-notice,.runway-validity-warning,.runway-validity-warning.closed,#runwayClosureMessage{margin:0 0 var(--banner-gap);padding:var(--banner-padding);border:1px solid light-dark(#9ac7f5,#315b88);border-left:4px solid var(--blue);border-radius:11px;background:light-dark(#eef5ff,#182c46);color:light-dark(#075fc7,#a9d2ff);font-size:1rem;font-weight:600;line-height:1.45;text-align:left}

/* Fresh digital-flight-sheet treatment. The existing top flight card is intentionally excluded. */
#departureView .card,#arrivalView .card{
  margin-top:8px;
  padding:12px;
  border-color:var(--line);
  border-radius:12px;
  background:var(--card);
  box-shadow:0 4px 14px #1734490b;
}
#departureView .card .section-head,#arrivalView .card .section-head{
  min-height:40px;
}
#departureView .card .section-head h2,#departureView .card>h2,#arrivalView .card .section-head h2,#arrivalView .card>h2{
  color:light-dark(#535353,#ffffff);
  font-size:1.12rem;
  font-weight:750;
  letter-spacing:-.01em;
}
#departureView .runway-chip,#arrivalView .runway-chip{
  padding:5px 9px;
  border-radius:7px;
  background:var(--blue-soft);
  color:var(--blue);
  font-size:1.08rem;
  font-weight:800;
}
#departureView .link-btn,#arrivalView .link-btn{
  color:var(--blue);
  font-weight:700;
}
#departureView .departure-columns,#arrivalView .departure-columns{
  margin:10px -12px -12px;
  border-top:1px solid var(--line);
}
#departureView .departure-column,#arrivalView .departure-column{
  gap:0;
  padding:0;
}
#departureView .departure-column:first-child,#arrivalView .departure-column:first-child{
  border-right:1px solid var(--line);
}
#departureView .departure-field,#arrivalView .departure-field{
  min-height:74px;
  padding:9px 12px 8px;
  border-bottom:1px solid var(--line);
}

#departureView .runway-start-field,#arrivalView .runway-start-field{
  border:0;
  border-bottom:1px solid var(--line);
  border-radius:0;
  background:var(--blue-soft);
  box-shadow:inset 4px 0 0 var(--blue);
}
#departureView .card .label,#arrivalView .card .label{
  color:var(--muted);
  font-size:.86rem;
  font-weight:500;
}
#departureView .card-input,#departureView .runway-inline,#arrivalView .card-input,#arrivalView .runway-inline{
  min-height:34px;
  margin-top:4px;
  padding:1px 2px 2px;
  border-bottom-color:transparent;
  color:var(--text);
  font-size:1.22rem;
  font-weight:800;
  -webkit-text-fill-color:var(--text);
}
#departureView .card-input:focus,#departureView .runway-inline:focus,#arrivalView .card-input:focus,#arrivalView .runway-inline:focus{
  border-bottom-color:var(--blue);
  background:transparent;
}
#departureView .performance-field-grid,#arrivalView .performance-field-grid{
  margin:10px -12px -12px;
  border-top:1px solid var(--line);
}
#departureView .performance-field,#arrivalView .performance-field{
  min-height:76px;
  padding:9px 12px 8px;
  border-color:var(--line);
  background:var(--card);
}
.zfw-source-field{position:relative}
#departureView .performance-field.zfw-pilot-entered,#arrivalView .performance-field.zfw-pilot-entered{background:color-mix(in srgb,var(--blue) 18%,var(--card));border-color:var(--blue)}
.zfw-source-tag{position:absolute;top:3px;right:8px;min-height:30px;padding:4px 3px;border:0;background:transparent;color:var(--blue);font:inherit;font-size:.875rem;font-weight:800;line-height:1.2;text-transform:uppercase;cursor:pointer}
.zfw-source-tag:disabled{opacity:1;cursor:default}
.zfw-source-tag:not(:disabled){text-decoration:underline;text-underline-offset:3px}
.zfw-source-tag:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:3px}
#departureView .performance-field:nth-child(-n+3),#arrivalView .performance-field:nth-child(-n+2){
  border-top:0;
}
#departureView .performance-field .card-input,#arrivalView .performance-field .card-input,#departureView .performance-field .value,#arrivalView .performance-field .value{
  margin-top:7px;
  color:var(--text);
  font-size:1.28rem;
  font-weight:800;
  line-height:1.1;
}
#departureView .departure-field .card-input,#departureView .departure-field .runway-inline,#arrivalView .departure-field .card-input,#arrivalView .departure-field .runway-inline{
  font-size:1.28rem;
  line-height:1.1;
}
#departureView .performance-field.dragging,#arrivalView .performance-field.dragging,#departureSetupCard .departure-field.dragging,#arrivalSetupCard .departure-field.dragging{
  background:var(--blue-soft);
  box-shadow:inset 0 0 0 2px var(--blue);
}
#departureView .intersection-info{
  margin:12px -12px -12px;
  padding:0 12px;
  border-top:1px solid var(--line);
}
#departureView .intersection-info summary{
  min-height:50px;
  display:flex;
  align-items:center;
  color:var(--blue);
  font-size:1rem;
  font-weight:750;
}
#departureView .checks,#arrivalView .checks{
  gap:0;
  margin:8px -12px -12px;
  border-top:1px solid var(--line);
}
#departureView .check-row,#arrivalView .check-row{
  min-height:50px;
  padding:7px 12px;
  border-bottom:1px solid var(--line);
  color:var(--text);
  font-weight:600;
}
#departureView .check-row:last-child,#arrivalView .check-row:last-child{
  border-bottom:0;
}
#departureView .check-row input,#arrivalView .check-row input{
  width:23px;
  height:23px;
  accent-color:var(--blue);
}
#departureView .list,#arrivalView .list{
  margin:8px -12px -12px;
  border-top:1px solid var(--line);
}
#departureView .list li,#arrivalView .list li{
  padding:10px 12px;
  border-top:0;
  border-bottom:1px solid var(--line);
}
#departureView .list li:last-child,#arrivalView .list li:last-child{
  border-bottom:0;
}
#departureView .pilot-scratchpad,#arrivalView .pilot-scratchpad{
  margin:0 -12px -12px;
  padding:0 12px 10px;
  border-top:1px solid var(--line);
}
#departureView .pilot-scratchpad summary,#arrivalView .pilot-scratchpad summary{
  min-height:48px;
  display:flex;
  align-items:center;
  color:var(--blue);
  font-weight:700;
}
#departureView .hazard-btn,#arrivalView .hazard-btn{
  border-radius:8px;
}

@media(min-width:600px){
  #departureView .checks,#arrivalView .checks{grid-template-columns:repeat(2,minmax(0,1fr))}
  #departureView .check-row:nth-child(odd),#arrivalView .check-row:nth-child(odd){border-right:1px solid var(--line)}
}
@media(max-width:420px){
  #departureView .card,#arrivalView .card{padding:10px}
  #departureView .departure-columns,#arrivalView .departure-columns,#departureView .performance-field-grid,#arrivalView .performance-field-grid,#departureView .checks,#arrivalView .checks,#departureView .list,#arrivalView .list{margin-left:-10px;margin-right:-10px;margin-bottom:-10px}
  #departureView .departure-field,#arrivalView .departure-field,#departureView .performance-field,#arrivalView .performance-field{padding-left:9px;padding-right:9px}
  #departureView .card-input,#departureView .runway-inline,#arrivalView .card-input,#arrivalView .runway-inline{font-size:1.12rem}
  #departureView .performance-field .card-input,#arrivalView .performance-field .card-input,#departureView .performance-field .value,#arrivalView .performance-field .value{font-size:1.18rem}
  #departureView .departure-field .card-input,#departureView .departure-field .runway-inline,#arrivalView .departure-field .card-input,#arrivalView .departure-field .runway-inline{font-size:1.18rem}
}

/* Plan verification directs the pilot to incomplete entries. */
#departureView .field-missing,#arrivalView .field-missing{
  position:relative;
  z-index:1;
  box-shadow:0 0 0 1px #ffff00!important;
}

/* Keep the phase tabs visually paired with the setup card. */
#topFlightCard{margin-bottom:0}
.tabs{border-top:0;padding-bottom:7px}
#departureSetupCard,#arrivalSetupCard{margin-top:0!important}
#topFlightCard:focus,#departureView .card:focus,#arrivalView .card:focus{outline-offset:-2px}

/* Keep the top actions and aircraft acceptance equally prominent. */
.topbar .top-action,#topFlightCard .check-inline{font-size:1.1rem}
@media(max-width:560px){.topbar .top-action,#topFlightCard .check-inline{font-size:1.034rem}}

.verification-review-bar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--blue);border-radius:14px;background:var(--card);box-shadow:0 10px 32px #0008;max-height:40dvh;overflow-y:auto}
#verificationResultBanner{display:flex;align-items:center;gap:12px;max-height:25dvh;margin:0;overflow-y:auto;box-shadow:0 10px 32px #0006}
#verificationResultText{flex:1;min-width:0}
.verification-review-progress{font-size:.88rem;font-weight:700;line-height:1.25}
.verification-review-instruction{margin-top:3px;color:var(--muted);font-size:.78rem;line-height:1.3}
.verification-review-navigation{display:flex;gap:6px}.verification-review-navigation .btn{min-width:40px;margin:0;padding:4px 10px}
.verification-review-actions{display:flex;gap:8px}.verification-review-actions .btn{margin:0;white-space:nowrap}
@media(max-width:520px){.verification-review-bar{grid-template-columns:1fr auto}.verification-review-navigation{grid-column:2;grid-row:1}.verification-review-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.verification-review-actions .btn{width:100%}}
@media(max-width:560px){#topFlightCard{padding-bottom:max(0px,calc(var(--design-card-padding,13px) - 10px))}}

.checks .check-row{touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.checks.arranging .check-row{position:relative;cursor:grab;touch-action:none}.checks .check-row.dragging{z-index:2;background:var(--blue-soft);box-shadow:inset 0 0 0 1px var(--blue),0 5px 14px #0005;opacity:.94;transform:scale(.985)}.checks .check-row.dragging::after{content:"☰";display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;margin-left:auto;border-radius:8px;background:var(--blue);color:#fff;font-size:1rem;font-weight:800;line-height:1;box-shadow:0 2px 7px #0004}
html.acknowledgment-arranging,body.acknowledgment-arranging{overscroll-behavior-y:none}.acknowledgment-arrange-done{min-height:36px;padding:5px 8px}
.tab.active{background:light-dark(#205999,#7db7ff);color:light-dark(#fff,#071536)}

/* Device-local visual design controls. */
.card{margin-top:var(--design-card-gap,12px);padding:var(--design-card-padding,16px);border-radius:var(--design-card-radius,18px)}
.tabs{padding-top:var(--design-tab-gap,7px);padding-bottom:var(--design-tab-gap,7px)}
.tab{min-height:max(var(--button-min-height),var(--design-tab-height,0px))}
.tab.active{background:var(--button-primary-bg);color:var(--button-primary-text)}
.section-head h2,.card h2{font-size:var(--design-heading-size,1.08rem)}
#departureView .card .section-head,#arrivalView .card .section-head{min-height:0}.section-head>.link-btn,.section-head .icon-btn{min-height:24px;height:24px;padding:0 4px}.section-head .icon-btn{width:24px}.section-head+.departure-columns,.section-head+.performance-field-grid,.section-head+.checks{margin-top:8px}
.card-input,.performance-field .value{font-size:var(--design-input-size,1.12rem)!important}
.verification-action-group{display:grid;gap:var(--design-action-gap,3px);margin-top:var(--design-card-gap,12px)}
.verification-action-group>.btn.block{margin-top:0}
.verification-action-group>.brief-privacy,.post-flight-actions>.brief-privacy{margin-top:7px}
#departureBriefCard>.list>li:last-child{padding-bottom:20px}
#arrivalBriefCard>.list>li:last-child{padding-bottom:20px}
.message.swipe-dismissible,.account-status.swipe-dismissible,[data-dismissible-banner].swipe-dismissible{position:relative;padding-right:calc(var(--dismiss-size) + 4px);touch-action:pan-y;will-change:transform,opacity}
.message-dismiss{position:absolute;top:50%;transform:translateY(-50%);right:0;display:grid;place-items:center;width:var(--dismiss-size);height:var(--dismiss-size);margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-size:var(--dismiss-font-size);font-weight:400;line-height:1;cursor:pointer;-webkit-appearance:none;appearance:none}.message-dismiss::before{content:'×';transform:translateY(-2px);}.message-dismiss:focus-visible{outline:2px solid currentColor;outline-offset:-6px;border-radius:8px}
.app-bottom-dock{position:fixed;z-index:80;left:50%;bottom:calc(var(--airpal-dock-safe-area,env(safe-area-inset-bottom)) + var(--airpal-keyboard-inset,0px));transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;width:min(736px,calc(100vw - 24px));max-height:calc(var(--airpal-visible-height,100dvh) - env(safe-area-inset-top) - var(--airpal-dock-safe-area,env(safe-area-inset-bottom)) - 8px);pointer-events:none}
.app-bottom-dock>*{box-sizing:border-box;width:100%;min-width:0;pointer-events:auto}
.app-banner-stack{display:flex;flex-direction:column;gap:6px;max-height:45dvh;min-height:0;margin:0;pointer-events:auto;overscroll-behavior:none}
.app-banner-stack>.message{width:100%;margin:0;overflow:hidden;pointer-events:auto;box-shadow:0 10px 28px #0008;animation:app-banner-enter .24s cubic-bezier(.2,.85,.3,1)}
.app-banner-stack>.message.hidden{display:none}
@keyframes app-banner-enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.message-countdown{position:absolute;right:0;bottom:0;left:0;height:2px;background:currentColor;opacity:.78;transform:scaleX(var(--message-countdown-progress,1));transform-origin:left center;pointer-events:none}
@media(prefers-reduced-motion:reduce){.app-banner-stack>.message{animation:none}}
.flight-nudges{display:grid;gap:6px}.nudge-message{margin-top:8px}
.design-movable-group{min-width:0}
.design-panel{position:fixed;z-index:120;right:8px;bottom:calc(env(safe-area-inset-bottom) + 8px);left:8px;width:min(744px,calc(100vw - 16px));max-height:min(52vh,520px);margin:auto;border:1px solid var(--blue);border-radius:18px;background:var(--card);box-shadow:0 18px 60px #000a;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.design-panel-head{position:sticky;z-index:2;top:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--card)}.design-panel-head>div{display:grid;gap:2px}.design-panel-head strong{font-size:1.05rem}.design-panel-head span{color:var(--muted);font-size:.78rem}
.design-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px}.design-controls label{display:grid;gap:8px;min-width:0}.design-controls label>span{display:flex;justify-content:space-between;gap:8px;color:var(--text);font-size:.86rem;font-weight:650}.design-controls output{color:var(--blue);font-variant-numeric:tabular-nums}.design-controls input[type=range]{width:100%;accent-color:var(--blue)}.design-color-control input{width:100%;height:34px;border:1px solid var(--line);border-radius:8px;padding:2px;background:var(--soft)}
.design-move-tools{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,auto);align-items:center;gap:8px;margin:0 14px;padding:12px 0;border-top:1px solid var(--line)}.design-move-tools>div{display:grid;gap:2px}.design-move-tools span{color:var(--muted);font-size:.76rem}.design-move-tools .btn{min-height:38px;padding:8px 10px}
.design-element-height{display:grid;grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(150px,2fr);align-items:center;gap:12px;padding-top:4px}.design-element-height>span{display:flex;justify-content:space-between;gap:8px;font-size:.82rem;font-weight:650}.design-element-height output{color:var(--blue);font-variant-numeric:tabular-nums}.design-element-height input{width:100%;accent-color:var(--blue)}
.design-actions{position:sticky;bottom:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px 14px;background:var(--card);border-top:1px solid var(--line)}.design-actions .btn{min-height:40px;padding:8px}.design-status{min-height:0;padding:0 14px;color:var(--green);font-size:.78rem;text-align:center}.design-status:not(:empty){padding-bottom:10px}
body.design-mode-open{padding-bottom:min(56vh,560px)}body.design-selecting{cursor:crosshair}.design-selectable{outline:2px dashed var(--blue)!important;outline-offset:-3px}.design-selected{outline:3px solid #ffff00!important;outline-offset:2px}.design-position-flash{animation:design-position-flash .24s ease}@keyframes design-position-flash{50%{transform:scale(.985);background:var(--blue-soft)}}
@media(max-width:560px){.card{padding:var(--design-card-padding,13px)}.design-controls{grid-template-columns:1fr}.design-move-tools{grid-template-columns:1fr 1fr 1fr}.design-move-tools>div{grid-column:1/-1}.design-move-tools #selectDesignElement{grid-column:1/-1}.design-element-height{grid-template-columns:1fr}.design-actions{grid-template-columns:1fr 1fr}}

.time-source{display:block;font-size:.875rem;color:var(--muted);margin-top:4px}.time-invalid{outline:2px solid #c33;outline-offset:2px}

.route-actual-value{color:light-dark(#1264c4,#70b4ff)}.actuals-confirmed .route-actual-value{color:var(--green)}

.inbound-plane-action{display:flex;justify-content:center;margin-top:8px}.inbound-plane-action .btn{font-size:.875rem;padding:6px 12px}

.inbound-tracking-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.8rem;color:var(--muted)}.inbound-tracking-controls{flex-wrap:wrap}.top-card-footer{flex-wrap:wrap}

.weather-dialog[open]{position:fixed;display:flex;flex-direction:column;width:76vw;max-width:76vw;max-height:50dvh;margin:auto;overflow:hidden}.weather-dialog .dialog-head{flex:0 0 auto}.weather-body{min-height:0;overflow:auto;overscroll-behavior:contain}.weather-body pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.5}.weather-body #weatherTaf{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.9rem;text-transform:none}.weather-body h3{margin-bottom:6px}.setup-drag-label{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:grab}.setup-drag-label:focus-visible{outline:2px solid var(--blue)}.departure-field.dragging{position:relative;z-index:2;border-radius:10px;background:var(--blue-soft);opacity:.78;transform:scale(.98)}.flight-details-close{font-weight:650;color:var(--blue)}

#departureSetupCard .departure-field .card-input,#arrivalSetupCard .departure-field .card-input{border-bottom:1px solid var(--line);min-height:34px;height:34px;box-sizing:border-box}#departureSetupCard .departure-field .card-input:focus,#arrivalSetupCard .departure-field .card-input:focus{border-bottom:2px solid var(--blue)}

dialog{touch-action:pan-y pinch-zoom}dialog .dialog-head{user-select:none;-webkit-user-select:none}
dialog:has(.tps-photo-viewport){touch-action:auto}dialog .dialog-head{touch-action:pan-y pinch-zoom}

#techOpsHubLink{border:1px solid var(--blue)}.check-inline input[data-check="acceptance"]:checked{accent-color:var(--green)}

#postFlightCard>.section-head{height:auto!important;min-height:0;margin:0;padding:0}

.post-flight-accuracy{grid-column:1/-1;margin:0;padding:8px 12px 12px;text-align:left}#postFlightCard .post-flight-data-field .card-input{border-bottom:1px solid var(--line)}#postFlightCard .post-flight-data-field .card-input:focus{border-bottom:2px solid var(--blue)}#postFlightCard .performance-field>.label{cursor:default;touch-action:pan-y;user-select:auto;-webkit-user-select:auto;-webkit-touch-callout:default}

.atis-report{white-space:pre-wrap}.atis-taf-heading{margin:14px 0 0;font-size:.9rem}.atis-taf-report{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.9rem;line-height:1.5}

.pilot-notes-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;flex:0 0 auto}.feedback-link{border:0;padding:8px 0;background:transparent;color:var(--blue);font:inherit;font-size:.82rem;cursor:pointer}.pilot-notes-footer .scratchpad-count{margin-left:auto}#feedbackForm>label{display:block;margin-top:12px}#feedbackDialog{width:76vw;max-width:76vw;max-height:50dvh;overflow:auto}
#pilotNoteContributionDialog{width:min(92vw,620px);max-height:82dvh;overflow:auto}#pilotNoteContributionForm>label{display:block;margin-top:12px;font-weight:700}.note-contribution-intro{margin-top:0}#sanitizedPilotNote{text-transform:none;line-height:1.45}#pilotNoteContributionStatus.success{color:var(--green);font-weight:700}#pilotNoteContributionStatus.error{color:var(--red);font-weight:700}

.tps-identity-list{padding-left:1.2em;margin:.6em 0 0;font-size:.88em;font-weight:400;overflow-wrap:anywhere}.tps-identity-list li{margin:.65em 0}.tps-identity-list li:last-child{margin-bottom:0}

/* Feedback uses the existing main-action palette; other dialogs are unchanged. */
#feedbackDialog[open]{display:flex;flex-direction:column;width:min(560px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 32px);overflow:hidden}
#feedbackDialog .dialog-head{flex:0 0 auto}
#feedbackDialog .dialog-body{min-height:0;overflow:auto;overscroll-behavior:contain}
#feedbackForm>label:first-child{margin-top:0}

#feedbackDialog .note{line-height:1.5}
.pilot-notes-footer{align-items:flex-end;flex-wrap:nowrap}
.pilot-notes-footer #contributePilotNote{flex-shrink:0;font-size:0.9rem}
.pilot-notes-footer .scratchpad-count{min-width:0;text-align:right}

#shareAirpalDialog .share-airpal-title{display:flex;align-items:center;gap:8px;min-width:0}
.share-airpal-title span{white-space:nowrap}.share-airpal-title img{flex-shrink:0}
.share-airpal-qr{margin:20px auto;text-align:center}.share-airpal-qr img{display:block;width:240px;max-width:100%;height:auto;margin:0 auto 10px;background:#fff;border-radius:8px}
.share-airpal-qr figcaption{font-weight:650;margin-bottom:16px}.share-airpal-link{font-size:.8rem;text-transform:none;margin-bottom:12px}
#shareAirpalDialog .btn{font:inherit;min-height:44px}#shareAirpalDialog .btn.primary{font-weight:650}
@media(max-width:420px){#shareAirpalDialog .share-airpal-title{gap:6px;font-size:1.15rem}#shareAirpalDialog .help-pilot-icon{width:30px;height:30px}#shareAirpalDialog .help-jet-icon{width:58px;height:30px}}

#shareAirpalSend[hidden]{display:none}

/* Raised glass rim: softened to approximately 70% of the approved preview. */
#topFlightCard,.tab.active,.topbar .top-upload-action{
  border-color:light-dark(rgb(120 158 194 / .55),rgb(184 222 255 / .70));
  border-right-color:light-dark(rgb(120 158 194 / .47),rgb(184 222 255 / .60));
  border-bottom-color:light-dark(rgb(120 158 194 / .40),rgb(184 222 255 / .49));
  box-shadow:inset 1px 1px 1px rgb(240 249 255 / .42),inset -1px -1px 2px rgb(171 214 255 / .21),0 0 4px light-dark(rgb(110 164 213 / .12),rgb(137 196 255 / .21)),0 7px 16px light-dark(rgb(19 42 65 / .14),rgb(0 0 0 / .32));
}

/* Sticky offsets are relative to the scrollport padding edge. Remove the
   top padding so the opaque 3px cap reaches the header at every breakpoint. */
#tpsDialog .dialog-body{padding-top:0}
#tpsDialog .tps-review-messages:not(:has(>.message:not(.hidden))){display:none}
#tpsDialog .tps-review-actions{margin:0}
.flight-nudges{gap:0}
.nudge-message{margin:0 0 var(--banner-gap)}


/* Flight identity retains the existing type and pairs its date in one chip. */
.flight-identity{display:inline-flex;align-items:center;gap:7px;border:0;border-radius:0;padding:6px 7px;color:inherit;text-decoration:none;min-height:40px;justify-self:start}
.flight-identity:hover{text-decoration:none;box-shadow:none;background:transparent}.flight-identity:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.flight-meta:has(.flight-identity){grid-template-columns:auto 1fr}.flight-source-status{display:block;margin:0 0 8px;padding:0;text-align:left;font-size:.875rem}
.new-flight-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.new-flight-form label{display:grid;gap:6px;font-size:1rem}.new-flight-form .btn{grid-column:1/-1}.new-flight-results{display:grid;gap:10px;margin:14px 0}
#newFlightDialog[open]{position:fixed;top:var(--new-flight-viewport-top,8px);bottom:auto;left:0;right:0;margin:0 auto;max-height:var(--new-flight-viewport-height,calc(100dvh - 16px));display:flex;flex-direction:column;overflow:hidden}
#newFlightDialog .dialog-head{flex:none}
#newFlightDialog .dialog-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.flight-result{display:grid;gap:8px;text-align:left;padding:14px;background:var(--card);border:1px solid var(--line);border-radius:12px;color:var(--text);cursor:pointer;font-size:1rem}.flight-result[aria-pressed="true"]{border:2px solid var(--blue);background:var(--blue-soft)}.flight-result:disabled{opacity:.65}.source-conflict{padding:12px 0;border-bottom:1px solid var(--line)}.source-conflict h3{font-size:1rem}.source-details{display:grid;grid-template-columns:minmax(100px,1fr) 2fr;gap:10px;font-size:.875rem}.source-details dd{margin:0;overflow-wrap:anywhere}.source-details small{display:block;color:var(--muted)}
#flightReviewDialog .dialog-body{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
.trip-start-body,.trip-import-body{display:grid;gap:12px}.trip-start-body p{margin:0 0 4px}.trip-start-body .trip-route{font-size:1.05rem;font-weight:750}.trip-file{display:grid;gap:8px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.trip-file span{display:flex;justify-content:space-between;gap:10px}.trip-file strong{color:var(--blue);font-size:.8rem}.trip-file small{color:var(--muted)}.trip-leg-review{display:grid;gap:10px;margin:12px 0}.trip-leg{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.trip-leg-grid{display:grid;grid-template-columns:1.1fr 1.4fr 1fr 1fr;gap:8px}.trip-leg-grid label{display:grid;gap:4px;color:var(--muted);font-size:.8rem}.trip-leg-grid input{min-width:0;width:100%;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text);font:inherit}.trip-leg-meta{margin:8px 0 0;color:var(--muted);font-size:.8rem}.trip-change-review{padding:12px;border-left:4px solid var(--blue);background:var(--blue-soft);border-radius:10px}.trip-change-review ul{padding-left:20px;margin-bottom:0}@media(max-width:560px){.trip-leg-grid{grid-template-columns:1fr 1fr}.trip-leg-grid label:first-child{grid-column:1/-1}}
@media(max-width:560px){.flight-identity{gap:4px;padding:5px 4px}.flight-meta:has(.flight-identity){column-gap:4px}.flight-meta:has(.flight-identity) .airpl{left:55%}.new-flight-form{grid-template-columns:1fr}}
@media(max-width:370px){.flight-meta:has(.flight-identity){grid-template-columns:auto auto}.flight-meta:has(.flight-identity) .airpl{position:static;transform:none;justify-self:end}.flight-meta:has(.flight-identity) .check-inline{grid-column:1/-1}}
/* Square opaque upper corners; tabs retain rounded lower corners. */
.route-center.flightaware-summary .route-comparison-head,.route-center.flightaware-summary .route-actual-value{display:none}
.route-center.flightaware-summary .route-plan-item{grid-template-columns:1fr}
.route-center.flightaware-summary .route-plan-item.hidden{display:none}
.route-schedule-head{display:none}.route-center.flightaware-summary .route-schedule-head{display:block;margin-top:5px;color:var(--muted);font-size:.64rem;font-weight:750;letter-spacing:.05em;text-align:center}.route-center.flightaware-summary .route-estimate{text-align:center;padding-right:0}.preliminary-empty{display:none!important}
.weather-dialog[data-floating][open]{inset:80px auto auto 12px;margin:0;z-index:80;width:min(560px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:min(50dvh,500px);box-shadow:0 14px 45px #0008}
.pilot-notes-dialog[data-floating][open]{height:min(78dvh,760px);min-height:min(50dvh,440px);max-height:calc(100dvh - 48px)}
.pilot-notes-dialog .pilot-notes-body{flex:1 1 0;min-height:0;padding-bottom:3px;overflow:hidden}
.pilot-notes-dialog .pilot-notes-body textarea,.pilot-notes-dialog .pilot-notes-ink,.pilot-notes-dialog .pilot-notes-ink canvas{flex:1 1 0;min-height:0}
@media(max-height:620px){.pilot-notes-dialog[data-floating][open]{height:calc(100dvh - 96px);min-height:0}.pilot-notes-ink{min-height:180px}.pilot-notes-ink canvas{min-height:150px}}
.floating-move-handle{cursor:move;touch-action:none;flex:1;min-width:0;user-select:none;-webkit-user-select:none}
.floating-move-handle small{display:block;font-size:.75rem;font-weight:400;color:var(--muted);margin-top:4px}
.floating-move-handle:focus{outline:none}.floating-move-handle:focus-visible small{text-decoration:underline;text-underline-offset:3px}
html.weather-panel-dragging,html.weather-panel-dragging body{overscroll-behavior:none;user-select:none;-webkit-user-select:none}
/* Keep native 12-hour time inputs clear of the mode controls on narrow phones. */
@media(max-width:430px){.actual-time-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.actual-clock-departure{grid-column:1;grid-row:1}.actual-clock-arrival{grid-column:2;grid-row:1}.clock-mode-block{grid-column:1/-1;grid-row:2;justify-self:center}}

/* Let the runway placeholder and options use the width of their card. */
#depRunwayCardSelect,#arrRunwayCardSelect{max-width:100%;width:100%}
/* One dock keeps review and Notifications together without viewport measurements. */
html{scroll-padding-bottom:80px}
body{padding-bottom:calc(88px + env(safe-area-inset-bottom))}
body.verification-review-active{padding-bottom:calc(220px + env(safe-area-inset-bottom))}
.app-banner-stack{overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 20px #0004;gap:2px}
.notification-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 10px;touch-action:none}
.notification-header button{min-height:36px;border:0;background:transparent;color:var(--blue);font-weight:650;cursor:pointer}
.notification-toggle{text-align:left;flex:1}.notification-collapse{flex:none}
.notification-messages{overflow-y:auto;overscroll-behavior-y:none;-webkit-overflow-scrolling:touch;max-height:calc(45dvh - 56px);padding:2px 8px 0}
.app-banner-stack[data-mode="collapsed"] .notification-messages{display:none}
.notification-out-of-view{display:none!important}
.notification-messages>.message{margin:0;box-shadow:none;animation:none;overflow-wrap:anywhere;font-weight:400;text-transform:none}
.notification-messages>.message:not(.hidden):not(.notification-out-of-view)~.message:not(.hidden):not(.notification-out-of-view){margin-top:6px}
.weight-checks{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:12px}
.weight-checks h3{margin-top:0}.weight-checks select{display:block;width:100%;margin-top:6px;background:var(--card);color:var(--text);border:1px solid var(--line);padding:9px;border-radius:8px}
.weight-check-list{padding:0;list-style:none;display:grid;gap:8px}
.weight-check-list li{display:grid;gap:4px;padding:10px;border:1px solid var(--line);border-radius:8px}
.weight-check-list small{font-size:.875rem}.weight-over{color:var(--red);font-weight:700}.weight-missing{color:var(--muted)}
#manualRunwayConfirmWrap:not(.hidden){display:flex;align-items:center;gap:8px}
@media(max-height:500px){.app-banner-stack{max-height:35dvh}.notification-messages{max-height:calc(35dvh - 52px)}}

/* Pilot caution: visible in both themes; FIFO ordering is unchanged. */
.notification-messages>.message.caution{background:light-dark(#fff4ce,#352b16);color:light-dark(#614500,#ffdf86);border-color:light-dark(#bf8a18,#ac8127);border-left-color:#e3ac27}
.notification-header button{min-height:44px}

#tpsComparison:not(.show-previous-tps) .tps-current{display:none}
#tpsComparison:not(.show-previous-tps) .tps-comparison-row{grid-template-columns:1fr 1fr}
#tpsReview:not(.show-previous-tps) .tps-comparison-head{grid-template-columns:1fr 1fr}
#tpsReview:not(.show-previous-tps) .tps-comparison-head span:nth-child(2){display:none}

/* Shared data-entry forms and compact floating notes. */
#manualRunwayForm>label{display:block;margin-bottom:6px}#manualRunwayForm .editor-actions{margin-top:16px}



#appBannerStack.has-new-notification{border:2px solid var(--blue);box-shadow:0 6px 24px light-dark(#087fad38,#7db7ff38)}.notification-timestamp{display:block;margin-top:6px;font-size:.75rem;font-weight:400;color:var(--muted)}
.tracker-notifications{margin:12px 0}.tracker-notifications .note{margin-left:auto}

#manualRunwayChallengeText{white-space:pre-line}

.pilot-notes-footer{margin-top:12px;flex-wrap:wrap}
#checkInboundFlight{display:none!important}
#inboundPlaneLink{text-decoration:none}
.tracking-conflict-actions{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:10px;padding-right:var(--dismiss-size)}
.tracking-conflict-actions button{min-height:36px;padding:4px 0;border:0;background:transparent;color:inherit;font:inherit;font-weight:750;text-decoration:underline;text-underline-offset:3px;cursor:pointer}

/* Shared action styling: page rules may arrange buttons, not redefine their appearance. */
:root{--button-min-height:44px;--button-primary-bg:var(--design-active-color,light-dark(#205999,#7db7ff));--button-primary-text:var(--design-active-text,light-dark(#fff,#071536));--button-primary-shadow:0 5px 14px light-dark(#20599933,#7db7ff33)}
.btn:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.btn.icon-label{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn.icon-label svg{flex-shrink:0}
:root{--compact-action-height:24px;--compact-action-width:112px}.btn.compact{display:inline-flex;align-items:center;justify-content:center;font-size:.875rem;line-height:1;padding:2px 6px;min-height:var(--compact-action-height);width:var(--compact-action-width);white-space:nowrap}
.btn.compact.icon-label{gap:4px}.btn.compact.icon-label svg{width:14px;height:14px}
@media(pointer:coarse){:root{--compact-action-height:35.2px}}
.topbar{flex-wrap:nowrap}
.top-links{flex:1;flex-wrap:nowrap;justify-content:flex-end;gap:13px;margin-left:auto;padding-right:5px;overflow:hidden}
#topImportBtn{margin-left:0}
.top-upload-action{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;margin-left:0;padding:2px;border:1.5px solid var(--blue);border-radius:50%;background:transparent;color:var(--blue);cursor:pointer}.top-upload-action svg{display:block;width:24.5px;height:24.5px}.import-flight-link{flex:0 0 auto;min-width:0;max-width:104px;padding-left:1px;padding-right:1px;font-weight:650;white-space:nowrap}.import-flight-link span{display:block;min-width:0}
@media(max-width:360px){.top-upload-action svg{width:22.3px;height:22.3px}.import-flight-link{max-width:88px;font-size:.875rem}}

/* Shared close targets: 20% larger than the original 36px / 44px controls. */
:root{--close-size:43.2px;--close-font-size:2.0rem;--dismiss-size:52.8px;--dismiss-font-size:1.74rem}
html.weather-panel-dragging *{user-select:none!important;-webkit-user-select:none!important}

/* Shared input hints and stable bottom notifications. */
input::placeholder,textarea::placeholder{color:light-dark(#707070,#929292);-webkit-text-fill-color:light-dark(#707070,#929292);font-family:inherit;font-size:inherit;font-style:normal;font-weight:400;opacity:1}
/* Native placeholders stay visible while empty, including on focus, and hide only when a value is entered. */
.close{min-width:var(--close-size);max-width:var(--close-size);min-height:var(--close-size);max-height:var(--close-size);aspect-ratio:1;box-sizing:border-box;outline-offset:3px}
/* A radius-following ring avoids WebKit's irregular native auto outline. */
.close:focus{outline:2px solid transparent;outline-offset:3px;box-shadow:0 0 0 3px var(--card),0 0 0 5px var(--blue)}
@media(forced-colors:active){.close:focus{outline:2px solid Highlight;box-shadow:none}}
.settings-trigger{display:inline-flex;align-items:center;gap:7px;margin-left:auto;white-space:nowrap}
.side-menu-head{grid-template-columns:var(--close-size) minmax(0,1fr) auto;gap:6px;font-size:1rem}
.side-menu-head .side-menu-brand{justify-self:start;font-size:1.2rem}
.settings-trigger{grid-column:3;grid-row:1;font-size:1rem;min-height:44px}
.settings-options{display:grid;gap:6px}.settings-options .side-menu-item{width:100%;text-align:left}
.pilot-information-settings{margin:0 0 8px}.pilot-information-settings h3{margin:0;color:var(--text);font-size:1rem}.pilot-information-settings .local-note{margin:0;text-align:left}.pilot-information-status{min-height:1.2em;margin:0;color:var(--green);font-size:.8rem}.pilot-information-status.warn{color:var(--red)}.pilot-brief-header{margin:-3px 0 12px;color:var(--muted);font-size:.82rem;font-weight:650;overflow-wrap:anywhere}
.pilot-information-settings .control{font-size:1rem}.pilot-combobox{display:block;position:relative}.pilot-combobox>.control{padding-right:34px}.pilot-combobox-arrow{position:absolute;right:5px;top:12px;color:var(--muted);font-size:1.25rem;line-height:1;pointer-events:none}.pilot-combobox-menu{display:block;max-height:245px;margin-top:4px;overflow-y:scroll;overscroll-behavior:contain;touch-action:pan-y;border:1px solid var(--line);border-radius:10px;background:var(--card);box-shadow:0 12px 28px #0003;color:var(--text);-webkit-overflow-scrolling:touch}.pilot-combobox-group{display:block;position:sticky;top:0;padding:8px 11px 5px;background:var(--soft);color:var(--muted);font-size:.72rem;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.pilot-combobox-option{display:block;padding:11px;min-height:44px;border-top:1px solid var(--line);color:var(--text);font-size:.95rem;font-weight:700;cursor:pointer}.pilot-combobox-option.active,.pilot-combobox-option:active{background:color-mix(in srgb,var(--blue) 14%,var(--card))}.pilot-combobox-empty{display:block;padding:12px;color:var(--muted)}
.tracking-details h3{margin-bottom:8px}.tracking-details .inbound-tracking-controls{font-size:inherit;color:var(--text);flex-wrap:nowrap}.tracking-on{color:var(--green)}.tracking-off{color:var(--red)}
.tracking-details .inbound-tracking-controls{justify-content:flex-start;gap:9px}.inbound-tracking-controls #inboundTrackingStatus{font-size:.9rem;font-weight:700}.tracking-switch{position:relative;display:inline-flex;align-items:center;border:0;background:transparent;color:var(--text);font:inherit;font-size:.9rem;font-weight:700;min-height:44px;padding:0;cursor:pointer}.tracking-switch::before{content:"";display:block;flex:none}.tracking-switch::after{top:50%;left:4px;transform:translateY(-50%)}.tracking-switch[aria-checked=true]::after{transform:translate(22px,-50%)}.tracking-switch:disabled{opacity:.6;cursor:wait}
.tracking-switch::before,.tracking-switch::after{transition:none}.inbound-tracking-controls #inboundTrackingStatus.tracking-on{animation:tracking-on-blink 5s ease-in-out infinite}@keyframes tracking-on-blink{0%,84%,100%{opacity:1}91%{opacity:.25}}@media(prefers-reduced-motion:reduce){.inbound-tracking-controls #inboundTrackingStatus.tracking-on{animation:none}}
.tracking-mode-row{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:stretch;column-gap:18px}.tracking-mode-row #inboundTrackingDetail{min-width:0;min-height:44px;margin:0;padding:5px 0 5px 14px;border-left:1px solid var(--line);overflow-wrap:anywhere}
#inboundPlanePending{opacity:.7}#inboundPlaneReason{display:block;font-size:.8rem}
.topbar{position:-webkit-sticky!important;position:sticky!important}
.tabs{position:static!important}
.app-banner-stack>.message{animation:none}

@media(max-width:360px){.topbar .brand{font-size:1.7rem}.topbar .brand-icon{width:30px;height:30px;flex-basis:30px}}
.topbar .top-upload-action:active{box-shadow:none}
/* Holding/diversion stays in normal document flow; Notifications retain their anchor. */
.contingency-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}
.contingency-table{max-width:100%;overflow-x:auto}
.contingency-table table{width:100%;border-collapse:collapse;font-size:.875rem}
.contingency-table th,.contingency-table td{padding:.5rem;text-align:left;border-bottom:1px solid var(--border)}
.contingency-weather{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit}
#contingency [hidden]{display:none!important}
#contingency .edit-grid{margin:.75rem 0}
#contingency details{margin:.5rem 0}
#contingency{min-width:0;--holding-airport-0:light-dark(#1262b5,#77b6ff);--holding-airport-1:light-dark(#8c6700,#f1c85b);--holding-airport-2:light-dark(#317044,#a9df94);--holding-airport-3:light-dark(#7c40b4,#d1a4ff);--holding-airport-4:light-dark(#b63535,#ffaaa0);--holding-airport-5:light-dark(#007778,#76d8d0)}
#contingency .holding-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
#contingency fieldset{min-width:0;border:1px solid var(--line);border-radius:12px;padding:1rem;display:grid;align-content:start;gap:.6rem}
#contingency legend{padding:0 .4rem;font-weight:700}
#contingency label{display:grid;gap:.35rem;min-width:0}
#contingency input,#contingency select{max-width:100%;min-width:0;width:100%;box-sizing:border-box}
#contingency .holding-mode{display:flex;align-items:end;flex-wrap:wrap;gap:1rem;margin:1rem 0}
#contingency .holding-mode label{min-width:220px}
#contingency .holding-route{margin:1rem 0;padding:1rem;border:1px solid var(--line);border-radius:12px}
#contingency .holding-route h3{margin:0 0 .6rem}
#contingency .holding-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:.75rem;margin:1rem 0}
#contingency .holding-metrics div{display:grid;gap:.25rem}
#contingency .holding-metrics span{font-size:.85rem;opacity:.8}
#contingency .holding-metrics strong{font-size:1.25rem}
#contingency .holding-graph{display:block;width:100%;height:auto;color:var(--text)}
#contingency .holding-graph text{fill:currentColor;font:16px system-ui,sans-serif}
#contingency .holding-fuel-limit{margin:0 0 .6rem;font-size:.875rem;line-height:1.4;font-weight:400;color:var(--text);text-align:center}
#contingency .holding-fuel-limit strong{font:inherit;font-weight:700}
#contingency .holding-graph .holding-airport-id{font-size:14px;font-weight:750}
#contingency .holding-legend-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}
#contingency .holding-legend[aria-pressed=false]{opacity:.5}
#contingency .holding-comparisons{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.65rem;margin:1rem 0}
#contingency .holding-airport{display:grid;gap:.35rem;text-align:left;white-space:normal}
#contingency .holding-selected{outline:2px solid var(--blue);outline-offset:1px}
#contingency .holding-bar{display:block;height:7px;border-radius:7px;background:var(--line);overflow:hidden}
#contingency .holding-bar span{display:block;height:100%}
#contingency .holding-range-label{margin-top:0}
#contingency #holdingSliderControl{position:sticky;top:var(--holding-sticky-top,132px);z-index:44;margin:10px 0 4px;padding:8px 10px 3px;border:1px solid var(--line);border-radius:10px;background:var(--card);box-shadow:0 5px 12px #0715361c}
#contingency #holdingSliderControl .holding-range-label{gap:0;line-height:1.15;position:relative}
#contingency .holding-slider-track,.dhd-reminder-editor .holding-slider-track{display:block;position:relative;margin-top:0}
#contingency .holding-slider-value,.dhd-reminder-editor .holding-slider-value{position:absolute;top:0;right:0;color:var(--blue);font-size:1rem;font-weight:750;white-space:nowrap;pointer-events:none}
#contingency .holding-slider-marks,.dhd-reminder-editor .holding-slider-marks{position:relative;height:1.2em;margin:-.5rem 8px 0;font-size:.75rem;color:var(--muted)}
#contingency .holding-slider-marks span,.dhd-reminder-editor .holding-slider-marks span{position:absolute;transform:translateX(-50%)}
#contingency input[type=range],.dhd-reminder-editor input[type=range]{height:44px;padding:0;accent-color:var(--blue);touch-action:none}
#contingency .holding-details>summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
#contingency #holdingDuration{display:grid;gap:.5rem}
#contingency #contingencyError:empty{display:none}
@media(max-width:650px){#contingency .holding-inputs{grid-template-columns:1fr}#contingency .holding-comparisons{grid-template-columns:1fr}#contingency .holding-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}#contingency fieldset,#contingency .holding-route{padding:.75rem}#contingency .holding-graph text{font-size:23px}#contingency .holding-graph .holding-airport-id{font-size:14px}}

/* Developer change queue. */
.change-queue-updated{margin:.2rem 0 0;color:var(--muted);font-size:.8rem}
.change-queue-intro{margin-top:0;color:var(--muted)}
.change-queue-form{display:grid;gap:8px;margin:16px 0}.change-queue-form textarea{width:100%;box-sizing:border-box;min-height:100px;resize:vertical}.change-queue-form .btn{justify-self:start}.change-queue-item .btn{margin-top:10px}.change-queue-item-head strong{min-width:0;overflow-wrap:anywhere;white-space:pre-wrap}
.change-queue-section+.change-queue-section{margin-top:1.5rem}
.change-queue-section h3{margin:0 0 .65rem}
.change-queue-item{padding:.85rem 0;border-top:1px solid var(--border)}
.change-queue-item:first-child{border-top:0;padding-top:0}
.change-queue-item-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}
.change-queue-item-head span{flex:none;color:var(--muted);font-size:.8rem}
.change-queue-category{margin:.25rem 0;color:var(--blue);font-size:.85rem;font-weight:700}
.change-queue-example{margin:.3rem 0 0;color:var(--muted);font-size:.9rem}
.change-queue-empty{margin:0;padding:.8rem;border:1px dashed var(--border);border-radius:12px;color:var(--muted)}

.saved-section-heading{display:grid;gap:4px;margin-top:12px}.saved-section-heading h3,.saved-section-heading p{margin:0}.saved-section-heading p{color:var(--muted);font-size:.875rem;line-height:1.4}

/* Holding iteration: phase-style inputs, selected modes and a shared comparison scale. */
#contingency .holding-modes{display:flex;gap:8px;margin:12px 0}
#contingency .holding-current{font-size:.875rem;margin:8px 0}
#contingency .holding-current span{display:block;color:var(--muted);font-size:.8rem;margin-top:4px}
#contingency .holding-modes .btn{flex:1}
#contingency .holding-modes .btn[aria-pressed=true]{background:var(--button-primary-bg);color:var(--button-primary-text);border-color:transparent;box-shadow:var(--button-primary-shadow)}
#contingency .holding-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:12px 0 4px;border-top:1px solid var(--line)}
#contingency .holding-fields>label,#contingency .holding-fields>.holding-position{min-width:0;min-height:76px;padding:9px 12px 8px;border-bottom:1px solid var(--line);border-left:1px solid var(--line);background:var(--card)}
#contingency .holding-fields>:nth-child(3n+1){border-left:0}
#contingency .holding-fields>.hold-tile{position:relative;min-width:0;min-height:76px;padding:9px 12px 8px;border-bottom:1px solid var(--line);border-left:1px solid var(--line);background:var(--card)}
#contingency .holding-fields>.hold-tile[data-hold-field="position"]{grid-column:1/-1;border-left:0}
#contingency .holding-fields>.hold-tile[hidden]{display:none}
#contingency #holdingDuration[hidden]{display:none}
#contingency .holding-fields>.hold-tile .holding-position{padding:0;border:0;min-height:0}
#contingency .hold-label{display:block;min-height:28px;color:var(--muted);font-size:.875rem;font-weight:500;line-height:1.25;overflow-wrap:anywhere;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}
#contingency .hold-label:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
#contingency .holding-fields>.hold-tile.dragging{z-index:2;border-radius:10px;background:var(--blue-soft);box-shadow:inset 0 0 0 2px var(--blue);opacity:.78;transform:scale(.98)}
#contingency .holding-fields>.hold-tile.hold-highlight,#contingency .holding-route .holding-distance{background:var(--blue-soft);box-shadow:inset 4px 0 0 var(--blue)}
#contingency .hold-highlight label,#contingency .holding-route .holding-distance label{color:var(--blue);font-weight:700}
#contingency .hold-highlight .hold-label{color:var(--blue);font-weight:700}
#contingency .hold-tile>label,#contingency .hold-tile .holding-position>label{display:block;min-width:0}
#contingency .hold-tile>label[hidden]{display:none}
#contingency .holding-route .holding-distance{min-width:0;min-height:76px;padding:9px 12px 8px;border-bottom:1px solid var(--line)}
#contingency .holding-fields label{font-size:.875rem;color:var(--muted);font-weight:500}
#contingency .holding-fields .card-input,#contingency .holding-fields .top-clock{min-height:34px;margin-top:7px;border:0;border-bottom:1px solid transparent;border-radius:0;background:transparent;color:var(--text);font-size:1.18rem;font-weight:800;-webkit-text-fill-color:var(--text)}
#contingency .holding-fields .card-input:focus,#contingency .holding-fields .top-clock:focus{outline:0;border-bottom:2px solid var(--blue)}
#contingency .holding-fields .input-with-suffix{display:flex;min-width:0;width:100%;flex-wrap:wrap;column-gap:4px}
#contingency .holding-fields .input-with-suffix>.card-input{min-width:0;width:0;flex:1 1 62px}
#contingency .holding-fields .input-with-suffix>span{align-self:center;white-space:nowrap}
#contingency .holding-fields>.hold-tile .card-input,#contingency .holding-fields>.hold-tile .top-clock{max-width:100%;font-size:1.12rem}
#contingency .holding-position{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:end;gap:8px}
#contingency .holding-position>label{display:block}
#contingency .holding-position #holdingWaypoints{min-width:0;width:100%;margin-top:2px;font-size:.9rem;font-weight:650;color:var(--blue);-webkit-text-fill-color:var(--blue)}
#contingency .holding-position input[name="position"]{width:100%;border-bottom:1px solid var(--line)}
#contingency .holding-position input[name="position"]:focus{border-bottom:2px solid var(--blue)}
#contingency .holding-location-actions{display:flex;justify-content:flex-start;margin:8px 0 12px}
#contingency .holding-field-units{color:var(--muted);font-size:.75rem;margin:4px 0 12px}
#contingency .holding-field-units,#contingency #holdingSliderCaption{display:none}
#contingency .input-with-suffix>span{font-size:.75rem;color:var(--muted)}
#contingency .holding-route{border:0;border-top:1px solid var(--line);border-radius:0;padding:0 0 12px;margin:16px 0 8px}
#contingency .holding-projection{padding-top:10px;border-top:1px solid var(--line)}
#contingency .holding-projection[hidden]{display:none}
#contingency .holding-projection h4{margin:4px 0 0;color:var(--text);font-size:.9rem;font-weight:700}
#contingency .holding-reserve-negative,#contingency .holding-reserve-negative strong{color:var(--red)}
#contingency .holding-projection-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;margin-top:14px}
#contingency .holding-projection-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:0}
#contingency .holding-projection-columns strong{font-size:.88rem;font-weight:700;color:var(--text)}
#contingency .holding-projection-row h5{grid-column:1/-1;margin:0;font-size:.88rem;font-weight:700}
#contingency .holding-projection-bar{min-width:0}
#contingency .holding-projection-value{display:flex;align-items:end;min-height:1.5em;line-height:1.2}
#contingency .holding-projection-value span{color:var(--muted)}
#contingency .holding-projection-value strong{color:var(--text);font-size:.85rem;white-space:nowrap}
#contingency .holding-projection-value.holding-reserve-negative strong{color:var(--red)}
#contingency .holding-projection-track{position:relative;height:13px;border-radius:7px;background:var(--soft);overflow:hidden}
#contingency .holding-projection-signed::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:var(--muted)}
#contingency .holding-projection-fill{position:absolute;top:0;bottom:0;border-radius:7px;background:var(--blue)}
#contingency .holding-projection-efc{background:var(--amber)}
#contingency .holding-projection-negative{background:var(--red)}
#contingency .holding-projection-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0 8px;border-top:1px solid var(--line);padding-top:10px}
#contingency .holding-projection-times h5{grid-column:1/-1;margin:0;font-size:.88rem;font-weight:700;color:var(--text)}
#contingency .holding-projection-times strong{color:var(--text);font-size:1rem}
#contingency .holding-route .holding-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
#contingency #holdingRouteTitle{display:flex;gap:0;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}
#contingency #holdingRouteTitle::-webkit-scrollbar{display:none}
#contingency .holding-route-airport{flex:1 0 auto;min-width:68px;min-height:48px;padding:0;border-top:0;border-bottom:0;border-left:0;border-radius:0;box-shadow:none;font-weight:750;white-space:nowrap}
#contingency .holding-route-airport:last-child{border-right:0}
#contingency .holding-route-airport[aria-pressed="true"]{border-color:var(--line);background:var(--blue-soft);color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
#contingency .holding-legend{background:transparent;border:0;box-shadow:none;padding:6px 8px;min-height:36px;font-size:.875rem}
#contingency .holding-destinations{border:1px solid var(--line);border-radius:8px;padding:12px 8px;margin:16px 0 2px}
#contingency .holding-comparison-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:0 8px 6px}
#contingency .holding-comparison-heading h3{font-size:1rem;margin:0}
#contingency .holding-comparison-heading p{font-size:.8rem;line-height:1.35;margin:3px 0 0}
#contingency #holdingAirportEntry{display:flex;align-items:center;gap:8px;margin:0;max-width:100%}
#contingency #holdingAirportEntry input{width:110px;min-width:0;border-bottom:1px solid var(--line)}
#contingency #holdingAirportEntry input:focus{border-bottom:2px solid var(--blue)}
#contingency #holdingAirportEntry .btn{white-space:nowrap}
#contingency .comparison-heading{display:flex;justify-content:space-between;gap:8px;font-size:.8rem;padding:4px 8px 10px;color:var(--muted)}
#contingency .comparison-reserve-label{text-align:right;color:var(--holding-airport-1);font-weight:600;font-size:.8rem;padding:0 8px 4px}
#contingency .comparison-row,#contingency .comparison-axis-row{display:grid;grid-template-columns:minmax(100px,1.15fr) minmax(0,3fr) minmax(90px,1fr);gap:8px;align-items:center}
#contingency .comparison-row{width:100%;min-height:66px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--text);padding:6px 8px;font:inherit;text-align:left;cursor:pointer}
#contingency .comparison-selected{background:var(--blue-soft)}
#contingency .comparison-selected .comparison-select{color:var(--blue)}
#contingency .comparison-row:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
#contingency .comparison-airport{font-size:.875rem;overflow-wrap:anywhere}
#contingency .comparison-airport small,#contingency .comparison-margin small{display:block;font-size:.75rem;color:var(--muted);margin-top:4px}
#contingency .comparison-margin{text-align:right;font-size:.875rem;color:var(--holding-airport-0);font-weight:650}
#contingency .comparison-below{color:var(--red)}
#contingency .comparison-track{position:relative;display:block;height:54px;border-left:1px solid var(--line);background:repeating-linear-gradient(to right,transparent 0,transparent calc(20% - 1px),var(--line) calc(20% - 1px),var(--line) 20%)}
#contingency .comparison-fill{position:absolute;left:0;top:27px;height:16px;background:var(--button-primary-bg)}
#contingency .comparison-value{position:absolute;top:3px;font-size:.875rem;white-space:nowrap}
#contingency .comparison-reserve{position:absolute;top:-7px;bottom:-7px;width:2px;background:var(--holding-airport-1)}
#contingency .comparison-axis-row{padding:0 8px}
#contingency .comparison-axis{position:relative;height:24px;border-top:1px solid var(--line);color:var(--muted)}
#contingency .comparison-axis>span{position:absolute;top:3px;transform:translateX(-50%);font-size:.75rem;line-height:1.2}
#contingency .comparison-axis>span:first-child{transform:none}
#contingency .comparison-axis>span:nth-child(6){transform:translateX(-100%)}
#contingency .comparison-axis>small{position:absolute;top:28px;width:100%;text-align:center;font-size:.75rem}
#contingency .holding-snapshot-footer{display:flex;justify-content:space-between;align-items:start;gap:12px}
#contingency .holding-decision-tools{margin:18px 0 12px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
#contingency .holding-decision-tools h3{margin:0 0 8px}
#contingency .holding-decision-tools .contingency-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
#contingency .holding-details{padding:8px 12px;border:1px solid var(--line);border-radius:12px}
#contingency .holding-snapshot-footer{justify-content:flex-end;margin-top:12px}
#contingency .holding-snapshot-footer>.holding-details{flex:1;min-width:0}
#contingency .holding-snapshot-footer:has(.holding-details[open]){flex-wrap:wrap}
#contingency .holding-snapshot-footer>.holding-details[open]{flex-basis:100%}
#contingency .holding-snapshot-footer>div{text-align:right}
#contingency .holding-snapshot-footer>div{display:flex;width:100%;gap:8px}
#contingency .holding-snapshot-footer>div>.btn{flex:1 1 0;min-width:0}
#contingency .holding-snapshot-footer p{margin:6px 0;font-size:.8rem}
#contingency .holding-snapshot-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
#contingency .holding-snapshot-values dt{font-size:.8rem;color:var(--muted)}
#contingency .holding-snapshot-values dd{margin:4px 0;font-weight:650;overflow-wrap:anywhere}
#contingency .holding-snapshot [data-graph-airport]{pointer-events:none}
@media(max-width:650px){
 #contingency .holding-fields,#contingency .holding-route .holding-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
 #contingency .holding-snapshot-values{grid-template-columns:repeat(2,minmax(0,1fr))}
 #contingency .comparison-row{grid-template-columns:85px minmax(0,1fr);gap:4px 8px;padding:8px 5px;min-height:90px}
 #contingency .comparison-margin{grid-column:2;font-size:.8rem;text-align:left;display:flex;gap:5px;align-items:baseline}
 #contingency .comparison-margin small{display:inline;margin:0}
 #contingency .comparison-axis-row{grid-template-columns:85px minmax(0,1fr);gap:8px;padding:0 5px}
 #contingency .comparison-axis-row>span:last-child{display:none}
 #contingency .comparison-value{font-size:.8rem}
 #contingency .comparison-heading{flex-wrap:wrap}
}

#contingency .holding-line-key{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 20px;margin:8px 0;color:var(--muted);font-size:.85rem}
#contingency .holding-line-key>span{display:inline-flex;align-items:center;gap:7px}
#contingency .holding-line-key svg{width:32px;height:12px}
#contingency .comparison-axis b{font-weight:normal}
#contingency .comparison-axis .axis-short{display:none}
@media(max-width:600px){#contingency .comparison-axis .axis-full{display:none}#contingency .comparison-axis .axis-short{display:inline}}

.app-alert-lane{display:flex;flex-direction:column;gap:6px;max-height:35dvh;overflow-y:auto;overscroll-behavior:contain;pointer-events:auto}
.app-alert-lane:empty,.app-alert-lane[hidden]{display:none}
.app-alert-lane .message{margin:0}
.app-alert-lane>div[hidden]{display:none}

#contingency .comparison-select{border:0;padding:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.btn.compact{min-height:24px;padding:2px 6px;font-size:.875rem;line-height:18px}
#contingency .comparison-airport{line-height:16px}
#contingency .comparison-airport small{line-height:14px;margin-top:0}
#contingency .comparison-airport>.btn{display:block;margin:0;text-align:center}
@media(max-width:650px){#contingency .comparison-airport{grid-row:1 / span 2}}

#contingency .comparison-kind{font-size:.75rem}
#contingency .comparison-row,#contingency .comparison-axis-row{grid-template-columns:minmax(140px,1.15fr) minmax(0,3fr) minmax(90px,1fr)}
@media(max-width:650px){#contingency .comparison-row,#contingency .comparison-axis-row{grid-template-columns:130px minmax(0,1fr)}}
.faa-nas-details .contingency-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.faa-nas-details .contingency-actions .btn{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:44px;padding:9px 8px;text-align:center;white-space:normal}
/* Switching phase content must not make the browser anchor to a removed card. */
#departureView,#arrivalView{overflow-anchor:none}
#arrivalFuelCard .plan-alternate-heading{margin-top:14px;padding:12px 0 0;border-top:1px solid var(--line)}
#arrivalFuelCard .alternate-plan-list{margin:10px calc(-1 * var(--holding-card-inset)) 0}
#arrivalFuelCard .alternate-plan{border-right:0;border-left:0;border-radius:0}
#arrivalFuelCard .alternate-plan-empty{padding-inline:var(--holding-card-inset)}
#arrivalFuelCard .arrival-reserve-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
#arrivalFuelCard .arrival-reserve-row label{min-width:0;font-size:inherit;color:var(--muted)}
#arrivalFuelCard .arrival-reserve-value{display:flex;flex:0 1 180px;align-items:baseline;justify-content:flex-end;gap:5px;min-width:0;white-space:nowrap;color:var(--text);font-size:var(--design-input-size,1.12rem);font-weight:750}
#arrivalFuelCard .arrival-reserve-row input{flex:1 1 auto;width:0;min-width:0;text-align:right;font-weight:750}
#arrivalFuelCard .alternate-fuel{font-size:var(--design-input-size,1.12rem);font-weight:750}
#arrivalFuelCard .plan-alternate-heading{margin-right:-12px;margin-left:-12px;padding-right:12px;padding-left:12px}
#arrivalView #arrivalFuelCard .plan-alternate-heading h2{font-size:1rem;font-weight:700;letter-spacing:normal;line-height:normal}
#arrivalFuelCard .arrival-reserve-row{margin-right:-12px;margin-left:-12px;padding-right:12px;padding-left:12px}
#arrivalFuelCard #contingency .holding-fields{margin-right:-12px;margin-left:-12px}
#arrivalFuelCard #contingency .holding-route{margin-right:-12px;margin-left:-12px;padding-right:12px;padding-left:12px}
#arrivalFuelCard #contingency #holdingRouteTitle{margin-right:calc(-1 * var(--holding-card-inset));margin-left:calc(-1 * var(--holding-card-inset))}
#arrivalFuelCard #contingency .holding-projection{margin-right:-12px;margin-left:-12px;padding-right:12px;padding-left:12px}
#arrivalFuelCard #contingency .holding-projection-times{margin-right:-12px;margin-left:-12px;padding-right:12px;padding-left:12px}
#arrivalFuelCard{--holding-card-inset:12px}
#arrivalFuelCard #contingency .holding-destinations{margin:12px calc(-1 * var(--holding-card-inset)) 2px;padding:0;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0}
#arrivalFuelCard #contingency .holding-comparison-heading{margin:0;padding:12px var(--holding-card-inset) 6px}
#arrivalFuelCard #contingency .comparison-heading{padding-right:var(--holding-card-inset);padding-left:var(--holding-card-inset)}
#arrivalFuelCard #contingency .comparison-reserve-label{padding-right:var(--holding-card-inset);padding-left:var(--holding-card-inset)}
#arrivalFuelCard #contingency .comparison-row,#arrivalFuelCard #contingency .comparison-axis-row{padding-right:var(--holding-card-inset);padding-left:var(--holding-card-inset)}
@media(max-width:420px){#arrivalFuelCard{--holding-card-inset:10px}}
#contingency #holdingSliderControl{margin-top:0}
#arrivalFuelCard #contingency #holdingSliderControl{width:min(744px,calc(100vw - 40px));max-width:none;margin-left:50%;transform:translateX(-50%)}
@media(orientation:landscape) and (min-width:700px){#arrivalFuelCard #contingency #holdingSliderControl{width:calc(100vw - max(12px,env(safe-area-inset-left)) - max(12px,env(safe-area-inset-right)) - 16px)}}
@media(max-width:560px){#arrivalFuelCard #contingency #holdingSliderControl{width:calc(100vw - 22px)}}
#contingency #holdingSliderControl{border-top-left-radius:0;border-top-right-radius:0}

.flight-number-entry{position:relative;display:block;min-width:0}.flight-number-entry .control{padding-left:12px}.flight-number-prefix{position:absolute;left:12px;top:calc(50% + 2.5px);transform:translateY(-50%);font-size:1rem;font-weight:800;color:var(--text);pointer-events:none}

/* Shared airport identifiers. */
:root{--airport-id-color:light-dark(#000000,#E5E4E2)}
.route .code,.alternate-airport,#arrivalSetupAirport,#contingency .comparison-select strong,#contingency .comparison-airport>strong,#contingency .holding-route-airport,#contingency .holding-route-airport[aria-pressed="true"]{color:var(--airport-id-color)}
#contingency .holding-graph .holding-airport-id{fill:var(--airport-id-color)}

/* Shared rhythm for both sides of the flight card. */
#topFlightCard{--flight-row-gap:4px;--flight-row-size:1.08rem}
#topFlightCard .airport-fob,#topFlightCard .airport-time-block,#topFlightCard .plan-time-note,#topFlightCard .confirmed-in-time,#topFlightCard .top-atis-link{margin-top:var(--flight-row-gap)}
#topFlightCard .airport-fob,#topFlightCard .airport-time-block>.label,#topFlightCard .plan-time-note,#topFlightCard .confirmed-in-time,#topFlightCard .top-atis-link{font-size:var(--flight-row-size);font-weight:400;line-height:1.25}

#departureSetupAirport .setup-title-separator,#arrivalSetupAirport .setup-title-separator,#departurePlanAirport .setup-title-separator,#arrivalPlanAirport .setup-title-separator{color:light-dark(#535353,#ffffff)}

#arrivalView #postFlightCard .post-flight-grid{border-bottom:1px solid var(--line);margin-bottom:0}
#postFlightCard .post-flight-accuracy{display:block;padding:8px 0 0}

/* Give every top-card control its own grid cell, including on narrow phones. */
.flight-meta:has(.flight-identity){grid-template-columns:minmax(0,1fr) auto auto;gap:6px}
.flight-meta:has(.flight-identity) .airpl{position:static;left:auto;transform:none;justify-self:center}
.flight-meta:has(.flight-identity) .check-inline{grid-column:auto;white-space:nowrap;justify-self:end}
.flight-meta:has(.flight-identity) .flight-identity{min-width:0;white-space:normal;flex-wrap:wrap}
.notification-choice-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.notification-choice-actions .btn{min-width:100px}
@media(max-width:370px){.flight-meta:has(.flight-identity){grid-template-columns:minmax(0,1fr) auto}.flight-meta:has(.flight-identity) .check-inline{grid-column:1/-1;justify-self:end}}

/* Symmetric outer tracks hold the aircraft chip on the card centerline. */
.flight-meta:has(.flight-identity){grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
.flight-meta:has(.flight-identity) .airpl{grid-column:2;justify-self:center}
.flight-meta:has(.flight-identity) .check-inline{grid-column:3;justify-self:end}
.flight-meta:has(.flight-identity) .flight-identity{grid-column:1}
.flight-identity #flightHeading,.flight-identity .flight-date-short{text-decoration:none}
@media(max-width:370px){.flight-meta:has(.flight-identity){grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.flight-meta:has(.flight-identity) .check-inline{grid-column:1/-1;justify-self:end}}

/* Place the single link underline immediately below its text, inside the full-size tap target. */
.flight-identity-text{display:inline-flex;align-items:baseline;gap:7px;border-bottom:1px solid var(--blue);padding-bottom:1px;max-width:100%;flex-wrap:wrap}
@media(max-width:560px){.flight-identity-text{gap:4px}}

.pilot-notes-dialog{touch-action:auto}.pilot-notes-dialog .dialog-head{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:5px;padding:10px}.pilot-notes-dialog .floating-move-handle{font-size:1rem}.pilot-notes-dialog .pilot-notes-mode{grid-column:2;flex:none;align-self:center;justify-self:center;margin:0}.pilot-notes-dialog .pilot-notes-drag-space{grid-column:3;grid-row:1;align-self:stretch;cursor:move;touch-action:none}.pilot-notes-dialog .dialog-head>.close{grid-column:3;grid-row:1;justify-self:end;z-index:1}.pilot-notes-body textarea{touch-action:auto;user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}

/* The flight identity stays inside the card; its compact copy appears only during scroll. */
#topFlightCard{margin-top:6px}
#topFlightCard .flight-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:7px;margin-bottom:12px;white-space:normal}
#topFlightCard .flight-identity{grid-column:1;align-self:start;min-width:0;padding:2px 0}
#topFlightCard .flight-identity-text{display:inline-flex;align-items:baseline;gap:7px;flex-wrap:nowrap;white-space:nowrap;max-width:none}
#topFlightCard #flightHeading{color:light-dark(#205999,#7db7ff);font-size:1.667rem;font-weight:700}
#topFlightCard .flight-date-short{color:var(--text);font-size:.9rem;font-weight:650}
#topFlightCard .flight-meta>.top-phase-timer{grid-column:2;justify-self:end;align-self:start;margin-top:2px}
.top-phase-timer{flex:none}.top-phase-timer .t-counter{margin:0}
#topFlightCard .top-card-footer{display:block;margin-top:12px}
#topFlightCard .top-card-status,#topFlightCard .top-card-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));justify-items:center;align-items:center;gap:0}
#topFlightCard .top-card-status .check-inline{grid-column:1;justify-self:start;white-space:nowrap}
#topFlightCard .top-card-status .airpl{grid-column:2;position:static;left:auto;transform:none}
#topFlightCard .top-card-links{padding-top:13px}
#topFlightCard .top-card-links>.flight-details-trigger{grid-column:1;justify-self:start}
#topFlightCard .top-flight-link-slot{grid-column:2;display:flex;align-items:center;justify-content:center;min-width:0}
#topFlightCard .top-card-links>#openPilotNotes{grid-column:3;justify-self:end}
#topFlightCard .top-card-links .pilot-notes-trigger{min-height:42px;padding:10px 0;font:inherit;font-size:1rem;font-weight:650;white-space:nowrap}
#topFlightCard .flight-details-close{padding-left:0;font-size:1.1rem}
#departureBriefCard>.pilot-notes-trigger,#postFlightCard>.pilot-notes-trigger{font-size:1.1rem}
/* Sticky surfaces must receive taps across their full painted area. */
:is(.topbar,.tabs,.flight-sticky-bar,#contingency #holdingSliderControl,#tpsDialog .tps-sticky-source,.design-panel-head,.design-actions){pointer-events:auto;isolation:isolate}
.flight-sticky-bar{position:fixed;z-index:48;top:calc(env(safe-area-inset-top) + var(--topbar-height,60px) - 1px);left:50%;display:flex;align-items:center;justify-content:space-between;gap:5px;width:min(744px,calc(100vw - 40px));min-height:50px;padding:5px 12px;border:1px solid var(--line);border-radius:0;background:var(--card);box-shadow:0 5px 14px #07153612;opacity:0;visibility:hidden;pointer-events:none;transform:translateX(-50%)}
.flight-sticky-bar.visible{opacity:1;visibility:visible}
.flight-sticky-bar.visible{pointer-events:auto}
.flight-sticky-bar .flight-identity{padding:0;min-height:40px;min-width:0}
.flight-sticky-bar #stickyFlightLink{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:2px}
.flight-sticky-bar .sticky-flight-route{color:var(--muted);font-size:.9rem;line-height:1.1;white-space:nowrap}
.flight-sticky-bar .top-phase-timer{align-self:flex-start}
.flight-sticky-bar .flight-identity-text{display:inline-flex;align-items:baseline;gap:8px;border-bottom:1px solid var(--blue);white-space:nowrap}
.flight-sticky-bar [data-field="flightNumber"]{color:light-dark(#205999,#7db7ff);font-size:1.667rem;font-weight:700}
.flight-sticky-bar .flight-date-short{color:var(--text);font-size:.9rem;font-weight:650}
@media(orientation:landscape) and (min-width:700px){.flight-sticky-bar{width:calc(100vw - max(12px,env(safe-area-inset-left)) - max(12px,env(safe-area-inset-right)) - 16px)}}
.card[id]{scroll-margin-top:calc(var(--topbar-height,60px) + var(--flight-sticky-visible-height,0px) + 60px)}
@media(max-width:560px){#topFlightCard #flightHeading,.flight-sticky-bar [data-field="flightNumber"]{font-size:1.5rem}.flight-sticky-bar{width:calc(100vw - 22px);min-height:47px;padding:5px 8px}.flight-sticky-bar .flight-identity-text{gap:5px}#topFlightCard .flight-identity-text{gap:5px}}
@media(max-width:350px){#topFlightCard .flight-meta{gap:3px}.flight-sticky-bar{flex-wrap:wrap;justify-content:flex-end;padding-left:5px;padding-right:5px}.flight-sticky-bar .flight-identity-text{order:2;width:100%;gap:3px}.flight-sticky-bar .top-phase-timer{order:1}}
@media(max-width:350px){#topFlightCard .flight-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;row-gap:2px}#topFlightCard .flight-identity{order:2;width:100%}#topFlightCard .flight-meta>.top-phase-timer{order:1}}

#techOpsHubLink.aircraft-registration{border:0;background:transparent;padding:0;border-radius:0;color:var(--text);cursor:default;text-decoration:none}

#flightValidationDialog[open]{display:flex;flex-direction:column;overflow:hidden;max-height:calc(100dvh - 34px)}
#flightValidationDialog .dialog-head,#flightValidationDialog .dialog-actions{flex:0 0 auto}
#flightValidationDialog .dialog-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
#flightValidationDialog .source-conflict:first-child{padding-top:0}
#flightValidationDialog .dialog-actions{padding:16px;border-top:1px solid var(--line)}
#validationDataServices{font-size:1rem}

/* Keep trip review and native file/date controls inside the phone viewport. */
.trip-import-body,.trip-import-body>* ,#tripReview,#tripLegReview,.trip-file,.trip-leg,.trip-leg-grid label{min-width:0;max-width:100%;box-sizing:border-box}
.trip-file,.trip-leg{background:var(--blue-soft)}
.trip-file span{flex-wrap:wrap}.trip-file input[type=file]{width:100%;min-width:0;max-width:100%}
.trip-leg-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.trip-leg-grid input{box-sizing:border-box;min-inline-size:0;max-inline-size:100%}
.trip-leg-grid input[type=date]{display:block;appearance:none;-webkit-appearance:none}
.trip-leg-grid input[type=date]::-webkit-date-and-time-value{text-align:left}
@media(max-width:560px){.trip-leg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trip-leg-grid label:first-child{grid-column:1/-1}}
#topFlightCard .top-card-status .plane{grid-column:2;grid-row:1;margin:0;line-height:0}
#topFlightCard .top-card-status .airpl,#topFlightCard .top-card-status .check-inline{grid-row:2}
#flightFilesList{display:grid;gap:10px}#flightFilesList .btn{white-space:normal;overflow-wrap:anywhere;text-align:left}
#importStartNewFlight{margin-top:12px}

/* Plain trip information, with one blue outer card and editable values. */
.trip-leg-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}
.trip-leg-grid label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px;min-height:44px;color:var(--text);font-size:1rem;font-weight:400}
.trip-leg-grid label:first-child,.trip-leg-grid label:nth-child(2){grid-column:1/-1}
.trip-leg-grid input{border:0;border-radius:0;background:transparent;padding:6px 0;font-size:1rem;font-weight:400;box-shadow:none}
.trip-leg-grid input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.trip-leg-meta{font-size:1rem;font-weight:400}

/* Trip schedule uses the existing blue cards and airport-local values. */
.trip-day-heading{margin:10px 0 0;padding:10px 12px;border-radius:8px;background:var(--soft);color:var(--text);font-size:1rem;font-weight:650}
.trip-timeline-flight{position:relative;margin-left:12px;border-left:3px solid var(--blue)}
.trip-timeline-flight::before{content:'';position:absolute;left:-14px;top:0;bottom:-12px;border-left:1px solid var(--line);pointer-events:none}
.trip-flight-heading{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:var(--blue)}
.trip-flight-number{display:flex;align-items:center;gap:6px;font-size:1.08rem;font-weight:650;min-height:44px}
.trip-timeline-flight input{box-sizing:border-box;min-width:0;max-width:100%;border:0;border-radius:0;padding:6px 0;background:transparent;color:inherit;font:inherit;box-shadow:none}
.trip-timeline-flight input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.trip-flight-number input{width:7ch}.trip-deadhead-label{font-size:1rem;font-weight:400}
.trip-flight-date{display:flex;align-items:center;gap:8px;min-height:44px;color:var(--muted);font-size:1rem}
.trip-flight-date input{flex:1;width:100%;appearance:none;-webkit-appearance:none}
.trip-airport-row{display:grid;grid-template-columns:5ch auto minmax(0,1fr);justify-content:start;align-items:center;gap:8px;min-height:44px;font-size:1.08rem;color:var(--text)}
.trip-airport-row+.trip-airport-row{border-top:1px solid var(--line);margin-top:6px;padding-top:6px}
.trip-airport-row input[data-key=departure],.trip-airport-row input[data-key=arrival]{font-weight:650}
.trip-timeline-flight>label:not(.trip-flight-date){display:grid;gap:6px;min-width:0}
.trip-timeline-flight select{width:100%;max-width:100%;min-width:0}
#topFlightCard .top-card-label{font-size:calc(var(--flight-row-size) - .1rem)}
#topFlightCard .route-plan-stack{font-size:var(--flight-row-size)}
/* The single center column accommodates the shared number size on phones. */
#topFlightCard .route-center.actuals-hidden{width:80px;max-width:80px}
#topFlightCard .route-center.actuals-hidden .route-comparison-head,#topFlightCard .route-center.actuals-hidden .route-plan-item{grid-template-columns:76px}

/* Center comparison headings at the pilot-requested size. */
#topFlightCard .route-comparison-head{font-size:1.3rem;letter-spacing:0}

/* Compact top-card labels and distance units, independent of numeric values. */
#topFlightCard .top-card-label,#topFlightCard .top-card-unit{font-size:.8rem}

/* Match the two center comparison headings at the requested size. */


/* Center titles share one size in every flight state, regardless of text. */
#topFlightCard{--center-title-size:1.1rem}
#topFlightCard .route-center .route-schedule-head,#topFlightCard .route-center .route-comparison-head{font-size:var(--center-title-size)}
#topFlightCard .route-center .route-schedule-head *,#topFlightCard .route-center .route-comparison-head *{font-size:inherit}

/* Compact editable schedule: flight/date, then both airport-local endpoints. */
.trip-flight-heading{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 8px}
.trip-flight-number input{width:5ch}
.trip-flight-heading .trip-flight-date{min-width:0;justify-content:flex-end;font-size:.9rem}
.trip-flight-heading .trip-flight-date input{width:100%;min-width:0;text-align:right}
.trip-flight-heading .trip-deadhead-label{grid-column:1/-1}
.trip-route-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.trip-route-row .trip-airport-row{grid-template-columns:4ch auto minmax(0,1fr);gap:4px;font-size:1rem}
.trip-route-row .trip-airport-row+.trip-airport-row{border:0;margin:0;padding:0}
.trip-timeline-flight .trip-leg-meta{margin:4px 0;font-size:.9rem}

/* Imported trip schedule is plain read-only text; only reminders are editable. */
.trip-flight-number [data-key=flightNumber]{min-width:5ch}
.trip-flight-heading .trip-flight-date{font-size:.9rem;text-align:right}
.trip-route-row [data-key=departure],.trip-route-row [data-key=arrival]{font-weight:650}

.trip-flight-number{flex-wrap:wrap;gap:6px}
.trip-flight-number .trip-deadhead-label{font-size:.9rem}
.dhd-reminder-editor p{margin:8px 0;font-size:1rem}
.dhd-reminder-editor .holding-slider-control{margin:10px 0 4px;padding:8px 10px 3px;border:1px solid var(--line);border-radius:10px;background:var(--card);box-shadow:0 5px 12px #0715361c}
.dhd-reminder-editor .holding-range-label{display:grid;gap:0;line-height:1.15;position:relative;min-width:0}
.dhd-reminder-editor input[type=range]{width:100%;min-width:0;box-sizing:border-box}

.dhd-picker-row{display:flex;align-items:center;gap:8px;min-width:0}
.dhd-picker-row [data-reminder-set]{flex:none;font-size:1rem}
.dhd-picker-row [data-reminder-local]{flex:1;min-width:0;width:0}

.trip-import-status{text-align:right;margin:0 0 12px;font-size:1rem;overflow-wrap:anywhere}
.trip-import-status:empty{display:none}
.trip-import-status.status-good{color:var(--green)}
.trip-import-status.status-bad{color:var(--red)}

/* Estimated departure retains the scheduled clock geometry. */
.top-card-label.departure-delayed{color:var(--red)}

.flight-sticky-bar .sticky-flight-route .sticky-time-delayed{color:var(--red)}

/* Heading airport IDs share their heading typography and text color. */
#departureSetupAirport{font:inherit;letter-spacing:inherit;color:inherit}

/* Foreground work stays centered in the visible viewport without moving the page. */
#airpalWorkingIndicator{position:fixed;inset:auto;left:var(--working-x,50vw);top:var(--working-y,50dvh);transform:translate(-50%,-50%);margin:0;padding:14px;width:auto;height:auto;border:1px solid light-dark(#d5dee8,#304052);border-radius:14px;background:light-dark(#ffffff,#172331);color:#0088ff;box-shadow:0 6px 24px #0003;z-index:2147483647;pointer-events:none;overflow:visible}
#airpalWorkingIndicator[hidden]{display:none!important}
#airpalWorkingIndicator[data-working-visible="true"]{display:grid;place-items:center}
#airpalWorkingIndicator::backdrop{background:transparent;pointer-events:none}
.airpal-working-ring{display:block;width:28px;height:28px;border:3px solid light-dark(#d5dee8,#304052);border-top-color:#0088ff;border-right-color:#0088ff;border-radius:50%;animation:airpal-working-spin .8s linear infinite}
@keyframes airpal-working-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.airpal-working-ring{animation:none}}
#airpalWorkingIndicator .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

#airpalWorkingIndicator .airpal-working-label{margin-top:8px;font-size:.875rem;line-height:1.25;color:var(--text);white-space:nowrap}

/* Hidden fallback cells must not leave partial lines beneath the header. */
#arrivalView #postFlightCard .post-flight-grid>.performance-field:nth-child(n){border:0}

/* Flight-plan routes compare on separate full-width lines. */
#releaseChangeBody .release-route-title,#releaseChangeBody .release-route-comparison{grid-column:1 / -1}
.release-route-comparison{display:grid;gap:10px}.release-route-line{min-width:0;overflow-wrap:anywhere}.release-route-line small{display:block;margin-bottom:3px}.release-route-line mark{color:inherit;background:var(--blue-soft);font-weight:750;border-radius:3px;padding:0 2px}.release-route-line .route-removed{text-decoration:line-through;text-decoration-color:var(--red)}.release-route-line .route-added{text-decoration:underline;text-decoration-color:var(--blue);text-underline-offset:3px}
