#sim-dialog:has(.reference) { width: min(1040px, calc(100vw - 32px)); max-width: 1040px; max-height: calc(100dvh - 32px); padding: 28px; }
.reference-heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: 10px 16px; margin: 5px 40px 18px 0; }
.reference-heading h2 { margin: 0; }
.reference-shortcut { color: var(--fg-muted); font-size:var(--text-meta); white-space: nowrap; }
.reference-shortcut kbd { padding: 2px 5px; border: 1px solid var(--border-strong); border-radius: 3px; font: inherit; }
.reference-search { display: grid; gap: 8px; font-size:var(--text-meta); color: var(--fg); }
.reference-search-field { position: relative; display: block; }
.reference-search-field > svg { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; pointer-events: none; color: #c6cdd3; }
.reference-search input { width: 100%; min-height: 48px; box-sizing: border-box; padding: 13px 16px 13px 46px; border: 1px solid #939ca4; border-radius: 6px; background: #27323c; color: #fff; font: inherit; font-size: 16px; cursor: text; caret-color: #fff; }
.reference-search input::placeholder { color: #c6cdd3; opacity: 1; }
.reference-search input:hover { border-color: #c6cdd3; }
.reference-search input:focus { border-color: #e5ac7b; background: #2b3742; }
.reference-layout { display: grid; grid-template-columns: minmax(210px, .8fr) minmax(0, 1.4fr); gap: 28px; margin-top: 16px; }
.reference-layout nav, .reference-layout article { min-width: 0; height: min(56dvh, 560px); overflow-y: auto; overscroll-behavior: contain; }
.reference-count { color: #b8afa5; margin: 0 0 10px; font-size:var(--text-meta); }
.reference-list { display: grid; gap: 4px; padding-right: 8px; }
.reference-list button { display: grid; gap: 3px; width: 100%; padding: 12px; text-align: left; background: transparent; border: 1px solid transparent; border-radius: 7px; color: #e8ded4; }
.reference-list button[aria-pressed="true"], .reference-list button:hover { border-color: #a17652; background: #a176521c; }
.reference-list small { font-size:var(--text-meta); color: #b8afa5; }
.reference-layout article { border-left: 1px solid #75675966; padding: 5px 12px 16px 28px; }
.reference h3 { font-size: 25px; line-height: 1.25; margin: 9px 0 16px; font-weight: 500; }
.reference h4 { font-size:var(--text-meta); text-transform: uppercase; letter-spacing: .08em; margin: 26px 0 9px; color: #d6ac86; }
.reference p { line-height: 1.65; }
.reference .choice-formula { display: grid; gap: 8px; }
.reference-availability { color: #c6baa9; font-size:var(--text-meta); }
.reference-related { display: flex; flex-wrap: wrap; gap: 6px; }
.reference-related button { padding: 8px 11px; font-size:var(--text-meta); }
.reference-facts { display: grid; grid-template-columns: 1fr auto; gap: 10px; font-size: var(--text-meta); margin: 22px 0; }
.reference-facts dd { margin: 0; }
.reference button:focus-visible, .reference input:focus-visible { outline: 2px solid #e5ac7b; outline-offset: 2px; }
@media (max-width: 640px) {
  #sim-dialog:has(.reference) { padding: 22px 16px; }
  .reference-layout { grid-template-columns: 1fr; gap: 18px; }
  .reference-layout nav { height: 22dvh; }
  .reference-layout article { height: 35dvh; border-left: 0; border-top: 1px solid #75675966; padding: 18px 4px; }
}

.sound-settings { display: grid; gap: 22px; margin: 24px 0; }
.sound-settings label { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.sound-settings input { grid-column: 1 / -1; width: 100%; accent-color: #d6a173; }
.sound-settings output { color: #c6b9aa; font-size:var(--text-meta); }

.saved-games { max-height: 50vh; overflow: auto; margin-top: 20px; }
.saved-game { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 16px 0; border-top: 1px solid var(--border-subtle); }
.saved-game > div:first-child { min-width: 0; overflow-wrap: anywhere; }
.saved-game h3 { font-size: 18px; margin: 0 0 5px; }.saved-game p { margin: 0 0 5px; }.saved-game small { color: var(--fg-muted); }
.saved-game > div:last-child { display: flex; gap: 10px; flex-shrink: 0; }
#save-game-form { display: flex; margin-top: 22px; }
#save-game-form > button { width: auto; min-height: 44px; margin: 0; padding: 10px 18px; white-space: nowrap; justify-content: center; }
.save-problem { position: fixed; top: 68px; left: 50%; transform: translateX(-50%); padding: 14px 20px; background: #502d25; color: #fff2e5; z-index: 100; border-radius: 6px; }
@media(max-width:650px) {
  .saved-game { align-items: start; flex-direction: column; }
}
