.settings-screen { display: block; overflow: auto; padding: 16px; }
.settings-wrap { width: min(900px, 100%); margin: 0 auto; display: grid; gap: 16px; padding-bottom: 24px; }
.settings-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.settings-header h1 { margin: 0; color: var(--ivory, #fff2d4); }
.settings-wrap .panel { padding: 18px; min-width: 0; }
.settings-wrap h2 { margin: 0 0 12px; }
.settings-control { margin-block: 12px; display: grid; gap: 8px; }
.settings-control > label { font-weight: bold; }
.settings-control .hint { margin: 0; line-height: 1.5; }
.settings-toggle { display: flex; gap: 12px; align-items: center; min-height: 44px; cursor: pointer; }
.settings-toggle input { width: 24px; height: 24px; flex-shrink: 0; accent-color: #105da8; }
.settings-volume { display: grid; grid-template-columns: minmax(130px, 1fr) minmax(100px, 2fr) 4ch; gap: 12px; align-items: center; min-height: 48px; }
.settings-volume input { min-width: 0; width: 100%; min-height: 44px; accent-color: #105da8; }
.settings-volume output { text-align: right; }
.settings-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.settings-wrap .btn { min-height: 44px; white-space: normal; }
.settings-wrap select, .settings-wrap input[type=file] { font: inherit; max-width: 100%; min-height: 44px; padding: 8px; border: 2px solid #111; background: #fff; color: #111; }
.settings-wrap select { width: min(300px, 100%); }
.settings-wrap :focus-visible { outline: 3px solid #105da8; outline-offset: 3px; }
.settings-status { min-height: 1.5em; overflow-wrap: anywhere; margin-bottom: 0; }
.settings-status[role=alert] { font-weight: bold; border-left: 4px solid #af2020; padding-left: 10px; }
@media (max-width: 600px) {
  .settings-screen { padding: 10px; }
  .settings-wrap .panel { padding: 12px; }
  .settings-volume { grid-template-columns: 1fr 4ch; gap: 4px 10px; }
  .settings-volume label { grid-column: 1 / -1; }
  .settings-actions > .btn { flex: 1 1 145px; }
}
