diff --git a/web/style.css b/web/style.css
index 138243e..54ce5d0 100644
--- a/web/style.css
+++ b/web/style.css
@@ -995,10 +995,42 @@ body[data-mode="text"] .mic-meter {
padding: 0.15rem 0.2rem 0 0;
}
-/* Two pickers (voice + brain) share the settings sheet height. */
-.settings-sheet .voice-list {
- flex: 1 1 0;
+/* One scroll area keeps both model controls and all voices reachable. */
+.sheet-content {
+ min-height: 0;
+ overflow-y: auto;
+ padding: 0.15rem 0.2rem 0.25rem;
}
+.settings-sheet .sheet-header { flex-shrink: 0; }
+.settings-sheet .voice-list { overflow-y: visible; }
+.model-settings {
+ min-width: 0;
+ padding-bottom: 1.25rem;
+ margin-bottom: 1rem;
+ border-bottom: 1px solid var(--line);
+}
+.model-settings h3 { font-size: 0.9rem; font-weight: 650; }
+.model-settings select {
+ width: 100%;
+ max-width: 100%;
+ min-width: 0;
+ text-overflow: ellipsis;
+ font-size: 0.85rem;
+}
+.model-settings select:disabled { color: var(--ink-soft); cursor: not-allowed; }
+.model-settings-note,
+.model-settings-status {
+ color: var(--ink-soft);
+ font-size: 0.78rem;
+ line-height: 1.55;
+ overflow-wrap: anywhere;
+}
+#thinkingLevelNote { margin-top: 0.5rem; }
+.model-settings-status[data-state="error"] { color: var(--danger); }
+.model-settings-status[data-state="success"] { color: var(--mint); }
+.model-settings-actions { display: flex; flex-wrap: wrap; gap: 0.65rem; }
+.model-settings-actions .btn { min-width: 90px; }
+.model-settings-actions .btn:disabled { display: inline-block; }
.voice-card {
min-height: 54px;