:root { color-scheme: dark; font-family: system-ui, sans-serif; background: #10151c; color: #e7edf5; }
* { box-sizing: border-box; } [hidden] { display: none !important; } body { margin: 0; } header { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 12px 24px; background: #19232e; border-bottom: 1px solid #314250; } a { color: #9ed9e8; } .brand { color: #e7edf5; font-size: 18px; font-weight: 700; text-decoration: none; } nav { display: flex; flex-wrap: wrap; gap: 18px; } nav a[aria-current] { color: #f0c95b; }
main { width: min(1920px, calc(100% - 40px)); margin: 0 auto; padding: 18px 0 80px; } h1, h2, p { margin-top: 0; } h1 { font-size: clamp(30px, 5vw, 46px); margin-bottom: 10px; } h2 { margin-bottom: 12px; font-size: 18px; } p { color: #b7c7d5; line-height: 1.6; }.eyebrow { margin-bottom: 7px; color: #7fc3d5; letter-spacing: .12em; font-size: 11px; font-weight: 750; }.muted { margin: 0; color: #8fa4b4; font-size: 13px; }.title-row, .section-heading, .settings-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; }.title-row { margin-bottom: 28px; }.file-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; padding-top: 8px; }
.panel { margin-bottom: 18px; padding: 20px; background: #19232e; border: 1px solid #314250; border-radius: 10px; }.settings-card { grid-column: 1 / -1; width: 100%; }.settings-card .resource-settings { margin-top: 16px; }.app-layout { display: grid; grid-template-columns: 440px minmax(0, 1fr); gap: 18px; align-items: start; }.party-panel { position: sticky; top: 16px; }.party-heading { display: flex; align-items: baseline; gap: 10px; }.party-heading .eyebrow { margin-bottom: 12px; }.timeline-content { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 18px; min-width: 0; }.timeline-content > .editor, .timeline-content > .result-panel { grid-column: 1 / -1; }.timeline-content > .workspace { display: contents; }.operators { display: grid; grid-template-columns: 1fr; gap: 10px; }.operator-card { display: grid; grid-template-rows: 36px 36px 36px; align-content: center; min-height: 195px; gap: 8px; padding: 10px; background: #14202a; border: 1px solid #354b5b; border-radius: 6px; }.loadout-selects, .operator-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; min-width: 0; }.operator-meta { grid-template-columns: auto auto 1fr; align-items: center; }.operator-meta span { color: #8fa4b4; font-size: 11px; white-space: nowrap; }.operator-details { min-height: 28px; padding: 3px 7px; font-size: 11px; }.resource-settings { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }.resource-settings h2 { grid-column: 1 / -1; margin-bottom: 0; }
label { display: grid; gap: 5px; color: #b7c7d5; font-size: 12px; } input, select, button { min-height: 36px; border: 1px solid #3d5365; border-radius: 5px; color: #e7edf5; background: #111a22; font: inherit; } input, select { width: 100%; padding: 7px 8px; } button, .button { padding: 7px 12px; cursor: pointer; } button:hover, .button:hover { border-color: #72bdd1; background: #243442; }.button { display: inline-flex; align-items: center; background: #111a22; font-size: 14px; }.button input { display: none; }.quiet { color: #b7c7d5; }.primary { align-self: end; border-color: #3b8ba6; background: #1d6077; font-weight: 700; }.primary:hover { background: #287b96; }
.editor { background: #1b2732; }.event-form { display: grid; grid-template-columns: 100px 138px minmax(120px, 1fr) 140px 160px; gap: 10px; align-items: end; }.workspace { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 18px; }.timeline-panel, .state-panel { margin: 0; }.timeline-controls { display: flex; align-items: end; gap: 12px; }.timeline-controls label { min-width: 160px; }.timeline-controls input { min-height: auto; padding: 0; }.timeline { overflow: auto; border: 1px solid #354b5b; border-radius: 6px; background: #111a22; }.timeline-stage { position: relative; min-height: 265px; }.timeline-ruler { position: relative; height: 34px; margin-left: 116px; border-bottom: 1px solid #405565; background: #17232d; }.timeline-tick { position: absolute; bottom: 0; height: 100%; padding: 7px 0 0 4px; border-left: 1px solid #405565; color: #8fa4b4; font-size: 11px; }.timeline-lane { display: grid; grid-template-columns: 116px 1fr; min-height: 58px; border-bottom: 1px solid #273a47; }.timeline-lane:last-child { border-bottom: 0; }.lane-label { position: sticky; left: 0; z-index: 2; display: flex; align-items: center; padding: 10px; color: #c5d2de; background: #17232d; border-right: 1px solid #405565; font-size: 13px; font-weight: 650; }.lane-events { position: relative; min-height: 58px; background-image: linear-gradient(90deg, rgb(65 85 98 / 30%) 1px, transparent 1px); }.event-card { position: absolute; top: 9px; z-index: 1; display: flex; align-items: flex-start; gap: 5px; width: 164px; min-height: 40px; padding: 4px 6px; border: 1px solid #354b5b; border-left: 4px solid #6e90a2; border-radius: 5px; background: #1b303d; text-align: left; cursor: grab; touch-action: none; user-select: none; }.event-card:active { cursor: grabbing; }.event-card.dragging { z-index: 4; opacity: .85; box-shadow: 0 5px 18px rgb(0 0 0 / 45%); }.event-card:hover, .event-card.selected, .event-card:focus-visible { border-color: #78c7dc; background: #243d4b; outline: none; }.event-card.invalid { border-left-color: #d96b7c; }.event-card.valid { border-left-color: #63b992; }.event-time { flex: 0 0 auto; padding-top: 1px; color: #8fa4b4; font-size: 11px; }.event-title { display: flex; flex: 1 1 0; flex-direction: column; justify-content: flex-start; align-self: flex-start; min-width: 0; padding-top: 1px; color: #e7edf5; font-size: 12px; font-weight: 600; }.event-name, .event-kind { display: block; overflow: hidden; height: 12px; line-height: 12px; text-overflow: ellipsis; white-space: nowrap; }.event-kind { color: #9ed9e8; }.event-card .delete { align-self: center; flex: 0 0 auto; min-height: 23px; margin-left: auto; padding: 2px 5px; color: #c9aab0; font-size: 11px; }.empty { margin: 10px; padding: 22px; color: #8fa4b4; text-align: center; border: 1px dashed #405565; border-radius: 6px; }.state-detail { display: grid; gap: 16px; }.state-block { padding-bottom: 14px; border-bottom: 1px solid #314250; }.state-block:last-child { padding-bottom: 0; border: 0; }.state-block h3 { margin: 0 0 7px; color: #9ed9e8; font-size: 13px; }.state-list { display: grid; gap: 5px; color: #c5d2de; font-size: 13px; }.bad { color: #ef9aa8; }.good { color: #83d4ad; }.results { display: grid; gap: 7px; }.result-row { display: grid; grid-template-columns: 64px 130px minmax(0, 1fr) 100px; gap: 10px; align-items: center; padding: 10px; border-radius: 5px; background: #14202a; font-size: 14px; }.result-row.invalid { background: #302129; }.result-row.valid { background: #173127; }.result-row button { min-height: 28px; padding: 3px 7px; font-size: 12px; }
@media (max-width: 1050px) { .app-layout, .timeline-content { grid-template-columns: 1fr; }.party-panel { position: static; }.timeline-content > .editor, .timeline-content > .result-panel { grid-column: auto; }.event-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }.event-form .primary { grid-column: span 3; }.state-panel { min-height: 0; } } @media (max-width: 650px) { header { align-items: flex-start; flex-direction: column; padding: 14px 16px; } nav { gap: 12px; font-size: 14px; } main { width: min(100% - 28px, 1920px); padding-top: 28px; }.title-row, .section-heading, .settings-heading { flex-direction: column; }.file-actions { justify-content: flex-start; padding: 0; }.resource-settings, .event-form { grid-template-columns: 1fr; }.event-form .primary { grid-column: auto; }.result-row { grid-template-columns: 58px 1fr auto; }.result-row .result-kind { display: none; } }
#operator-details-dialog { width: min(1120px, calc(100vw - 32px)); max-height: calc(100vh - 32px); overflow-y: auto; padding: 22px; color: #e7edf5; background: #19232e; border: 1px solid #496071; border-radius: 10px; }
#operator-details-dialog::backdrop { background: rgb(0 0 0 / 65%); }
#operator-details-dialog > h2 { margin-bottom: 16px; }
.detail-columns { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.detail-column { min-width: 0; padding: 16px; border: 1px solid #354b5b; border-radius: 7px; background: #14202a; }
.detail-column h3 { margin: 0 0 14px; color: #9ed9e8; font-size: 15px; }
@media (max-width: 850px) { .detail-columns { grid-template-columns: 1fr; } }
#operator-details-dialog label + label { margin-top: 12px; }
.detail-column:first-child { position: relative; }
.detail-actions { position: absolute; right: calc(-89.2857% - 20px); bottom: 0; z-index: 1; display: flex; justify-content: flex-end; gap: 8px; margin: 0; }
@media (max-width: 850px) { .detail-column:first-child { position: static; }.detail-actions { position: static; margin-top: 16px; } }
.event-card.unknown { border-left-color: #d7b860; }
.simulation-warning { padding: 10px 12px; color: #f0d78e; background: #3b321e; border: 1px solid #82682d; border-radius: 5px; }
.result-row.unknown { background: #352d1b; }
.detail-check { display: flex; align-items: center; gap: 8px; }
.detail-check input { width: 16px; min-height: 16px; margin: 0; accent-color: #72bdd1; }
.detail-enhancements { margin: 12px 0 0; padding: 10px 12px; border: 1px solid #354b5b; border-radius: 5px; }
.detail-enhancements legend { color: #c5d2de; font-size: 12px; }
.detail-top-row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: end; }
.detail-level-field { display: grid; gap: 5px; color: #b7c7d5; font-size: 12px; }
.detail-level-field .detail-rank-buttons { flex-wrap: nowrap; }
.detail-enhancement-compact { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.detail-enhancement-buttons { display: flex; flex-wrap: nowrap; gap: 5px; }
.detail-enhancement-buttons button, .detail-rank-buttons button { min-height: 30px; padding: 3px 5px; font-size: 12px; }
.detail-enhancement-buttons button { min-width: 38px; }
.detail-enhancement-compact output { color: #9ed9e8; font-size: 13px; font-weight: 700; white-space: nowrap; }
.detail-enhancement-buttons button[aria-pressed="true"], .detail-rank-buttons button[aria-pressed="true"] { border-color: #72bdd1; color: #f0fbff; background: #1d6077; }
.detail-enhancement-buttons button:disabled { opacity: .45; cursor: not-allowed; }
.detail-rank-field { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 10px; align-items: center; margin-top: 12px; color: #b7c7d5; font-size: 12px; }
.detail-rank-buttons { display: flex; flex-wrap: wrap; gap: 4px; }
.detail-rank-buttons button { min-width: 31px; }
.skill-rank-field .detail-rank-buttons { flex-wrap: nowrap; gap: 2px; overflow-x: auto; }
.skill-rank-field .detail-rank-buttons button { flex: 1 0 24px; min-width: 24px; padding: 3px 1px; font-size: 11px; }
@media (max-width: 480px) { .detail-rank-field { grid-template-columns: 1fr; gap: 5px; }.skill-rank-field { grid-template-columns: 70px minmax(0, 1fr); } }
.detail-note { margin: 8px 0 0; color: #8fa4b4; font-size: 11px; }
.detail-weapon-effects { display: grid; gap: 3px; max-height: 150px; overflow-y: auto; margin-top: 8px; color: #b7c7d5; font-size: 11px; line-height: 1.45; white-space: pre-line; }
.detail-weapon-effect-heading { color: #8fa4b4; }
.detail-stats-preview { margin: 12px 0; padding: 10px; color: #c5d2de; background: #14202a; border: 1px solid #354b5b; border-radius: 5px; font-size: 12px; line-height: 1.6; }
.stat-preview-value { cursor: help; text-decoration: underline dotted; text-underline-offset: 2px; }
.uncertain { color: #f0d78e; }
.operator-card { grid-template-rows: 36px auto 36px; }
.loadout-selects { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.loadout-selects select { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.operator-gear-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; min-width: 0; }
.operator-gear-slot { display: grid; min-width: 0; gap: 3px; color: #8fa4b4; font-size: 10px; white-space: nowrap; }
.gear-picker { min-width: 0; }
.gear-picker-trigger { display: block; width: 100%; overflow: hidden; padding: 5px 20px 5px 6px; text-align: left; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.gear-picker-trigger::after { content: '▾'; position: absolute; right: 6px; color: #9ed9e8; }
.gear-picker-trigger { position: relative; }
.gear-picker-panel:popover-open { position: fixed; inset: auto; z-index: 100; display: grid; grid-template-columns: minmax(0, 145px) minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); width: min(430px, calc(100vw - 24px)); max-height: min(440px, calc(100vh - 24px)); margin: 0; padding: 8px; color: #e7edf5; background: #192b37; border: 1px solid #72bdd1; border-radius: 8px; box-shadow: 0 12px 32px rgb(0 0 0 / 60%); }
.gear-picker-header { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 2px 4px 8px; color: #9ed9e8; font-size: 12px; font-weight: 700; }
.gear-picker-header button { min-height: 26px; padding: 3px 7px; font-size: 11px; }
.gear-picker-sets, .gear-picker-items { display: grid; align-content: start; gap: 3px; min-height: 160px; max-height: 350px; overflow-y: auto; padding: 3px; }
.gear-picker-sets { border-right: 1px solid #405565; }
.gear-picker-items { color: #8fa4b4; font-size: 12px; }
.gear-picker-sets button, .gear-picker-items button { display: block; width: 100%; min-height: 29px; padding: 5px 7px; text-align: left; font-size: 12px; }
.gear-picker-sets button[aria-pressed="true"], .gear-picker-items button.selected { border-color: #72bdd1; background: #1d6077; }
.equipment-slot { margin-top: 7px; padding: 8px; border: 1px solid #354b5b; border-radius: 6px; background: #14202a; }
.equipment-slot-head { display: grid; grid-template-columns: 72px minmax(0, 1fr) minmax(0, 180px); gap: 8px; align-items: center; }
.equipment-slot-head strong { color: #c5d2de; font-size: 12px; }
.equipment-slot .gear-picker-trigger { font-size: 12px; }
.equipment-slot-meta { overflow: hidden; color: #8fa4b4; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.equipment-stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 7px; }
.equipment-stat { display: grid; grid-template-rows: auto auto; gap: 4px; min-width: 0; color: #c5d2de; font-size: 11px; }
.equipment-stat > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.equipment-ranks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2px; }
.equipment-ranks button { min-width: 0; min-height: 25px; padding: 2px; font-size: 11px; }
.equipment-ranks button[aria-pressed="true"] { border-color: #72bdd1; background: #1d6077; }
.detail-equipment-summary { margin-top: 8px; color: #9ed9e8; font-size: 11px; }
@media (max-width: 480px) { .equipment-slot-head { grid-template-columns: 60px minmax(0, 1fr); }.equipment-slot-meta { grid-column: 2; }.equipment-stat-grid { grid-template-columns: 1fr; } }

.event-toggle { display: flex; align-items: center; gap: 8px; min-height: 36px; white-space: nowrap; }.event-toggle input { width: auto; min-height: 0; }

/* 2026-09-30 UI layout baseline; newer simulation controls keep their existing behavior. */
.app-layout { grid-template-columns: 364px minmax(0, 1fr); }
.event-form { grid-template-columns: 100px 138px minmax(120px, 1fr) 160px; }
@media (max-width: 1050px) { .app-layout { grid-template-columns: 1fr; } }
.start-state-details { margin-top: 16px; border-top: 1px solid #314250; }
.start-state-details > summary { padding: 12px 2px 0; color: #9ed9e8; font-weight: 700; cursor: pointer; }
.start-state-details[open] > summary { margin-bottom: 14px; }
.start-state-details .resource-settings { margin-top: 0; }
textarea { width: 100%; min-height: 90px; resize: vertical; padding: 8px; border: 1px solid #3d5365; border-radius: 5px; color: #e7edf5; background: #111a22; font: 12px/1.5 ui-monospace, monospace; }
.wide-field { grid-column: 1 / -1; }
.timeline-playhead { position: absolute; top: 0; bottom: 0; z-index: 5; width: 18px; margin-left: -8px; cursor: ew-resize; touch-action: none; }
.timeline-playhead::after { position: absolute; top: 34px; bottom: 0; left: 8px; border-left: 2px solid #f0c95b; content: ""; box-shadow: 0 0 5px rgb(240 201 91 / 55%); pointer-events: none; }
.timeline-playhead span { position: absolute; top: 4px; left: 8px; transform: translateX(-50%); padding: 3px 6px; border: 1px solid #806d33; border-radius: 4px; color: #ffe28a; background: #3b321e; font-size: 11px; font-weight: 700; white-space: nowrap; pointer-events: none; }
.event-card > .timeline-hit-marker { position: absolute; top: 0; bottom: 0; z-index: 1; width: 2px; background: #f04b55; box-shadow: 0 0 4px rgb(240 75 85 / 70%); pointer-events: none; }
.event-card > .event-time, .event-card > .event-title, .event-card > .delete { position: relative; z-index: 2; }
.combo-priority { margin-top: 18px; padding-top: 16px; border-top: 1px solid #314250; }
.combo-priority h3 { margin: 0 0 5px; color: #9ed9e8; font-size: 14px; }
.combo-priority ol { display: grid; gap: 6px; margin: 10px 0 0; padding: 0; list-style: none; }
.combo-priority li { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 34px; padding: 4px 8px; border: 1px solid #354b5b; border-radius: 5px; background: #14202a; color: #c5d2de; font-size: 13px; }
.combo-priority li.muted { border: 0; padding: 0; background: transparent; }
.combo-priority-controls { display: flex; gap: 4px; }
.combo-priority-controls button { min-height: 26px; width: 30px; padding: 1px 4px; }
.combo-priority-controls button:disabled { opacity: .4; cursor: default; }
.timeline-controls { flex-wrap: wrap; }
.timeline-cursor-time { min-width: 52px; padding-bottom: 9px; color: #ffe28a; font-size: 12px; font-variant-numeric: tabular-nums; }
.state-panel > h2 { margin-bottom: 4px; }
.state-panel > .muted { margin-bottom: 14px; }
@media (min-width: 1051px) {
  .timeline-content > .settings-card { grid-row: 1; }
  .timeline-content > .editor { grid-row: 2; }
  .timeline-content > .workspace > .timeline-panel { grid-column: 1 / -1; grid-row: 3; }
  .timeline-content > .result-panel { grid-column: 1; grid-row: 4; }
  .timeline-content > .workspace > .state-panel { grid-column: 2; grid-row: 4; }
}
@media (max-width: 1050px) {
  .timeline-content > .workspace > .timeline-panel { grid-column: 1; grid-row: 3; }
  .timeline-content > .result-panel { grid-column: 1; grid-row: 4; }
  .timeline-content > .workspace > .state-panel { grid-column: 1; grid-row: 5; }
}
@media (min-width: 761px) and (max-width: 1050px) {
  .timeline-content { grid-template-columns: minmax(0, 1fr) 330px; }
  .timeline-content > .workspace > .timeline-panel { grid-column: 1 / -1; grid-row: 3; }
  .timeline-content > .result-panel { grid-column: 1; grid-row: 4; }
  .timeline-content > .workspace > .state-panel { grid-column: 2; grid-row: 4; }
}
