.tool-source { color: var(--muted); font-size: 13px; line-height: 1.7; }
@font-face { font-family:"Bomana Flags"; src:url("./fonts/country-flags.ttf") format("truetype"); font-display:swap; unicode-range:U+1F1E6-1F1FF; }
body.calculator-page { font-family:"Bomana Flags", "Noto Sans SC", "Microsoft YaHei UI", "Microsoft YaHei", system-ui, sans-serif; }
.tool-nav { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 26px; }
.tool-nav a { padding: 8px 13px; border: 1px solid #cbdde8; border-radius: 999px; color: #225776; background: #f5faff; font-size: 13px; text-decoration: none; }
.tool-nav a:hover, .tool-nav a:focus-visible { background: #dfeff9; }
.tool-panel { margin-top: 32px; padding: clamp(18px, 3vw, 32px); border: 1px solid #cbdde8; border-radius: 22px; background: #ffffffd9; scroll-margin-top: 24px; min-width: 0; }
/* Keep changing charts/list hover inside their own paint bounds. The aircraft
   search dropdown lives outside these panels and remains free to overflow. */
.tool-panel, .loadout-scroll, .air-plot { contain: paint; }
.tool-panel-head h2 { margin: 4px 0 10px; font-size: clamp(21px, 3vw, 27px); color: #193c56; }
.tool-panel-head > p:last-child, .tool-note { color: var(--muted); line-height: 1.8; font-size: 13px; }
.tool-table-scroll { max-height: 480px; overflow: auto; margin: 18px 0; border-radius: 10px; }
.tool-table { border-collapse: collapse; width: 100%; font-size: 13px; text-align: right; font-variant-numeric: tabular-nums; }
.tool-table[hidden] { display: none; }
.tool-table th, .tool-table td { padding: 12px; border-bottom: 1px solid #e2ebf1; white-space: nowrap; }
.tool-table th { position: sticky; top: 0; background: #eaf3fa; color: #31566e; font-weight: 600; }
.tool-table th:first-child, .tool-table td:first-child { text-align: left; }
.tool-table tr[data-selected="true"] td { background: #eaf5fe; }
.tool-table button { border: 0; background: none; padding: 2px 0; color: #176899; font: inherit; text-align: left; cursor: pointer; white-space: normal; min-width: 130px; }
.tool-table button:hover { text-decoration: underline; }
.tool-input-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 22px 0; }
.tool-input-grid input { width: 100%; box-sizing: border-box; }
.fuel-plan-result { background: #edf5fb; border-radius: 14px; padding: 18px; color: #254962; font-size: 14px; line-height: 1.7; }
.fuel-plan-result p { margin: 0; }
.fuel-plan-result dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0 0 14px; }
.fuel-plan-result dt { color: #537086; font-size: 12px; }
.fuel-plan-result dd { margin: 4px 0 0; font-size: 21px; font-weight: 650; font-variant-numeric: tabular-nums; }
.fuel-plan-result[data-deficit="true"] { background: #fff1e4; color: #8c440f; }
.tool-details { padding: 18px 0; border-top: 1px solid #dbe6ee; color: #426176; font-size: 14px; line-height: 1.85; }
.tool-details:first-of-type { margin-top: 20px; }
.tool-details summary { cursor: pointer; font-weight: 650; color: #254962; }
.tool-details p { margin: 12px 0 0; }
.tool-details a { color: #176899; text-underline-offset: 3px; }
.module-guide { display: grid; grid-template-columns: 120px 1fr; gap: 8px 16px; margin: 14px 0; }
.module-guide dt { font-weight: 600; }
.module-guide dd { margin: 0; }
.conversion-sides { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 24px; }
.conversion-side { min-width: 0; margin: 0; border: 1px solid #cbdde8; border-radius: 14px; padding: 18px; background: #f5faff; }
.conversion-side legend { padding: 0 8px; color: #244e69; font-weight: 700; }
.conversion-side>.hangar-field { margin-bottom: 12px; }
.conversion-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.conversion-fields input, .conversion-side select, .conversion-quantity input { width: 100%; box-sizing: border-box; min-width: 0; }
.conversion-use { border: 1px solid #b8cfde; border-radius: 8px; padding: 9px 12px; color: #225776; background: #fff; font: inherit; font-size: 12px; cursor: pointer; margin-bottom: 12px; }
.conversion-use:hover { background: #e2f0f9; }
.conversion-source { color: #547084; font-size: 12px; line-height: 1.8; margin-bottom: 0; overflow-wrap: anywhere; }
.conversion-quantity { display: flex; align-items: end; flex-wrap: wrap; gap: 18px; margin: 20px 0; }
.conversion-quantity .hangar-field { max-width: 200px; }
.conversion-quantity p { color: #547084; font-size: 12px; line-height: 1.8; flex: 1; min-width: 180px; }
.conversion-result { background: #edf5fb; border-radius: 14px; padding: 20px; margin-top: 20px; color: #244e69; }
.conversion-result h3 { margin: 0 0 14px; font-size: 19px; }
.conversion-result strong { color: #126b8a; }
.conversion-formulas { display: grid; gap: 9px; margin: 16px 0; }
.conversion-formulas p { margin: 0; border-left: 3px solid #a3cadc; padding: 8px 12px; background: #ffffffb3; line-height: 1.8; overflow-wrap: anywhere; }
.conversion-formulas code { font: 14px/1.8 Consolas, "Microsoft YaHei", monospace; white-space: normal; }
.conversion-damage { padding-top: 16px; color: #49657a; font-size: 13px; line-height: 1.9; overflow-wrap: anywhere; }
.reward-result { padding: 20px; border-radius: 14px; background: #edf5fb; color: #254962; line-height: 1.8; overflow-wrap: anywhere; }
.reward-result h3 { margin: 0 0 16px; font-size: 19px; }
.reward-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 18px; margin: 0; }
.reward-stats dt { font-size: 12px; color: #537086; }
.reward-stats dd { margin: 5px 0 0; font-size: 22px; font-weight: 650; font-variant-numeric: tabular-nums; }
.tool-panel [hidden] { display: none !important; }
.reward-workspace { display: grid; grid-template-columns: minmax(260px, .8fr) minmax(0, 1.3fr); gap: clamp(24px, 4vw, 48px); margin-top: 26px; }
.reward-controls, .reward-visuals { min-width: 0; }
.reward-controls { padding: 20px; border-radius: 16px; background: #f5faff; border: 1px solid #dce8f0; align-self: start; }
.reward-controls .conversion-fields { gap: 12px; }
.simple-picker { margin: 20px 0 12px; min-width: 0; }
.simple-picker input, .simple-picker select { display: block; width: 100%; min-width: 0; box-sizing: border-box; padding: 12px; border: 1px solid #b7cede; border-radius: 8px; color: #254962; background: #fff; font: inherit; font-size: 14px; }
.simple-picker input { border-radius: 8px 8px 0 0; }
.simple-picker > select { border-radius: 0 0 8px 8px; border-top: 0; }
.simple-picker .hangar-field { gap: 8px; }
.simple-picker :focus-visible, .score-control input:focus-visible, .quantity-stepper :focus-visible { outline: 2px solid #337da4; outline-offset: 2px; }
.score-control { margin-top: 24px; color: #31556e; }
.score-control > label { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px; font-size: 13px; font-weight: 650; }
.score-control small { font-size: 12px; font-weight: 400; line-height: 1.8; color: #607c90; }
.score-value { display: flex; gap: 8px; align-items: baseline; margin: 10px 0 2px; }
.score-value input { width: 100%; min-width: 0; padding: 0; border: 0; background: transparent; color: #195476; font-family: inherit; font-size: 40px; line-height: 1.4; font-weight: 700; font-variant-numeric: tabular-nums; }
.score-value span { font-size: 13px; }
#rewardScoreSlider { width: 100%; margin: 10px 0; height: 24px; accent-color: #337fa0; cursor: pointer; }
.score-presets { display: flex; gap: 5px; margin-bottom: 10px; }
.score-presets button { flex: 1; min-width: 0; min-height: 34px; padding: 5px 2px; border: 1px solid #cadce7; border-radius: 6px; color: #476d85; background: #fff; cursor: pointer; font: inherit; font-size: 12px; }
.score-presets button[aria-pressed=true] { color: #fff; border-color: #337fa0; background: #337fa0; }
.reward-controls .tool-details { font-size: 12px; padding-bottom: 0; }
.reward-controls .tool-details > .hangar-field, .reward-controls details details { margin-top: 18px; }
.simple-check { display: flex; align-items: center; gap: 8px; margin: 18px 0 8px; line-height: 1.6; }
.simple-check input { width: 17px; height: 17px; accent-color: #337fa0; }
.reference-pill { display: inline-block; margin: 0 0 12px; padding: 5px 10px; border-radius: 6px; color: #806234; background: #fbf1df; font-size: 12px; line-height: 1.6; }
.reward-context { margin: 0 0 12px; font-size: 13px; color: #54748a; }
.reward-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.reward-stats dd { color: #1d6a8c; font-size: clamp(22px, 3vw, 32px); line-height: 1.4; }
.reward-stats > div:nth-child(2) dd { color: #967136; }
.reward-total { margin: 14px 0 0; padding-top: 10px; border-top: 1px solid #d3e3ed; font-size: 13px; }
.reward-result > .tool-note { margin: 8px 0 0; font-size: 12px; line-height: 1.7; }
.chart-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 5px; margin-top: 22px; }
.chart-heading h3 { margin: 0; color: #31566e; font-size: 15px; }
.chart-heading > span { color: #688294; font-size: 12px; }
.reward-chart { width: 100%; min-width: 0; margin: 12px 0 0; border-radius: 12px; background: #f6f9fc; }
.reward-chart svg, .conversion-chart svg { display: block; width: 100%; }
.reward-chart text, .conversion-chart text { fill: #4d6b80; font: 12px sans-serif; font-variant-numeric: tabular-nums; }
.chart-grid { stroke: #d5e2eb; stroke-width: 1; }
.chart-unknown { fill: #e9eef3; }
.chart-immediate-area { fill: #448faf; fill-opacity: .14; }
.chart-landing-area { fill: #deb96f; fill-opacity: .38; }
.chart-immediate-line { fill: none; stroke: #337f9f; stroke-width: 2.5; }
.chart-landing-line { fill: none; stroke: #b28a43; stroke-width: 2; }
.chart-sample { fill: #337f9f; }
.chart-current-line { stroke: #5b788c; stroke-dasharray: 3 4; }
.chart-current { fill: #226d90; stroke: white; stroke-width: 2.5; }
.chart-current-landing { fill: #a17b35; stroke: white; stroke-width: 2; }
.chart-legend { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 14px; padding: 0 8px 12px; color: #5b7589; font-size: 11px; }
.chart-legend span::before { content: ""; display: inline-block; width: 9px; height: 9px; margin-right: 5px; border-radius: 2px; background: #448faf; }
.chart-legend .legend-landing::before { background: #d4b16d; }
.chart-legend .legend-unknown::before { background: #d6dfe8; }
.chart-legend .legend-surplus::before { background: repeating-linear-gradient(45deg, #e8cfa1 0 2px, #997131 2px 3px); }
.chart-empty { display: flex; align-items: center; justify-content: center; min-height: 180px; margin: 0; padding: 22px; color: #647d91; font-size: 13px; line-height: 1.8; text-align: center; }
.conversion-side .simple-picker { margin-top: 4px; }
.charge-custom { margin-top: 16px; padding-top: 12px; border-top: 1px solid #dce7ee; color: #53758b; font-size: 12px; line-height: 1.8; }
.charge-custom summary { cursor: pointer; }
.charge-custom > .hangar-field, .charge-custom > .conversion-fields, .charge-custom > button { margin-top: 14px; }
.quantity-stepper { display: flex; border: 1px solid #b7cede; border-radius: 8px; overflow: hidden; }
.quantity-stepper input { width: 80px; border: 0; border-radius: 0; text-align: center; appearance: textfield; }
.quantity-stepper input::-webkit-inner-spin-button { appearance: none; }
.quantity-stepper button { min-width: 44px; min-height: 44px; border: 0; color: #225776; background: #edf5fb; cursor: pointer; font: inherit; font-size: 20px; }
.quantity-stepper button:disabled { opacity: .35; cursor: default; }
.conversion-quantity .conversion-use { min-height: 44px; margin: 0; font-size: 13px; }
.conversion-headline { margin: 0 0 8px; font-size: 17px; }
.conversion-headline strong { display: inline-block; font-size: 30px; }
.conversion-equation { margin: 0 0 14px; font-size: 13px; line-height: 1.8; overflow-wrap: anywhere; }
.conversion-chart { max-width: 650px; margin: 10px auto 0; }
.chart-bar-track { fill: #dce9f1; }
.chart-bar-a { fill: #448faf; }
.chart-bar-b { fill: #b28a43; }
.conversion-surplus { margin: 0; color: #82652f; font-size: 13px; text-align: center; }
.conversion-quick-formula { margin: 14px 0 0; padding-top: 12px; border-top: 1px solid #d2e3ed; text-align: center; overflow-wrap: anywhere; }
.conversion-quick-formula code { font: 13px/1.8 Consolas, "Microsoft YaHei", monospace; }
#rewardsForm select { width: 100%; min-width: 0; }
#rewardsForm input:disabled { opacity: .6; }
@media (max-width: 900px) {
  .reward-workspace { grid-template-columns: 1fr; gap: 22px; }
}
@media (max-width: 680px) {
  .tool-input-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .fuel-plan-result dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .module-guide { grid-template-columns: 95px 1fr; gap: 8px; }
  .tool-panel { border-radius: 16px; }
  .conversion-sides { grid-template-columns: 1fr; }
  .conversion-side { padding: 14px; }
  .conversion-result { padding: 15px; }
}
@media (max-width: 480px) {
  .reward-controls { padding: 14px; }
  .reward-controls > .conversion-fields { grid-template-columns: 1fr; }
  .reward-result { padding: 14px; }
  .reward-stats { gap: 10px; }
  .conversion-quantity { gap: 12px; }
  .conversion-fields { gap: 10px; }
}
.repair-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin: 20px 0; }
.repair-controls .hangar-field { flex: 1; min-width: 180px; }
.repair-controls input[type="range"] { width: 100%; }
.repair-controls .score-presets { flex: 1; min-width: 180px; }
.repair-controls .score-presets button { min-height: 44px; }
.repair-result { padding: 16px; border-radius: 12px; background: #edf5fb; color: #244e69; line-height: 1.8; }
.repair-open-end { fill: #fff; stroke: #177ca2; stroke-width: 2; }
.airport-palette { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 20px 0 12px; }
.airport-palette > span { display: flex; flex-direction: column; gap: 8px; text-align: center; font-size: 12px; color: #244e69; }
.airport-palette i { display: block; height: 8px; border: 1px solid #8395a0; border-radius: 2px; }
.airport-palette > span > span { white-space: nowrap; font-size: 11px; }
.airport-reference { max-width: 370px; margin: 12px auto; background: #edf5fb; border-radius: 12px; color: #244e69; }
.airport-reference svg { display: block; width: 100%; }
.airport-reference text { font: 14px system-ui, sans-serif; fill: #244e69; }
.airport-runway { stroke: #388ece; stroke-width: 5; }
.airport-arrow { fill: #164a6e; }
.airport-module-bar { stroke: #627b8c; stroke-width: 4; }
.airport-comparison { margin: 24px 0; }
.airport-comparison h3 { font-size: 18px; margin: 0 0 10px; }
.airport-comparison-panels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.airport-comparison-panels figure { margin: 0; min-width: 0; }
.airport-comparison-panels figcaption { text-align: center; font-size: 14px; font-weight: 700; color: #246d9d; }
.airport-reversed figcaption { color: #b43d43; }
.airport-reversed .airport-reference { background: #fff1f0; }
.airport-reversed .airport-runway { stroke: #cb5059; }
.airport-reversed .airport-arrow { fill: #a9323a; }
.airport-endpoint { paint-order: stroke; stroke: #edf5fb; stroke-width: 5px; stroke-linejoin: round; }
.airport-reversed .airport-endpoint { stroke: #fff1f0; }
@media (max-width: 560px) { .airport-comparison-panels { grid-template-columns: 1fr; gap: 18px; } }
.air-workspace { display: grid; grid-template-columns: minmax(260px, .75fr) minmax(0, 1.4fr); gap: 26px; margin-top: 22px; }
.air-controls { padding: 20px; border: 1px solid #d5e4ef; border-radius: 16px; background: #f5faff; align-self: start; min-width: 0; }
.air-controls .conversion-fields { margin-top: 16px; gap: 14px; }
.air-controls select { width: 100%; }
.air-presets { display: flex; gap: 6px; margin: 14px 0; }
.air-presets button, .air-scrub button { border: 1px solid #bbd1df; border-radius: 7px; background: white; color: #315c75; padding: 8px 10px; min-height: 38px; cursor: pointer; font: inherit; font-size: 12px; }
.air-presets button { flex: 1; padding: 6px 2px; }
.air-slider { margin: 22px 0 16px; color: #31566e; font-size: 12px; }
.air-slider label, .air-slider > div { display: flex; justify-content: space-between; gap: 5px; }
.air-slider input { width: 100%; height: 28px; margin: 8px 0 2px; accent-color: #2c85ad; cursor: pointer; }
.air-slider output { font-weight: 700; color: #176e95; }
.air-visuals { min-width: 0; }
.air-model-label { margin: 0 0 12px; font-size: 12px; color: #826133; }
.air-result { padding: 18px; border-radius: 14px; background: #eaf3fa; color: #234e69; }
.air-result dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; }
.air-result dt { font-size: 11px; color: #58758a; }
.air-result dd { margin: 8px 0 0; font-size: clamp(18px, 2.4vw, 28px); font-weight: 700; font-variant-numeric: tabular-nums; }
.air-result > .tool-note { margin-bottom: 0; font-size: 11px; }
.air-compare { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 16px 0; }
.air-compare button { display: grid; gap: 7px; min-width: 0; border: 1px solid #d3e2ec; border-radius: 10px; background: #fff; color: #416278; padding: 12px 5px; text-align: center; cursor: pointer; font: inherit; }
.air-compare button[aria-pressed=true] { border-color: #347fa2; box-shadow: inset 0 0 0 1px #347fa2; background: #f1f8fc; color: #1d688b; }
.air-compare button span { font-size: 12px; }
.air-compare button strong { font-size: 18px; font-variant-numeric: tabular-nums; }
.air-compare button small { color: #688194; font-size: 10px; }
.air-plot { border: 1px solid #dce8f0; background: #f6fafc; border-radius: 12px; overflow: hidden; }
.air-plot-legend { display: flex; flex-wrap: wrap; gap: 6px 12px; color: #688194; font-size: 11px; margin: 0 0 8px; }
.air-plot-legend span:first-child { color: #2d89b4; }
.air-plot-legend span:nth-child(2) { color: #b94858; }
.air-plot svg { display: block; width: 100%; }
.air-plot-label { fill: #648097; font: 11px system-ui, sans-serif; }
.air-plot-grid { stroke: #dce7ee; stroke-width: 1; }
.air-target-path, .air-missile-path { fill: none; stroke-width: 2; stroke-linecap: round; }
.air-target-path { stroke: #2d89b4; }
.air-missile-path { stroke: #cc6671; stroke-dasharray: 5 3; }
.air-target-marker { fill: #13668f; stroke: white; stroke-width: 1; }
.air-missile-marker { fill: #b94858; stroke: white; stroke-width: 1; }
.air-los { stroke: #6a849a; stroke-width: 1; stroke-opacity: .5; stroke-dasharray: 3 5; }
.air-scale { fill: none; stroke: #93a8b8; stroke-width: 1; }
.air-scrub { display: flex; align-items: center; gap: 10px; margin: 12px 0; }
.air-scrub input { flex: 1; min-width: 0; accent-color: #2d89b4; }
.air-scrub output { color: #55778d; font-size: 12px; min-width: 42px; font-variant-numeric: tabular-nums; }
.air-advice, .air-recovery { font-size: 12px; line-height: 1.85; color: #54758c; }
.air-recovery:not(:empty) { border-left: 3px solid #c1d6e4; padding-left: 12px; }
.air-recovery p { margin: 6px 0; }
.air-parameters dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; padding: 14px 0; }
.air-parameters dt { font-size: 12px; color: #637b8c; }
.air-parameters dd { margin: 5px 0 0; color: #315a73; font-variant-numeric: tabular-nums; }
.air-combat button:focus-visible, .air-combat input:focus-visible { outline: 2px solid #337da4; outline-offset: 3px; }
@media (max-width: 900px) { .air-workspace { grid-template-columns: 1fr; } .air-parameters dl { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .air-controls { padding: 14px; } .air-result { padding: 14px; } .air-result dl { gap: 6px; } .air-result dd { font-size: 18px; } .air-compare { gap: 5px; } .air-compare button span { font-size: 11px; } .air-plot-label { font-size: 24px; } }
.aircraft-toolbar { margin-bottom: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.aircraft-toolbar .hangar-picker-head { grid-column: 1 / -1; }
.aircraft-toolbar .hangar-selection { margin: 0; }
.aircraft-toolbar .hangar-aircraft-list { grid-column: 1 / -1; margin-top: 10px; }
.aircraft-toolbar .hangar-aircraft-list:has(.hangar-weapon-empty) { display: none; }
.loadout-workspace { display:block; padding:10px 12px; border:1px solid #c4d8e4; border-radius:10px; background:#f8fcff; min-width:0; }
.loadout-workspace .hangar-picker, .loadout-workspace .hangar-hud, .loadout-workspace .optimizer-panel { min-width:0; padding:5px 0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.loadout-workspace .hangar-hud { position:static; display:block; min-height:0; padding-top:0; }
.loadout-summary { display:flex; flex-wrap:wrap; align-items:center; gap:4px 14px; }
.loadout-summary .hangar-result-grid { display:flex; flex-wrap:wrap; align-items:center; gap:4px 14px; min-width:0; }
.loadout-summary .hangar-result-primary, .loadout-summary .hangar-sorties { display:flex; align-items:baseline; gap:6px; min-height:0; padding:0; border:0; border-radius:0; background:none; }
.loadout-summary .hangar-result-primary span, .loadout-summary .hangar-sorties span { margin:0; font-size:12px; letter-spacing:0; }
.loadout-summary #calcPresetDetail { order:2; flex-basis:100%; min-width:0; overflow-x:auto; border:1px solid #78b4cf; border-radius:6px; background:#e6f3fb; }
.loadout-summary #calcPresetDetail[hidden] { display:none; }
.loadout-summary .hangar-kicker { display:none; }
.loadout-analysis dl > div { display:flex; align-items:baseline; gap:6px; font-size:11px; }
.loadout-summary dd { margin:0; }
.loadout-summary #calcPresetNote { margin:0; font-size:10px; }
.loadout-workspace .hangar-fire { margin:4px 0 0; font-size:11px; }
.loadout-workspace .hangar-fire:empty { display:none; }
.loadout-workspace .hangar-hint { margin:3px 0 0; padding:0; background:none; font-size:11px; }
.loadout-workspace .hangar-hud-context { margin:0 0 6px; font-size:10px; letter-spacing:0; }
.loadout-workspace #calcPresetTitle { margin:0; font-size:12px; max-width:100%; }
.loadout-workspace .optimizer-panel { border-top:1px solid #d4e1e9; border-bottom:1px solid #d4e1e9; margin:4px 0 6px; }
.loadout-workspace .calculator-pickers { position:relative; display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; min-width:0; }
.loadout-workspace .calculator-pickers > .hangar-picker { display:contents; }
.loadout-workspace .hangar-picker-head { margin-bottom:6px; gap:8px; }
.loadout-workspace .hangar-picker-head h2 { font-size:12px; }
.loadout-workspace .hangar-selection { margin:0; }
.loadout-workspace .hangar-aircraft-list { display:none; }
.loadout-workspace .aircraft-toolbar:focus-within .hangar-aircraft-list:not(:has(.hangar-weapon-empty)) { display:grid; position:absolute; top:38px; left:0; z-index:4; width:min(640px,100%); max-height:min(360px,55vh); margin:0; padding:6px; border:1px solid #afc8d7; border-radius:7px; background:#f8fcff; box-shadow:0 6px 18px #284a6826; }
.loadout-workspace .hangar-search input, .loadout-workspace .hangar-field select { min-height:34px; padding:6px 10px; border-radius:7px; font-size:12px; }
.native-presets h2 { margin:0; font-size:12px; }
.native-presets .loadout-scroll { max-height:440px; margin-top:6px; }
#calcTargetThreshold { font-size:11px; letter-spacing:0; }
.loadout-scroll { margin-top: 16px; overflow: auto; max-height: 440px; border: 1px solid #b7d0dd; border-radius: 10px; background: #e5f0f6; scrollbar-color: #9cbacb #e5f0f6; }
.loadout-table-head, .loadout-row { display: grid; grid-template-columns: 200px minmax(390px, 1fr); width: 100%; min-width: 590px; }
.loadout-table-head { position: sticky; top: 0; z-index: 2; background: #d6e7f0; color: #426a80; font-size: 10px; }
.loadout-table-head .loadout-row-name { padding: 8px 12px; }
.loadout-row { border: 0; border-bottom: 1px solid #c4d8e4; padding: 0; text-align: left; color: #254a60; background: #edf5fa; font: inherit; cursor: pointer; }
.loadout-row:last-child { border-bottom: 0; }
.loadout-row:hover { background: #d9edf7; }
.loadout-row[aria-selected=true] { background: #fff0b6; box-shadow: inset 4px 0 #d8a820; }
.loadout-row:focus-visible { position: relative; outline: 3px solid #2288cc; outline-offset: -3px; z-index: 1; }
.loadout-row-name { display: flex; flex-direction: column; justify-content: center; position: sticky; left: 0; z-index: 1; padding: 12px; background: inherit; border-right: 1px solid #bfd4df; }
.loadout-row-name strong { font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.loadout-row-name small { color: #57768a; font-size: 10px; }
.loadout-cells { display: grid; grid-template-columns: repeat(var(--tier-count), minmax(0, 1fr)); }
.loadout-cell { min-height: 54px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-right: 1px solid #cbdde7; background: rgba(68, 132, 166, .035); }
.loadout-ruler > span { padding: 8px 0; text-align: center; border-right: 1px solid #bfd4df; }
.ordnance-icon { display: block; width: 100%; height: auto; max-width: 60px; aspect-ratio: 1; object-fit: contain; }
.combination-row { display: grid; grid-template-columns: minmax(0, 1fr) 110px auto; align-items: end; gap: 12px; margin: 14px 0; }
.combination-row select, .combination-row input, #combinationCalculator select { min-width: 0; width: 100%; box-sizing: border-box; }
.combination-row .hangar-clear { margin-bottom: 6px; }
.combination-actions { display: flex; gap: 10px; flex-wrap: wrap; }
@media (max-width: 560px) { .combination-row { grid-template-columns: minmax(0, 1fr) 70px; } .combination-row .hangar-clear { grid-column: 1 / -1; justify-self: end; } }
.loadout-individual { margin-top: 16px; }
.loadout-individual > summary { color: #376d89; font-size: 12px; cursor: pointer; padding: 7px 0; }
.loadout-empty { padding: 24px; font-size: 13px; color: #5c7c8f; }
#calcPresetTitle { margin: 0 0 16px; font-size: 19px; line-height: 1.4; }
.preset-stats { margin: 0; display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; font-size: 12px; }
.preset-stats dt { color: #638091; }
.preset-stats dd { margin: 0; font-weight: 800; color: #285d7c; text-align: right; }
#calcPresetDetail { margin-top:14px; padding:14px 0; border-top:1px solid #c4d8e4; border-bottom:1px solid #c4d8e4; }
#calcPresetNote:empty { display:none; }
#calcHint:empty { display:none; }
#calcPresetDetail[hidden], #calcPresetPanel[hidden] { display: none; }
.loadout-workspace .hangar-result-primary strong, .loadout-workspace .hangar-sorties strong { font-size:20px; }
@media (max-width: 1100px) {
  .loadout-workspace { grid-template-columns: minmax(0, 1fr); }
  .loadout-workspace .hangar-hud { position: static; }
}
@media (max-width: 640px) {
  .aircraft-toolbar { grid-template-columns: minmax(0, 1fr); }
  .aircraft-toolbar .hangar-selection { margin-top: 10px; }
  .loadout-workspace .hangar-picker { padding:8px 0; }
  .loadout-table-head, .loadout-row { grid-template-columns: 140px minmax(390px, 1fr); min-width: 530px; }
  .loadout-row-name { padding: 10px 8px; }
  .loadout-row-name strong { font-size: 11px; }
}
.custom-editor { margin-top:14px; border-top:1px solid #c4d8e4; padding:12px 0 0; }
.custom-editor [hidden] { display:none !important; }
.custom-editor-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; font-size:11px; color:#698497; }
.custom-launch { display:inline-flex; align-items:center; gap:9px; padding:8px 12px; border:1px solid #bdcfdd; border-radius:9px; background:#eaf3f9; color:#295d7c; font:inherit; font-size:12px; font-weight:700; line-height:1.4; white-space:nowrap; cursor:pointer; }
.custom-launch:hover { background:#dfedf6; }
.custom-launch[aria-expanded=true] { background:#fff0b8; border-color:#dec16b; color:#72571c; }
.custom-launch-symbol { display:grid; place-items:center; flex:none; width:21px; height:21px; border-radius:5px; background:#fff9; }
.custom-launch-symbol svg { display:block; width:18px; height:18px; }
.custom-launch-chevron { display:block; flex:none; width:16px; height:16px; margin-left:4px; }
.custom-launch[aria-expanded=true] .custom-launch-chevron { transform:rotate(180deg); }
[data-custom-status][data-valid=true] { color:#42796a; }
[data-custom-status][data-valid=false] { color:#9d5e29; }
.custom-editor [data-custom-body] { margin-top:12px; padding:12px; border:1px solid #c6dbe7; border-radius:12px; background:#eef6fb; }
.custom-rack-heading { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin-bottom:10px; font-size:10px; color:#6d899b; }
.custom-rack-heading strong { color:#335f79; font-size:12px; }
.custom-text-button { margin-left:auto; border:0; background:none; padding:4px 0 4px 8px; font:inherit; font-size:11px; color:#397696; cursor:pointer; }
.custom-slots { display:grid; grid-template-columns:repeat(var(--custom-columns),minmax(54px,1fr)); overflow-x:auto; gap:3px; padding:3px 2px 9px; scrollbar-width:thin; scrollbar-color:#9dbccd #e5f0f6; }
.custom-slot { display:grid; grid-template-rows:16px 42px 23px; justify-items:center; min-width:0; padding:5px 2px; border:1px solid #bcd3e1; border-radius:5px; background:#f7fbfe; color:#537990; font:inherit; cursor:pointer; }
.custom-slot:hover { background:#e1f0f9; border-color:#699fbf; }
.custom-slot[data-filled=true] { background:#fff3ca; border-color:#dbbe6e; }
.custom-slot[data-center=true] .custom-slot-number { border-bottom:2px solid #9bb9cd; }
.custom-slot:disabled { cursor:default; opacity:.5; background:#e4edf3; border-style:dashed; }
.custom-slot-number { font-size:10px; width:20px; line-height:14px; font-variant-numeric:tabular-nums; }
.custom-slot-icon { display:flex; align-items:center; justify-content:center; min-width:0; width:100%; overflow:hidden; }
.custom-slot-icon .ordnance-icon { width:42px; min-width:0; height:42px; flex:0 1 auto; }
.custom-slot-empty { font-size:24px; font-weight:300; color:#8aa9bb; }
.custom-slot-caption { align-self:center; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; overflow-wrap:anywhere; max-width:100%; font-size:9px; line-height:11px; }
.custom-mass { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:5px 0 10px; gap:8px; }
.custom-mass > div { border-left:2px solid #c7dce7; padding-left:7px; min-width:0; }
.custom-mass dt { color:#6b899d; font-size:10px; }
.custom-mass dd { margin:3px 0 0; color:#315e79; font-size:11px; font-weight:650; overflow-wrap:anywhere; }
.custom-errors { color:#a3642c; font-size:11px; padding-left:17px; margin:8px 0; line-height:1.5; }
.custom-errors:empty { display:none; }
.custom-errors li { margin:4px 0; }
.custom-dependency-button { padding:6px 9px; border:1px solid #d9bd79; border-radius:6px; background:#fff5d6; color:#77571e; font:inherit; font-size:11px; cursor:pointer; }
.custom-total { margin:10px 0; padding:9px 10px; border-radius:7px; background:#dfedf6; font-size:11px; line-height:1.6; color:#315f7b; }
.custom-save-bar { display:flex; align-items:stretch; gap:7px; }
.custom-save-bar label { flex:1; min-width:0; }
.custom-save-bar input { width:100%; min-width:0; min-height:36px; padding:8px 10px; border:1px solid #bdd2df; border-radius:7px; background:#fff; font:inherit; font-size:12px; color:#315f7b; }
.custom-save-button { flex:none; border:1px solid #dcb74d; border-radius:7px; background:#f8ce56; color:#584412; padding:8px 12px; font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.custom-save-button:disabled { background:#e4ecf1; border-color:#cedce5; color:#8a9da9; cursor:not-allowed; }
.custom-saved, .custom-requirements { margin-top:10px; color:#557a90; font-size:11px; line-height:1.7; }
.custom-saved > summary, .custom-requirements > summary { cursor:pointer; }
[data-custom-saved-count] { display:inline-block; padding:0 6px; margin-left:3px; border-radius:5px; background:#dceaf3; font-size:10px; }
[data-custom-notice]:empty { display:none; }
.custom-saved-row { display:flex; align-items:center; gap:8px; margin:6px 0; }
.custom-saved-row button:first-child { flex:1; text-align:left; overflow-wrap:anywhere; margin:0; padding:6px 9px; font-size:11px; }
.custom-picker { width:min(740px,calc(100vw - 32px)); max-height:calc(100dvh - 64px); margin:auto; padding:0; border:1px solid #a5c4d6; border-radius:18px; color:#2e5870; background:#f1f7fb; box-shadow:0 22px 80px #15394e55; font-family:inherit; }
.custom-picker[open] { display:flex; flex-direction:column; }
.custom-picker::backdrop { background:#17394d66; backdrop-filter:blur(3px); }
.custom-picker-head { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:18px 20px 13px; flex:none; }
.custom-picker-head p { font-size:11px; color:#7a91a0; margin:0 0 3px; }
.custom-picker-head h3 { font-size:19px; margin:0; color:#254d68; }
.custom-picker-close { width:34px; height:34px; padding:0; border:1px solid #c6d9e4; border-radius:50%; background:#fff; color:#608295; font:inherit; font-size:24px; line-height:1; cursor:pointer; }
.custom-picker-search { display:flex; align-items:center; gap:12px; padding:0 20px 14px; flex:none; }
.custom-picker-search label { flex:1; min-width:0; }
.custom-picker-search input { box-sizing:border-box; width:100%; min-width:0; padding:9px 11px; border:1px solid #bed2e0; border-radius:8px; background:#fff; color:#315f7b; font:inherit; font-size:12px; }
[data-custom-picker-count] { font-size:11px; color:#7791a2; white-space:nowrap; }
.custom-picker-options { display:grid; grid-template-columns:repeat(auto-fill,minmax(118px,1fr)); align-content:start; gap:7px; padding:3px 20px 18px; overflow-y:auto; overscroll-behavior:contain; min-height:0; }
.custom-choice { display:flex; flex-direction:column; align-items:center; justify-content:flex-start; min-width:0; min-height:142px; padding:10px 8px 8px; border:1px solid #c8dbe6; border-radius:10px; background:#fff; color:#335f78; font:inherit; cursor:pointer; }
.custom-choice:hover { background:#e5f1f9; border-color:#79a7c2; }
.custom-choice[aria-pressed=true] { background:#fff0ba; border-color:#d7b34f; box-shadow:inset 0 0 0 1px #d7b34f; }
.custom-choice-icon { display:flex; align-items:center; justify-content:center; gap:2px; flex:none; width:100%; height:58px; margin-bottom:6px; color:#9db6c5; font-size:35px; }
.custom-choice-icon .ordnance-icon { flex:0 1 auto; width:58px; height:58px; min-width:0; }
.custom-choice-name { font-size:11px; line-height:1.45; overflow-wrap:anywhere; }
.custom-choice-mass, .custom-choice-empty small { font-size:10px; color:#8397a4; margin-top:5px; }
.custom-choice-limit { font-size:9px; color:#9b682f; background:#fbefd6; border-radius:4px; margin-top:5px; padding:2px 4px; }
.custom-picker-empty { grid-column:1 / -1; text-align:center; font-size:12px; color:#7191a4; }
.custom-picker-help { flex:none; padding:11px 20px; margin:0; border-top:1px solid #d2e2ec; background:#e9f2f8; color:#6b879a; font-size:11px; line-height:1.6; }
.custom-editor button:focus-visible, .custom-editor input:focus-visible { outline:2px solid #258dbd; outline-offset:2px; }
@media (max-width:640px) {
  .custom-editor [data-custom-body] { padding:9px; }
  .custom-mass { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .custom-picker { width:calc(100vw - 20px); max-height:calc(100dvh - 36px); border-radius:14px; }
  .custom-picker-head { padding:14px 12px 10px; }
  .custom-picker-head h3 { font-size:17px; }
  .custom-picker-search { padding:0 12px 12px; }
  .custom-picker-options { grid-template-columns:repeat(3,minmax(0,1fr)); padding:2px 12px 12px; gap:5px; }
  .custom-choice { min-height:130px; padding:8px 5px; }
  .custom-choice-icon { height:48px; }
  .custom-choice-icon .ordnance-icon { width:48px; height:48px; }
  .custom-choice-name { font-size:10px; }
  .custom-picker-help { padding:9px 12px; }
}

/* Compact flight desk: primary choices above the loadout, supporting tools below. */
.optimizer-panel { margin:0; min-width:0; }
.optimizer-panel[hidden], .optimizer-panel [hidden] { display:none !important; }
.optimizer-heading { display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; }
.optimizer-panel h3 { margin:0; font-size:12px; color:#315f7b; }
.optimizer-modes { display:flex; gap:3px; padding:3px; border-radius:8px; background:#e5eef4; width:250px; max-width:100%; }
.optimizer-modes button { flex:1; padding:7px 4px; border:0; border-radius:6px; background:none; color:#55778b; font:inherit; font-size:11px; cursor:pointer; }
.optimizer-modes button[aria-pressed=true] { background:#fff0b8; color:#715513; font-weight:700; }
.optimizer-note, .optimizer-status { margin:4px 0; font-size:11px; line-height:1.6; color:#6e899a; }
.optimizer-note:empty { display:none; }
.optimizer-status { color:#347662; }
.optimizer-panel[data-state=searching] .optimizer-status { color:#6e899a; }
.optimizer-metrics { display:flex; flex-wrap:wrap; gap:5px 12px; align-items:center; font-size:12px; color:#315f7b; }
.optimizer-metrics strong { color:#9a701d; }
.optimizer-stores { display:block; flex-basis:100%; width:100%; min-width:0; overflow-x:auto; margin:5px 0; border:1px solid #d7ba71; border-radius:6px; }
.optimizer-preset-row, .optimizer-preset-row:hover { background:#fff7d6; cursor:default; }
.optimizer-preset-row .loadout-cell small { font-size:10px; color:#315f7b; }
.optimizer-plan { margin-top:5px; font-size:11px; line-height:1.65; color:#638091; }
.optimizer-plan summary { cursor:pointer; }
.optimizer-plan p { margin:3px 0; }
.optimizer-plan h4 { margin:5px 0 3px; font-size:11px; color:#315f7b; }
.optimizer-zone-plan { display:flex; flex-wrap:wrap; gap:4px 14px; list-style:none; margin:0; padding:0; }
.optimizer-zone-plan li { display:flex; flex-wrap:wrap; align-items:baseline; gap:3px 8px; min-width:0; padding:0; }
.optimizer-zone-plan strong { color:#315f7b; font-size:11px; }
.optimizer-zone-plan p { margin:0; color:#315f7b; font-size:11px; overflow-wrap:anywhere; }
.optimizer-actions { display:flex; flex-wrap:wrap; gap:7px; margin-top:5px; }
.optimizer-actions button { padding:7px 10px; border:1px solid #dcbf67; border-radius:7px; background:#fff0b8; color:#715513; font:inherit; font-size:11px; cursor:pointer; }
.optimizer-actions [data-optimizer-retry] { background:#edf5fa; border-color:#c6dbe7; color:#537990; }
.optimizer-panel button:focus-visible { outline:2px solid #258dbd; outline-offset:2px; }
.combination-advanced > summary { cursor:pointer; font-size:14px; font-weight:700; color:#315f7b; }
.combination-advanced > summary small { margin-left:8px; font-size:11px; font-weight:400; color:#718a9b; }
.calculator-page .hangar-stage { padding-top:24px; }
.calculator-heading { max-width:none; display:grid; grid-template-columns:1fr auto; align-items:baseline; gap:0 16px; margin-bottom:18px; }
.calculator-heading > .hangar-kicker { grid-column:1 / -1; margin:0 0 4px; }
.calculator-page .calculator-heading h1 { font-size:30px; margin:0; }
.calculator-page .calculator-heading .hangar-lede { font-size:13px; margin:6px 0 0; grid-column:1; }
.calculator-heading > .tool-source { grid-column:2; grid-row:2 / 4; font-size:11px; margin:0; }
.tool-directory { position:fixed; bottom:calc(12px + env(safe-area-inset-bottom)); right:12px; z-index:60; display:flex; align-items:center; gap:6px; max-width:calc(100vw - 24px); padding:5px; border:1px solid #c5d8e4; border-radius:14px; background:#f5faff; box-shadow:0 4px 18px #244a6030; }
.tool-directory-toggle { display:block; margin-left:auto; padding:10px 16px; border:1px solid #ddbb5b; border-radius:999px; background:#fff0b8; color:#614a13; font:inherit; font-size:13px; font-weight:700; box-shadow:0 4px 18px #244a6030; cursor:pointer; }
.tool-directory .tool-nav { display:none; position:absolute; bottom:50px; right:0; width:190px; max-height:calc(100dvh - 110px); overflow-y:auto; margin:0; padding:8px; border:1px solid #c5d8e4; border-radius:14px; background:#f5faff; box-shadow:0 6px 24px #244a6030; }
.tool-directory-toggle[aria-expanded=true] + .tool-nav { display:grid; gap:3px; }
.tool-directory .tool-nav a { padding:9px 10px; border:0; border-radius:7px; font-size:12px; }
.tool-directory .tool-nav a[aria-current=location] { background:#fff0b8; color:#614a13; font-weight:700; }
.tool-directory-toggle:focus-visible { outline:2px solid #2388bd; outline-offset:3px; }
@media (min-width:1280px) {
  .calculator-page .hangar-stage { width:min(var(--wrap),calc(100% - 212px)); margin-left:max(188px,calc((100% - var(--wrap)) / 2)); margin-right:24px; }
  .tool-directory { display:block; top:100px; left:max(12px,calc((100vw - var(--wrap)) / 2 - 176px)); right:auto; bottom:auto; width:164px; max-height:calc(100dvh - 112px); padding:8px; overflow-y:auto; box-shadow:none; }
  .tool-directory-toggle { display:none; }
  .tool-directory .tool-nav { display:grid; position:static; width:100%; max-height:none; gap:3px; padding:0; border:0; box-shadow:none; }
}
.calculator-context { grid-template-columns:minmax(0,1fr); gap:12px; padding:14px 16px; border-radius:14px; }
.calculator-context [hidden] { display:none !important; }
.context-field { min-width:0; }
.context-label { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:7px; color:#315b73; font-size:12px; font-weight:700; }
.context-label small { font-size:10px; font-weight:400; color:#718a9b; }
.context-label > span { flex-shrink:0; }
.segment-scroll { overflow-x:auto; scrollbar-width:thin; border-radius:10px; }
.segment-track { --segments:6; --selected-segment:0; position:relative; display:grid; grid-template-columns:repeat(var(--segments),minmax(0,1fr)); min-width:540px; padding:3px; border-radius:10px; background:#e5eef4; isolation:isolate; }
.segment-thumb { position:absolute; top:3px; bottom:3px; left:3px; width:calc((100% - 6px) / var(--segments)); border:1px solid #e5c46a; border-radius:8px; background:#fff0b8; box-shadow:0 2px 5px #8b7b3920; transform:translateX(calc(var(--selected-segment) * 100%)); transition:transform .18s ease,width .18s ease; pointer-events:none; box-sizing:border-box; }
.segment-track button { position:relative; z-index:1; display:grid; justify-items:center; align-content:center; gap:2px; min-height:44px; padding:6px 4px; border:0; border-radius:8px; background:none; color:#52738a; font:inherit; font-size:12px; cursor:pointer; white-space:nowrap; }
.segment-track button small { font-size:10px; color:#6b8291; }
.segment-track button[aria-checked=true] { color:#614a13; font-weight:750; }
.segment-track button[aria-checked=true] small { color:#80652c; }
.segment-track button:focus-visible { outline:2px solid #2388bd; outline-offset:-2px; }
.context-br-label { align-items:center; flex-wrap:wrap; }
.base-mode-scroll { max-width:100%; margin-left:auto; }
.segment-track.base-mode-track { min-width:0; }
.segment-track.base-mode-track button { min-height:28px; padding:4px 10px; font-size:11px; white-space:normal; word-break:keep-all; text-wrap:balance; line-height:1.35; }
.base-mode-note { margin:6px 0 0; color:#718a9b; font-size:10px; line-height:1.5; }
.calculator-context .hangar-repair { padding:8px 11px; font-size:11px; display:flex; flex-wrap:wrap; gap:4px 10px; }
.calculator-context .hangar-repair small { font-size:11px; }
.aircraft-toolbar { display:block; padding:14px 16px; border-radius:14px; margin-bottom:12px; }
.aircraft-toolbar .hangar-picker-head { margin-bottom:10px; gap:9px; }
.aircraft-toolbar .hangar-picker-head h2 { font-size:15px; }
.aircraft-toolbar .hangar-selection { flex:1; justify-content:flex-end; min-height:0; padding:0; border:0; background:none; gap:10px; }
.aircraft-search-bar { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.aircraft-search-bar > .hangar-search { flex:1; min-width:220px; }
.calculator-page .aircraft-search-bar input { padding:9px 12px; min-height:38px; font-size:13px; }
.aircraft-filter-group { display:flex; gap:6px; }
.filter-chip { display:flex; align-items:center; justify-content:center; gap:4px; min-height:38px; padding:7px 11px; border:1px solid #c5d8e4; border-radius:8px; background:#f6fafd; color:#4f7187; font:inherit; font-size:12px; cursor:pointer; white-space:nowrap; }
.filter-chip::before { content:""; width:6px; height:6px; border:1px solid #93adbd; border-radius:50%; margin-right:3px; }
.filter-chip[aria-pressed=true] { background:#fff0b8; color:#715513; border-color:#e0be5b; }
.filter-chip[aria-pressed=true]::before { border-color:#a17b23; background:#b58c2d; }
.filter-chip:focus-visible { outline:2px solid #2388bd; outline-offset:2px; }
#calcCustomCount { font-size:10px; opacity:.8; }
.calculator-page .aircraft-toolbar .hangar-aircraft-list { display:grid; grid-template-columns:minmax(0,1fr); gap:1px; max-height:min(360px,55vh); margin-top:8px; background:#dce8ef; border-radius:8px; }
.calculator-page .aircraft-toolbar .hangar-aircraft-list:has(.hangar-weapon-empty) { display:block; }
.aircraft-toolbar .hangar-aircraft-list:has(.hangar-weapon-empty:only-child) { border:0; }
.calculator-page .aircraft-toolbar .hangar-weapon { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; min-height:44px; gap:3px; padding:8px 10px; border:0; background:#f7fbfd; font-size:13px; }
.aircraft-toolbar .hangar-weapon-name { min-width:0; white-space:normal; overflow-wrap:anywhere; line-height:1.5; }
.aircraft-toolbar .hangar-weapon-kind { font-size:10px; letter-spacing:0; }
.aircraft-toolbar .hangar-weapon-empty { margin:0; padding:5px 0; background:#f7fbfd; }
.calculator-page .aircraft-toolbar .hangar-weapon.is-selected { background:#fff2c6; }
.tool-panel { margin-top:18px; padding:20px; border-radius:16px; scroll-margin-top:80px; }
.tool-panel-head h2 { margin:2px 0 6px; font-size:21px; }
.tool-panel-head > .hangar-kicker { margin:0 0 3px; font-size:10px; }
.tool-panel-head > p:last-child { margin:4px 0 12px; font-size:12px; }
.tool-note, .tool-source { font-size:12px; line-height:1.65; }
.tool-details { padding:11px 0; font-size:12px; line-height:1.7; }
.tool-details:first-of-type { margin-top:12px; }
.tool-details p { margin-top:8px; }
.tool-input-grid { margin:16px 0; gap:12px; }
.tool-table th, .tool-table td { padding:9px 10px; }
.tool-table-scroll { max-height:320px; margin:12px 0; }
.combination-row { margin:10px 0; gap:8px; }
.reward-workspace, .air-workspace { gap:18px; margin-top:14px; }
.reward-controls, .air-controls { padding:15px; border-radius:12px; }
.conversion-sides { gap:12px; margin-top:14px; }
.conversion-side { padding:14px; }
.reward-stats dd { font-size:25px; }
.airport-workspace { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:22px; }
.airport-workspace > div { min-width:0; }
.airport-palette { gap:8px; margin:10px 0 5px; }
.airport-palette > span { gap:4px; }
.airport-comparison { margin:12px 0 0; }
.airport-diagram-heading { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:6px; }
.airport-diagram-heading h3, .airport-repair-panel > h3 { margin:0; color:#31566e; font-size:14px; }
.airport-diagram-heading button { margin:0; padding:5px 9px; }
.airport-comparison-panels { gap:8px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.airport-comparison-panels figcaption { font-size:11px; }
.airport-reference { margin:6px auto; border-radius:8px; }
.airport-reference text { font-size:12px; }
.airport-repair-panel > h3 { margin:10px 0; }
.repair-controls { gap:8px; margin:12px 0; }
.repair-controls .score-presets { margin:0; min-width:160px; }
.repair-controls .score-presets button { min-height:34px; }
.repair-result { padding:10px 12px; font-size:12px; margin:12px 0; }
.airport-workspace .chart-legend { font-size:10px; gap:4px; }
.calculator-page .hangar-help { margin-top:12px; padding:12px 16px; }
.calculator-page .hangar-aside { margin:10px 0; font-size:11px; }
@media (prefers-reduced-motion:reduce) { .segment-thumb { transition:none; } }
@media (max-width:900px) {
  .airport-workspace { grid-template-columns:minmax(0,1fr); gap:12px; }
  .airport-reference { max-width:260px; }
}
@media (max-width:640px) {
  .calculator-page .site-header { position:static; flex-direction:row; align-items:center; padding:7px 9px; border-radius:14px; gap:6px; }
  .calculator-page .site-header .nav-links a[href^="/#"] { display:none; }
  .calculator-page .brand-mark { display:none; }
  .calculator-page .site-header .brand img { width:28px; height:28px; }
  .calculator-page .site-header .nav-links { gap:0; width:auto; }
  .calculator-page .site-header .nav-links a { font-size:11px; padding:7px 8px; }
  .calculator-page .hangar-stage { padding-top:18px; }
  .calculator-heading { display:block; }
  .calculator-page .calculator-heading h1 { font-size:25px; }
  .calculator-heading > .tool-source { margin-top:6px; }
  .calculator-context { padding:12px; gap:10px; }
  .segment-track { min-width:480px; }
  .segment-track button { font-size:11px; min-height:42px; }
  .aircraft-toolbar { padding:12px; }
  .aircraft-toolbar .hangar-selection { flex-direction:column; align-items:flex-end; gap:1px; margin:0; }
  .aircraft-toolbar .hangar-selection strong { font-size:12px; }
  .aircraft-search-bar > .hangar-search { flex-basis:100%; }
  .aircraft-filter-group { width:100%; }
  .filter-chip { flex:1; padding:7px 8px; }
  .calculator-page .aircraft-toolbar .hangar-aircraft-list { max-height:144px; }
  .calculator-page .aircraft-toolbar .hangar-weapon { min-height:36px; flex-wrap:wrap; gap:1px; padding:5px 8px; }
  .aircraft-toolbar .hangar-weapon-name { width:100%; }
  .tool-panel { padding:14px; margin-top:14px; scroll-margin-top:12px; }
  .tool-panel-head h2 { font-size:19px; }
  .airport-comparison-panels { gap:6px; }
  .airport-reference text { font-size:12px; }
}
/* Locale and recommendation controls share the compact calculator rhythm. */
.directory-languages { display:grid; gap:3px; padding:2px 0 8px; margin-bottom:5px; border-bottom:1px solid #cbdde8; }
.directory-languages button { display:flex; align-items:center; gap:9px; width:100%; padding:7px 10px; border:0; border-radius:7px; background:transparent; color:#225776; font:inherit; font-size:12px; text-align:left; cursor:pointer; }
.directory-languages button:hover, .directory-languages button:focus-visible { background:#dfeff9; }
.directory-languages button:focus-visible { outline:2px solid #2388bd; outline-offset:-2px; }
.directory-languages button[aria-pressed=true] { background:#fff0b8; color:#614a13; font-weight:700; }
.directory-languages button:disabled { cursor:wait; opacity:.65; }
.language-icon { display:grid; place-items:center; width:25px; height:25px; flex-shrink:0; border:1px solid currentColor; border-radius:6px; font-size:13px; font-weight:700; }
@media (max-width:1279px) {
  .calculator-page { padding-bottom:70px; }
  .tool-directory .directory-languages { display:flex; gap:2px; margin:0; padding:0 5px 0 0; border-bottom:0; border-right:1px solid #cbdde8; }
  .tool-directory .directory-languages button { width:auto; min-height:34px; padding:4px; }
  .directory-languages button > span:last-child { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .tool-directory .tool-nav { bottom:calc(100% + 8px); width:min(240px,calc(100vw - 24px)); max-height:calc(100dvh - 100px); }
  .tool-directory-toggle { margin:0; box-shadow:none; padding:8px 12px; }
}
.optimizer-controls { display:flex; flex-wrap:wrap; align-items:center; gap:4px 14px; margin-top:6px; }
.optimizer-filters { min-width:0; margin:0; padding:0; border:0; }
.optimizer-filters legend, .optimizer-priority > span { color:#315f7b; font-weight:700; font-size:11px; }
.optimizer-filter-help, [data-optimizer-priority-help] { display:block; margin:3px 0; color:#5c7f93; font-size:10px; line-height:1.6; }
.optimizer-filter-grid { display:flex; flex-wrap:wrap; gap:5px; }
.optimizer-filter-grid button { display:flex; align-items:center; gap:6px; min-width:0; padding:5px 8px; border:1px solid #c4d8e4; border-radius:6px; background:#eaf0f4; color:#496b80; text-align:left; font:inherit; cursor:pointer; }
.optimizer-filter-grid button[aria-checked=true] { background:#e7f3f8; border-color:#78adc3; color:#285d7c; }
.optimizer-filter-grid strong { font-size:11px; font-weight:650; }
.optimizer-filter-grid small { font-size:10px; }
.optimizer-filter-grid button[aria-checked=true] small { color:#347662; }
.optimizer-priority { --priority-index:0; display:grid; position:relative; grid-template-columns:repeat(4,minmax(0,1fr)); width:440px; max-width:100%; min-width:0; padding:2px; border-radius:8px; background:#e5eef4; isolation:isolate; }
.optimizer-priority-thumb { display:block; position:absolute; z-index:-1; top:2px; bottom:2px; left:2px; width:calc((100% - 4px) / 4); border:1px solid #ddc270; border-radius:6px; background:#fff0b8; box-shadow:0 1px 3px #8b7b3920; transform:translateX(calc(var(--priority-index) * 100%)); transition:transform .18s ease; }
.optimizer-priority label { display:grid; place-items:center; min-width:0; min-height:26px; padding:4px 6px; border-radius:6px; color:#55778b; font-size:11px; text-align:center; line-height:1.35; cursor:pointer; }
.optimizer-priority label:has(input:checked) { color:#715513; font-weight:700; }
.optimizer-priority label:has(input:focus-visible) { outline:2px solid #258dbd; outline-offset:-2px; }
@media (prefers-reduced-motion:reduce) { .optimizer-priority-thumb { transition:none; } }
@media (max-width:560px) {
  .loadout-workspace { padding:10px; }
  .loadout-summary { gap:6px 12px; }
  .loadout-workspace .hangar-result-primary strong, .loadout-workspace .hangar-sorties strong { font-size:26px; }
  #calcTargetThreshold { flex-basis:100%; }
}
.optimizer-warning { border-left:3px solid #e5ad25; padding:3px 7px; margin:3px 0; background:#fff4ce; font-size:11px; }

/* One continuous loadout surface, with details disclosed only on demand. */
.tool-nav-category { padding:8px 8px 2px; color:#6c8493; font-size:10px; letter-spacing:.04em; }
.recommendation-state { padding:2px 6px; border:1px solid #d7bb67; border-radius:4px; background:#fff4cd; color:#856719; font-size:10px; white-space:nowrap; }
.optimizer-panel[data-applied=true] .recommendation-state { border-color:#91c4ad; background:#e3f3eb; color:#2f7659; }
.optimizer-panel [data-optimizer-apply]:disabled { opacity:.55; cursor:default; }
.loadout-reward { display:flex; align-items:baseline; gap:6px; font-size:12px; color:#638091; }
.loadout-reward strong { font-size:20px; color:#9a701d; }
.loadout-reward[hidden] { display:none; }
.loadout-score { display:flex; align-items:baseline; gap:6px; max-width:100%; font-size:12px; color:#638091; }
.loadout-score strong { font-size:20px; color:#315f7b; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.loadout-analysis { font-size:11px; color:#77909f; }
.loadout-analysis > summary { cursor:pointer; }
.loadout-analysis { order:3; margin-left:auto; }
.loadout-analysis[open] { order:3; flex-basis:100%; margin-left:0; }
.loadout-analysis-content { display:grid; grid-template-columns:repeat(auto-fit,minmax(145px,1fr)); gap:6px; margin-top:6px; padding:8px; border:1px solid #cbdfe9; border-radius:6px; background:#edf5fa; }
.loadout-analysis .preset-stats, .loadout-analysis .hangar-stats { display:contents; }
.loadout-analysis-content dl > div { display:flex; flex-direction:column; justify-content:center; gap:3px; padding:7px 10px; border:0; border-radius:4px; background:#f9fcff; }
.loadout-analysis-content dt { color:#638091; font-size:11px; }
.loadout-analysis-content dd { margin:0; color:#285d7c; text-align:left; font-weight:700; font-size:13px; }
.loadout-analysis .hangar-stats dt, .loadout-analysis .hangar-stats dd { padding:0; border:0; font-size:11px; }
.loadout-analysis .hangar-stats dd { font-size:13px; font-weight:700; }
.loadout-analysis .hangar-hud-context, .loadout-analysis .hangar-fire { grid-column:1/-1; margin:0; padding:2px; font-size:11px; font-weight:400; color:#638091; }
.current-preset-row { background:#e6f3fb; cursor:default; border:0; box-shadow:inset 4px 0 #258dbd; }
.loadout-summary #calcPresetDetail { margin-top:5px; padding:4px 0; }
.current-preset-row .loadout-row-name > small { color:#24789b; font-weight:700; }
.current-slot-area { min-width:0; }
.current-slot-area #calcPresetDiagram[hidden] { display:none; }
.loadout-workspace .current-slot-area .custom-editor { display:block; margin:0; padding:4px 6px; border:0; }
.loadout-workspace .current-slot-area .custom-editor-toolbar { display:flex; font-size:10px; gap:5px; }
.loadout-workspace .current-slot-area [data-custom-body] { margin:0; padding:0; }
.loadout-workspace .current-slot-area .custom-slots { grid-template-columns:repeat(var(--custom-columns),minmax(44px,1fr)); }
.loadout-workspace .current-slot-area .custom-slot-caption { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:9px; }
.current-loadout-options { margin-top:4px; font-size:10px; color:#64849a; }
.current-loadout-options > summary { cursor:pointer; }
.loadout-summary > .current-loadout-options { order:3; margin:0; }
.loadout-summary > .current-loadout-options[open] { flex-basis:100%; }
.loadout-summary:has([data-custom-body][hidden], #calcPresetDetail[hidden]) > .current-loadout-options { display:none; }
.current-loadout-clear { align-self:flex-start; margin-top:5px; padding:3px 8px; border:1px solid #9fbfce; border-radius:5px; background:#f7fcff; color:#416c82; font:inherit; font-size:10px; cursor:pointer; }
.current-loadout-clear:hover { background:#fff0b8; border-color:#dcbf67; color:#715513; }
#calcPresetDiagram { min-width:0; }
#calcPresetDiagram > .loadout-cells { height:100%; }
.loadout-workspace .calculator-pickers .hangar-picker-head { display:none; }
.calculator-page .loadout-workspace .aircraft-toolbar .hangar-aircraft-list { display:none; }
.calculator-page .loadout-workspace .aircraft-toolbar:focus-within .hangar-aircraft-list:not(:has(.hangar-weapon-empty)) { display:grid; position:absolute; top:36px; left:0; margin:0; }
.loadout-workspace .aircraft-search-bar { display:flex; flex:1 1 340px; align-items:center; gap:5px; min-width:0; margin:0; }
.loadout-workspace .aircraft-search-bar .hangar-search { flex:1; min-width:150px; }
.loadout-workspace .aircraft-filter-group { flex:none; gap:4px; }
.loadout-workspace .filter-chip { min-height:32px; padding:5px 7px; font-size:11px; }
.loadout-workspace .aircraft-filter-group #calcCustomCount { display:none; }
.loadout-workspace .hangar-weapon-filters { display:flex; flex:1 1 240px; align-items:center; gap:5px; min-width:0; margin:0; }
.loadout-workspace .hangar-kind-field { flex:none; width:68px; margin:0; }
.loadout-workspace .hangar-kind-field > span { display:none; }
.loadout-workspace .hangar-weapon-filters .hangar-search { flex:1; min-width:140px; }
.loadout-workspace .hangar-search input, .loadout-workspace .hangar-field select { width:100%; min-height:32px; padding:5px 8px; }
.loadout-workspace .custom-editor { display:contents; }
.loadout-workspace .custom-editor-toolbar { flex:none; gap:5px; }
.loadout-workspace .custom-launch { min-height:32px; padding:4px 7px; gap:5px; border-radius:6px; font-size:11px; }
.loadout-workspace .custom-launch-symbol { width:17px; height:17px; }
.loadout-workspace .custom-launch-chevron { width:12px; margin:0; }
.loadout-workspace .custom-editor [data-custom-body] { order:1; flex-basis:100%; min-width:0; margin:2px 0; padding:6px 0; border:0; border-radius:0; background:none; }
.loadout-workspace .custom-rack-heading { margin:0 0 4px; }
.loadout-workspace .custom-slots { padding:0 0 3px; }
.loadout-workspace .custom-slot { grid-template-rows:13px 30px 20px; padding:3px 2px; }
.loadout-workspace .custom-slot-icon .ordnance-icon { width:30px; height:30px; }
.loadout-workspace .custom-mass { display:flex; flex-wrap:wrap; gap:4px 14px; margin:3px 0; }
.loadout-workspace .custom-mass > div { display:flex; align-items:baseline; gap:5px; padding:0; border:0; }
.loadout-workspace .custom-mass dd { margin:0; }
.loadout-workspace .custom-total { margin:3px 0; padding:0; background:none; color:#7990a0; font-size:10px; }
.loadout-workspace .custom-save-bar { display:inline-flex; width:min(440px,100%); vertical-align:middle; margin:3px 12px 0 0; }
.loadout-workspace .custom-save-bar input { min-height:30px; padding:4px 8px; font-size:11px; }
.loadout-workspace .custom-save-button { padding:4px 8px; font-size:11px; }
.loadout-workspace .custom-saved, .loadout-workspace .custom-requirements { display:inline-block; margin:3px 10px 0 0; vertical-align:middle; }
.loadout-workspace .custom-saved[open], .loadout-workspace .custom-requirements[open] { display:block; }
.loadout-workspace .loadout-individual { order:2; margin:0; font-size:11px; }
.loadout-workspace .loadout-individual > summary { padding:2px 0; font-size:11px; }
.loadout-workspace .loadout-individual[open] { flex-basis:100%; }
.loadout-workspace .native-presets .hangar-picker-head { display:flex; order:2; margin:0; }
.loadout-workspace .native-presets .hangar-picker-head p { display:none; }
.loadout-workspace .native-presets h2 { font-size:11px; font-weight:600; }
.loadout-workspace #calcPresetPanel { order:3; flex-basis:100%; min-width:0; }
.loadout-workspace .loadout-scroll { margin-top:2px; border-radius:6px; }
.loadout-workspace .loadout-row-name { padding:5px 8px; }
.loadout-workspace .loadout-row-name strong { font-size:11px; line-height:1.35; }
.loadout-workspace .loadout-cell { min-height:38px; }
.loadout-workspace .loadout-cell .ordnance-icon { max-width:36px; }
.loadout-workspace .loadout-table-head .loadout-row-name, .loadout-workspace .loadout-ruler > span { padding:4px 6px; }
.loadout-workspace .optimizer-panel { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px; padding:8px 0; }
.loadout-workspace .optimizer-panel > * { grid-column:1/-1; }
.loadout-workspace .optimizer-panel[hidden] { display:none; }
.optimizer-heading { display:grid; grid-template-columns:auto minmax(200px,.8fr) minmax(320px,1.2fr); align-items:center; gap:10px; }
.optimizer-heading-label { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.optimizer-controls { display:block; min-width:0; margin:0; }
.optimizer-modes, .optimizer-priority { width:100%; padding:2px; min-height:34px; }
.optimizer-modes button { padding:5px 6px; }
.optimizer-filters { display:block; margin:0; padding:0; min-width:0; }
.optimizer-filters legend { float:none; padding:0 0 4px; font-size:11px; }
.optimizer-filter-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; }
.optimizer-filter-grid button:first-child { grid-column:span 2; }
.optimizer-filter-grid button { min-height:28px; padding:3px 6px; gap:4px; }
.optimizer-filter-grid button strong { margin-right:auto; }
.optimizer-filter-grid button small { font-size:10px; }
.optimizer-switch-track { display:block; position:relative; flex:none; width:26px; height:14px; border-radius:999px; background:#b7c8d2; box-shadow:inset 0 0 0 1px #496b8026; }
.optimizer-switch-track::after { content:""; position:absolute; top:2px; left:2px; width:10px; height:10px; border-radius:50%; background:#fff; box-shadow:0 1px 3px #25496240; }
.optimizer-filter-grid button[aria-checked=true] .optimizer-switch-track { background:#347f70; }
.optimizer-filter-grid button[aria-checked=true] .optimizer-switch-track::after { transform:translateX(12px); }
.optimizer-panel [data-optimizer-result] { display:grid; grid-template-columns:minmax(0,1fr); gap:5px; }
.optimizer-panel[data-state=optimal] > .optimizer-status { display:none; }
.optimizer-metrics { justify-content:flex-end; font-size:11px; }
.optimizer-metrics [data-optimizer-context] { margin:0 auto 0 0; }
.optimizer-metrics .optimizer-actions { margin-left:0; margin-top:0; }
.optimizer-stores { margin:0; }
.optimizer-plan { display:flex; flex-wrap:wrap; align-items:baseline; gap:5px 8px; margin:0; }
.optimizer-plan h4 { display:none; }
.optimizer-plan .optimizer-note { margin:0; }
.loadout-workspace .optimizer-actions { display:flex; grid-column:1; align-items:center; gap:6px; margin:0; }
.optimizer-actions:not(:has(> button:not([hidden]))) { display:none; }
.optimizer-actions:has(> button:not([hidden])) { margin-top:1px; }
.optimizer-actions button { min-height:32px; padding:4px 10px; }
.loadout-workspace .optimizer-explanation { grid-column:2; align-self:center; color:#79909f; font-size:11px; }
.optimizer-explanation > summary { cursor:pointer; }
.loadout-workspace .optimizer-explanation[open] { grid-column:1/-1; }
.optimizer-explanation p { margin:3px 0; }
.optimizer-slot-shares { display:flex; flex-wrap:wrap; justify-content:center; gap:2px; padding:2px; }
.optimizer-zone-share, .optimizer-zone-plan li { border:1px solid hsl(var(--zone-hue) 42% 63%); background:hsl(var(--zone-hue) 65% 94%); border-radius:4px; }
.optimizer-preset-row .loadout-cell .optimizer-zone-share { padding:1px 3px; color:hsl(var(--zone-hue) 60% 28%); font-size:9px; white-space:nowrap; }
.optimizer-zone-plan { gap:5px; }
.optimizer-zone-plan li { padding:4px 7px; }
.optimizer-zone-plan li strong, .optimizer-zone-plan li p { color:hsl(var(--zone-hue) 60% 28%); }
.optimizer-spare-share { padding:1px 3px; color:#6e899a; }
.loadout-workspace .calculator-pickers { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:6px 8px; }
.loadout-workspace .aircraft-search-bar { grid-column:1; }
.loadout-workspace .hangar-weapon-filters { grid-column:1; }
.loadout-workspace .custom-editor-toolbar { grid-column:3; }
.loadout-workspace .custom-editor [data-custom-body] { grid-column:1/-1; }
.loadout-workspace .loadout-individual { grid-column:2/-1; justify-self:end; }
.loadout-workspace .loadout-individual[open] { grid-column:1/-1; justify-self:stretch; }
.loadout-workspace .native-presets .hangar-picker-head { grid-column:1; }
.loadout-workspace #calcPresetPanel { grid-column:1/-1; }
@media (max-width:1100px) {
  .optimizer-heading { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); }
  .optimizer-heading-label { grid-column:1/-1; }
  .optimizer-filter-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .optimizer-filter-grid button:first-child { grid-column:1/-1; }
  .loadout-workspace .calculator-pickers { grid-template-columns:minmax(0,1fr) auto; }
  .loadout-workspace .aircraft-search-bar { grid-column:1/-1; }
  .loadout-workspace .hangar-weapon-filters { grid-column:1; }
  .loadout-workspace .custom-editor-toolbar { grid-column:2; }
  .loadout-workspace .loadout-individual { grid-column:2; }
}
@media (max-width:560px) {
  .optimizer-heading { grid-template-columns:minmax(0,1fr); gap:5px; }
  .optimizer-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .optimizer-filter-grid button:first-child { grid-column:1/-1; }
  .loadout-workspace .calculator-pickers { grid-template-columns:minmax(0,1fr); }
  .loadout-workspace .aircraft-search-bar { flex-wrap:wrap; }
  .loadout-workspace .aircraft-search-bar .hangar-search { flex-basis:100%; min-width:0; }
  .optimizer-filter-grid button { flex-wrap:wrap; }
  .optimizer-filter-grid button strong { flex-basis:100%; text-align:left; }
  .optimizer-filter-grid button:first-child strong { flex-basis:auto; }
  .loadout-workspace .hangar-weapon-filters, .loadout-workspace .custom-editor-toolbar, .loadout-workspace .loadout-individual { grid-column:1; justify-self:stretch; }
  .loadout-workspace .hangar-result-primary strong, .loadout-workspace .hangar-sorties strong, .loadout-reward strong, .loadout-score strong { font-size:18px; }
  .loadout-workspace .aircraft-search-bar, .loadout-workspace .hangar-weapon-filters { flex-basis:100%; }
}
.sim-score-panel { grid-column:1 / -1; min-width:0; padding:0; font-size:12px; color:#537990; }
.sim-score-panel > summary { cursor:pointer; }
.sim-score-panel[open] > summary { margin-bottom:8px; }
.sim-score-controls { display:flex; flex-wrap:wrap; gap:8px 18px; }
.sim-score-controls .hangar-field { flex:1 1 180px; max-width:340px; }
.sim-score-controls input, .sim-score-delivery input { width:100%; min-height:32px; padding:5px 8px; border:1px solid #c6dbe7; border-radius:6px; font:inherit; background:white; }
.sim-score-panel .reward-stats { margin:6px 0; }
.sim-score-delivery-details { font-size:12px; color:#537990; }
.sim-score-delivery { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:6px 0; }
.sim-score-delivery span { flex:1 1 180px; }
.sim-score-delivery input { width:90px; }
.sim-score-delivery-details button { margin-top:4px; padding:6px 9px; border:1px solid #c6dbe7; border-radius:6px; background:#edf5fa; color:#315f7b; font:inherit; cursor:pointer; }
.optimizer-modes button { min-width:0; overflow-wrap:anywhere; }
.optimizer-target-controls { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.optimizer-target-controls[hidden] { display:none; }
.optimizer-target-controls label { display:flex; align-items:center; gap:8px; font-size:12px; }
.optimizer-target-controls input { width:80px; min-height:34px; padding:5px 8px; border:1px solid #bdd2df; border-radius:6px; font:inherit; }
.optimizer-target-controls button { padding:6px 10px; border:1px solid #bdd2df; border-radius:6px; background:#eef6fb; font:inherit; font-size:12px; cursor:pointer; }
.optimizer-target-controls button[aria-pressed=true] { background:#fff3ca; border-color:#dbbe6e; }
.optimizer-guidance-selection { --guidance-index:0; grid-column:1/-1; display:grid; position:relative; grid-template-columns:repeat(3,minmax(0,1fr)); min-width:0; padding:2px; border-radius:8px; background:#e5eef4; isolation:isolate; }
.optimizer-guidance-thumb { position:absolute; z-index:-1; top:2px; bottom:2px; left:2px; width:calc((100% - 4px) / 3); border:1px solid #ddc270; border-radius:6px; background:#fff0b8; box-shadow:0 1px 3px #8b7b3920; transform:translateX(calc(var(--guidance-index) * 100%)); transition:transform .18s ease; }
.optimizer-guidance-selection label { display:grid; place-items:center; position:relative; min-width:0; min-height:28px; padding:3px 5px; border-radius:6px; color:#55778b; font-size:11px; text-align:center; line-height:1.35; overflow-wrap:anywhere; cursor:pointer; }
.optimizer-guidance-selection input { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; }
.optimizer-guidance-selection label:has(input:checked) { color:#715513; font-weight:700; }
.optimizer-guidance-selection label:has(input:focus-visible) { outline:2px solid #258dbd; outline-offset:-2px; }
@media (prefers-reduced-motion:reduce) { .optimizer-guidance-thumb { transition:none; } }
.loadout-summary .aircraft-toolbar { position:relative; order:1; flex-basis:100%; width:100%; min-width:0; margin:4px 0 0; padding:0; border:0; border-radius:0; background:none; }
.loadout-summary .aircraft-toolbar .hangar-picker-head { display:none; }
.calculator-page .loadout-summary .aircraft-toolbar:focus-within .hangar-aircraft-list:not(:has(.hangar-weapon-empty)) { top:100%; }
.tool-nav-group { display:grid; gap:3px; padding:5px; border:1px solid #c9dce8; border-radius:10px; background:#eaf3f9; }
.tool-nav-group + .tool-nav-group { margin-top:7px; }
.tool-nav-group .tool-nav-category { display:block; margin:0 4px 3px; padding:5px 4px 7px; border-bottom:1px solid #c1d7e5; color:#395e76; font-size:11px; font-weight:750; }
.tool-directory .tool-nav-group a { background:#f8fcff; }
.tool-directory .tool-nav-group a:hover { background:#dceef9; }
.loadout-workspace .optimizer-panel { width:100%; min-width:0; border:0; }
.loadout-summary > .optimizer-panel { order:2; flex-basis:100%; }
.optimizer-panel[data-available=false] > :not(.loadout-comparison), .optimizer-panel[data-available=false] .loadout-comparison > :not(.current-loadout-block) { display:none; }
.loadout-comparison { min-width:0; display:grid; gap:0; overflow:hidden; border:1px solid #bdd5e2; border-radius:10px; }
.current-loadout-block { min-width:0; background:#eaf5fc; border-bottom:1px solid #bdd5e2; }
.current-loadout-metrics, .loadout-comparison .optimizer-metrics { display:flex; justify-content:flex-start; align-items:baseline; flex-wrap:wrap; gap:3px 12px; padding:5px 8px; }
.loadout-metrics-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 10px; color:#638091; font-size:10px; line-height:1.2; }
.loadout-metrics-heading > strong { color:#24789b; font-size:11px; font-weight:750; }
.optimizer-metrics .loadout-metrics-heading > strong { color:#9a701d; }
.loadout-metrics-target { font-weight:650; color:#315f7b; }
.loadout-metric-grid { display:contents; }
.current-loadout-metrics .hangar-result-grid { display:contents; }
.loadout-comparison .loadout-metric { display:inline-flex; flex-wrap:wrap; align-items:baseline; gap:4px; min-width:0; min-height:0; margin:0; padding:0; border:0; border-radius:0; background:none; color:#315f7b; }
.loadout-comparison .loadout-metric-label { display:block; margin:0; font-size:11px; font-weight:500; line-height:1.4; letter-spacing:0; color:#527186; }
.loadout-comparison .loadout-metric-value { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px; max-width:100%; }
.loadout-comparison .loadout-metric-value strong { font-size:17px; font-weight:750; line-height:1.2; color:#157bb1; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.loadout-comparison [data-loadout-metric=score] .loadout-metric-value strong { color:#c84421; }
.loadout-comparison [data-loadout-metric=reward] .loadout-metric-value strong { color:#956700; }
.loadout-comparison [data-loadout-metric=required] .loadout-metric-value strong, .loadout-comparison [data-loadout-metric=targets] .loadout-metric-value strong { color:#08775a; }
.loadout-comparison .loadout-metric-value span { margin:0; font-size:11px; font-weight:400; color:#638091; }
.loadout-metric[data-loadout-metric=score] { order:1; }
.loadout-metric[data-loadout-metric=reward] { order:2; }
.loadout-metric[data-loadout-metric=sorties] { order:3; }
.loadout-metric[data-loadout-metric=required], .loadout-metric[data-loadout-metric=targets] { order:4; }
.loadout-metrics-note { order:5; margin:0; font-size:10px; line-height:1.4; color:#638091; }
.current-loadout-block .hangar-result-primary[data-quantity=sorties] { display:none; }
.loadout-summary .loadout-comparison #calcPresetDetail { margin:0; padding:0; border:0; border-radius:0; background:inherit; }
.loadout-comparison [data-optimizer-result] { min-width:0; gap:0; background:#fff9e8; }
.loadout-comparison .optimizer-stores { overflow-x:auto; border:0; border-bottom:1px solid #e6dab4; border-radius:0; }
.loadout-comparison .optimizer-preset-row { background:#fff9e8; cursor:default; box-shadow:inset 4px 0 #e5b82b; }
.recommended-slot-area { min-width:0; padding:3px 6px; }
.loadout-comparison .optimizer-metrics > :not(.loadout-metrics-heading):not(.loadout-metric-grid) { order:5; }
.loadout-comparison .optimizer-metrics [data-optimizer-context] { margin:0; }
.optimizer-panel[data-state=optimal] .optimizer-metrics .optimizer-status { display:none; }
.loadout-comparison .optimizer-metrics .optimizer-status { margin:0; font-size:10px; }
.loadout-comparison .optimizer-metrics [data-optimizer-context]:empty { display:none; }
.loadout-comparison [data-optimizer-result] > .optimizer-status, .loadout-comparison [data-optimizer-result] > [data-optimizer-context] { margin:0; padding:3px 8px; }
.loadout-comparison [data-optimizer-result] > [data-optimizer-context]:empty { display:none; }
.loadout-workspace .loadout-comparison .optimizer-actions { display:flex; flex-wrap:wrap; margin:5px 0; }
.loadout-comparison [data-optimizer-apply] { background:#ffdf70; border:1px solid #d5ac34; border-radius:6px; color:#59400c; font-weight:750; }
.loadout-comparison [data-optimizer-apply]:hover:enabled { background:#ffd34e; }
.loadout-comparison [data-optimizer-apply]:disabled { opacity:1; background:#f1e7bd; color:#7a7150; }
.loadout-comparison > .optimizer-actions, .loadout-comparison > .optimizer-note, .loadout-comparison > .optimizer-status { margin:0; padding:5px 12px; background:#fff9e8; }
.loadout-comparison > .optimizer-note:empty, .loadout-comparison > .optimizer-status:empty { display:none; }
.loadout-comparison > .recommendation-state { justify-self:start; margin:4px 12px; }
.loadout-comparison .loadout-metrics-heading .recommendation-state { margin:0; padding:0; border:0; background:none; }
.loadout-comparison .loadout-row-name { flex-direction:row; flex-wrap:wrap; align-items:center; justify-content:flex-start; align-content:flex-start; gap:4px 6px; padding:4px 7px; }
.loadout-comparison .optimizer-preset-row .optimizer-actions { display:contents; margin:0; }
.loadout-comparison .optimizer-preset-row .optimizer-actions button { min-height:28px; padding:3px 7px; font-size:10px; line-height:1.4; }
.loadout-comparison .current-loadout-clear { align-self:auto; margin:0; min-height:28px; padding:3px 7px; line-height:1.4; }
.loadout-comparison .current-preset-row h2 { margin:0; font-size:12px; line-height:1.4; }
.loadout-comparison .current-preset-row .tool-note:empty { display:none; }
.loadout-comparison .current-preset-row { min-width:0; grid-template-columns:200px minmax(0,1fr); }
@media (max-width:640px) {
  .loadout-comparison .current-preset-row { grid-template-columns:minmax(0,1fr); }
  .loadout-comparison .current-preset-row .loadout-row-name { position:static; border-right:0; }
}
@media (max-width:560px) {
  .optimizer-priority label { padding:5px 3px; overflow-wrap:anywhere; }
  .current-loadout-metrics, .loadout-comparison .optimizer-metrics { gap:2px 8px; padding:4px 7px; }
}
/* Lower-toolbox workflow layer. Deliberately scoped away from the loadout UI. */
#sortieTools { margin-top: 30px; min-width: 0; }
#sortieTools [hidden] { display: none !important; }
#sortieTools .workflow-heading { padding: 10px 0 15px; }
#sortieTools .workflow-heading h2 { margin: 5px 0 8px; color: #193c56; font-size: clamp(22px, 3vw, 28px); }
#sortieTools .workflow-heading > p:last-child { margin: 0; color: #597485; font-size: 14px; }
#sortieTools .workflow-nav { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; }
#sortieTools .workflow-nav a { position: relative; display: grid; grid-template-columns: 25px 1fr; align-content: center; gap: 3px 9px; padding: 14px 12px; min-height: 78px; box-sizing: border-box; text-decoration: none; background: #f9fcff; color: #254962; border: 1px solid #bdd3df; border-radius: 11px; }
#sortieTools .workflow-nav a:hover { border-color: #4585a3; background: #edf8fd; }
#sortieTools .workflow-nav a[aria-current] { background: #fff1b7; border-color: #d2b857; box-shadow: inset 0 0 0 1px #f9e694; }
#sortieTools .workflow-number { grid-row: span 2; align-self: start; font: 700 11px/1.8 ui-monospace, monospace; color: #8a7130; }
#sortieTools .workflow-nav strong { font-size: 14px; line-height: 1.4; }
#sortieTools .workflow-nav small { color: #637d8a; font-size: 11px; line-height: 1.5; }
#sortieTools > .tool-panel { margin-top: 16px; scroll-margin-top: 88px; }
#sortieTools .workflow-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 12px 0 18px; }
#sortieTools .workflow-actions > .tool-note { flex: 1 1 220px; }
#sortieTools .conversion-use { min-height: 42px; padding: 8px 12px; font-size: 13px; line-height: 1.5; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; }
#sortieTools .conversion-use:disabled { opacity: .5; cursor: not-allowed; }
#sortieTools .workflow-evidence { width: fit-content; margin: 12px 0; padding: 6px 10px; border: 1px solid #d3e1e8; border-radius: 6px; background: #eef5f8; color: #486578; font-size: 12px; line-height: 1.6; }
#sortieTools .workflow-callout { margin: 14px 0; padding: 13px 15px; border-left: 3px solid #b99430; border-radius: 0 8px 8px 0; background: #fff9e7; color: #64572f; font-size: 13px; line-height: 1.8; }
#sortieTools .workflow-module-guide { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 12px 0; }
#sortieTools .workflow-module-guide > div { display: grid; gap: 4px; padding: 10px 12px; background: #edf5fa; border-radius: 7px; font-size: 12px; color: #527080; }
#sortieTools .workflow-module-guide strong { color: #244c62; font-size: 13px; }
#sortieTools .workflow-chart-details[open] { padding-bottom: 8px; }
#sortieTools .workflow-field-error { color: #a34c30; font-size: 12px; text-transform: none; line-height: 1.5; }
#sortieTools input[aria-invalid="true"] { border-color: #bc6143; box-shadow: 0 0 0 2px #ffe3d6; }
#sortieTools .workflow-fuel-conclusion { margin: 0 0 17px; color: inherit; font-size: clamp(21px, 3vw, 27px); font-variant-numeric: tabular-nums; line-height: 1.5; }
#sortieTools .fuel-measurement { padding: 12px 16px; background: #f3f8fc; border: 1px solid #d4e2eb; border-radius: 10px; }
#sortieTools .fuel-measurement .tool-input-grid { margin: 14px 0; }
#sortieTools .workflow-checklist ul { list-style: none; margin: 12px 0; padding: 0; display: grid; gap: 8px; }
#sortieTools .workflow-checklist li label { display: flex; gap: 12px; align-items: flex-start; padding: 10px 12px; border: 1px solid #d3e1e9; border-radius: 8px; background: #f5faff; line-height: 1.7; cursor: pointer; }
#sortieTools .workflow-checklist input { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 3px; accent-color: #347f9a; }
#sortieTools .workflow-guide-search { margin: 22px 0 8px; }
#sortieTools :is(a,button,input,select,summary):focus-visible { outline: 3px solid #236f99; outline-offset: 3px; }
#sortieTools :is(button,summary) { touch-action: manipulation; }
#sortieTools .air-presets button[aria-pressed="true"] { background: #fff1b7; border-color: #d2b857; color: #5a4b22; }
#sortieTools .conversion-side > .conversion-use { margin-top: 0; margin-bottom: 9px; }
@media (max-width: 760px) {
  #sortieTools .workflow-nav { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
  #sortieTools .workflow-nav a { padding: 11px 10px; min-height: 76px; grid-template-columns: 20px 1fr; gap: 3px 6px; }
  #sortieTools > .tool-panel { padding: 18px 14px; border-radius: 14px; }
  #sortieTools .tool-input-grid { gap: 14px 10px; }
  #sortieTools input, #sortieTools select { font-size: 16px; }
  #sortieTools .repair-controls .score-presets button, #sortieTools .air-presets button { min-height: 42px; }
  #sortieTools .air-controls { padding: 14px; }
  #sortieTools .workflow-comparison { max-height: none; overflow: visible; }
  #sortieTools #compareTable, #sortieTools #compareTable tbody { display: block; min-width: 0; }
  #sortieTools #compareTable[hidden] { display: none; }
  #sortieTools #compareTable thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  #sortieTools #compareTable tr { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 12px 0; padding: 14px; border: 1px solid #cbdce6; border-radius: 10px; background: #f8fcff; }
  #sortieTools #compareTable tr[data-selected="true"] { border-color: #7aafc7; background: #eaf5fc; }
  #sortieTools #compareTable td { display: block; padding: 0; border: 0; white-space: normal; font-size: 15px; font-weight: 600; }
  #sortieTools #compareTable td:first-child { grid-column: 1 / -1; }
  #sortieTools #compareTable td::before { content: attr(data-label); display: block; margin-bottom: 3px; color: #6a8494; font-size: 11px; font-weight: 400; }
  #sortieTools #compareTable td:first-child::before { content: none; }
  #sortieTools #compareTable button { min-height: 42px; min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
  #sortieTools * { scroll-behavior: auto; }
}
