/* IFR inherits the VFR planner's layout/components. This file only defines IFR-specific pieces. */
.ifr-step{padding-bottom:6rem}
.ifr-step .vfr-results{width:100%}
.ifr-step .vfr-map-column{min-width:0}

/* Departure gradient */
.ifr-gradient-card{margin:.85rem 0 1rem}
.ifr-gradient-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}
.ifr-gradient-status>div{min-width:0}
.ifr-gradient-status span,.ifr-gradient-status small{display:block}
.ifr-gradient-status span{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:750}
.ifr-gradient-status strong{display:block;margin:.2rem 0;font-size:1.08rem}
.ifr-gradient-status small{color:var(--muted);line-height:1.35}
.ifr-gradient-status.pass{border-left:4px solid var(--success)}
.ifr-gradient-status.fail{border-left:4px solid var(--danger)}
.ifr-gradient-override{margin-top:.75rem}
.ifr-gradient-override summary{cursor:pointer;color:var(--muted);font-size:.8rem;font-weight:700}
.ifr-gradient-override .vfr-field-grid{margin-top:.8rem}

/* Route advisor */
.ifr-route-aids-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0 .55rem}
.ifr-route-aids-heading>div{display:grid;gap:.12rem}
.ifr-route-aids-heading strong{font-size:.92rem}
.ifr-route-suggestions{display:grid;gap:.85rem;margin-bottom:1rem}
.ifr-route-suggestion-group{display:grid;gap:.5rem}
.ifr-route-suggestion-group>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}
.ifr-route-suggestion-group>div:first-child small{color:var(--muted);font-size:.72rem;text-align:right}
.ifr-route-suggestion-list{display:grid;gap:.45rem}
.ifr-route-suggestion{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.8rem;padding:.68rem .75rem;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}
.ifr-route-suggestion.selected{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent)}
.ifr-route-suggestion>div{min-width:0;display:grid;gap:.1rem}
.ifr-route-suggestion span{font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}
.ifr-route-suggestion code{font-size:.76rem;color:var(--text);overflow-wrap:anywhere;white-space:normal}
.ifr-route-suggestion small{font-size:.68rem;color:var(--muted)}

/* Procedure advisor */
.ifr-procedure-panel{overflow:hidden}
.ifr-procedure-tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin:.45rem 0 .65rem}
.ifr-procedure-tabs button{min-height:38px;padding:.45rem .72rem;border:1px solid var(--line);border-radius:999px;background:var(--surface-soft);color:var(--muted);font-weight:750}
.ifr-procedure-tabs button[aria-pressed="true"]{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.ifr-procedure-list{display:grid;gap:.65rem;margin-top:.7rem;max-height:520px;overflow:auto;padding-right:.15rem}
.ifr-procedure-card{position:relative;display:grid;gap:.6rem;padding:.78rem .82rem .82rem 1rem;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}
.ifr-procedure-card:before{content:"";position:absolute;inset:.65rem auto .65rem .55rem;width:4px;border-radius:999px;background:var(--procedure-color,var(--accent))}
.ifr-procedure-card.selected{border-color:color-mix(in srgb,var(--procedure-color,var(--accent)) 70%,var(--line))}
.ifr-procedure-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;padding-left:.3rem}
.ifr-procedure-card-head>div{display:grid;gap:.08rem;min-width:0}
.ifr-procedure-card-head span{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:850}
.ifr-procedure-card-head strong{font-size:.9rem;line-height:1.2}
.ifr-procedure-card-head>small{font-size:.68rem;color:var(--muted);white-space:nowrap}
.ifr-procedure-transitions{display:flex;flex-wrap:wrap;gap:.38rem;padding-left:.3rem}
.ifr-procedure-transition{display:grid;gap:.05rem;text-align:left;min-height:40px;padding:.36rem .55rem;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text)}
.ifr-procedure-transition span{font-size:.72rem;font-weight:800}
.ifr-procedure-transition small{font-size:.59rem;color:var(--muted)}
.ifr-procedure-transition.selected{border-color:var(--procedure-color,var(--accent));background:color-mix(in srgb,var(--procedure-color,var(--accent)) 8%,var(--surface))}
.ifr-use-procedure{justify-self:start;margin-left:.3rem}

