#training-hud { position: fixed; left: 20px; bottom: 135px; width: 280px; max-width: calc(100vw - 40px); background: #10242cf5; border: 1px solid #557878; border-radius: 8px; padding: 14px; font-size: 12px; box-shadow: 0 6px 24px #0005; }
#training-hud strong { font-size: 13px; }
#training-hud p { line-height: 1.5; margin: 10px 0; }
#training-hud small { display: block; line-height: 1.5; margin: 9px 0; color: #b2c8c5; }
#training-cancel { margin-top: 9px; }
.training-health { display: flex; align-items: center; gap: 8px; margin-top: 12px; }
.training-health progress { width: 120px; height: 9px; accent-color: #8bcaba; }
#training-report { max-height: calc(100dvh - 32px); overflow: auto; }
#training-report-outcome { padding: 12px 14px; border: 1px solid #bb927b; border-radius: 6px; color: #efc5a9; background: #49382e; font-size: 20px; font-weight: 650; }
#training-report-outcome[data-outcome="victory"] { border-color: #73bba5; color: #b3e6ce; background: #25463f; }
.training-report-details { display: grid; grid-template-columns: 105px minmax(0, 1fr); gap: 12px 14px; padding: 4px 0 16px; border-bottom: 1px solid #355357; font-size: 13px; }
.training-report-details dt { color: #a5bcb9; }
.training-report-details dd { margin: 0; overflow-wrap: anywhere; }
#training-report-time { font-variant-numeric: tabular-nums; }
.training-report-note { display: block; margin: 0 0 16px; color: #a5bcb9; line-height: 1.5; }

#combat-training { width: min(500px, 94vw); }
#training-categories { display: flex; gap: 8px; margin-bottom: 14px; }
#training-categories button { flex: 1; font-size: 14px; }
#training-modes { display: grid; gap: 8px; }
.training-mode { display: grid; gap: 5px; text-align: left; padding: 12px 14px; }
.training-mode strong { font-size: 14px; }
.training-mode span { font-size: 12px; line-height: 1.45; color: #aec6c6; }
.training-mode[aria-checked="true"] { background: #254b46; border-color: #8bcaba; }
#training-mode-detail, #training-terminal-status { font-size: 12px; }
#training-hud { width: 300px; bottom: 120px; max-height: calc(100dvh - 250px); overflow: auto; }
#training-countdown { font-size: 44px; text-align: center; font-weight: 700; color: #ecd498; }
#training-ready { white-space: pre-line; }
#training-powers { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin-top: 8px; }
#training-powers button { font-size: 11px; padding: 7px; }
#training-party-dialog { max-height: calc(100dvh - 32px); overflow: auto; width: min(470px, 94vw); }
#training-party-dialog label { display: grid; gap: 5px; margin-bottom: 8px; font-size: 12px; }
#training-party-dialog input { background: #0b1920; color: #e1eeec; padding: 9px; border: 1px solid #496068; border-radius: 5px; font: inherit; }
#training-party-content { display: grid; gap: 8px; }
.training-party-member { display: flex; align-items: center; gap: 6px; padding: 6px 0; }
.training-party-member span { flex: 1; }
#training-party-feedback { color: #e6c897; }

#fleet-catalog { width: min(820px, 94vw); max-height: calc(100dvh - 32px); overflow: auto; }
.fleet-layout { display: grid; grid-template-columns: 205px minmax(0, 1fr); gap: 20px; margin-top: 20px; }
#fleet-models { display: grid; align-content: start; gap: 8px; }
.fleet-model { display: grid; gap: 6px; text-align: left; padding: 13px 12px; }
.fleet-model strong { font-size: 14px; }
.fleet-model span, #fleet-model-role { color: #afc5c4; font-size: 12px; }
#fleet-image { width: 100%; height: auto; image-rendering: pixelated; border: 1px solid #35565e; border-radius: 5px; }
#fleet-model-role { margin: 16px 0 5px; }
#fleet-model-name { margin: 0; font-size: 24px; }
#fleet-description { margin-bottom: 0; }
@media (max-width: 620px) {
  .fleet-layout { grid-template-columns: 1fr; }
  #fleet-models { grid-template-columns: 1fr 1fr; }
  .fleet-model { padding: 10px; }
}

#training-hud{position:absolute;top:80px;right:16px;bottom:auto;left:auto;max-height:calc(100vh - 240px);overflow:auto;width:min(360px,80vw);z-index:40} #training-party-dialog input:disabled{opacity:.8} #combat-training,#training-report,#training-party-dialog,#medical-training,#fleet-catalog{color:#dbe8e3;background:#10252e;border:1px solid #426268;border-radius:10px;padding:24px;max-height:85vh;overflow:auto} #combat-training .close,#training-report .close,#training-party-dialog .close,#medical-training .close,#fleet-catalog .close{float:right}

/* Training uses the character's normal technique bar. */
#training-hud {
  position: fixed;
  top: var(--training-hud-top, 230px);
  right: var(--training-hud-right, 16px);
  width: min(300px, calc(100vw - 48px));
  padding: 12px 14px;
  max-height: max(80px, calc(100dvh - var(--training-hud-top, 230px) - 128px));
}
#training-hud p:empty { display: none; }
#training-hud p { margin: 8px 0; }
#training-rules { font-size: 11px; line-height: 1.4; }
#training-cancel { padding: 7px 10px; }

/* Keep the world visible around ordinary windows; only the holoterminal fills it. */
dialog:not(#presentation-dialog), .movable-window:not(#presentation-dialog) {
  max-width: calc(100vw - 64px) !important;
  max-height: calc(100dvh - 64px) !important;
}
dialog:not(#presentation-dialog)::backdrop { background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; }
#combat-training, #training-report, #training-party-dialog, #medical-training, #fleet-catalog { padding: 18px 20px; font-size: 13px; }
#combat-training h2, #training-report h2, #training-party-dialog h2, #medical-training h2, #fleet-catalog h2 { font-size: 19px; margin: 8px 0 14px; }
#training-report { width: 460px; }
#medical-training { width: 440px; }
#training-report-outcome { padding: 8px 12px; margin: 10px 0; font-size: 18px; }
.training-report-details { grid-template-columns: 125px minmax(0, 1fr); gap: 7px 12px; padding-bottom: 12px; }
.training-report-note { margin-bottom: 12px; font-size: 11px; }
@media (max-width: 520px) {
  dialog:not(#presentation-dialog), .movable-window:not(#presentation-dialog) { max-width: calc(100vw - 32px) !important; max-height: calc(100dvh - 48px) !important; }
}
.library-guide { width: min(520px, calc(100vw - 32px)); max-height: calc(100dvh - 48px); overflow: auto; }
.library-sections { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 16px; }
.library-sections button { white-space: normal; }
