/* Personal preferences and the settings dialog. Loaded after the game styles. */
.settings-trigger { min-height: 38px; display: flex; align-items: center; gap: 7px; padding: 0 11px; border: 1px solid var(--line); border-radius: 6px; color: var(--paper); background: var(--panel); }
.settings-trigger span { font-size: 19px; }
.settings-trigger b { font-size: 11px; }
.settings-dialog { width: min(820px, calc(100vw - 32px)); max-height: min(780px, calc(100dvh - 32px)); padding: 0; overflow: hidden; color: var(--cream); border: 1px solid #746447; background: #16221e; }
.settings-dialog[open] { display: flex; flex-direction: column; }
.settings-dialog [hidden] { display: none !important; }
.settings-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 24px 26px 20px; border-bottom: 1px solid var(--line); background: linear-gradient(110deg, #25382e, #18251f); }
.settings-heading h2 { margin: 0 0 8px; color: var(--cream); font: 600 32px/1.1 Georgia, serif; }
.settings-heading p:last-child { margin: 0; color: #b7c3b9; font-size: 12px; line-height: 1.5; }
.settings-dialog button, .settings-dialog select, .settings-dialog input:not([type="checkbox"]) { min-height: 38px; border: 1px solid #526357; border-radius: 6px; color: var(--cream); background: #101c17; font: inherit; font-size: 12px; }
.settings-dialog button { padding: 8px 12px; }
.settings-dialog button:hover { border-color: var(--gold-light); }
.settings-dialog button:disabled { cursor: default; opacity: .6; }
.settings-dialog .settings-close { flex: 0 0 38px; padding: 0; font-size: 24px; }
.settings-layout { min-height: 0; display: grid; grid-template-columns: 205px minmax(0, 1fr); }
.settings-navigation { display: flex; flex-direction: column; gap: 6px; padding: 20px 12px; background: #111c17; border-right: 1px solid var(--line); }
.settings-navigation button { display: flex; align-items: center; gap: 9px; text-align: left; border-color: transparent; background: transparent; line-height: 1.5; }
.settings-navigation button span { width: 18px; color: var(--gold-light); font-size: 19px; text-align: center; }
.settings-navigation button[aria-current] { color: #f2d494; background: #29372b; border-color: #766744; }
.settings-navigation a { margin-top: auto; padding: 16px 12px 0; color: #bdc9bc; font-size: 12px; }
.settings-content { min-height: 0; padding: 25px 26px; overflow: auto; overscroll-behavior: contain; scrollbar-color: #667561 #16221e; }
.settings-content h3 { margin-bottom: 14px; font-size: 24px; }
.setting-row { display: flex; justify-content: space-between; align-items: center; gap: 22px; padding: 15px 0; border-bottom: 1px solid #324338; font-size: 13px; }
.setting-row > span { min-width: 0; }
.setting-row b { display: block; margin-bottom: 5px; font-weight: 650; }
.setting-row small { display: block; max-width: 290px; color: #a7b7aa; font-size: 12px; line-height: 1.5; }
.setting-row select, .setting-row input:not([type="checkbox"]) { width: 175px; flex: 0 0 175px; padding: 8px; }
.setting-row input[readonly] { color: #b5c3b6; }
.setting-row input[type="checkbox"] { width: 22px; height: 22px; flex: 0 0 22px; margin: 0 3px; accent-color: #d3a451; cursor: pointer; }
.setting-row button { flex-shrink: 0; }
.settings-dialog .connection-status { width: auto; max-width: 200px; height: auto; margin: 0; line-height: 1.4; }
.settings-note { margin-top: 20px; padding: 15px; border: 1px solid #405440; border-radius: 6px; background: #1b2a20; font-size: 12px; line-height: 1.6; }
.settings-note b { color: #e3cb8b; }
.settings-note p { margin: 7px 0 0; color: #b5c3b6; }
.settings-note kbd { padding: 1px 4px; border: 1px solid #62705b; border-radius: 3px; color: #ece4c7; background: #152219; font: 11px ui-monospace, monospace; }
.settings-session-info { margin: 18px 0; font-size: 12px; }
.settings-session-info div { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; }
.settings-session-info dt { color: #a7b7aa; }
.settings-session-info dd { margin: 0; text-align: right; overflow-wrap: anywhere; }
.settings-footer { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 22px; border-top: 1px solid var(--line); background: #111c17; }
.settings-footer p { margin: 0; max-width: 360px; color: #a7b7aa; font-size: 11px; line-height: 1.5; }
.settings-footer > div { display: flex; gap: 8px; flex-shrink: 0; }
.settings-dialog .primary { color: #191f17; border-color: #b08a48; background: linear-gradient(#dfb96c, #c6994b); font-weight: 750; }
.settings-dialog :is(button, select, input, a):focus-visible { outline: 3px solid var(--gold-light); outline-offset: 3px; }
html[data-map-vignette="false"] .map-vignette, html[data-map-minimap="false"] .overview, html[data-navigation-hints="false"] .map-hint { display: none; }
html[data-reduced-motion="true"] *, html[data-reduced-motion="true"] *::before, html[data-reduced-motion="true"] *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
html[data-high-contrast="true"] { --line: #8eaa97; --muted: #d4e3d6; --paper: #fff1d0; --cream: #fff6e2; }
html[data-high-contrast="true"] :is(.command-body, .sidebar, .settings-dialog) :is(p, small, label, dt, .eyebrow) { color: #e6efe4; }
html[data-high-contrast="true"] :is(button, input, select) { border-color: #8eaa97; }
html[data-reading-size="comfortable"] { --reading-size: 13px; }
html[data-reading-size="large"] { --reading-size: 15px; }
html:is([data-reading-size="comfortable"], [data-reading-size="large"]) :is(.command-body, .sidebar) :is(p, small, label, td, th, li, button, input, select, .data-row) { font-size: var(--reading-size); line-height: 1.5; }
@media (max-width: 640px) {
  .settings-trigger { width: 38px; padding: 0; justify-content: center; }
  .settings-trigger b { display: none; }
  .settings-dialog { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
  .settings-heading { padding: 18px; }
  .settings-heading h2 { font-size: 28px; }
  .settings-layout { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); }
  .settings-navigation { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; padding: 8px; border-right: 0; border-bottom: 1px solid var(--line); }
  .settings-navigation button { gap: 5px; padding: 8px 6px; font-size: 11px; }
  .settings-navigation a { display: none; }
  .settings-content { padding: 18px; }
  .setting-row { gap: 12px; flex-wrap: wrap; }
  .setting-row > span { flex: 1 1 150px; }
  .setting-row select, .setting-row input:not([type="checkbox"]) { width: 100%; flex: 1 1 160px; }
  .settings-footer { flex-direction: column; align-items: stretch; padding: 12px 18px; gap: 10px; }
  .settings-footer > div { justify-content: space-between; }
  .settings-footer .primary { flex: 0 0 75px; }
}
