/* Suvilabs v1.20: stability/accessibility improvements, loaded after existing CSS. */
:root { scroll-padding-top: env(safe-area-inset-top, 0px); }
:where(button, a, input, select, textarea):focus-visible { outline: 2px solid var(--brand-accent-2, #827bff); outline-offset: 3px; }
.dictation-toggle.is-listening {color: #f26d82; outline: 2px solid currentColor; border-radius:999px;}
.process-export-btn {margin-inline-start:.4rem;vertical-align:middle;}
@media (max-width:760px) {
  .app, .main, .chat, .composer-wrap, .thread { min-width:0; }
  .composer-wrap { padding-bottom:max(env(safe-area-inset-bottom, 0px), 6px); }
  .composer textarea { font-size:max(16px, 1rem); }
  .sidebar-scrim { touch-action:pan-y; }
  .settings-body, .preferences-page { overscroll-behavior:contain; }
  .suvi-process {max-width:100%;min-width:0;overflow-wrap:anywhere;}
  .suvi-process-time {white-space:nowrap;}
  .process-export-btn {min-height:36px;}
}
@media (prefers-reduced-motion:reduce) {
 html:focus-within {scroll-behavior:auto !important;}
 *,*::before,*::after {transition-duration:.01ms !important;animation-duration:.01ms !important;animation-iteration-count:1 !important;}
}

/* v1.20.1 Studio: diff file + baris terbaca, termasuk di layar sempit. */
.suvi-studio-diff{min-width:0;max-width:100%;margin-top:12px}
.suvi-diff-files{display:flex;gap:6px;flex-wrap:wrap;padding:10px 0;max-height:160px;overflow:auto}
.suvi-diff-files button{display:flex;gap:8px;align-items:center;max-width:100%;border:1px solid var(--line);border-radius:8px}
.suvi-diff-files button.selected{background:var(--accent-soft)}
.suvi-diff-files span{max-width:240px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
.suvi-diff-files small{opacity:.7}
.suvi-diff-counts{display:flex;align-items:center;gap:15px;flex-wrap:wrap;padding:9px 0}
.suvi-diff-counts strong:first-child{color:#40976d}
.suvi-diff-counts strong:nth-child(2){color:#c65c64}
.suvi-diff-lines{max-height:65vh;overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface);font:12px/1.55 var(--mono,monospace)}
.suvi-diff-line{display:grid;grid-template-columns:24px minmax(0,1fr);padding:1px 12px;white-space:pre-wrap;overflow-wrap:anywhere}
.suvi-diff-line span{user-select:none;opacity:.8}
.suvi-diff-line code{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;color:inherit}
.suvi-diff-line.add{background:rgba(30,144,87,.13)}
.suvi-diff-line.remove{background:rgba(202,75,79,.13)}
@media(max-width:760px){.suvi-diff-lines{max-height:50vh}.suvi-diff-files span{max-width:160px}}