/* Alternate decision */
.ifr-alternate-decision{margin-bottom:.9rem}
.ifr-alternate-verdict{padding:1rem 1.05rem;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}
.ifr-alternate-verdict>span{display:block;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;font-weight:800}
.ifr-alternate-verdict strong{display:block;margin:.2rem 0 .35rem;font-size:1.05rem}
.ifr-alternate-verdict p{margin:0;line-height:1.45}
.ifr-alternate-verdict small{display:block;margin-top:.5rem;color:var(--muted);line-height:1.4}
.ifr-alternate-verdict.required{border-left:4px solid var(--accent)}
.ifr-alternate-verdict.not-required{border-left:4px solid var(--success)}
.ifr-alternate-weather{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap;margin:.5rem 0;font-size:.82rem}
.ifr-alternate-weather b{color:var(--text)}
.ifr-alternate-weather span{color:var(--muted)}
.ifr-optional-alternate{margin:.7rem 0 1rem}
.ifr-alternate-choice{align-items:stretch}
.ifr-alternate-choice button{flex:1;min-height:48px}
.ifr-alternate-choice button.selected,.ifr-alternate-choice button[aria-pressed="true"]{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.ifr-alternate-suggestions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.62rem;margin:.75rem 0}
.ifr-alternate-card{display:grid;grid-template-columns:1fr;gap:.4rem;text-align:left;padding:.72rem .78rem;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);min-width:0;box-shadow:none;transform:none}
.ifr-alternate-card:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));transform:none}
.ifr-alternate-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent)}
.ifr-alt-card-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.ifr-alt-card-head>span{font-size:.61rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ifr-alt-card-main{display:flex;align-items:baseline;gap:.42rem;min-width:0}
.ifr-alt-card-main strong{font-size:.92rem;white-space:nowrap}
.ifr-alt-card-main>span{font-size:.74rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ifr-mon-badge,.ifr-wx-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;font-style:normal;font-size:.6rem;font-weight:900;letter-spacing:.05em;padding:.14rem .38rem;white-space:nowrap}
.ifr-mon-badge{background:color-mix(in srgb,var(--accent) 13%,var(--surface));color:var(--accent)}
.ifr-wx-badge.vfr{background:rgba(48,160,102,.17);color:#63d399}
.ifr-wx-badge.mvfr{background:rgba(63,116,210,.18);color:#82a8ff}
.ifr-wx-badge.ifr{background:rgba(201,76,80,.18);color:#f28a8e}
.ifr-wx-badge.lifr{background:rgba(174,86,185,.2);color:#df9ee8}
.ifr-wx-badge.unknown{background:rgba(150,150,150,.14);color:var(--muted)}
.ifr-alt-metrics{display:flex;flex-wrap:wrap;gap:.22rem .62rem;font-size:.68rem;color:var(--muted)}
.ifr-alt-weather-lines{display:grid;gap:.18rem;margin-top:.08rem;padding-top:.38rem;border-top:1px solid var(--line);min-width:0}
.ifr-alt-weather-lines code{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.61rem;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.ifr-alt-weather-lines b{color:var(--text);font-family:inherit;font-size:.57rem;letter-spacing:.06em}
.ifr-other-alternate{margin-top:.65rem}

/* Review / weather */
.ifr-review-alternate{margin:.85rem 0}
.ifr-review-card{padding:.9rem 1rem;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}
.ifr-review-card span,.ifr-review-card small{display:block;color:var(--muted)}
.ifr-review-card span{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;font-weight:800}
.ifr-review-card strong{display:block;margin:.18rem 0}
.ifr-weather-role{display:block;margin-bottom:.18rem;color:var(--accent);font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;font-weight:850}
.ifr-alternate-weather-card{grid-column:1/-1}
.ifr-final-weather{display:grid;gap:1rem;margin:1rem 0}
.ifr-final-weather-leg{display:grid;gap:.55rem}
.ifr-final-weather-heading{display:flex;align-items:baseline;gap:.45rem}
.ifr-final-weather-heading span{font-size:.63rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}
.ifr-final-weather-heading strong{font-size:.82rem}

/* Final action bar mirrors VFR */
.route-actions-ifr.vfr-final-actions{width:min(920px,100%);grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;padding:.5rem}
.route-actions-ifr.vfr-final-actions button{min-height:52px;padding-inline:.7rem;white-space:nowrap}

@media(max-width:1040px){
  .route-actions-ifr.vfr-final-actions{width:min(720px,calc(100% - 1rem));padding:.48rem;background:var(--surface);border-radius:18px;box-shadow:0 8px 24px rgba(9,28,27,.18)}
  .route-actions-ifr.vfr-final-actions button{min-height:48px;border-radius:12px}
}
@media(max-width:760px){
  .ifr-gradient-status,.ifr-alternate-suggestions{grid-template-columns:1fr}
  .ifr-gradient-status>div+div{border-top:1px solid var(--line);padding-top:.65rem}
  .ifr-alt-weather-lines code{white-space:normal;overflow-wrap:anywhere}
  .ifr-route-aids-heading,.ifr-route-suggestion-group>div:first-child{align-items:flex-start;flex-direction:column}
  .ifr-route-suggestion{grid-template-columns:1fr}
  .ifr-procedure-list{max-height:none}
  .route-actions-ifr.vfr-final-actions{width:calc(100% - .7rem);grid-template-columns:repeat(2,minmax(0,1fr));gap:.42rem;padding:.42rem;border-radius:15px}
  .route-actions-ifr.vfr-final-actions button{min-height:46px;padding:.55rem .45rem;border-radius:10px;line-height:1.15;white-space:normal}
}

/* Procedure entry labels on the IFR chart. */
.ifr-procedure-point-label.leaflet-tooltip {
  padding:.18rem .38rem;
  border:1px solid rgba(14,35,39,.72);
  border-radius:6px;
  background:rgba(247,250,249,.94);
  color:#102d31;
  box-shadow:0 1px 5px rgba(0,0,0,.18);
  font-size:.62rem;
  font-weight:850;
  letter-spacing:.035em;
  white-space:nowrap;
}
.ifr-procedure-point-label.leaflet-tooltip:before{display:none}

/* Route viewer mirrors the procedure viewer: preview first, then explicitly apply. */
.ifr-route-viewer-card{cursor:pointer}
.ifr-route-viewer-card.selected{border-color:#f0a52b;box-shadow:0 0 0 1px rgba(240,165,43,.28)}
.ifr-route-viewer-main{min-width:0;display:grid;gap:.12rem}
.ifr-route-viewer-main em{font-style:normal;font-size:.66rem;color:var(--muted)}
.ifr-route-viewer-actions{display:flex;align-items:center;gap:.38rem;flex-wrap:wrap;justify-content:flex-end}
.ifr-route-viewer-card.selected .ifr-route-viewer-actions [data-preview-route]{border-color:#f0a52b;color:#f0a52b}
.ifr-use-route{border-color:var(--accent)!important;color:var(--accent)!important}
.ifr-route-preview-point-label.leaflet-tooltip{background:#fff7e7;color:#5d3a00;border:1px solid rgba(240,165,43,.72);box-shadow:0 1px 5px rgba(0,0,0,.22);font-size:10px;font-weight:800;letter-spacing:.02em;padding:2px 5px;border-radius:5px}
.ifr-route-preview-point-label.leaflet-tooltip:before{display:none}
@media(max-width:760px){.ifr-route-viewer-actions{justify-content:flex-start}.ifr-route-viewer-card{grid-template-columns:1fr}}

.ifr-procedure-point-label.selected.leaflet-tooltip{
  background:#fff8ef;
  color:#16201d;
  border:2px solid #f26b45;
  box-shadow:0 2px 8px rgba(0,0,0,.34);
  font-size:11px;
  font-weight:900;
  letter-spacing:.025em;
  padding:3px 6px;
  border-radius:6px;
}
.ifr-procedure-point-label.selected.leaflet-tooltip:before{display:none}
#ifrAlternateError{margin:.65rem 0 .8rem;padding:.7rem .8rem;border:1px solid color-mix(in srgb,var(--danger) 55%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--danger) 8%,var(--surface))}

/* Final IFR fuel requirement briefing. */
.ifr-final-fuel{display:grid;gap:.85rem;margin:1rem 0 1.2rem;padding:1rem;border:1px solid var(--line);border-radius:16px;background:var(--surface-soft)}
.ifr-fuel-total-cards{margin:0}
.ifr-fuel-requirement-list{display:grid;gap:.7rem}
.ifr-fuel-requirement-card{display:grid;gap:.55rem;padding:.82rem .9rem;border:1px solid var(--line);border-radius:13px;background:var(--surface)}
.ifr-fuel-requirement-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.ifr-fuel-requirement-head>div{display:grid;gap:.06rem}
.ifr-fuel-requirement-head span{font-size:.62rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:850}
.ifr-fuel-requirement-head strong{font-size:.9rem}
.ifr-fuel-requirement-head>b{font-size:.82rem;color:var(--accent);white-space:nowrap}
.ifr-fuel-formula{display:grid;gap:.22rem}
.ifr-fuel-formula code{white-space:normal;overflow-wrap:anywhere;font-size:.7rem;color:var(--muted)}
.ifr-fuel-formula strong{color:var(--text)}
@media(max-width:760px){.ifr-fuel-requirement-head{align-items:flex-start;flex-direction:column;gap:.35rem}}
.ifr-route-viewer-card.altitude-outside{border-color:color-mix(in srgb,var(--warning) 55%,var(--line));background:color-mix(in srgb,var(--warning) 5%,var(--surface))}
.ifr-runway-recommendation{margin:.55rem 0 .1rem;line-height:1.45}

/* Hover/focus isolates overlapping procedure previews without applying them. */
.ifr-procedure-transition{transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease,background .12s ease}
.ifr-procedure-transition:hover,.ifr-procedure-transition:focus-visible,.ifr-procedure-transition.previewing{
  border-color:var(--procedure-color,var(--accent));
  box-shadow:0 0 0 2px color-mix(in srgb,var(--procedure-color,var(--accent)) 25%,transparent);
  background:color-mix(in srgb,var(--procedure-color,var(--accent)) 11%,var(--surface));
  transform:translateY(-1px);
  outline:none;
}


/* Selector shown when multiple procedure previews share the same map segment. */
.ifr-procedure-picker .leaflet-popup-content-wrapper{border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);box-shadow:0 10px 30px rgba(0,0,0,.24)}
.ifr-procedure-picker .leaflet-popup-content{margin:.72rem;width:min(280px,calc(100vw - 72px))!important}
.ifr-procedure-picker .leaflet-popup-tip{background:var(--surface)}
.ifr-procedure-picker-body{display:grid;gap:.2rem}
.ifr-procedure-picker-body>strong{font-size:.84rem}
.ifr-procedure-picker-body>small{color:var(--muted);margin-bottom:.36rem}
.ifr-procedure-picker-body>div{display:grid;gap:.34rem;max-height:220px;overflow:auto}
.ifr-procedure-picker-body button{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem;width:100%;padding:.55rem .62rem;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);color:var(--text);text-align:left;cursor:pointer}
.ifr-procedure-picker-body button:hover,.ifr-procedure-picker-body button:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--surface));outline:none}
.ifr-procedure-picker-body button b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem}
.ifr-procedure-picker-body button span{font-size:.68rem;color:var(--muted);font-weight:800;white-space:nowrap}

.ifr-approach-name-label.leaflet-tooltip{
  display:grid;
  gap:0;
  padding:3px 6px;
  border:1px solid rgba(7,25,28,.72);
  border-left:4px solid var(--procedure-color,#102d31);
  border-radius:6px;
  background:rgba(247,250,249,.94);
  color:#102d31;
  box-shadow:0 1px 5px rgba(0,0,0,.2);
  font-size:10px;
  line-height:1.05;
  text-align:center;
  white-space:nowrap;
  cursor:pointer;
}
.ifr-approach-name-label.leaflet-tooltip span{font-weight:900;letter-spacing:.015em}
.ifr-approach-name-label.leaflet-tooltip small{font-size:8px;font-weight:800;color:#5f6f70;letter-spacing:.055em;text-transform:uppercase}
.ifr-approach-name-label.leaflet-tooltip:before{display:none}
.ifr-approach-name-label.selected.leaflet-tooltip{
  border:2px solid #f26b45;
  background:#fff8ef;
  color:#16201d;
  box-shadow:0 2px 8px rgba(0,0,0,.32);
}
@media(max-width:680px){
  .ifr-approach-name-label.leaflet-tooltip{padding:2px 4px;font-size:9px}
  .ifr-approach-name-label.leaflet-tooltip small{font-size:7px}
}
