:root{--bg:#edf2f7;--panel:#fff;--line:#d8e1ec;--text:#17263a;--muted:#6b7f97;--blue:#087fac;--blue2:#10acd7;--green:#2c9a61;--amber:#d98718;--red:#c94a4a;--shadow:0 8px 28px rgba(26,48,75,.09)}
*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:"Microsoft YaHei UI","Segoe UI",sans-serif;background:var(--bg);color:var(--text)}button,input{font:inherit}button{border:0;border-radius:8px;cursor:pointer;background:var(--blue);color:#fff;font-weight:700;padding:9px 14px}button:hover{filter:brightness(.97)}
.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 12px rgba(22,43,68,.05);position:relative;z-index:20}.simulation-only-warning{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:610px;padding:7px 16px;border:1px solid #ef9a9a;border-radius:8px;background:#fff4f4;color:#bd2f2f;font-size:13px;font-weight:900;letter-spacing:.03em;text-align:center;white-space:nowrap;box-shadow:0 2px 10px rgba(184,46,46,.08)}.brand{font-size:22px;font-weight:900;letter-spacing:.2px}.brand span{font-size:16px;font-weight:650;color:#56708c;margin-left:7px}.cycle{font-size:12px;color:var(--muted);margin-top:4px}.top-actions{display:flex;gap:8px;align-items:center}.ghost{background:#f3f6fa;color:#29445f;border:1px solid #cfdae7}.status-chip{font-size:12px;padding:6px 10px;border:1px solid;border-radius:99px;font-weight:700}.status-chip.pending{background:#fff8e7;border-color:#ecd59b;color:#8b6816}.status-chip.ok{background:#eaf7ee;border-color:#b8dec7;color:#247044}.status-chip.error{background:#fff0f0;border-color:#ecc1c1;color:#a43c3c}
.layout{height:calc(100% - 72px);display:grid;grid-template-columns:350px minmax(0,1fr)}.sidebar{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;overflow:hidden}.planner{padding:20px;border-bottom:1px solid var(--line);position:relative}.section-kicker{font-size:11px;letter-spacing:1.4px;color:#8293a7;font-weight:900;margin-bottom:16px}.planner label{display:block;font-size:12px;color:var(--muted);font-weight:800;margin:7px 0}.airport-input-wrap{display:grid;grid-template-columns:100px 1fr;align-items:center;border:1px solid #cbd8e6;border-radius:10px;background:#f8fafc;overflow:hidden}.airport-input-wrap:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(8,127,172,.1)}.airport-input-wrap input{width:100%;border:0;outline:0;background:transparent;padding:12px;font-size:24px;font-weight:900;letter-spacing:2px;color:#17334d;text-transform:uppercase}.airport-input-wrap input::placeholder{color:#a8b5c2;font-weight:700;letter-spacing:1px}.airport-name{font-size:13px;color:#61768d;padding:0 10px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.swap{display:block;margin:8px auto -2px;background:#eef4f8;color:#55718b;border:1px solid #d8e3ed;padding:4px 12px;border-radius:99px}.big{width:100%;margin-top:16px;padding:12px}.priority-note{margin-top:14px;padding:11px 12px;border-radius:9px;background:#f4f8fb;color:#61758a;font-size:12px;line-height:1.65;border-left:3px solid var(--blue2)}
.route-list-section{display:flex;flex-direction:column;min-height:110px;flex:1 1 180px;overflow:hidden}.list-head{height:46px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:13px;font-weight:800}.list-head b{background:#e8eef5;color:#506980;border-radius:99px;min-width:25px;text-align:center;padding:2px 7px}.route-list{padding:10px;overflow-y:auto;overflow-x:hidden;flex:1 1 auto;min-height:0;overscroll-behavior:contain;scrollbar-gutter:stable}.route-option{display:block;width:100%;text-align:left;background:#f6f8fb;color:#20384f;border:1px solid transparent;padding:12px;margin-bottom:8px;border-radius:10px}.route-option:hover{border-color:#b8cada}.route-option.active{background:#eaf6fb;border-color:#51acce;box-shadow:inset 3px 0 0 var(--blue)}.route-option.reference{background:#fff8eb}.route-option.reference.active{border-color:#e2a34c;box-shadow:inset 3px 0 0 var(--amber)}.option-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.option-label{font-size:15px;font-weight:900}.route-kind{font-size:10px;padding:3px 7px;border-radius:99px;background:#e2f3e9;color:#28734c}.route-option.reference .route-kind{background:#fff0d3;color:#996214}.option-route{font-family:Consolas,monospace;font-size:11px;line-height:1.5;color:#63788c;margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.empty-mini{padding:20px;text-align:center;color:#8a9aac;font-size:12px}
.workspace{min-width:0;overflow:auto;padding:16px}.summary-card{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--line);border-radius:11px;padding:14px 16px;box-shadow:var(--shadow);margin-bottom:10px}.route-title{font-size:19px;font-weight:900}.route-subtitle{font-size:12px;color:var(--muted);margin-top:4px}.source-badge{padding:6px 10px;border-radius:99px;font-size:12px;font-weight:900}.source-badge.neutral{background:#edf2f6;color:#6c8196}.source-badge.reality{background:#e6f6ec;color:#28764c}.source-badge.reference{background:#fff0d2;color:#9a641a}.reference-warning{margin-bottom:10px;border:1px solid #edc476;background:#fff7e7;color:#7e5819;border-radius:10px;padding:10px 13px;font-size:12px}.hidden{display:none!important}
.map-card{background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);overflow:hidden}.map-toolbar{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid var(--line)}.mode-switch{display:flex;gap:4px}.mode-btn{background:#f1f5f8;color:#536b83;padding:7px 11px;font-size:12px}.mode-btn.active{background:#dff2f9;color:#087aa6}.legend{display:flex;gap:14px;color:#71859a;font-size:11px}.legend span{display:flex;align-items:center;gap:5px}.line{width:22px;height:3px;border-radius:3px;display:inline-block}.line.reality{background:#0b8ab8}.line.reference{background:#dc8a1e}.map-viewport{height:500px;position:relative;background:#eef3f6}.amap-container,#fallbackSvg{position:absolute;inset:0;width:100%;height:100%}#fallbackSvg{background:#f7fafc}.empty-state{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;color:#7a8fa4;pointer-events:none}.empty-state strong{font-size:20px;color:#4e667f}.map-banner{position:absolute;left:50%;top:12px;transform:translateX(-50%);background:rgba(28,44,60,.9);color:#fff;padding:7px 11px;border-radius:8px;font-size:11px;z-index:4}
.content-grid{display:grid;grid-template-columns:minmax(310px,.72fr) minmax(520px,1.28fr);gap:12px;margin-top:12px}.detail-card{background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);min-width:0}.route-string-card{padding:15px}.card-title,.card-title-row{font-size:14px;font-weight:900}.card-title-row{display:flex;justify-content:space-between;align-items:center}.small{padding:5px 9px;font-size:11px}.route-string{margin-top:12px;padding:13px;background:#152c40;color:#e9f7ff;border-radius:8px;font:13px/1.7 Consolas,monospace;word-break:break-word;min-height:72px}.source-description{font-size:12px;color:#63778c;line-height:1.7;margin-top:10px}.meta-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.meta-pill{font-size:11px;padding:4px 7px;border-radius:6px;background:#eef3f7;color:#526a80}.notes{font-size:11px;color:#9b6c26;line-height:1.6;margin-top:9px}.legs-card .card-title{height:46px;display:flex;align-items:center;padding:0 14px;border-bottom:1px solid var(--line)}.table-wrap{overflow:auto;max-height:320px}table{width:100%;border-collapse:collapse;font-size:12px}th{position:sticky;top:0;background:#f6f9fb;color:#6e8296;text-align:left;padding:9px;border-bottom:1px solid var(--line);z-index:2}td{padding:9px;border-bottom:1px solid #edf1f5;color:#344d65}td strong{color:#17354e}.muted-cell{text-align:center;color:#8798a8;padding:22px}
.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center}.modal-backdrop{position:absolute;inset:0;background:rgba(18,30,43,.5)}.modal-card{position:relative;width:min(520px,calc(100% - 30px));background:#fff;border-radius:13px;box-shadow:0 25px 70px rgba(0,0,0,.25)}.modal-head{display:flex;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:18px}.modal-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.icon-btn{background:transparent;color:#6a7d90;font-size:25px;padding:0 5px}.modal-body{padding:18px 20px}.modal-body label{display:block;font-size:12px;font-weight:800;color:#5d7185;margin-bottom:13px}.modal-body input[type=text],.modal-body input[type=password],.modal-body label>input:not([type=checkbox]){display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #cbd8e6;border-radius:8px;outline:none}.check-row{display:flex!important;gap:7px;align-items:center;font-weight:600!important}.privacy-note{background:#f5f8fa;padding:10px;border-radius:8px;color:#6f8294;font-size:11px;line-height:1.6}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:13px 20px;border-top:1px solid var(--line)}.secondary{background:#eef3f6;color:#526b82}.toast{position:fixed;right:18px;bottom:18px;background:#23384b;color:#fff;padding:9px 12px;border-radius:8px;font-size:12px;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none;z-index:200}.toast.show{opacity:1;transform:none}.toast.error{background:#a73f3f}
@media(max-width:980px){.layout{grid-template-columns:300px minmax(0,1fr)}.content-grid{grid-template-columns:1fr}.map-viewport{height:430px}.legend{display:none}}@media(max-width:760px){.topbar{height:auto;min-height:72px;padding:12px 14px}.top-actions .ghost{display:none}.cycle{max-width:360px}.layout{height:auto;display:block}.sidebar{border-right:0}.workspace{padding:10px}.map-viewport{height:390px}.content-grid{display:block}.detail-card{margin-bottom:10px}}

/* HYbrief v0.2 terminal procedure planning */
.terminal-picker{margin-top:10px;padding:10px;border:1px solid #d6e1eb;border-radius:10px;background:#fbfcfe}.terminal-picker.dep-picker{box-shadow:inset 3px 0 0 #7657d6}.terminal-picker.arr-picker{box-shadow:inset 3px 0 0 #2d9b63}.terminal-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;font-size:12px;font-weight:900;color:#405b73}.terminal-title b{font-size:9px;letter-spacing:.8px;padding:2px 6px;border-radius:99px;background:#eef2f7;color:#657d94}.picker-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:7px}.terminal-picker label{margin:0!important;font-size:10px!important;color:#75879a!important}.terminal-picker select{display:block;width:100%;margin-top:4px;border:1px solid #ccd8e4;background:#fff;color:#263e55;border-radius:7px;padding:7px 8px;font-size:11px;font-weight:700;outline:0}.terminal-picker select:focus{border-color:#2b95bd;box-shadow:0 0 0 2px rgba(43,149,189,.09)}.terminal-picker select:disabled{background:#f1f4f7;color:#9aa7b3}.transition-row{display:block!important;margin-top:7px!important}.link-status{margin-top:7px;padding:6px 7px;border-radius:7px;font-size:10px;line-height:1.4}.muted-link{background:#f2f5f8;color:#7b8c9d}.link-ok{background:#eaf7ef;color:#2a754b}.link-warn{background:#fff5df;color:#9a671e}.link-info{background:#edf5fb;color:#3e6683}.line.sid{background:#7657d6}.line.star{background:#2d9b63}.line.connector{height:2px;background:repeating-linear-gradient(90deg,#8b99a7 0,#8b99a7 6px,transparent 6px,transparent 10px)}
.procedure-pill{font-size:11px;padding:4px 7px;border-radius:6px;font-weight:800}.procedure-pill.sid{background:#eeeafd;color:#6045bc}.procedure-pill.star{background:#e9f6ee;color:#28764c}.procedure-pill.runway{background:#eaf2f8;color:#47647e}.procedure-note{margin-top:7px;font-size:10px;color:#72869a;line-height:1.45}
@media(max-width:980px){.picker-grid{grid-template-columns:1fr}.terminal-picker{padding:8px}}

/* HYbrief v0.2.2 approach planning */
.app-picker-row{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:7px}.app-picker-row label{margin:0!important}.line.app{background:#c45a86}.procedure-pill.app{background:#f9eaf1;color:#9a3f67}.app-picker-row select{width:100%}.app-picker-row label.hidden{display:none!important}@media(max-width:980px){.app-picker-row{grid-template-columns:1fr}}

/* HYbrief v0.2.4 constraints + VATSIM */
.status-chip.neutral-vat{background:#f2f5f8;border-color:#d5dee8;color:#62778b}.status-chip.vat-online{background:#fff0f1;border-color:#f0b8bd;color:#b52e39}.status-chip.vat-offline{background:#f5f6f8;border-color:#d8dee5;color:#7d8b99}
.restricted-row{background:linear-gradient(90deg,rgba(255,243,231,.7),rgba(255,255,255,0) 56%)}.restricted-row td:first-child{box-shadow:inset 3px 0 0 #e55a42}.restriction-stack{display:flex;flex-wrap:wrap;gap:4px}.restriction-stack.map{margin-top:3px;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.constraint-chip{display:inline-flex;align-items:center;white-space:nowrap;border-radius:5px;padding:2px 5px;font-size:10px;font-weight:900;line-height:1.35;border:1px solid}.constraint-chip.alt{background:#fff0e8;color:#b7442f;border-color:#f0b6a8}.constraint-chip.spd{background:#fff7dd;color:#986514;border-color:#ebd18b}.restriction-stack.map .constraint-chip{box-shadow:0 1px 4px rgba(0,0,0,.16);font-size:9px;padding:1px 4px}.no-restriction{color:#9aa8b5}
.map-fix{position:relative;display:flex;flex-direction:column;align-items:flex-start;pointer-events:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.12))}.fix-ident{min-width:20px;padding:2px 5px;border-radius:11px;background:#fff;color:#244159;border:2px solid var(--seg);font:800 9px 'Segoe UI';white-space:nowrap}.fix-ident.endpoint{padding:4px 7px;min-width:36px;background:#163d57;color:#fff;font-size:11px}.map-fix.constrained .fix-ident{border-color:#d94343;box-shadow:0 0 0 2px rgba(217,67,67,.12)}
.vatsim-card{width:min(480px,calc(100% - 30px))}.vatsim-detail{margin-top:8px;background:#f8fafc;border:1px solid #dbe4ed;border-radius:9px;padding:11px;color:#61768b;font-size:11px;line-height:1.6}.vat-detail-grid{display:grid;grid-template-columns:58px 1fr;gap:5px 10px;align-items:center}.vat-detail-grid span{color:#7f90a2}.vat-detail-grid strong{color:#263f57}.vatsim-aircraft-marker{position:relative;display:flex;align-items:center;gap:6px;transform:translate(0,-1px);filter:drop-shadow(0 2px 4px rgba(0,0,0,.25))}.vatsim-arrow{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e33d45;color:#fff;border:2px solid #fff;font-size:14px;line-height:1;transform-origin:center}.vatsim-label{display:flex;flex-direction:column;background:rgba(255,255,255,.96);border:1px solid #efb1b6;border-radius:7px;padding:3px 6px;white-space:nowrap}.vatsim-label strong{font-size:10px;color:#ad2832}.vatsim-label span{font-size:9px;color:#6f7f8e;margin-top:1px}
.sim-aircraft-marker{position:relative;display:flex;align-items:center;gap:6px;transform:translate(0,-1px);filter:drop-shadow(0 2px 4px rgba(0,0,0,.25))}.sim-aircraft-arrow{width:27px;height:27px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e33d45;color:#fff;border:2px solid #fff;font-size:14px;line-height:1;transform-origin:center}.sim-aircraft-label{display:flex;flex-direction:column;background:rgba(255,255,255,.97);border:1px solid #efb1b6;border-radius:7px;padding:3px 6px;white-space:nowrap}.sim-aircraft-label strong{font-size:10px;color:#ad2832}.sim-aircraft-label span{font-size:9px;color:#6f7f8e;margin-top:1px}
@media(max-width:1100px){.top-actions #simOwnshipStatus{display:none}.top-actions #simOwnshipFollowBtn{display:none!important}}

/* HYbrief v0.2.4 left planner / route list scrolling fix
   The complete left column owns the scrollbar. This avoids the terminal planner
   consuming the viewport and permanently clipping the route choices below it. */
.sidebar{
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  scrollbar-width:thin;
}
.sidebar::-webkit-scrollbar{width:9px}
.sidebar::-webkit-scrollbar-thumb{background:#c5d1dc;border-radius:99px;border:2px solid #fff}
.sidebar::-webkit-scrollbar-track{background:#fff}
.planner{flex:0 0 auto}
.route-list-section{
  flex:0 0 auto;
  min-height:280px;
  overflow:visible;
  background:#fff;
}
.list-head{
  position:sticky;
  top:0;
  z-index:8;
  background:#fff;
}
.route-list{
  flex:0 0 auto;
  min-height:220px;
  overflow:visible;
  padding-bottom:24px;
}
@media(max-width:760px){
  .sidebar{overflow:visible}
  .route-list-section{min-height:240px}
}

/* HYbrief v0.2.5 VATSIM Traffic layer */
.status-chip.vat-traffic{background:#eaf4ff;border-color:#b8d5ef;color:#28658f}
.traffic-switch{margin-top:4px!important;padding-top:10px;border-top:1px dashed #d7e0e8}
.traffic-detail{margin:7px 0 9px;background:#edf6ff;border:1px solid #cfe2f3;border-radius:9px;padding:9px 10px;color:#496d8b;font-size:10px;line-height:1.55}.traffic-detail strong{color:#1f587f}
.traffic-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#3a83bd;border:1px solid #fff;box-shadow:0 0 0 1px #3a83bd}
.vatsim-traffic-marker{display:flex;align-items:center;gap:4px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.22));cursor:pointer}.traffic-arrow{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#397fb7;color:#fff;border:1.5px solid #fff;font-size:9px;transform-origin:center}.traffic-callsign{display:flex;flex-direction:column;background:rgba(255,255,255,.94);border:1px solid #a9c8df;border-radius:5px;padding:2px 4px;white-space:nowrap;max-width:112px}.traffic-callsign strong{font-size:9px;color:#245d88;line-height:1.15}.traffic-callsign span{font-size:7.5px;color:#6b7f90;line-height:1.15;margin-top:1px;overflow:hidden;text-overflow:ellipsis}
.traffic-popup{min-width:230px;max-width:340px;background:#fff;border:1px solid #c7d8e6;border-radius:9px;box-shadow:0 8px 30px rgba(17,42,65,.22);padding:11px 12px}.traffic-popup-title{font-size:14px;font-weight:900;color:#235b85;margin-bottom:8px}.traffic-popup-grid{display:grid;grid-template-columns:48px 1fr;gap:4px 9px;font-size:10px}.traffic-popup-grid span{color:#8292a1}.traffic-popup-grid strong{color:#314d64;word-break:break-word}.traffic-route{margin-top:8px;padding-top:7px;border-top:1px solid #e5edf3;color:#677c90;font:9px/1.5 Consolas,monospace;max-height:72px;overflow:auto;word-break:break-word}

/* HYbrief v0.3.0 local chart viewer */
.chart-call-btn{width:100%;margin-top:7px;padding:7px 9px;border:1px solid #c9d9e8;border-radius:7px;background:#f4f8fc;color:#2f607f;font-size:10px;font-weight:900;letter-spacing:.2px}.chart-call-btn:hover{background:#eaf3fb;border-color:#a9c8df}.chart-call-btn.hidden{display:none!important}
.chart-modal{z-index:140}.chart-card{width:min(1180px,calc(100% - 28px));height:min(88vh,900px);display:flex;flex-direction:column;overflow:hidden}.chart-head{flex:0 0 auto}.chart-head-actions{display:flex;align-items:center;gap:8px}.chart-frame-wrap{flex:1;min-height:0;background:#eef2f5}.chart-frame-wrap iframe{display:block;width:100%;height:100%;border:0;background:#fff}.chart-card .modal-head p{max-width:760px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:760px){.chart-card{width:calc(100% - 12px);height:94vh}.chart-head-actions .ghost{display:none}}

/* HYbrief v0.4.1 Dispatch first page */
.app-page{min-height:calc(100% - 72px)}
.planner-page{height:calc(100% - 72px)}
.planner-page .layout{height:100%}
.page-steps{display:flex;align-items:center;gap:6px;padding:3px;background:#f1f5f8;border:1px solid #d8e2eb;border-radius:10px}
.page-step{display:flex;align-items:center;gap:6px;background:transparent;color:#6a7e91;border:0;padding:7px 10px;font-size:11px;border-radius:7px}
.page-step span{display:inline-grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#dce5ed;color:#60768a;font-size:10px}
.page-step.active{background:#fff;color:#1f526f;box-shadow:0 2px 8px rgba(31,71,98,.08)}
.page-step.active span{background:#0b86b2;color:#fff}
.planner-top-actions{display:flex;align-items:center;gap:8px}
.dispatch-page{height:calc(100% - 72px);overflow:auto;background:linear-gradient(180deg,#edf3f8 0,#f5f7fa 100%)}
.dispatch-shell{width:min(1460px,calc(100% - 40px));margin:0 auto;padding:28px 0 34px}
.dispatch-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px;padding:0 4px}
.dispatch-eyebrow{font-size:10px;letter-spacing:2px;color:#0a89b7;font-weight:900;margin-bottom:7px}
.dispatch-hero h1{font-size:29px;letter-spacing:-.5px;margin:0;color:#17304a}
.dispatch-hero p{max-width:760px;margin:7px 0 0;color:#698097;font-size:12px;line-height:1.7}
.dispatch-badge{align-self:center;padding:8px 12px;border-radius:99px;background:#e5f4ea;color:#2c7550;border:1px solid #c5e4d0;font-size:11px;font-weight:900}
.dispatch-hero-actions{display:flex;align-items:center;gap:10px;align-self:center}
.dispatch-history-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border-radius:10px;border:1px solid #c7dce8;background:#fff;color:#176486;font-size:11px;font-weight:900;box-shadow:0 5px 16px rgba(31,83,111,.08)}
.dispatch-history-btn:hover{background:#edf8fc}
.dispatch-history-btn span{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:99px;background:#e5f3f9;color:#0b7da8;font-size:10px}
.dispatch-grid{display:grid;grid-template-columns:1.05fr 1.22fr 1fr;gap:14px;align-items:stretch}
.dispatch-card{background:#fff;border:1px solid #d8e2eb;border-radius:14px;box-shadow:0 10px 32px rgba(35,62,87,.075);padding:18px;min-width:0;min-height:470px}
.dispatch-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.dispatch-card-head>div{display:flex;align-items:center;gap:9px}.dispatch-card-head h2{margin:0;font-size:17px;color:#20384f}
.dispatch-step-num{font-size:10px;font-weight:900;color:#fff;background:#168db7;border-radius:6px;padding:5px 6px;letter-spacing:.6px}
.dispatch-card-tag{font-size:9px;letter-spacing:.8px;border-radius:99px;padding:4px 7px;background:#edf3f7;color:#6b7f92;font-weight:900}.dispatch-card-tag.estimate{background:#fff1d9;color:#9a6518}
.dispatch-field{display:block;color:#657b90;font-size:11px;font-weight:900;margin-bottom:13px}
.dispatch-field select,.dispatch-field>input{width:100%;margin-top:6px;border:1px solid #c8d6e3;background:#f9fbfc;color:#213a51;border-radius:9px;padding:11px 12px;outline:none;font-size:12px;font-weight:700}.dispatch-field select:focus,.dispatch-field>input:focus{border-color:#2b98bf;box-shadow:0 0 0 3px rgba(43,152,191,.09)}
.aircraft-profile-hint{margin:-3px 0 16px;padding:9px 10px;background:#f5f8fa;border:1px solid #e1e8ee;border-radius:8px;color:#72869a;font-size:10px;line-height:1.55}
.dispatch-airports{display:grid;grid-template-columns:1fr 38px 1fr;gap:8px;align-items:end}.dispatch-airports .dispatch-field{margin-bottom:0}
.dispatch-icao-wrap{display:grid;grid-template-columns:78px minmax(0,1fr);align-items:center;margin-top:6px;border:1px solid #c8d6e3;background:#f9fbfc;border-radius:9px;overflow:hidden;min-height:54px}.dispatch-icao-wrap:focus-within{border-color:#2b98bf;box-shadow:0 0 0 3px rgba(43,152,191,.09)}
.dispatch-icao-wrap input{border:0;outline:0;background:transparent;width:100%;padding:10px 8px 10px 11px;text-transform:uppercase;font-weight:900;font-size:19px;letter-spacing:1.5px;color:#15354e}.dispatch-icao-wrap input::placeholder{color:#a7b4c0}.dispatch-icao-wrap span{padding-right:8px;color:#6d8194;font-size:10px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dispatch-swap{align-self:end;height:54px;background:#eef4f8;color:#55738a;border:1px solid #d4e0e9;font-size:17px;padding:0}
.dispatch-primary{width:100%;margin-top:15px;padding:12px;background:linear-gradient(135deg,#0d89b6,#087aa5);box-shadow:0 7px 18px rgba(8,127,172,.18)}
.dispatch-rule{margin-top:14px;display:flex;flex-direction:column;gap:4px;background:#f4f8fb;border-left:3px solid #15a4d0;border-radius:8px;padding:10px 11px;color:#687e92;font-size:10px;line-height:1.5}.dispatch-rule strong{color:#36556d;margin-bottom:2px}
.dispatch-empty{height:335px;border:1px dashed #cedbe6;background:#f8fafc;border-radius:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#8394a5;padding:20px}.dispatch-empty strong{font-size:15px;color:#60778d;margin-bottom:6px}.dispatch-empty span{font-size:11px;max-width:270px;line-height:1.6}.dispatch-empty.compact{height:235px}
.dispatch-route-list{max-height:390px;overflow:auto;padding-right:3px}.dispatch-route-list::-webkit-scrollbar{width:7px}.dispatch-route-list::-webkit-scrollbar-thumb{background:#c7d4df;border-radius:99px}
.dispatch-route-option{display:block;width:100%;text-align:left;border:1px solid #dbe4ec;background:#f8fafc;color:#263e55;border-radius:11px;padding:12px 13px;margin-bottom:9px}.dispatch-route-option:hover{border-color:#a9c8d9;background:#f2f9fc}.dispatch-route-option.active{border-color:#2a9dc5;background:#eaf7fb;box-shadow:inset 3px 0 0 #0b8ab8}.dispatch-route-option.reference{background:#fff9ed}.dispatch-route-option.reference.active{border-color:#dda54e;box-shadow:inset 3px 0 0 #d98718}.dispatch-route-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.dispatch-route-top strong{font-size:13px}.dispatch-route-top span{font-size:9px;padding:3px 6px;border-radius:99px;background:#e1f2e8;color:#28744b;font-weight:900}.dispatch-route-option.reference .dispatch-route-top span{background:#fff0d2;color:#966117}.dispatch-route-meta{display:flex;gap:7px;margin-top:6px;color:#718598;font-size:10px}.dispatch-route-string{font:10px/1.55 Consolas,monospace;color:#526d82;margin-top:7px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.load-factor-row{padding:11px 12px;background:#f6f9fb;border:1px solid #e0e8ef;border-radius:9px;margin-bottom:11px}.load-factor-row label{display:flex;justify-content:space-between;color:#687d90;font-size:10px;font-weight:800;margin-bottom:8px}.load-factor-row label strong{color:#1d6d91}.load-factor-row input{width:100%;accent-color:#0c88b5}
.manual-split-loads{display:grid;grid-template-columns:1fr 1fr;gap:8px}.manual-split-loads .load-factor-row{margin-bottom:0}.overall-load-row{margin-bottom:8px}.manual-split-loads input[type="range"],.overall-load-row input[type="range"]{cursor:pointer}.manual-split-loads input[type="range"]:focus-visible,.overall-load-row input[type="range"]:focus-visible{outline:2px solid #75c6e1;outline-offset:3px}.load-factor-row.is-freighter-disabled{opacity:.55}.load-factor-row.is-freighter-disabled input{cursor:not-allowed}
@media(max-width:560px){.manual-split-loads{grid-template-columns:1fr;gap:7px}}
.dispatch-estimate{display:block}.estimate-hero{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:9px}.estimate-hero>div{background:#17364e;color:#fff;border-radius:9px;padding:11px}.estimate-hero span{display:block;color:#aac2d3;font-size:9px;margin-bottom:4px}.estimate-hero strong{font-size:16px}.estimate-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.estimate-grid>div{border:1px solid #e0e8ef;background:#f9fbfc;border-radius:8px;padding:9px 10px}.estimate-grid span{display:block;color:#8292a1;font-size:9px;margin-bottom:3px}.estimate-grid strong{font-size:12px;color:#2a435a}.estimate-grid .block-fuel{background:#eaf6fb;border-color:#c4e1ec}.estimate-grid .block-fuel strong{color:#087da9;font-size:14px}.estimate-breakdown{margin-top:9px;padding:8px 9px;border-radius:8px;background:#f7f9fb;color:#738698;font-size:9px;line-height:1.6}.estimate-warning{margin-top:10px;color:#9a6c28;font-size:9px;line-height:1.55;padding:8px 9px;background:#fff8ea;border:1px solid #f1ddb7;border-radius:8px}
.dispatch-bottom-bar{position:sticky;bottom:10px;margin-top:15px;background:rgba(255,255,255,.96);backdrop-filter:blur(9px);border:1px solid #d6e1e9;border-radius:12px;box-shadow:0 12px 35px rgba(28,54,76,.13);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:16px;z-index:8}.dispatch-bottom-bar>div{display:flex;flex-direction:column;gap:2px}.dispatch-bottom-bar strong{font-size:12px;color:#29465d}.dispatch-bottom-bar span{font-size:10px;color:#778a9b}.dispatch-bottom-bar button{padding:11px 17px;min-width:250px}.dispatch-bottom-bar button:disabled{cursor:not-allowed;background:#d7e0e7;color:#95a4b1}.dispatch-bottom-bar button:not(:disabled){background:linear-gradient(135deg,#0c88b5,#0878a4);box-shadow:0 7px 20px rgba(8,127,172,.2)}.dispatch-bottom-bar button span{color:inherit;font-size:14px;margin-left:5px}
@media(max-width:1180px){.dispatch-grid{grid-template-columns:1fr 1fr}.dispatch-load-card{grid-column:1/-1;min-height:auto}.dispatch-estimate{display:grid;grid-template-columns:220px 1fr;gap:10px}.estimate-hero{margin:0}.estimate-warning{grid-column:1/-1}}
@media(max-width:820px){.page-steps{display:none}.dispatch-shell{width:calc(100% - 20px);padding-top:18px}.dispatch-grid{grid-template-columns:1fr}.dispatch-load-card{grid-column:auto}.dispatch-card{min-height:auto}.dispatch-airports{grid-template-columns:1fr}.dispatch-swap{height:38px}.dispatch-bottom-bar{position:static;align-items:stretch;flex-direction:column}.dispatch-bottom-bar button{width:100%;min-width:0}.dispatch-estimate{display:block}.dispatch-hero{align-items:flex-start}.dispatch-badge{display:none}.planner-top-actions .status-chip{display:none}}
.procedure-pill.aircraft{background:#e8f2fb;color:#2b628a}
.airport-input-wrap input[readonly]{cursor:default;color:#17334d;background:#f7f9fb}
.dispatch-est-warn{margin-top:6px;padding-top:6px;border-top:1px dashed #e2c98d;color:#9a6518;font-weight:700}

/* HYbrief v0.4.1 payload mode controls */
.load-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;background:#eef3f7;border:1px solid #dbe5ed;border-radius:10px;margin-bottom:10px}
.load-mode-switch button{border:0;background:transparent;color:#647b8f;padding:9px 10px;border-radius:7px;font-size:10px;font-weight:900;box-shadow:none}
.load-mode-switch button:hover{background:#f8fbfd;color:#355970}.load-mode-switch button.active{background:#fff;color:#087da9;box-shadow:0 2px 9px rgba(35,63,85,.11)}
.load-mode-panel{padding:10px 11px;background:#f7fafc;border:1px solid #e0e8ef;border-radius:9px;margin-bottom:10px}
.load-mode-panel>p{margin:7px 1px 0;color:#8292a1;font-size:9px;line-height:1.55}
.random-load-values{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:8px}.random-load-values>div{background:#fff;border:1px solid #dde7ee;border-radius:8px;padding:8px 9px}.random-load-values span{display:block;color:#8696a5;font-size:9px;margin-bottom:3px}.random-load-values strong{font-size:13px;color:#1d526e}
.reroll-load{width:100%;border:1px solid #b9dbe9;background:#ebf7fb;color:#087ea9;padding:8px 9px;border-radius:8px;font-size:10px;font-weight:900;box-shadow:none}.reroll-load:hover{background:#dff2f9}
.estimate-warning{display:flex;flex-direction:column;gap:4px}.estimate-warning strong{font-size:10px;color:#965e12}.estimate-warning span{font-size:9px;line-height:1.55}

.departure-time-field{margin-top:13px}.departure-time-field>input{box-sizing:border-box;border:1px solid #c8d6e3;background:#f9fbfc;color:#213a51;border-radius:9px;padding:10px 12px;outline:none;font-size:12px;font-weight:700}.field-help{display:block;margin-top:5px;color:#91a0ae;font-size:9px;font-weight:600;line-height:1.45}.weather-live{color:#21805d!important}.weather-fallback{color:#a96a19!important}


/* HYbrief v0.5.2 friend radar map */
.hy-radar-host{background:#08131b!important;overflow:hidden;position:absolute!important;inset:0}.hy-radar-root{position:absolute;inset:0;overflow:hidden;background:#071019;cursor:grab;user-select:none}.hy-radar-root.dragging{cursor:grabbing}.hy-radar-tiles,.hy-radar-grid,.hy-radar-svg,.hy-radar-markers{position:absolute;inset:0;width:100%;height:100%}.hy-radar-tiles{overflow:hidden;background:#071019}.hy-radar-tile{position:absolute;width:256px;height:256px;filter:invert(1) hue-rotate(180deg) grayscale(.78) brightness(.37) contrast(1.42) saturate(.55);opacity:.68;pointer-events:none}.hy-radar-tile.tile-error{display:none}.hy-radar-grid{pointer-events:none;opacity:.32;background-image:linear-gradient(rgba(66,184,219,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(66,184,219,.12) 1px,transparent 1px),linear-gradient(rgba(66,184,219,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(66,184,219,.055) 1px,transparent 1px);background-size:96px 96px,96px 96px,24px 24px,24px 24px}.hy-radar-svg{pointer-events:none;filter:drop-shadow(0 0 4px rgba(25,190,235,.18))}.hy-radar-markers{pointer-events:none}.hy-radar-html-marker{position:absolute;transform:translate(-50%,-50%);pointer-events:none}.hy-radar-cross{position:absolute;left:50%;top:50%;width:18px;height:18px;transform:translate(-50%,-50%);pointer-events:none;opacity:.22}.hy-radar-cross:before,.hy-radar-cross:after{content:"";position:absolute;background:#75d6ef}.hy-radar-cross:before{left:8px;top:0;width:1px;height:18px}.hy-radar-cross:after{top:8px;left:0;height:1px;width:18px}.hy-radar-attrib{position:absolute;right:7px;bottom:5px;z-index:500;color:#7193a2;background:rgba(3,10,15,.72);border:1px solid rgba(87,139,159,.2);border-radius:4px;padding:2px 5px;font-size:8px;pointer-events:none}.hy-radar-popup{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;z-index:500}.hy-radar-host .map-fix{filter:drop-shadow(0 2px 4px rgba(0,0,0,.8))}.hy-radar-host .fix-ident{background:#0c1d28;color:#d9f5ff;border-color:var(--seg);box-shadow:0 0 0 1px rgba(255,255,255,.08)}.hy-radar-host .fix-ident.endpoint{background:#0a3143;color:#ecfbff}.hy-radar-host .fix-constraint{background:rgba(8,20,28,.94)!important;color:#ff9393!important;border-color:#733b3b!important}.hy-radar-host .vatsim-aircraft-marker,.hy-radar-host .vatsim-traffic-marker{filter:drop-shadow(0 2px 5px rgba(0,0,0,.9))}.hy-radar-host .vatsim-label,.hy-radar-host .traffic-callsign{background:rgba(6,20,28,.92);border-color:#4e8fab}.hy-radar-host .vatsim-label strong{color:#ff737c}.hy-radar-host .vatsim-label span,.hy-radar-host .traffic-callsign span{color:#9bb2bf}.hy-radar-host .traffic-callsign strong{color:#75d6ef}.hy-radar-host .traffic-arrow{background:#147ea4;border-color:#94def4}.hy-radar-host .vatsim-arrow{border-color:#ffd9dc}.hy-radar-host .traffic-popup{background:#081923;border-color:#2c6176;color:#d8edf5}.hy-radar-host .traffic-popup-title{color:#69cae8}.hy-radar-host .traffic-popup-grid strong{color:#d8edf5}.hy-radar-host .traffic-popup-grid span,.hy-radar-host .traffic-route{color:#89a4b0}.friend-radar-note{color:#73adc3!important}

/* v0.5.3 FRIEND — IFR High chart presentation. The map no longer uses the
   nearly-black radar palette. AIRAC enroute airways/navaids/airports are drawn
   above a deliberately faint geographic reference layer. */
.hy-radar-host{background:#eef2f2!important}
.hy-radar-root{background:#eef2f2!important}
.hy-radar-tiles{background:#eef2f2!important}
.hy-radar-tile{filter:grayscale(.88) brightness(1.16) contrast(.78) saturate(.45)!important;opacity:.27!important}
.hy-radar-tile.tile-error{display:none}
.hy-radar-grid{opacity:.42!important;background-image:linear-gradient(rgba(73,102,120,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(73,102,120,.08) 1px,transparent 1px),linear-gradient(rgba(73,102,120,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(73,102,120,.035) 1px,transparent 1px)!important;background-size:128px 128px,128px 128px,32px 32px,32px 32px!important}
.hy-radar-svg{filter:none!important}
.hy-radar-cross{opacity:.12!important}.hy-radar-cross:before,.hy-radar-cross:after{background:#52758a!important}
.hy-radar-attrib{color:#607985!important;background:rgba(246,249,249,.9)!important;border-color:#cbd7dc!important}
.hy-radar-host .map-fix{filter:none!important}
.hy-radar-host .fix-ident{background:#ffffff!important;color:#1d3e53!important;border-color:var(--seg)!important;box-shadow:0 1px 3px rgba(24,54,70,.18)!important}
.hy-radar-host .fix-ident.endpoint{background:#e9f7fb!important;color:#0b5875!important}
.hy-radar-host .fix-constraint{background:#fff7f7!important;color:#bd3535!important;border-color:#e4a2a2!important}
.hy-radar-host .vatsim-aircraft-marker,.hy-radar-host .vatsim-traffic-marker{filter:drop-shadow(0 1px 2px rgba(28,50,62,.25))!important}
.hy-radar-host .vatsim-label,.hy-radar-host .traffic-callsign{background:rgba(255,255,255,.94)!important;border-color:#7ea7b9!important}
.hy-radar-host .vatsim-label strong{color:#d52d3a!important}.hy-radar-host .vatsim-label span,.hy-radar-host .traffic-callsign span{color:#657d8a!important}.hy-radar-host .traffic-callsign strong{color:#19799a!important}
.hy-radar-host .traffic-arrow{background:#2c8eb0!important;border-color:#ffffff!important}.hy-radar-host .vatsim-arrow{border-color:#ffffff!important}
.hy-radar-host .traffic-popup{background:#ffffff!important;border-color:#a9c1cc!important;color:#213f50!important;box-shadow:0 8px 30px rgba(34,61,75,.2)!important}.hy-radar-host .traffic-popup-title{color:#137897!important}.hy-radar-host .traffic-popup-grid strong{color:#213f50!important}.hy-radar-host .traffic-popup-grid span,.hy-radar-host .traffic-route{color:#6f8490!important}

.ifr-route-label{font:800 9px/1.1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.05em;color:#52677a;background:rgba(246,249,250,.84);border:1px solid rgba(105,126,143,.38);border-radius:3px;padding:1px 3px;white-space:nowrap;text-shadow:0 1px 0 #fff}
.ifr-route-label.high{color:#74558f;border-color:rgba(117,84,146,.42)}
.ifr-fix{display:flex;align-items:center;gap:2px;color:#526674;font:700 8px/1 Arial,sans-serif;white-space:nowrap;text-shadow:0 1px 1px #fff,1px 0 1px #fff,-1px 0 1px #fff}
.ifr-fix-symbol{font-size:8px;color:#748794;line-height:1}
.ifr-navaid{display:flex;align-items:center;gap:3px;color:#355a70;white-space:nowrap;text-shadow:0 1px 1px #fff,1px 0 1px #fff,-1px 0 1px #fff}
.ifr-navaid-symbol{font-size:14px;color:#396f8d;line-height:1}.ifr-navaid.ndb .ifr-navaid-symbol{font-size:11px;color:#7b6686}
.ifr-navaid-text{display:flex;flex-direction:column;align-items:flex-start;line-height:.95}.ifr-navaid-text strong{font-size:9px;letter-spacing:.03em}.ifr-navaid-text small{font-size:7px;color:#6f8490;font-weight:700}
.ifr-airport{display:flex;align-items:center;gap:3px;color:#344f60;font:800 8px/1 Arial,sans-serif;white-space:nowrap;text-shadow:0 1px 1px #fff,1px 0 1px #fff,-1px 0 1px #fff}
.ifr-airport-dot{width:6px;height:6px;border:1.5px solid #566e7b;border-radius:50%;background:rgba(255,255,255,.75);box-sizing:border-box}
.mode-btn[data-mode="ifr"].active{background:#e8eef7!important;color:#654982!important}

/* v0.5.4: keep pan operations on the compositor instead of re-laying out IFR DOM. */
.hy-radar-tiles,.hy-radar-svg,.hy-radar-markers{will-change:transform;transform:translateZ(0)}
.hy-radar-root.dragging .hy-radar-tiles,.hy-radar-root.dragging .hy-radar-svg,.hy-radar-root.dragging .hy-radar-markers{pointer-events:none}


/* HYbrief v0.6.0 — HY Map / MapLibre WebGL */
.hy-maplibre-host{position:absolute!important;inset:0;overflow:hidden;background:#eef3f6!important}
.hy-maplibre-host.maplibregl-map{font:12px/20px system-ui,-apple-system,"Segoe UI",Arial,sans-serif;-webkit-tap-highlight-color:transparent}
.hy-maplibre-host .maplibregl-canvas-container,.hy-maplibre-host .maplibregl-canvas{position:absolute;left:0;top:0;width:100%;height:100%}
.hy-maplibre-host .maplibregl-canvas{outline:none}
.hy-maplibre-host .maplibregl-canvas-container.maplibregl-interactive{cursor:grab;user-select:none}
.hy-maplibre-host .maplibregl-canvas-container.maplibregl-interactive:active{cursor:grabbing}
.hy-maplibre-host .maplibregl-marker{position:absolute;top:0;left:0;will-change:transform;pointer-events:none}
.hy-maplibre-host .hy-map-marker{pointer-events:none;white-space:nowrap}
.hy-maplibre-host .hy-map-popup{pointer-events:auto;white-space:normal;filter:drop-shadow(0 5px 14px rgba(32,57,73,.22))}
.hy-maplibre-host .maplibregl-control-container{position:absolute;inset:0;pointer-events:none}
.hy-maplibre-host .maplibregl-ctrl-bottom-right{position:absolute;right:6px;bottom:3px;pointer-events:auto;color:#617784;font-size:8px;background:rgba(255,255,255,.78);padding:1px 4px;border-radius:4px}
.hy-maplibre-host .maplibregl-ctrl-attrib a{color:#557181;text-decoration:none}
.hy-maplibre-host .maplibregl-ctrl-logo{display:none!important}
.mode-btn[data-mode="map"].active{background:#dff3fa!important;color:#087da9!important}
.mode-btn[data-mode="satellite"].active{background:#283743!important;color:#fff!important;border-color:#435766!important}
.mode-btn[data-mode="ifr"].active{background:#eee8f7!important;color:#654982!important}

/* HYbrief v0.6.3 — user cruise FL + Cost Index controls */
.dispatch-perf-inputs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:2px}
.dispatch-perf-inputs .dispatch-field{margin-bottom:4px}
.dispatch-perf-inputs input{box-sizing:border-box}
@media(max-width:820px){.dispatch-perf-inputs{grid-template-columns:1fr}}

/* v0.7.1 PMDG route export */
#pmdgBtn{background:#eef5ff;border-color:#b9d3ef;color:#235e91;font-weight:800}
.pmdg-card{width:min(680px,calc(100% - 30px));max-height:calc(100vh - 24px);display:flex;flex-direction:column;overflow:hidden}.pmdg-card>.modal-head,.pmdg-card>.modal-actions{flex:0 0 auto}.pmdg-card>.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.pmdg-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}
.pmdg-summary-grid>div{background:#f5f8fb;border:1px solid #dbe5ee;border-radius:9px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}
.pmdg-summary-grid span{font-size:11px;color:#718397;font-weight:700}.pmdg-summary-grid strong{font-size:14px;color:#203b55}
#pmdgSimVersion{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid #cbd8e6;border-radius:8px;outline:none;background:#fff}
.pmdg-preview{margin-top:14px;border:1px solid #cfe0ef;background:#f6fbff;border-radius:9px;padding:12px;display:flex;flex-direction:column;gap:6px;color:#35526d}
.pmdg-preview strong{font-size:14px;color:#164f7e}.pmdg-preview span{font-size:12px;word-break:break-all}.pmdg-preview small{font-size:11px;line-height:1.55;color:#6c8094}
@media(max-width:620px){.pmdg-summary-grid{grid-template-columns:1fr}}

/* HYbrief v0.8.0 Airport Moving Map */
.airport-map-modal{z-index:155}.airport-map-card{width:min(1480px,calc(100% - 24px));height:min(94vh,980px);display:flex;flex-direction:column;overflow:hidden}.airport-map-head{flex:0 0 auto}.airport-map-head p{max-width:980px}.airport-map-toolbar,.airport-map-assistbar,.airport-map-foot{display:flex;align-items:center;gap:9px;padding:10px 14px;border-bottom:1px solid var(--line);background:#f8fafc}.airport-map-toolbar label{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:850;color:#5b7186}.airport-map-toolbar input{width:86px;text-transform:uppercase;border:1px solid #cbd8e6;border-radius:7px;padding:8px 9px;font-weight:900;color:#17364e;outline:none;background:#fff}.airport-map-spacer{flex:1}.airport-map-assistbar{background:#fff}.airport-map-live{min-width:280px;display:flex;flex-direction:column;gap:2px}.airport-map-live strong{font-size:12px;color:#183b56}.airport-map-live span{font-size:10px;color:#71869a}.taxi-clearance-label{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:11px;font-weight:850;color:#566e85}.taxi-clearance-label input{width:230px;border:1px solid #cbd8e6;border-radius:7px;padding:8px 9px;text-transform:uppercase;font-weight:850;outline:none}.airport-map-stage{position:relative;flex:1;min-height:0;background:#e9edf0;overflow:hidden}.airport-map-stage #airportMapContainer{position:absolute;inset:0}.airport-map-stage .hy-maplibre-host{position:absolute!important;inset:0}.airport-map-empty{position:absolute;left:50%;top:18px;transform:translateX(-50%);z-index:8;background:rgba(34,54,70,.9);color:#fff;border-radius:8px;padding:8px 11px;font-size:10px;max-width:680px;text-align:center}.airport-map-legend{position:absolute;left:12px;bottom:10px;z-index:8;display:flex;gap:12px;background:rgba(255,255,255,.94);border:1px solid #ccd7df;border-radius:8px;padding:7px 10px;font-size:10px;color:#53697c;box-shadow:0 4px 15px rgba(31,53,68,.12)}.airport-map-legend span{display:flex;align-items:center;gap:5px}.airport-map-legend i{width:18px;height:5px;border-radius:3px;display:inline-block}.legend-runway{background:#31383f!important;height:8px!important}.legend-taxi{background:#f4d900!important;border:1px solid #6f6700}.legend-route{background:#bc22df!important;height:6px!important}.legend-aircraft{background:#e23a45!important;width:10px!important;height:10px!important;border-radius:50%!important}.airport-map-foot{border-top:1px solid var(--line);border-bottom:0;justify-content:space-between;color:#6b7f91;font-size:10px}.active-toggle{background:#e9f7ee!important;color:#246e45!important;border-color:#b8dec7!important}.airport-aircraft-marker{position:relative;width:34px;height:34px;filter:drop-shadow(0 3px 5px rgba(0,0,0,.33));transform-origin:center}.airport-aircraft-arrow{position:absolute;left:8px;top:3px;width:18px;height:28px;background:#e23c48;clip-path:polygon(50% 0,68% 35%,100% 78%,61% 66%,50% 100%,39% 66%,0 78%,32% 35%);border-radius:3px}.airport-aircraft-ring{position:absolute;inset:0;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px rgba(196,32,45,.45)}
@media(max-width:900px){.airport-map-toolbar,.airport-map-assistbar{flex-wrap:wrap}.airport-map-live{min-width:100%}.taxi-clearance-label{margin-left:0}.airport-map-card{height:96vh}.airport-map-legend{display:none}}

/* PMDG Live Bridge v0.9.3 */
.pmdg-two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pmdg-send-options{display:flex;gap:14px;flex-wrap:wrap;margin:13px 0;padding:10px 12px;background:#f7fafc;border:1px solid #dbe5ee;border-radius:9px}.pmdg-send-options label{margin:0!important}.pmdg-install{margin:10px 0;width:100%}.pmdg-step-ok{display:block!important;font-size:12px!important;color:#14734f!important;font-weight:700;word-break:normal!important}.pmdg-preview small{display:block}@media(max-width:620px){.pmdg-two-col{grid-template-columns:1fr}}

.simconnect-debug{margin:0;padding:8px 14px;background:#101820;color:#d8eefc;border-top:1px solid #d8e3ed;border-bottom:1px solid #d8e3ed;font:12px/1.45 Consolas,monospace;white-space:pre-wrap;max-height:145px;overflow:auto}.simconnect-debug.hidden{display:none}

/* HYbrief v0.9.8 Fenix Direct Bridge Beta */
#fenixBtn{background:#eefaf5;border-color:#b8dfcf;color:#226b50;font-weight:800}
.fenix-card{width:min(680px,calc(100% - 30px));max-height:calc(100vh - 24px);display:flex;flex-direction:column;overflow:hidden}
.fenix-card>.modal-head,.fenix-card>.modal-actions{flex:0 0 auto}
.loadsheet-card{width:min(900px,calc(100% - 28px));max-height:calc(100vh - 26px);display:flex;flex-direction:column;overflow:hidden}.loadsheet-card>.modal-head,.loadsheet-card>.modal-actions{flex:0 0 auto}.loadsheet-card>.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.loadsheet-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.loadsheet-overview-grid>div,.loadsheet-grid>div{background:#f7fafc;border:1px solid #dbe6ef;border-radius:10px;padding:11px 12px;display:flex;flex-direction:column;gap:5px;min-width:0}.loadsheet-overview-grid span,.loadsheet-grid span{font-size:11px;color:#708396;font-weight:800}.loadsheet-overview-grid strong,.loadsheet-grid strong{font-size:14px;color:#173a52;line-height:1.45;word-break:break-word}.loadsheet-overview-grid small,.loadsheet-grid small{font-size:11px;color:#8192a2;line-height:1.45}.loadsheet-section{margin-top:14px}.loadsheet-section h3{margin:0 0 10px;font-size:13px;color:#21465f}.loadsheet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.loadsheet-note{margin-top:16px;border:1px solid #d6e5ee;background:#f6fbff;border-radius:10px;padding:12px 14px;color:#4b657a;font-size:12px;line-height:1.65}.loadsheet-open-btn{background:#eef4f8;color:#35566e}@media(max-width:860px){.loadsheet-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.loadsheet-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.loadsheet-overview-grid,.loadsheet-grid{grid-template-columns:1fr}}
.fenix-card>.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}
#fenixSend{background:#187a58;border-color:#187a58}
#fenixResult.hidden{display:none}

/* HYbrief v0.9.9 — Flight number + terminal METAR / Fenix INIT weather */
.flight-number-field{margin-top:13px}.flight-number-field>input{box-sizing:border-box;border:1px solid #c8d6e3;background:#f9fbfc;color:#213a51;border-radius:9px;padding:10px 12px;outline:none;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.terminal-weather-card{margin:16px 0;background:#fff;border:1px solid #d8e3eb;border-radius:12px;box-shadow:0 7px 22px rgba(33,57,76,.07);padding:14px}
.terminal-weather-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.weather-subtitle{font-size:10px;color:#7a8c9c;margin-top:3px}.terminal-weather-head button{flex:0 0 auto}
.terminal-weather-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.metar-airport-card{border:1px solid #dce6ed;border-radius:10px;background:#f9fbfc;padding:12px;min-width:0}.metar-airport-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.metar-airport-head>div{display:flex;align-items:baseline;gap:8px;min-width:0}.metar-airport-head strong{font-size:15px;color:#173b55}.metar-airport-head span:not(.metar-cat){font-size:10px;color:#7a8d9e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metar-cat{font-size:9px;font-weight:900;padding:4px 7px;border-radius:99px;background:#e8eef3;color:#62798b}.metar-cat.vfr{background:#e4f5ea;color:#28764b}.metar-cat.mvfr{background:#e9f3fb;color:#306a96}.metar-cat.ifr{background:#fff0dc;color:#9a641d}.metar-cat.lifr{background:#fde6ea;color:#a43d4a}
.metar-raw{margin:0 0 9px;white-space:pre-wrap;word-break:break-word;background:#122b3d;color:#e6f5ff;border-radius:8px;padding:10px;font:700 11px/1.55 Consolas,ui-monospace,monospace;min-height:42px}.metar-chinese{font-size:11px;line-height:1.65;color:#3f586c;background:#fff;border:1px solid #e3eaf0;border-radius:8px;padding:9px 10px}.metar-facts{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.metar-fact{font-size:9px;font-weight:800;color:#587083;background:#edf3f6;border-radius:99px;padding:4px 7px}
.climb-wind-box{margin-top:12px;border:1px solid #cfe1eb;background:#f4fbfe;border-radius:10px;padding:11px 12px}.climb-wind-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.climb-wind-title>div{display:flex;flex-direction:column;gap:3px}.climb-wind-title strong{font-size:11px;color:#1b536d}.climb-wind-title span{font-size:9px;line-height:1.5;color:#718796}.climb-wind-title>span{white-space:nowrap;color:#26789b;font-weight:850}.climb-wind-rows{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.climb-wind-chip{display:flex;flex-direction:column;gap:2px;min-width:105px;background:#fff;border:1px solid #d3e4ec;border-radius:8px;padding:7px 9px}.climb-wind-chip strong{font:800 11px/1.2 Consolas,ui-monospace,monospace;color:#21536b}.climb-wind-chip span{font-size:8px;color:#7a8f9d}.weather-empty{font-size:10px;color:#8495a3}
@media(max-width:900px){.terminal-weather-grid{grid-template-columns:1fr}.climb-wind-title{flex-direction:column}}

/* HYbrief v0.9.9 Beta 10 — Charts-like planner shell: compact top route + left weather drawer */
.planner-page .planner-layout{grid-template-columns:320px minmax(0,1fr)}
.planner-sidebar{background:#fff}
.planner-side-tabs{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto 1fr 1fr;gap:6px;padding:9px 10px;background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.planner-side-tab{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 7px;border:1px solid #d8e2eb;background:#f4f7fa;color:#5f7488;border-radius:8px;font-size:11px;font-weight:850}
.planner-side-tab span{font-size:12px;line-height:1}.planner-side-tab.active{background:#e7f4fa;color:#087ba7;border-color:#b9dce9;box-shadow:inset 0 0 0 1px rgba(8,127,172,.05)}
.planner-back-tab{min-width:82px;padding-left:9px;padding-right:9px;background:#fff;color:#526b7f;border-color:#d8e2eb}.planner-back-tab:hover{background:#f5f9fc;color:#164d6d;border-color:#bfd4e1}.planner-back-tab:disabled{opacity:.5;cursor:not-allowed;background:#f2f4f6;color:#93a0aa}
.planner-side-panel{min-width:0}.planner-side-panel.hidden{display:none!important}
.planner-weather-panel{padding:12px 10px 22px;background:#f7fafc;min-height:100%}
.planner-weather-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:10px;padding:2px 2px 0}
.planner-weather-head>div{min-width:0;display:flex;flex-direction:column}.planner-weather-head .section-kicker{margin:0 0 3px}.planner-weather-head strong{font-size:17px;color:#203d54}.planner-weather-head .weather-subtitle{font-size:11px;white-space:normal;line-height:1.55}
.planner-metar-card{margin-bottom:10px;padding:12px;background:#fff}.planner-metar-card .metar-airport-head{margin-bottom:8px}.planner-metar-card .metar-airport-head strong{font-size:16px}.planner-metar-card .metar-airport-head span:not(.metar-cat){font-size:12px}.planner-metar-card .metar-cat{font-size:11px;padding:5px 8px}.planner-metar-card .metar-raw{font-size:13px;line-height:1.7;max-height:120px;overflow:auto;padding:12px}.planner-metar-card .metar-chinese{font-size:13px;line-height:1.75;padding:11px 12px}.planner-metar-card .metar-facts{gap:6px;margin-top:10px}.planner-metar-card .metar-fact{font-size:11px;padding:5px 8px}
.planner-wind-box{margin-top:9px;padding:11px;background:#f1f9fc}.planner-wind-box .climb-wind-title{flex-direction:column;gap:5px}.planner-wind-box .climb-wind-title strong{font-size:13px}.planner-wind-box .climb-wind-title span{font-size:10px;line-height:1.55}.planner-wind-box .climb-wind-title>span{white-space:normal;font-size:11px}.planner-wind-box .climb-wind-rows{display:grid;grid-template-columns:1fr 1fr;gap:6px}.planner-wind-box .climb-wind-chip{min-width:0;padding:7px 8px}.planner-wind-box .climb-wind-chip strong{font-size:11px}.planner-wind-box .climb-wind-chip span{font-size:9px}

.planner-workspace{padding:10px 12px 18px;overflow:auto}
.route-topbar{display:grid;grid-template-columns:auto minmax(240px,1fr) auto;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 5px 18px rgba(26,48,75,.07);padding:8px 10px;margin-bottom:8px;min-height:58px}
.route-top-ident{display:flex;flex-direction:column;min-width:150px;max-width:270px}.route-top-ident strong{font-size:14px;color:#203b52;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.route-top-ident span{font-size:9px;color:#75899a;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.route-top-string-wrap{min-width:0;border-left:1px solid #e2e9ef;border-right:1px solid #e2e9ef;padding:0 12px}.route-top-label{display:block;font-size:8px;letter-spacing:1.2px;color:#8a9aa7;font-weight:900;margin-bottom:2px}.route-top-string{font:700 11px/1.45 Consolas,ui-monospace,monospace;color:#24526b;white-space:nowrap;overflow:auto hidden;scrollbar-width:thin;padding-bottom:1px}.route-top-string::-webkit-scrollbar{height:4px}.route-top-string::-webkit-scrollbar-thumb{background:#c5d5df;border-radius:99px}
.route-top-actions{display:flex;align-items:center;gap:6px}.route-top-actions .source-badge{white-space:nowrap;font-size:9px;padding:5px 7px}.route-top-actions button{padding:5px 8px}
.planner-page .reference-warning{margin-bottom:8px;padding:7px 10px;font-size:10px}
.planner-map-card{border-radius:10px}.planner-page .map-toolbar{height:44px}.planner-page .map-viewport{height:calc(100vh - 210px);min-height:540px;max-height:900px}
.planner-detail-grid{grid-template-columns:minmax(240px,.55fr) minmax(520px,1.45fr);margin-top:10px}.route-info-card{padding:10px 12px}.route-info-card .source-description{margin:0;font-size:10px;line-height:1.55}.route-info-card .meta-pills{margin-top:6px}.route-info-card .notes{margin-top:6px}

@media(max-width:1100px){
  .planner-page .planner-layout{grid-template-columns:290px minmax(0,1fr)}
  .route-topbar{grid-template-columns:minmax(130px,200px) minmax(180px,1fr) auto;gap:8px}.route-top-string-wrap{padding:0 8px}
  .planner-page .map-viewport{height:calc(100vh - 205px);min-height:500px}
}
@media(max-width:760px){
  .planner-page .planner-layout{display:block}.planner-side-tabs{position:static}.planner-workspace{padding:8px}.route-topbar{grid-template-columns:1fr auto}.route-top-string-wrap{grid-column:1/-1;grid-row:2;border:0;border-top:1px solid #e2e9ef;padding:6px 0 0}.route-top-ident{max-width:none}.planner-page .map-viewport{height:62vh;min-height:390px}.planner-detail-grid{display:block}.planner-weather-panel{min-height:0}
}

/* HYbrief Product Shell v0.10 — AIRAC database home */
.home-page{height:calc(100% - 72px);overflow:auto;background:
  radial-gradient(circle at 14% 8%,rgba(20,142,184,.10),transparent 27%),
  radial-gradient(circle at 86% 12%,rgba(38,114,150,.08),transparent 28%),
  linear-gradient(180deg,#eaf1f6 0,#f4f7fa 58%,#eef3f7 100%)}
.home-shell{width:min(1280px,calc(100% - 44px));margin:0 auto;padding:38px 0 52px}
.home-hero{position:relative;overflow:hidden;min-height:280px;border-radius:22px;padding:38px 42px;display:flex;align-items:center;justify-content:space-between;gap:34px;background:
  linear-gradient(120deg,rgba(9,35,54,.98),rgba(12,61,84,.96) 60%,rgba(9,90,118,.94));
  color:#fff;box-shadow:0 22px 65px rgba(24,54,76,.18);border:1px solid rgba(255,255,255,.08)}
.home-hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(90deg,#000 0,rgba(0,0,0,.75) 56%,transparent 100%);pointer-events:none}
.home-hero-copy{position:relative;z-index:2;max-width:720px}.home-kicker{font-size:10px;letter-spacing:2.8px;font-weight:900;color:#7edcf5;margin-bottom:12px}.home-hero h1{margin:0;font-size:38px;line-height:1.16;letter-spacing:-1.1px}.home-hero p{margin:14px 0 0;max-width:660px;color:#c5d9e5;font-size:14px;line-height:1.8}
.home-current-row{display:flex;align-items:center;gap:10px;margin-top:28px;flex-wrap:wrap}.home-current-row>span{font-size:11px;color:#9fb9c9;font-weight:750}.home-current-row strong{font-size:14px;letter-spacing:.7px;border:1px solid rgba(115,219,247,.35);background:rgba(40,144,177,.18);padding:7px 11px;border-radius:999px;color:#e7faff}.home-current-row em{font-style:normal;font-size:10px;font-weight:900;color:#8ce0b6;background:rgba(49,156,104,.16);border:1px solid rgba(100,217,156,.2);padding:6px 9px;border-radius:999px}
.home-radar-art{position:relative;z-index:1;flex:0 0 240px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle at center,rgba(18,146,185,.16),rgba(7,28,42,.05) 62%,transparent 63%);opacity:.96}
.radar-ring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid rgba(104,215,242,.28);border-radius:50%}.radar-ring.r1{width:86px;height:86px}.radar-ring.r2{width:150px;height:150px}.radar-ring.r3{width:218px;height:218px}.radar-cross-x,.radar-cross-y{position:absolute;left:50%;top:50%;background:rgba(105,215,242,.18);transform:translate(-50%,-50%)}.radar-cross-x{width:220px;height:1px}.radar-cross-y{height:220px;width:1px}
.radar-route-line{position:absolute;height:2px;background:linear-gradient(90deg,#67d5f0,#9be2f4);transform-origin:left center;box-shadow:0 0 12px rgba(78,199,232,.55)}.radar-route-line.l1{left:44px;top:152px;width:95px;transform:rotate(-24deg)}.radar-route-line.l2{left:128px;top:113px;width:82px;transform:rotate(32deg)}.radar-fix{position:absolute;width:8px;height:8px;border:2px solid #b6f0ff;background:#0c536d;transform:rotate(45deg);box-shadow:0 0 10px rgba(128,224,247,.7)}.radar-fix.f1{left:38px;top:148px}.radar-fix.f2{left:126px;top:108px}.radar-fix.f3{right:27px;top:151px}.radar-mark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-weight:950;letter-spacing:1px;color:#e8fbff;background:#0a354b;border:1px solid rgba(119,223,248,.5);box-shadow:0 0 0 8px rgba(56,176,209,.07),0 8px 28px rgba(0,0,0,.22)}
.airac-select-card{margin-top:18px;background:rgba(255,255,255,.94);border:1px solid #d7e2eb;border-radius:18px;padding:22px;box-shadow:0 13px 38px rgba(31,57,78,.09)}
.airac-select-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px;padding:0 2px}.airac-select-head>div:first-child{display:flex;flex-direction:column;gap:3px}.airac-select-head span{font-size:9px;letter-spacing:1.8px;color:#8398aa;font-weight:900}.airac-select-head h2{margin:0;font-size:22px;color:#1d3950}.product-test-chip{font-size:9px;font-weight:900;letter-spacing:.7px;color:#8c6621;background:#fff6df;border:1px solid #efd9a4;border-radius:999px;padding:6px 9px}
.airac-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.airac-loading{grid-column:1/-1;padding:42px 20px;border:1px dashed #cfdae3;border-radius:13px;color:#7f93a5;text-align:center;background:#f8fafc}
.airac-card{position:relative;overflow:hidden;border:1px solid #d8e3eb;border-radius:15px;background:linear-gradient(180deg,#fff,#f8fbfd);padding:18px;transition:.18s ease;box-shadow:0 5px 18px rgba(31,57,78,.045)}.airac-card:hover:not(.disabled){transform:translateY(-2px);border-color:#9fc8d9;box-shadow:0 12px 28px rgba(25,74,101,.10)}.airac-card.active{border-color:#69b9d5;background:linear-gradient(180deg,#f3fbfe,#edf8fc);box-shadow:inset 0 0 0 1px rgba(42,158,197,.13),0 12px 30px rgba(32,106,139,.10)}.airac-card.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(#18a0cd,#087fae)}.airac-card.disabled{opacity:.62;background:#f5f7f9}
.airac-card-top{display:flex;align-items:center;justify-content:space-between}.airac-cycle-label{font-size:10px;letter-spacing:2px;color:#68839a;font-weight:950}.airac-state{font-size:8px;font-weight:950;letter-spacing:.7px;border-radius:999px;padding:4px 7px}.airac-state.ready{color:#24734b;background:#e7f5ec;border:1px solid #c5e4d0}.airac-state.coming{color:#7b8791;background:#edf1f4;border:1px solid #d8e0e6}
.airac-number{font-size:40px;font-weight:950;letter-spacing:-1px;color:#18384f;margin-top:8px;line-height:1}.airac-subtitle{font-size:11px;color:#71869a;font-weight:750;margin-top:7px}.airac-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:17px}.airac-meta span{display:flex;flex-direction:column;gap:3px;border:1px solid #e2e9ef;background:#fff;border-radius:9px;padding:8px;color:#5f7689;font-size:9px;min-width:0}.airac-meta b{font-size:8px;color:#9aabba;letter-spacing:.5px}.airac-enter{width:100%;margin-top:13px;padding:10px 12px;background:linear-gradient(135deg,#0e8dbb,#087aa5);box-shadow:0 6px 15px rgba(8,127,172,.15);font-size:11px}.airac-enter:disabled{cursor:not-allowed;background:#d8e0e6;color:#8998a4;box-shadow:none}
.airac-product-note{margin-top:14px;padding:10px 12px;border-radius:9px;background:#f4f7f9;color:#74889a;font-size:10px;line-height:1.65;border-left:3px solid #91aabd}
@media(max-width:900px){.home-shell{width:calc(100% - 20px);padding-top:18px}.home-hero{padding:28px;min-height:240px}.home-radar-art{display:none}.home-hero h1{font-size:30px}.airac-grid{grid-template-columns:1fr}.airac-select-head{align-items:flex-start;flex-direction:column}.airac-meta{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:620px){.home-hero{padding:24px 20px}.home-hero h1{font-size:26px}.home-hero p{font-size:12px}.airac-select-card{padding:14px}.airac-meta{grid-template-columns:1fr}.home-current-row{margin-top:20px}}

/* HYbrief Product Home v0.11 — selectable AIRAC + permission matrix */
.home-page{height:calc(100% - 72px);overflow:auto;background:linear-gradient(180deg,#f5f8fb 0,#edf3f7 100%)}
.home-shell{width:min(1240px,calc(100% - 44px));margin:0 auto;padding:32px 0 48px}
.home-brand-panel{display:flex;align-items:center;justify-content:space-between;gap:30px;background:#fff;border:1px solid #dbe5ed;border-radius:20px;padding:28px 34px;box-shadow:0 12px 34px rgba(29,58,78,.08)}
.home-brand-copy{min-width:0;flex:1}.home-brand-line{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}.home-brand-line h1{margin:0;font-size:56px;line-height:1;font-weight:950;letter-spacing:-2.4px;color:#15354d}.home-brand-line span{font-size:18px;font-weight:800;color:#688096;letter-spacing:.2px}.home-brand-copy p{max-width:760px;margin:14px 0 0;color:#6f8395;font-size:13px;line-height:1.8}.home-current-row{margin-top:19px}.home-current-row>span{color:#7a8f9f}.home-current-row strong{color:#126b92;background:#edf8fc;border-color:#c3e4ef}.home-current-row em{color:#28764b;background:#edf8f1;border-color:#d0ead9}
.home-owner-logo-wrap{flex:0 0 180px;display:flex;flex-direction:column;align-items:center;gap:7px}.home-owner-logo{width:118px;height:118px;object-fit:cover;border-radius:50%;box-shadow:0 8px 22px rgba(0,0,0,.17);border:4px solid #fff;outline:1px solid #d8e1e7}.home-owner-logo-wrap span{font-size:13px;font-weight:900;color:#304b61;white-space:nowrap}
.airac-select-card{margin-top:18px;padding:24px;border-radius:18px}.airac-select-head{align-items:flex-start}.airac-select-head>div:first-child{gap:3px}.airac-select-head p{margin:5px 0 0;color:#8194a5;font-size:11px}.airac-choice-grid{display:flex;gap:12px;overflow-x:auto;padding:2px 1px 7px;scrollbar-width:thin}.airac-choice-grid .airac-loading{min-width:100%}.airac-card{flex:0 0 235px;min-height:118px;cursor:pointer;padding:16px 17px}.airac-card.disabled{cursor:default}.airac-card.active{border-color:#d8e3eb;background:linear-gradient(180deg,#fff,#f8fbfd);box-shadow:0 5px 18px rgba(31,57,78,.045)}.airac-card.active:before{display:none}.airac-card.selected{border-color:#279fd0;background:linear-gradient(180deg,#f4fbff,#eaf7fc);box-shadow:inset 0 0 0 1px rgba(39,159,208,.14),0 10px 24px rgba(26,113,151,.11)}.airac-card.selected:after{content:"✓";position:absolute;right:15px;top:14px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#168fbd;color:#fff;font-weight:950;font-size:13px}.airac-number{font-size:34px;margin-top:7px}.airac-subtitle{margin-top:5px}.airac-card .airac-meta,.airac-card .airac-enter{display:none}.airac-state{margin-right:0}
.airac-selected-panel{margin-top:17px;border:1px solid #dbe5ed;border-radius:14px;background:#fbfdff;overflow:hidden}.airac-selected-panel.hidden{display:none}.airac-selected-title{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 18px;background:linear-gradient(180deg,#fff,#f8fbfd);border-bottom:1px solid #e0e8ee}.airac-selected-title>div:first-child{display:flex;flex-direction:column;gap:2px}.airac-selected-title span{font-size:8px;letter-spacing:1.5px;font-weight:900;color:#91a3b1}.airac-selected-title h3{margin:0;font-size:21px;color:#183a52}.airac-selected-status{font-size:10px;font-weight:900;border-radius:999px;padding:6px 9px;background:#e8f6ed;color:#26734a}.airac-selected-status.off{background:#eef2f5;color:#7e8e9a}
.airac-permission-title{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:15px 18px 10px}.airac-permission-title strong{font-size:14px;color:#23445b}.airac-permission-title span{font-size:10px;color:#8496a5}.airac-permission-table{margin:0 18px;border:1px solid #dce5ec;border-radius:10px;overflow:hidden;background:#fff}.perm-head,.perm-row{display:grid;grid-template-columns:140px 140px minmax(0,1fr);align-items:center;min-height:46px}.perm-head{background:#f3f7fa;border-bottom:1px solid #dce5ec;color:#29475c;font-size:12px}.perm-head b{padding:0 18px}.perm-row{border-bottom:1px solid #e6edf2;font-size:12px;color:#3d5263}.perm-row:last-child{border-bottom:0}.perm-row>span{padding:0 18px}.perm-yes,.perm-no{font-size:20px;font-weight:950}.perm-yes{color:#36b66a}.perm-no{color:#f25570}.airac-selected-enter{display:block;width:min(560px,calc(100% - 36px));margin:18px auto;padding:13px 16px;border-radius:10px;background:linear-gradient(135deg,#108fbd,#087ba8);font-size:13px;font-weight:900;box-shadow:0 7px 18px rgba(9,126,169,.18)}.airac-selected-enter:disabled{background:#d8e0e6;color:#8494a0;box-shadow:none;cursor:not-allowed}
@media(max-width:800px){.home-brand-panel{padding:24px}.home-brand-line h1{font-size:44px}.home-brand-line span{font-size:15px}.home-owner-logo-wrap{flex-basis:130px}.home-owner-logo{width:92px;height:92px}.perm-head,.perm-row{grid-template-columns:86px 86px minmax(0,1fr)}.perm-head b,.perm-row>span{padding:0 10px}}
@media(max-width:560px){.home-shell{width:calc(100% - 18px);padding-top:16px}.home-brand-panel{align-items:flex-start;padding:20px}.home-brand-line{gap:9px}.home-brand-line h1{font-size:38px}.home-brand-line span{font-size:13px}.home-owner-logo-wrap{flex-basis:88px}.home-owner-logo{width:72px;height:72px}.home-owner-logo-wrap span{display:none}.airac-select-card{padding:14px}.airac-card{flex-basis:190px}.perm-head,.perm-row{grid-template-columns:64px 64px minmax(0,1fr);font-size:10px}.perm-yes,.perm-no{font-size:17px}}

@media(max-width:1350px){.simulation-only-warning{font-size:11px;padding:6px 10px;max-width:430px}}
@media(max-width:1080px){.simulation-only-warning{display:none}}

/* UI v0.15 — ONLY page 3 moves the three-step page navigation into the left-side header gap.
   Home and Dispatch keep the original v0.13 top-right navigation layout. */
.topbar.planner-page-mode .page-steps{position:absolute;left:440px;top:50%;transform:translateY(-50%);z-index:3}
@media(max-width:1650px){.topbar.planner-page-mode .page-steps{left:360px}.topbar.planner-page-mode .page-step{padding:7px 8px}}
@media(max-width:1380px){.topbar.planner-page-mode .page-steps{left:310px}.topbar.planner-page-mode .simulation-only-warning{display:none}}
@media(max-width:1120px){.topbar.planner-page-mode .page-steps{position:static;transform:none}.topbar.planner-page-mode .top-actions{margin-left:auto}}

.perm-checking{font-size:11px!important;font-weight:850;color:#7f94a4}.perm-status-text{font-size:12px!important;font-weight:900}.perm-status-active{color:#36b66a}.perm-status-disabled,.perm-status-expired,.perm-status-off{color:#f25570}.perm-status-warn{color:#c98720}.perm-row.live{min-height:58px}.airac-permission-title .live-ok{color:#2c9d5c}.airac-permission-title .live-warn{color:#b37a18}

/* HYbrief v0.20.1 — Header UI hard requirement
   1) Remove the 1/2/3 page-step strip from the visible header.
   2) Move the simulation-only warning left into the released header space.
   Keep the page-step DOM hidden so existing page workflow code is not disturbed. */
.topbar{
  justify-content:flex-start;
}
.page-steps{
  display:none !important;
}
.simulation-only-warning{
  position:static !important;
  left:auto !important;
  top:auto !important;
  transform:none !important;
  margin-left:38px;
  margin-right:18px;
  max-width:520px;
  flex:0 1 auto;
}
.top-actions{
  margin-left:auto;
}
@media(max-width:1180px){
  .simulation-only-warning{
    margin-left:20px;
    max-width:430px;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}
@media(max-width:900px){
  .simulation-only-warning{
    display:none;
  }
}


.airac-activation-panel{margin:14px 18px 0;display:grid;gap:10px}
.airac-activation-box{border:1px solid #dce6ed;border-radius:12px;background:#f8fbfd;padding:13px 14px}
.airac-activation-copy{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.airac-activation-copy strong{font-size:13px;color:#23445b}
.airac-activation-copy span{font-size:10px;color:#7f93a3}
.airac-activation-form{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:9px}
.airac-activation-form input{height:42px;border:1px solid #cddbe5;border-radius:9px;padding:0 12px;background:#fff;color:#17384f;font-weight:750;outline:none}
.airac-activation-form input:focus{border-color:#1096c5;box-shadow:0 0 0 3px rgba(16,150,197,.10)}
.airac-activation-form button{border:0;border-radius:9px;background:#1294bf;color:#fff;font-weight:900;cursor:pointer}
.airac-activation-form button:disabled{background:#b7c8d2;cursor:wait}
@media(max-width:620px){.airac-activation-form{grid-template-columns:1fr}.airac-activation-form button{height:42px}}

/* v0.22.21 Fenix Actual Mass + Loadsheet RC + Stand Integrity */
.airport-routebar{display:flex;align-items:center;gap:12px;padding:9px 14px;border-bottom:1px solid var(--line);background:#f5f9fc;flex-wrap:wrap}.airport-route-group{display:flex;align-items:center;gap:8px}.airport-route-group label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:850;color:#506a81}.airport-route-group select{min-width:145px;max-width:240px;border:1px solid #c9d7e4;border-radius:7px;padding:7px 28px 7px 8px;background:#fff;color:#17364e;font-weight:800}.airport-route-group select:disabled{background:#edf2f5;color:#8697a6}.surface-status{font-size:10px;color:#687f92;background:#fff;border:1px solid #d4dee6;border-radius:999px;padding:5px 9px}.surface-status.ok{color:#256b44;background:#eef9f2;border-color:#bedfc9}.surface-status.error{color:#9d3d42;background:#fff1f1;border-color:#efc4c7}.taxi-route-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px 14px;border-bottom:1px solid var(--line);background:#fff}.taxi-route-card{border:1px solid #d4dee7;border-radius:9px;padding:8px 10px;background:#fbfdff;cursor:pointer;min-width:0}.taxi-route-card:hover,.taxi-route-card.active{border-color:#64a9d7;box-shadow:0 0 0 2px rgba(62,153,211,.11)}.taxi-route-card strong{display:block;font-size:11px;color:#163a56}.taxi-route-card .route-meta{font-size:10px;color:#74899a;margin-top:2px}.taxi-route-card .route-refs{font-size:11px;font-weight:800;color:#304c61;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.facility-parking-label{font-weight:900}.airport-map-legend .legend-stand{background:#17242e!important;width:9px!important;height:9px!important;border-radius:50%!important}.airport-map-legend .legend-route2{background:#20a5c8!important}.airport-map-legend .legend-route3{background:#e79727!important}
@media(max-width:900px){.taxi-route-results{grid-template-columns:1fr}.airport-route-group{width:100%}.airport-route-group label{flex:1}.airport-route-group select{width:100%;max-width:none}}

/* v0.22.28: user-facing Fenix completion gate */
.fenix-success-modal{z-index:240}.fenix-success-backdrop{background:rgba(12,28,23,.66)}
.fenix-success-card{position:relative;width:min(520px,calc(100% - 34px));background:#fff;border-radius:18px;padding:34px 34px 28px;text-align:center;box-shadow:0 28px 90px rgba(0,0,0,.34);border:1px solid #c9eadc}
.fenix-success-icon{width:76px;height:76px;margin:0 auto 20px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e8f8f0;color:#16815b;font-size:46px;font-weight:900;box-shadow:inset 0 0 0 2px #bfe7d5}
.fenix-success-message{font-size:24px;line-height:1.45;font-weight:900;color:#173d31;letter-spacing:.2px;margin-bottom:26px}
.fenix-success-ok{min-width:180px;padding:12px 28px;font-size:15px;font-weight:900;background:#187a58;border-color:#187a58}
#fenixResult.fenix-progress-only{align-items:center;text-align:center;padding:18px 14px;font-weight:800;color:#315d50}

/* v0.22.43 final-entry recovery: persistent enter progress + one-click network diagnostics */
.airac-enter-status{margin:14px 18px 0;border:1px solid #d7e4ec;border-radius:12px;background:#f7fbfd;padding:12px 14px;color:#365367}.airac-enter-status.hidden{display:none}.airac-enter-status-main{display:flex;align-items:center;gap:10px}.airac-enter-status-main>div{display:flex;flex-direction:column;gap:3px;min-width:0}.airac-enter-status strong{font-size:12px;color:#24465d}.airac-enter-status span{font-size:10px;color:#718795;line-height:1.45}.airac-enter-spinner{width:14px;height:14px;border-radius:50%;border:2px solid #b9d8e5;border-top-color:#1192bf;animation:airacSpin .8s linear infinite;flex:0 0 auto}.airac-enter-status.warn{background:#fff9ec;border-color:#f1d89a}.airac-enter-status.warn .airac-enter-spinner{border-color:#efd89d;border-top-color:#c9921b}.airac-enter-status.error{background:#fff4f4;border-color:#efc4c4}.airac-enter-status.error .airac-enter-spinner{animation:none;border-color:#d95757;background:#d95757;box-shadow:inset 0 0 0 3px #fff}.airac-enter-status.success{background:#f1fbf5;border-color:#bfe4cc}.airac-enter-status.success .airac-enter-spinner{animation:none;border-color:#3ba66b;background:#3ba66b;box-shadow:inset 0 0 0 3px #fff}.airac-enter-tools{display:flex;gap:8px;margin:10px 0 0 24px}.airac-diag-btn{padding:7px 11px;border-radius:8px;background:#183f57;color:#fff;font-size:10px;font-weight:800}.airac-diag-btn.secondary{background:#eef4f7;color:#38576a}.airac-diag-btn.hidden{display:none}.airac-diag-btn:disabled{opacity:.6;cursor:wait}.airac-diag-results{margin:10px 0 0 24px;border-top:1px solid #dce7ed;padding-top:7px;display:flex;flex-direction:column;gap:5px}.airac-diag-results.hidden{display:none}.diag-row{display:grid;grid-template-columns:minmax(135px,.9fr) minmax(0,2fr) auto;gap:8px;align-items:center;font-size:10px}.diag-row b{font-size:10px}.diag-row span{overflow-wrap:anywhere}.diag-row em{font-style:normal;color:#8a9ba7;white-space:nowrap}.diag-row.ok b{color:#258257}.diag-row.bad b{color:#c34444}@keyframes airacSpin{to{transform:rotate(360deg)}}


/* HYbrief v0.22.58 — Planner Back button + PMDG TOC wind/temp + VATSIM FPL + user extra fuel */
.vatsim-plan-trigger{background:#eef8f6;color:#236b59;border-color:#bddfd5;font-weight:850}
.vatsim-plan-trigger:hover{background:#e5f5f1}
.vatsim-plan-card{width:min(760px,calc(100% - 30px))}
.vatsim-plan-body{display:grid;gap:12px}
.vatsim-plan-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.vatsim-plan-summary>div{border:1px solid #dce6ed;background:#f8fbfc;border-radius:9px;padding:9px 10px;min-width:0}
.vatsim-plan-summary span{display:block;color:#8293a2;font-size:9px;margin-bottom:3px}
.vatsim-plan-summary strong{display:block;color:#28455d;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vatsim-plan-summary .vatsim-time-cell{padding:0;overflow:hidden}
.vatsim-time-pair{display:grid;grid-template-columns:1fr 1fr;height:100%}
.vatsim-time-pair>div{padding:9px 10px;min-width:0}
.vatsim-time-pair>div+div{border-left:1px solid #dce6ed;background:#f3fafc}
.vatsim-time-pair strong{font-size:11px}
.vatsim-plan-text{margin:0;min-height:210px;max-height:360px;overflow:auto;white-space:pre-wrap;word-break:break-word;border:1px solid #cfdbe5;border-left:5px solid #415d73;border-radius:9px;background:#f4f5f6;padding:14px 15px;color:#172838;font:13px/1.65 Consolas,"Cascadia Mono","Courier New",monospace;user-select:text}
.history-plan-card{width:min(900px,calc(100% - 30px));max-height:min(82vh,820px);display:flex;flex-direction:column}
.history-plan-body{overflow:auto;display:grid;gap:12px}
.history-retention-note{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid #d7e6ed;border-radius:9px;background:#f4fafc;color:#647b8e;font-size:11px}
.history-retention-note strong{color:#176486;white-space:nowrap}
.history-plan-list{display:grid;gap:10px}
.history-empty{padding:34px 18px;text-align:center;border:1px dashed #cfdae3;border-radius:10px;color:#7b8e9e;background:#fafcfd}
.history-empty strong{display:block;color:#35536b;font-size:14px;margin-bottom:5px}
.history-plan-item{border:1px solid #dbe5ec;border-radius:11px;background:#fff;overflow:hidden}
.history-plan-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:12px 14px;background:#f8fbfc;border-bottom:1px solid #e3ebf0}
.history-plan-item-head strong{display:block;color:#203f57;font-size:13px}
.history-plan-item-head span{display:block;margin-top:3px;color:#7d8f9e;font-size:10px}
.history-plan-expiry{padding:5px 8px!important;margin:0!important;border-radius:99px;background:#fff3d8;color:#9b6b1c!important;font-weight:800;white-space:nowrap}
.history-plan-item-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.history-use-plan{padding:7px 12px;border-radius:8px;border:1px solid #0b8ab8;background:#0b8ab8;color:#fff;font-size:10px;font-weight:900;white-space:nowrap;box-shadow:0 3px 10px rgba(11,138,184,.18)}
.history-use-plan:hover{background:#087ba5;border-color:#087ba5}
.history-use-plan:disabled{opacity:.55;cursor:wait}
.history-route{padding:10px 14px;border-bottom:1px solid #edf2f5;color:#2b526b;font:11px/1.55 Consolas,"Cascadia Mono","Courier New",monospace;word-break:break-word;background:#fbfcfd}
.history-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:4px 8px 8px}
.history-metric{padding:8px 7px;min-width:0}
.history-metric span{display:block;color:#8796a4;font-size:9px;margin-bottom:3px}
.history-metric strong{display:block;color:#2d475c;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:820px){.dispatch-hero-actions{width:100%;justify-content:space-between}.dispatch-history-btn{margin-left:auto}.history-plan-card{max-height:90vh}.history-retention-note{align-items:flex-start;flex-direction:column;gap:4px}.history-plan-item-head{align-items:stretch;flex-direction:column}.history-plan-item-actions{justify-content:space-between}.history-metrics{grid-template-columns:1fr 1fr}}
.dispatch-load-head{gap:12px}
.dispatch-extra-fuel{margin-left:auto;display:flex;align-items:center;gap:7px;color:#6d8192;font-size:9px;font-weight:900;white-space:nowrap}
.dispatch-extra-fuel>span:first-child{letter-spacing:.2px}
.dispatch-extra-fuel-input{display:flex;align-items:center;border:1px solid #c8d8e4;background:#f8fbfc;border-radius:8px;height:30px;overflow:hidden}
.dispatch-extra-fuel-input:focus-within{border-color:#2498bf;box-shadow:0 0 0 3px rgba(36,152,191,.08)}
.dispatch-extra-fuel-input input{width:82px;height:100%;border:0;outline:0;background:transparent;color:#173c56;padding:0 7px;text-align:right;font-size:11px;font-weight:900}
.dispatch-extra-fuel-input em{font-style:normal;padding:0 7px 0 3px;color:#7c8fa0;font-size:9px}
@media(max-width:1180px){
  .dispatch-extra-fuel{margin-left:0}
}
@media(max-width:820px){
  .dispatch-load-head{flex-wrap:wrap}
  .dispatch-extra-fuel{order:3;width:100%;justify-content:flex-end}
  .vatsim-plan-summary{grid-template-columns:1fr 1fr}
  .planner-top-actions .vatsim-plan-trigger{display:none}
}

/* HYbrief v0.22.62 — Navigraph-style runway wind arrows */
.runway-wind-row{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr);gap:7px;align-items:end}
.runway-select-label{min-width:0}.procedure-full-row{display:block!important;margin-top:7px!important}
.runway-wind-card{min-width:0;min-height:62px;border:1px solid #cfdbe5;border-radius:8px;background:#f8fbfd;padding:5px 6px;display:flex;flex-direction:column;justify-content:center;gap:4px;overflow:hidden}
.runway-wind-card.runway-wind-empty{background:#f7f9fb;color:#8494a4}
.runway-wind-main{display:flex;align-items:center;justify-content:space-between;gap:5px;min-width:0;line-height:1.1}
.runway-wind-main span{font-size:8px;font-weight:900;letter-spacing:.45px;color:#7a8d9f;white-space:nowrap}
.runway-wind-main strong{min-width:0;font-size:10px;font-weight:900;color:#25445d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}
.runway-wind-components{display:flex;flex-direction:column;align-items:stretch;gap:3px;min-width:0;overflow:hidden}
.runway-wind-chip{display:inline-flex;align-items:center;justify-content:center;min-width:0;padding:3px 5px;border-radius:5px;font-size:8px;font-weight:900;line-height:1;white-space:nowrap;border:1px solid transparent}
.runway-wind-arrow-chip{width:100%;min-height:19px;box-sizing:border-box;justify-content:flex-start;padding:2px 7px;gap:5px;font-variant-numeric:tabular-nums}
.runway-wind-arrow-chip .runway-wind-arrow{display:inline-flex;align-items:center;justify-content:center;width:15px;font-size:15px;line-height:1;font-weight:950}
.runway-wind-arrow-chip strong{margin-left:auto;font-size:10px;font-weight:950;line-height:1}
.runway-wind-arrow-chip em{font-style:normal;font-size:7px;font-weight:900;opacity:.82;margin-left:-2px}
.runway-wind-message{width:100%;box-sizing:border-box;min-height:23px}
.runway-wind-chip.good{background:#e7f6ec;color:#257245;border-color:#bfe3cc}
.runway-wind-chip.warn{background:#fff4dc;color:#95611a;border-color:#efd39a}
.runway-wind-chip.danger{background:#fde9eb;color:#a43e49;border-color:#efbec4}
.runway-wind-chip.neutral{background:#edf2f6;color:#708497;border-color:#d7e0e8}
@media(max-width:980px){.runway-wind-row{grid-template-columns:1fr}.runway-wind-card{min-height:58px}.procedure-full-row{margin-top:7px!important}}


/* HYbrief v0.22.63 — compact planner sidebar for 1080p without shrinking the map */
.planner-page .planner{padding:10px 12px 12px}
.planner-page .planner>.section-kicker{margin-bottom:6px}
.planner-page .planner>label{margin:4px 0 3px;font-size:11px}
.planner-page .airport-input-wrap input{padding:7px 10px;font-size:24px}
.planner-page .airport-name{font-size:13px;padding-right:8px}
.planner-page .terminal-picker{margin-top:6px;padding:7px 8px;border-radius:9px}
.planner-page .terminal-title{margin-bottom:5px}
.planner-page .terminal-picker select{margin-top:3px;padding:7px 8px}
.planner-page .procedure-full-row{margin-top:4px!important}
.planner-page .transition-row{margin-top:4px!important}
.planner-page .app-picker-row{margin-top:4px;gap:6px}
.planner-page .link-status{margin-top:4px;padding:5px 7px;line-height:1.3}
.planner-page .chart-call-btn{margin-top:4px;padding:6px 8px}
.planner-page .runway-wind-card{min-height:46px;padding:4px 5px;gap:3px}
.planner-page .runway-wind-main span{font-size:8px}
.planner-page .runway-wind-main strong{font-size:10px}
.planner-page .runway-wind-components{flex-direction:row;gap:3px}
.planner-page .runway-wind-arrow-chip{width:auto;flex:1 1 0;min-height:18px;padding:2px 4px;gap:3px}
.planner-page .runway-wind-arrow-chip .runway-wind-arrow{width:12px;font-size:13px}
.planner-page .runway-wind-arrow-chip strong{font-size:9px}
.planner-page .runway-wind-arrow-chip em{font-size:7px;margin-left:-1px}
.planner-page .runway-wind-message{min-height:18px;padding:3px 5px}
@media(max-width:980px){
  .planner-page .runway-wind-row{grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr)}
  .planner-page .runway-wind-card{min-height:46px}
}
@media(max-width:760px){
  .planner-page .runway-wind-row{grid-template-columns:1fr}
  .planner-page .runway-wind-components{flex-direction:row}
}


/* HYbrief v0.22.64 — balanced planner sidebar: keep 1080p fit, restore a little breathing room */
.planner-page .planner{padding:11px 12px 13px}
.planner-page .planner>.section-kicker{margin-bottom:7px}
.planner-page .planner>label{margin:5px 0 4px;font-size:11px}
.planner-page .airport-input-wrap input{padding:8px 10px;font-size:24px}
.planner-page .terminal-picker{margin-top:7px;padding:8px 8px;border-radius:9px}
.planner-page .terminal-title{margin-bottom:6px}
.planner-page .terminal-picker select{margin-top:4px;padding:7px 8px}
.planner-page .procedure-full-row{margin-top:5px!important}
.planner-page .transition-row{margin-top:5px!important}
.planner-page .app-picker-row{margin-top:5px;gap:6px}
.planner-page .link-status{margin-top:5px;padding:6px 7px;line-height:1.35}
.planner-page .chart-call-btn{margin-top:5px;padding:6px 8px}
.planner-page .runway-wind-card{min-height:49px;padding:5px 5px;gap:3px}
.planner-page .runway-wind-components{flex-direction:row;gap:4px}
.planner-page .runway-wind-arrow-chip{width:auto;flex:1 1 0;min-height:19px;padding:2px 4px;gap:3px}
.planner-page .runway-wind-message{min-height:19px;padding:3px 5px}
@media(max-width:980px){
  .planner-page .runway-wind-row{grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr)}
  .planner-page .runway-wind-card{min-height:49px}
}


/* HYbrief v0.22.70 Navigraph-style airport chart browser + flight chart pinboard */
.airport-input-with-chart{grid-template-columns:100px minmax(0,1fr) auto}
.airport-chart-btn{align-self:stretch;border:0;border-left:1px solid #d5e0e9;border-radius:0;background:#eef5fa;color:#2e607f;padding:0 11px;font-size:10px;font-weight:900;letter-spacing:.3px}
.airport-chart-btn:hover{background:#e1eff8;color:#174d70}
.airport-charts-modal{z-index:145}
.airport-charts-card{width:min(760px,calc(100% - 28px));height:min(86vh,820px);display:flex;flex-direction:column;overflow:hidden}
.airport-charts-head{flex:0 0 auto}
.airport-charts-toolbar{flex:0 0 auto;padding:12px 16px;border-bottom:1px solid #dce5ed;background:#f8fafc}
.airport-charts-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.airport-chart-tab{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 6px;border:1px solid #d5e0e9;border-radius:8px;background:#fff;color:#506a80;font-size:11px;font-weight:900}
.airport-chart-tab span{min-width:18px;padding:1px 5px;border-radius:99px;background:#eef3f7;color:#75889a;font-size:9px}
.airport-chart-tab.active{background:#173f5b;border-color:#173f5b;color:#fff}
.airport-chart-tab.active span{background:rgba(255,255,255,.16);color:#fff}
.airport-charts-search{box-sizing:border-box;width:100%;margin-top:10px;padding:10px 12px;border:1px solid #ccd9e4;border-radius:9px;background:#fff;color:#284258;font-size:12px;outline:0}
.airport-charts-search:focus{border-color:#2d91b9;box-shadow:0 0 0 3px rgba(45,145,185,.1)}
.airport-charts-list{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;background:#fff}
.airport-chart-row{width:100%;display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;padding:13px 16px;border:0;border-bottom:1px solid #e5ebf0;border-radius:0;background:#fff;color:#233e55}
.airport-chart-row:hover{background:#f3f8fb}
.airport-chart-page{font-size:12px;font-weight:900;color:#2c6b92;white-space:nowrap}
.airport-chart-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.airport-chart-copy strong{font-size:13px;line-height:1.4;color:#183950;white-space:normal}
.airport-chart-copy small{font-size:10px;color:#7b8e9f;line-height:1.4;white-space:normal}
.airport-chart-open{width:31px;height:31px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:#edf4f8;color:#356987;font-size:15px;font-weight:900}
.airport-charts-empty{display:flex;align-items:center;justify-content:center;min-height:210px;padding:28px;text-align:center;color:#7b8e9f;font-size:12px;line-height:1.7}
.chart-pinboard{position:absolute;left:12px;right:12px;bottom:12px;z-index:9;display:flex;gap:7px;align-items:stretch;overflow-x:auto;padding:7px;border:1px solid rgba(184,201,214,.9);border-radius:11px;background:rgba(247,250,252,.95);box-shadow:0 8px 24px rgba(31,55,74,.16);backdrop-filter:blur(8px);scrollbar-width:thin}
.chart-pinboard.hidden{display:none!important}
.chart-pin{flex:0 0 auto;min-width:126px;max-width:220px;display:flex;flex-direction:column;gap:3px;justify-content:center;text-align:left;padding:8px 10px;border:1px solid #d7e1e9;border-radius:8px;background:#fff;color:#28465d}
.chart-pin:hover{background:#edf6fb;border-color:#aac9db}
.chart-pin strong{font-size:10px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chart-pin small{font-size:9px;color:#75899a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chart-pin.airport{border-left:3px solid #4f6f87}
.chart-pin.sid{border-left:3px solid #7657d6}
.chart-pin.star{border-left:3px solid #2d9b63}
.chart-pin.app{border-left:3px solid #c45a86}
.chart-pin.missing{opacity:.68;border-style:dashed}
@media(max-width:760px){.airport-charts-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.airport-chart-row{grid-template-columns:58px minmax(0,1fr) auto;padding:11px 12px}.chart-pinboard{left:7px;right:7px;bottom:7px}.chart-pin{min-width:112px}}


/* HYbrief v0.22.72 — planner layout cleanup: remove duplicate left chart buttons, relax sidebar, attach chart strip flush to map bottom */
.planner-page .planner-layout{grid-template-columns:332px minmax(0,1fr)}
@media(max-width:1100px){
  .planner-page .planner-layout{grid-template-columns:304px minmax(0,1fr)}
}
.planner-page .planner{padding:13px 14px 11px}
.planner-page .planner>.section-kicker{margin-bottom:8px}
.planner-page .planner>label{margin:6px 0 5px;font-size:11px}
.planner-page .airport-input-wrap input{padding:8px 10px;font-size:24px}
.planner-page .terminal-picker{margin-top:8px;padding:10px 10px 9px;border-radius:10px}
.planner-page .terminal-title{margin-bottom:7px}
.planner-page .runway-wind-row{gap:8px;align-items:stretch}
.planner-page .terminal-picker select{margin-top:5px;padding:7px 8px}
.planner-page .procedure-full-row{margin-top:6px!important}
.planner-page .transition-row{margin-top:6px!important}
.planner-page .app-picker-row{margin-top:6px;gap:7px}
.planner-page .link-status{margin-top:6px;padding:7px 8px;line-height:1.4}
.planner-page .chart-call-btn{display:none!important}
.planner-page .route-list-section{min-height:94px}
.chart-pinboard{left:0;right:0;bottom:0;gap:8px;padding:8px 10px;border-left:0;border-right:0;border-bottom:0;border-top:1px solid rgba(184,201,214,.92);border-radius:0;background:rgba(247,250,252,.98);box-shadow:0 -8px 20px rgba(31,55,74,.12);backdrop-filter:blur(8px)}
.chart-pin{min-width:128px;max-width:236px;padding:8px 10px;border-radius:8px}
@media(max-width:760px){
  .chart-pinboard{left:0;right:0;bottom:0;padding:7px 8px}
  .chart-pin{min-width:112px}
}


/* HYbrief v0.22.73 — Chart-like map proportion + true bottom chart dock */
.planner-page .map-viewport{
  height:clamp(740px,calc(100vh - 90px),930px);
  min-height:0;
  max-height:none;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:#eef3f6;
}
.map-stage{
  position:relative;
  flex:1 1 auto;
  min-height:0;
  overflow:hidden;
  background:#eef3f6;
}
.map-stage .amap-container,.map-stage #fallbackSvg{position:absolute;inset:0;width:100%;height:100%}
.map-stage .empty-state{position:absolute;inset:0}
.map-stage .map-banner{position:absolute}
.chart-pinboard{
  position:relative;left:auto;right:auto;bottom:auto;
  flex:0 0 auto;min-height:58px;width:100%;gap:8px;padding:8px 10px;
  border:0;border-top:1px solid rgba(184,201,214,.92);border-radius:0;
  background:#f7fafc;box-shadow:0 -5px 16px rgba(31,55,74,.10);backdrop-filter:none
}
.chart-pinboard.hidden{display:none!important}
.chart-pin{min-width:128px;max-width:236px;padding:8px 10px}
@media(max-width:1100px){.planner-page .map-viewport{height:clamp(650px,calc(100vh - 105px),840px)}}
@media(max-width:760px){.planner-page .map-viewport{height:62vh;min-height:390px;max-height:none}.chart-pinboard{padding:7px 8px;min-height:54px}.chart-pin{min-width:112px}}

/* HYbrief v0.22.74 — keep bottom chart dock visible in a single desktop viewport */
.planner-page .map-viewport{
  height:clamp(520px,calc(100vh - 198px),760px);
  min-height:0;
  max-height:760px;
}
.chart-pinboard{
  min-height:56px;
  padding:7px 10px;
}
.chart-pin{
  min-width:124px;
  max-width:232px;
  padding:7px 10px;
}
@media(max-width:1100px){
  .planner-page .map-viewport{
    height:clamp(500px,calc(100vh - 194px),720px);
    max-height:720px;
  }
}
@media(max-height:850px) and (min-width:761px){
  .planner-page .map-viewport{
    height:calc(100vh - 188px);
    min-height:470px;
    max-height:none;
  }
  .chart-pinboard{min-height:52px;padding:6px 9px}
  .chart-pin{padding:6px 9px}
}


/* HYbrief v0.22.75 — chart-like balance: shrink top route bar and bottom chart dock slightly, keep map comfortable */
.route-topbar{
  padding:6px 10px;
  margin-bottom:6px;
  min-height:50px;
  gap:10px;
}
.route-top-ident{max-width:250px}
.route-top-ident strong{font-size:13px}
.route-top-ident span{font-size:8px;margin-top:1px}
.route-top-string-wrap{padding:0 10px}
.route-top-label{font-size:7px;margin-bottom:1px}
.route-top-string{font-size:10px;line-height:1.35}
.route-top-actions .source-badge{font-size:8px;padding:4px 6px}
.route-top-actions button{padding:4px 7px}
.planner-page .map-toolbar{height:40px}
.planner-page .map-viewport{
  height:clamp(510px,calc(100vh - 186px),740px);
  max-height:740px;
}
.chart-pinboard{
  min-height:48px;
  padding:5px 8px;
  gap:6px;
}
.chart-pin{
  min-width:118px;
  max-width:214px;
  padding:6px 8px;
  gap:2px;
}
.chart-pin strong{font-size:9px;line-height:1.2}
.chart-pin small{font-size:8px}
@media(max-width:1100px){
  .planner-page .map-viewport{
    height:clamp(490px,calc(100vh - 184px),700px);
    max-height:700px;
  }
}
@media(max-height:850px) and (min-width:761px){
  .planner-page .map-viewport{
    height:calc(100vh - 180px);
    min-height:460px;
  }
  .chart-pinboard{min-height:46px;padding:5px 8px}
  .chart-pin{padding:5px 8px}
}


/* HYbrief v0.22.76 — bottom chart dock uses title-only labels like Charts */
.chart-pinboard{gap:6px;padding:5px 8px;min-height:46px}
.chart-pin{
  min-width:104px;
  max-width:200px;
  min-height:34px;
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  gap:6px;
  padding:5px 8px;
}
.chart-pin strong{font-size:10px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}
.chart-pin small{display:none!important}
.chart-pin-meta{flex:0 0 auto;font-size:8px;font-weight:900;line-height:1;padding:3px 5px;border-radius:6px;background:#eef3f7;color:#5e7386;border:1px solid #d6e1ea}
.chart-pin.airport{min-width:86px;max-width:120px}
.chart-pin.airport strong{text-align:center}
.chart-pin.title-only{justify-content:center}
@media(max-width:1100px){
  .chart-pin{min-width:98px;max-width:186px}
}
@media(max-width:760px){
  .chart-pinboard{min-height:42px;padding:4px 7px;gap:5px}
  .chart-pin{min-width:92px;max-width:168px;padding:4px 7px}
  .chart-pin strong{font-size:9px}
  .chart-pin-meta{font-size:7px;padding:2px 4px}
}

/* HYbrief v0.22.77 — SimConnect ownship anchor fix
   Keep the geographic anchor on the aircraft symbol itself. The text label is
   absolutely positioned and no longer participates in the marker box width. */
.hy-maplibre-host .sim-aircraft-marker{
  position:relative;
  width:27px;
  height:27px;
  display:block;
  transform:none;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.25));
  overflow:visible;
}
.hy-maplibre-host .sim-aircraft-arrow{
  position:absolute;
  left:0;
  top:0;
  width:27px;
  height:27px;
  box-sizing:border-box;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#e33d45;
  color:#fff;
  border:2px solid #fff;
  font-size:14px;
  line-height:1;
  transform-origin:50% 50%;
}
.hy-maplibre-host .sim-aircraft-label{
  position:absolute;
  left:33px;
  top:50%;
  transform:translateY(-50%);
  display:flex;
  flex-direction:column;
  background:rgba(255,255,255,.97);
  border:1px solid #efb1b6;
  border-radius:7px;
  padding:3px 6px;
  white-space:nowrap;
}


/* HYbrief v0.22.78 — give the map a bit more vertical space while keeping the chart dock visible */
.route-topbar{
  padding:5px 10px;
  margin-bottom:5px;
  min-height:46px;
}
.route-top-ident strong{font-size:12px}
.route-top-string{font-size:9px;line-height:1.3}
.planner-page .map-toolbar{height:38px}
.planner-page .map-viewport{
  height:clamp(540px,calc(100vh - 175px),770px);
  max-height:770px;
}
.planner-detail-grid{margin-top:8px}
.chart-pinboard{min-height:44px;padding:4px 8px;gap:5px}
.chart-pin{min-height:32px;min-width:100px;max-width:190px;padding:4px 8px;gap:5px}
.chart-pin strong{font-size:9px;line-height:1.1}
.chart-pin.airport{min-width:82px;max-width:112px}
@media(max-width:1100px){
  .planner-page .map-viewport{
    height:clamp(520px,calc(100vh - 172px),735px);
    max-height:735px;
  }
}
@media(max-height:850px) and (min-width:761px){
  .planner-page .map-viewport{
    height:calc(100vh - 170px);
    min-height:475px;
    max-height:none;
  }
}
