main {
  max-width: 48rem;
  margin: 0 auto;
  padding: 3.5rem 1rem 2.5rem;
  display: grid;
  gap: 1rem;
}

label {
  font-size: 0.875rem;
  font-weight: 550;
  color: var(--ink-soft);
}

label .muted {
  font-weight: 400;
}

.wordmark {
  font-size: 1.375rem;
  font-weight: 650;
  letter-spacing: -0.02em;
}

.field {
  width: 100%;
  border: 1px solid var(--hairline);
  border-radius: 0.75rem;
  background: var(--canvas);
  color: var(--ink);
  padding: 0.625rem 0.875rem;
  font: inherit;
  resize: vertical;
}

.mono,
code,
.text {
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
}

.field.mono {
  font-size: 0.8125rem;
}

code {
  font-size: 0.85em;
}

.composer {
  gap: 0.625rem;
}

fieldset {
  margin: 0;
  padding: 0;
  border: 0;
  display: grid;
  gap: 0.5rem;
}

legend {
  padding: 0;
  font-size: 0.875rem;
  font-weight: 550;
  color: var(--ink-soft);
}

.choices {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.chip {
  border: 1px solid var(--hairline);
  border-radius: 999px;
  padding: 0.3rem 0.875rem;
  background: none;
  color: var(--ink-soft);
  font: inherit;
  font-size: 0.875rem;
  font-weight: 550;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s;
}

.chip:hover {
  background: var(--surface);
}

fieldset:disabled .chip {
  cursor: not-allowed;
  opacity: 0.5;
}

.media {
  display: grid;
  gap: 0.5rem;
}

.drop {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 4.5rem;
  border: 1px dashed var(--hairline);
  border-radius: 0.875rem;
  background: var(--surface);
  cursor: pointer;
}

.drop[data-disabled="true"] {
  cursor: not-allowed;
}

.drop:focus-within {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.drop input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.hint {
  color: var(--ink-faint);
  font-size: 0.9rem;
  font-weight: 400;
}

.thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}

.thumbs:empty {
  display: none;
}

.thumb {
  margin: 0;
  display: grid;
  gap: 0.25rem;
}

.thumb canvas {
  display: block;
  height: 6rem;
  border-radius: 0.5rem;
  background: var(--surface);
}

.thumb figcaption {
  font-size: 0.75rem;
}

.composer .row {
  justify-content: flex-start;
}

.media .row {
  justify-content: space-between;
}

.dot {
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  margin-right: 0.5rem;
  border-radius: 50%;
  background: currentColor;
  vertical-align: 0.1em;
}

.composer[data-phase="replying"] .dot {
  animation: pulse 1.2s ease-in-out infinite;
}

@keyframes pulse {
  50% {
    opacity: 0.3;
  }
}

.metrics {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(7.75rem, 1fr));
  gap: 0.625rem;
}

.metrics > div {
  background: var(--surface);
  border-radius: 0.875rem;
  padding: 0.75rem 0.875rem;
  display: grid;
  gap: 0.125rem;
  align-content: start;
}

.metrics dt {
  font-size: 0.75rem;
  font-weight: 550;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-faint);
}

.metrics dd {
  margin: 0;
}

.metrics dd:not(.muted) {
  font-size: 1.5rem;
  font-weight: 650;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}

.metrics dd.muted {
  font-size: 0.75rem;
  line-height: 1.35;
}

.placeholder {
  margin: 0;
}

/* The conversation: the user's messages to the right, the model's replies to the left. */
.conversation {
  display: grid;
  gap: 0.875rem;
}

.conversation:empty {
  display: none;
}

.message {
  display: grid;
  gap: 0.5rem;
  max-width: 85%;
}

.message[data-role="user"] {
  justify-self: end;
  justify-items: end;
}

.message[data-role="user"] .said {
  background: var(--surface);
  border-radius: 1rem 1rem 0.25rem 1rem;
  padding: 0.625rem 0.875rem;
}

.message[data-role="user"] .said:empty {
  display: none;
}

.said {
  margin: 0;
  overflow-wrap: anywhere;
}

p.said {
  white-space: pre-wrap;
}

.message[data-role="model"] .said:not(:has(.block))::before {
  content: "…";
  color: var(--ink-faint);
}

/* A reply's Markdown. */
.said .block {
  white-space: pre-wrap;
}

.said .block + .block {
  margin-top: 0.625rem;
}

.block[data-kind="heading"] {
  font-weight: 650;
}

.block[data-kind="item"] {
  padding-left: 1.25rem;
  position: relative;
}

.block[data-kind="item"]::before {
  content: "•";
  position: absolute;
  left: 0.375rem;
  color: var(--ink-faint);
}

.block[data-kind="item"] + .block[data-kind="item"] {
  margin-top: 0.25rem;
}

.block[data-kind="code"] {
  background: var(--surface);
  border-radius: 0.625rem;
  padding: 0.625rem 0.875rem;
  overflow-x: auto;
}

.block[data-kind="rule"] {
  border-top: 1px solid var(--hairline);
}

[data-style="strong"] {
  font-weight: 650;
}

[data-style="emphasis"] {
  font-style: italic;
}

[data-style="code"],
.block[data-kind="code"] {
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
  font-size: 0.875em;
}

.reasoning summary {
  cursor: pointer;
  font-size: 0.875rem;
  font-weight: 550;
  color: var(--ink-soft);
}

.thought {
  margin: 0.375rem 0 0;
  padding-left: 0.75rem;
  border-left: 2px solid var(--hairline);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font-size: 0.875rem;
  color: var(--ink-faint);
}

/* How the next reply is written. */
.settings {
  display: grid;
  gap: 0.5rem;
}

.toggle {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.sampling summary {
  cursor: pointer;
  font-size: 0.875rem;
  font-weight: 550;
  color: var(--ink-soft);
}

.sampling {
  display: grid;
  gap: 0.5rem;
}

.sampling[open] {
  padding-bottom: 0.25rem;
}

.sampling > label,
.fields {
  margin-top: 0.5rem;
}

.fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
  gap: 0.5rem;
}

.fields[data-disabled="true"] {
  opacity: 0.5;
}

.sampling label .field {
  margin-top: 0.25rem;
}

/* Chat Qwen3.5 em português — componentes adicionais fora das áreas geridas pelo Fusor. */
:root {
  --canvas: #f6f7fa; --surface: #f2f4f7; --raised: #fff;
  --ink: #1a2331; --ink-soft: #475569; --ink-faint: #64748b;
  --hairline: #e3e8f0; --accent: #1765d9; --on-accent: #fff;
  --sidebar: #f9fafc; --shadow: 0 12px 42px rgba(22,35,58,.06);
  color-scheme: light;
}
:root[data-theme="dark"] {
  --canvas: #12151b; --surface: #242932; --raised: #1b2028;
  --ink: #f0f3f8; --ink-soft: #c3cbd8; --ink-faint: #a0aab9;
  --hairline: #343c48; --accent: #6aa8ff; --on-accent: #101925;
  --sidebar: #171b22; --shadow: 0 15px 40px rgba(0,0,0,.17); color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --canvas: #12151b; --surface: #242932; --raised: #1b2028;
    --ink: #f0f3f8; --ink-soft: #c3cbd8; --ink-faint: #a0aab9;
    --hairline: #343c48; --accent: #6aa8ff; --on-accent: #101925;
    --sidebar: #171b22; --shadow: 0 15px 40px rgba(0,0,0,.17); color-scheme: dark;
  }
}
body { min-height: 100dvh; font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; }
button, input, select, textarea { font: inherit; }
button { touch-action: manipulation; }
.app-layout { display: grid; grid-template-columns: 270px minmax(0, 1fr); min-height: 100dvh; }
.sidebar { background: var(--sidebar); border-right: 1px solid var(--hairline); padding: 22px 14px 14px; display: flex; flex-direction: column; gap: 15px; height: 100dvh; position: sticky; top: 0; min-width: 0; z-index: 20; }
.sidebar-top,.sidebar-brand,.topbar-left,.topbar-actions,.lockup,.personality-tools,.dialog-head,.dialog-actions { display:flex; align-items: center; gap: 10px; }
.sidebar-top,.dialog-head { justify-content: space-between; }
.sidebar-brand { font-size: 1.04rem; font-weight: 760; letter-spacing: -.025em; }
.sidebar-brand small { font-size: .69rem; font-weight: 600; color: var(--ink-faint); margin-left: 3px; }
.icon-button { border: 0; background: transparent; color: var(--ink-soft); min-width: 36px; min-height: 36px; border-radius: 10px; display: inline-grid; place-items: center; font-size: 1.16rem; cursor:pointer; }
.icon-button:hover,.sidebar-link:hover,.history-entry:hover { background: var(--surface); color: var(--ink); }
.mobile-close,.menu-toggle { display: none; }
.new-chat { display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; padding: 11px 13px; border: 1px solid var(--hairline); background: var(--raised); border-radius: 12px; cursor: pointer; color: var(--ink); font-weight: 650; box-shadow: 0 1px 2px rgba(0,0,0,.025); }
.new-chat:hover { border-color: var(--accent); }
.sidebar-section-title { display:flex; align-items: center; justify-content: space-between; padding: 0 5px; color: var(--ink-faint); text-transform: uppercase; letter-spacing: .06em; font-size: .72rem; font-weight: 700; }
.search-history { width: 100%; padding: 9px 11px; border: 1px solid var(--hairline); border-radius: 10px; background: var(--raised); color: var(--ink); font-size: .84rem; }
.history-list { flex: 1; min-height: 80px; overflow-y: auto; display: grid; align-content: start; gap: 3px; scrollbar-width: thin; }
.history-entry { border: 0; background: transparent; text-align: left; color: var(--ink-soft); border-radius: 10px; padding: 10px; cursor: pointer; font-size: .875rem; width: 100%; display: grid; gap: 2px; }
.history-entry strong { font-weight: 540; color: var(--ink); text-overflow:ellipsis; white-space: nowrap; overflow:hidden; }
.history-entry small { font-size: .72rem; color: var(--ink-faint); }
.history-empty { padding: 12px 9px; color: var(--ink-faint); font-size: .83rem; }
.sidebar-bottom { border-top: 1px solid var(--hairline); padding-top: 11px; display: grid; gap: 5px; }
.sidebar-link { display:flex; gap:10px; align-items:center; text-align:left; padding: 10px; border: 0; background: transparent; color: var(--ink-soft); cursor:pointer; border-radius: 10px; font-size: .87rem; }
.sidebar-link > span:first-child { font-size: 1.12rem; min-width:19px; }
.sidebar-note { padding: 8px 10px 0; color: var(--ink-faint); font-size: .72rem; line-height: 1.55; }
.app-main { max-width: 1160px; width: 100%; height: 100dvh; padding: 0 clamp(14px, 3.5vw, 45px) 12px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; min-height: 480px; }
.masthead { flex: 0 0 auto; min-height: 68px; padding: 11px 0; margin: 0; display:flex; justify-content: space-between; align-items:center; gap:12px; border-bottom: 1px solid var(--hairline); }
.lockup { gap: 8px; } .wordmark { font-size: 1rem; font-weight: 720; }
.local-tag { background: var(--surface); color: var(--ink-soft); padding: 4px 9px; border-radius: 999px; font-size: .69rem; font-weight: 620; }
.top-action { border: 1px solid var(--hairline); background:var(--raised); color: var(--ink-soft); border-radius: 10px; padding: 7px 11px; cursor:pointer; font-size:.79rem; }
.top-action:hover { color:var(--accent); }
.app-main > .loading,.app-main > .broken { flex-shrink:0; }
.card { box-shadow: none; }
.chat { flex: 1 1 auto; min-height: 190px; border:0; background:transparent; padding: clamp(12px, 2vw, 28px) 0 0; display:flex; flex-direction:column; gap:12px; overflow:hidden; }
.conversation { align-content: start; overflow-y: auto; overflow-x:hidden; min-height: 0; flex: 1; padding: 8px clamp(2px,1.5vw,18px) 22px; scroll-behavior: smooth; }
.conversation:empty { display:grid; }
.message { max-width: min(88%, 790px); gap: 7px; position: relative; }
.message[data-role="model"] { max-width: min(100%, 850px); justify-self: start; padding: 7px 0 18px; width:100%; }
.message[data-role="user"] { max-width: min(83%, 720px); justify-self:end; }
.message[data-role="user"] .said { background: var(--surface); border: 1px solid var(--hairline); border-radius: 17px 17px 5px 17px; padding: 11px 15px; font-size: .94rem; line-height: 1.7; }
.message[data-role="model"] .said:not(:has(.block))::before { content: 'Gerando resposta…'; font-size:.8rem; }
.message[data-role="model"].has-custom-render > .said { display:none; }
.message[data-role="model"]:before { content: 'Q'; display:grid; place-items:center; background: var(--surface); color: var(--accent); font-size: .72rem; font-weight: 780; width: 26px; height: 26px; border-radius: 8px; position:absolute; left: 0; top: 0; }
.message[data-role="model"] > .qwen-md-output, .message[data-role="model"] > .message-actions { margin-left: 37px; }
.qwen-md-output { font-size: .96rem; line-height: 1.74; overflow-wrap: anywhere; }
.qwen-md-output > :first-child { margin-top: 0; } .qwen-md-output > :last-child { margin-bottom:0; }
.qwen-md-output h1,.qwen-md-output h2,.qwen-md-output h3,.qwen-md-output h4 { font-weight: 720; letter-spacing:-.015em; line-height:1.35; margin: 1.15rem 0 .45rem; }
.qwen-md-output h1 { font-size:1.36rem; } .qwen-md-output h2 { font-size:1.21rem; } .qwen-md-output h3 { font-size:1.07rem; }
.qwen-md-output p { margin:.55rem 0; white-space:pre-wrap; }
.qwen-md-output ul,.qwen-md-output ol { margin:.5rem 0; padding-left:1.5rem; }
.qwen-md-output li { margin:.23rem 0; } .qwen-md-output li > p { margin:0; }
.qwen-md-output code { background:var(--surface); padding:.12rem .3rem; border-radius:5px; font-size:.86em; }
.qwen-md-output .code-wrap { border:1px solid var(--hairline); border-radius:12px; margin:.85rem 0; overflow:hidden; background:var(--surface); }
.code-header { display:flex; align-items:center; justify-content:space-between; gap:8px; color:var(--ink-faint); padding:6px 12px; font-size:.75rem; border-bottom:1px solid var(--hairline); }
.code-copy { border:0; background:transparent; color:var(--accent); cursor:pointer; font-size:.75rem; padding:3px 7px; }
.qwen-md-output pre { padding: 14px; overflow:auto; margin:0; white-space:pre; tab-size:2; max-height:550px; }
.qwen-md-output pre code { padding:0; background:transparent; font-size:.8rem; }
.qwen-md-output blockquote { border-left:3px solid var(--accent); margin:.8rem 0; padding:.15rem .95rem; background:var(--surface); border-radius:0 8px 8px 0; }
.qwen-md-output hr { border:0; border-top:1px solid var(--hairline); margin:1rem 0; }
.qwen-md-output a { color:var(--accent); }
.table-scroll { overflow-x:auto; max-width:100%; margin:.9rem 0; border:1px solid var(--hairline); border-radius:12px; }
.qwen-md-output table { width:100%; border-collapse:collapse; text-align:left; font-size:.87rem; }
.qwen-md-output th,.qwen-md-output td { padding:10px 13px; border-bottom:1px solid var(--hairline); border-right:1px solid var(--hairline); vertical-align:top; white-space:normal; }
.qwen-md-output tr:last-child td { border-bottom:0; } .qwen-md-output th:last-child,.qwen-md-output td:last-child { border-right:0; }
.qwen-md-output th { background:var(--surface); font-weight:650; }
.message-actions { display:flex; flex-wrap:wrap; gap:4px; margin-top: 7px; }
.message-action { padding:5px 9px; font-size:.76rem; border:0; border-radius:8px; color:var(--ink-faint); background:transparent; cursor:pointer; }
.message-action:hover { color:var(--accent); background:var(--surface); }
.performance { border-top:1px solid var(--hairline); padding: 6px 8px 0; color:var(--ink-faint); font-size:.76rem; }
.performance > summary { cursor:pointer; width:fit-content; list-style:none; } .performance > summary::-webkit-details-marker { display:none; }
.performance .metrics { margin-top:9px; grid-template-columns:repeat(5,minmax(0,1fr)); }
.metrics > div { border:1px solid var(--hairline); background:var(--raised); border-radius:10px; padding:8px 10px; }
.metrics dt,.metrics dd.muted { font-size:.65rem; } .metrics dd:not(.muted) { font-size:1.12rem; }
.composer { flex-shrink:0; width:min(100%,900px); align-self:center; box-shadow:var(--shadow); border-radius:17px; padding:10px 14px; gap:7px; }
.composer .field#message { border:0; background:transparent; padding:8px 4px 2px; min-height: 52px; max-height:180px; resize:none; font-size:.96rem; line-height:1.6; }
.composer .field#message:focus { outline:none; box-shadow:none; }
.composer .field#message::placeholder { color:var(--ink-faint); opacity:1; }
.composer summary { color:var(--ink-soft); font-size:.75rem; font-weight:550; cursor:pointer; }
.examples-panel,.attachments,.advanced-settings { padding: 0 4px; }
.examples-panel > summary,.attachments > summary,.advanced-settings > summary { display:list-item; list-style-position:inside; }
.examples-panel fieldset,.attachments .media,.advanced-settings .settings { padding:8px 0; }
.attachments .drop { min-height:62px; } .media .hint { text-align:center; padding:0 12px; }
.advanced-settings .fields { grid-template-columns: repeat(2,1fr); }
.composer .send-row { display:flex; align-items:center; justify-content:space-between; gap:9px; border-top:1px solid var(--hairline); padding-top:8px; }
.send-actions { display:flex; align-items:center; gap:7px; }
.send-button { border-radius:10px; padding:8px 15px; min-height:39px; white-space:nowrap; }
.composer .send-row .control { font-size:.79rem; }
.composer .send-row #reset { background:transparent; border-color:transparent; color:var(--ink-faint); }
.stop-button { border:1px solid var(--hairline); }
.composer .send-row .dot { width:7px;height:7px;margin-right:5px; }
.composer > #status { font-size:.72rem; padding:0 4px; min-height: 1em; }
.app-main > footer { font-size:.68rem; padding:0 5px; margin:0; gap:6px 18px; }
.app-main > footer .muted,.app-main > footer a { color:var(--ink-faint); }
.sr-only { position:absolute; width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.app-dialog { background:var(--raised); color:var(--ink); border:1px solid var(--hairline); border-radius:18px; width:min(660px,calc(100% - 24px)); max-height: min(90dvh, 900px); padding:0; box-shadow:0 35px 95px rgba(0,0,0,.25); }
.app-dialog::backdrop { background:rgba(7,14,26,.6); backdrop-filter:blur(3px); }
.dialog-head { padding:21px 24px 15px; gap:20px; align-items:flex-start; border-bottom:1px solid var(--hairline); }
.dialog-head h2 { margin:0;font-size:1.19rem;line-height:1.3; } .dialog-head p { color:var(--ink-faint);font-size:.81rem;margin:4px 0 0; }
.prefs-body { overflow-y:auto; max-height:calc(90dvh - 120px); padding:15px 24px 24px; display:grid; gap:18px; }
.pref-group { padding:0 0 18px; border-bottom:1px solid var(--hairline); }
.pref-group legend { font-size:1rem; font-weight:700; padding:0 0 10px; color:var(--ink); }
.pref-group > label:not(.toggle) { display:block; margin:12px 0 5px; }
.pref-group textarea { resize:vertical; min-height:66px; } .pref-group .field { background:var(--canvas); border-color:var(--hairline); }
.field-help { font-size:.77rem;color:var(--ink-faint);margin:8px 0 0; }
.personality-tools { flex-wrap:wrap; } .personality-tools select { flex:1;min-width:140px; } .personality-tools .control { white-space:nowrap; }
.danger-text { color:#c33e4e; } .dialog-actions { justify-content:flex-end; flex-wrap:wrap; padding-top:8px; } .dialog-actions > #settings-feedback { margin-right:auto; }
.history-content { max-height:55dvh; overflow:auto; display:grid;gap:16px; padding:18px 24px; }
.saved-message { padding:12px 15px; border:1px solid var(--hairline); border-radius:12px; }
.saved-message[data-role="user"] { background:var(--surface); margin-left:min(14%,70px); }
.saved-message[data-role="model"] { margin-right:min(9%,40px); }
.saved-message > strong { display:block; font-size:.75rem; color:var(--ink-faint); margin-bottom:8px; }
.saved-message > .saved-content { white-space:pre-wrap; overflow-wrap:anywhere; font-size:.88rem; line-height:1.65; }
.history-content + .dialog-actions { padding: 15px 24px 22px; border-top:1px solid var(--hairline); }
.app-toast { position:fixed; bottom:20px; left:50%; transform:translateX(-50%); background:var(--ink); color:var(--raised); padding:11px 18px; border-radius:11px; box-shadow:var(--shadow); z-index:100; font-size:.84rem; text-align:center; max-width:90vw; }
@media (max-width: 1050px) { .app-layout { grid-template-columns: 236px minmax(0,1fr); } .performance .metrics { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width: 760px) {
  .app-layout { display:block; } .sidebar { position:fixed; inset:0 auto 0 0; width:min(310px,85vw); height:100dvh; transform:translateX(-105%); transition:transform .2s ease; box-shadow:var(--shadow); }
  .sidebar.is-open { transform:translateX(0); } .sidebar-scrim:not([hidden]) { display:block; position:fixed;inset:0;z-index:15;background:rgba(0,0,0,.46); }
  .menu-toggle,.mobile-close { display:inline-grid; } .app-main { height:100dvh; min-height:400px; padding:0 10px 8px; gap:8px; }
  .masthead { min-height:55px; padding:7px 3px; } .local-tag,.top-action span,.tip { display:none; } .top-action { min-height:36px; padding:7px 11px; }
  .chat { padding:8px 0 0; min-height:140px; } .conversation { padding:5px 3px 14px; } .message[data-role="model"] { max-width:100%; }
  .message[data-role="user"] { max-width:94%; } .message[data-role="model"] > .qwen-md-output,.message[data-role="model"] > .message-actions { margin-left: 34px; }
  .performance .metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .composer { border-radius:13px; padding:9px 10px; } .composer .send-row { justify-content:flex-end; }
  .composer .send-row #reset { font-size:.69rem; padding:6px 4px; }
  .app-main > footer { font-size:.59rem; max-height:32px; overflow:hidden; }
  .dialog-head { padding:16px; } .prefs-body { padding:14px 16px 20px; } .history-content { padding:14px; } .history-content + .dialog-actions { padding:12px; }
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; transition-duration:.01ms !important; } }

/* Identidade personalizável e campo de escrita destacado */
.brand-avatar,.avatar-preview { width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center; flex-shrink:0; background:var(--accent);color:var(--on-accent);border-radius:12px;font-size:1.13rem;font-weight:720;overflow:hidden;line-height:1; }
.brand-avatar img,.avatar-preview img {display:block;width:100%;height:100%;object-fit:cover;}
.sidebar-brand {min-width:0;} .sidebar-brand-text { min-width:0;display:flex;flex-direction:column;gap:2px;}
.sidebar-brand .assistant-name {font-size:.94rem;line-height:1.25;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.sidebar-brand small {margin:0;line-height:1;}
.wordmark {display:inline-block;max-width:40vw;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.parallel-status {font-size:.69rem;color:var(--ink-faint);padding:7px 10px;border-top:1px solid var(--hairline);line-height:1.45;}
.parallel-status[data-ready="yes"] {color:var(--ink-soft);}
.legacy-examples,.legacy-examples[hidden] {display:none!important;}
.conversation .placeholder {align-self:center;justify-self:center;max-width:490px;text-align:center;color:var(--ink-soft);font-size:clamp(1.05rem,2vw,1.3rem);font-weight:600;line-height:1.55;margin:auto;}
.conversation .placeholder::before {content:var(--assistant-avatar-glyph,"✦");display:grid;place-items:center;margin:0 auto 16px;width:60px;height:60px;background-color:var(--accent);background-image:var(--assistant-avatar-image,none);background-size:cover;background-position:center;color:var(--on-accent);border-radius:18px;font-size:1.55rem;font-weight:700;}
.conversation .message[data-role="model"]::before {content:var(--assistant-avatar-glyph,"✦");background-color:var(--accent);background-image:var(--assistant-avatar-image,none);background-size:cover;background-position:center;color:var(--on-accent);font-size:.78rem;}
html[data-chat-background="dots"] .conversation {background-image:radial-gradient(color-mix(in srgb,var(--ink-faint) 14%,transparent) .7px,transparent .9px);background-size:24px 24px;border-radius:15px;}
html[data-chat-style="outlined"] .message[data-role="user"] .said {background:transparent;border:1.5px solid var(--accent);}
html[data-chat-style="minimal"] .message[data-role="user"] .said {background:transparent;border-color:transparent;border-bottom:2px solid var(--accent);border-radius:0;padding-bottom:8px;}
html[data-show-user-avatar="true"] .message[data-role="user"] {padding-right:38px;}
html[data-show-user-avatar="true"] .message[data-role="user"]::before {content:"Você";position:absolute;right:0;top:0;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--accent);font-size:.59rem;font-weight:750;border:1px solid var(--hairline);}
.message[data-role="user"] .said,.qwen-md-output {font-size:var(--chat-font-size,16px);}
.composer {background:var(--raised);border:2px solid color-mix(in srgb,var(--accent) 52%,var(--hairline));box-shadow:0 12px 38px rgba(0,0,0,.08),0 0 0 5px color-mix(in srgb,var(--accent) 6%,transparent);padding:14px 16px 12px;gap:9px;transition:border-color .18s,box-shadow .18s;}
.composer:focus-within {border-color:var(--accent);box-shadow:0 9px 40px rgba(0,0,0,.09),0 0 0 5px color-mix(in srgb,var(--accent) 16%,transparent);}
.composer-heading {display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.composer-heading .composer-title {display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-size:.88rem;font-weight:760;cursor:text;}
.composer-pencil {display:inline-grid;place-items:center;width:26px;height:26px;background:color-mix(in srgb,var(--accent) 12%,var(--raised));color:var(--accent);border-radius:8px;font-size:1.1rem;}
.composer-subtitle {font-size:.72rem;color:var(--ink-faint);}
.composer .field#message {background:var(--canvas);border:1px solid var(--hairline);border-radius:12px;padding:13px 14px;min-height:76px;max-height:190px;box-shadow:inset 0 1px 3px rgba(0,0,0,.025);}
.composer .field#message:focus {outline:2px solid color-mix(in srgb,var(--accent) 28%,transparent);outline-offset:1px;border-color:var(--accent);background:var(--raised);}
.composer .field#message::placeholder {color:var(--ink-soft);opacity:.8;}
.composer .send-button {background:var(--accent);color:var(--on-accent);font-weight:750;min-height:43px;border-radius:11px;}
.composer .send-button:hover {filter:brightness(.94);}
.composer .send-button:focus-visible {outline:3px solid var(--accent);outline-offset:3px;}
.composer .send-row {border-top:0;padding-top:2px;}
.identity-preview {display:flex;align-items:center;gap:12px;padding:14px;border-radius:14px;border:1px solid var(--hairline);background:var(--surface);margin-top:8px;}
.identity-preview .avatar-preview {width:53px;height:53px;border-radius:16px;font-size:1.55rem;}
.identity-preview strong {display:block;font-size:1rem;color:var(--ink);}
.identity-preview small {display:block;font-size:.79rem;color:var(--ink-faint);margin-top:3px;}
.appearance-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;row-gap:12px;margin-top:8px;}
.appearance-grid > label {display:grid;gap:5px;align-content:start;margin:0!important;}
.appearance-grid .field {min-width:0;}
.appearance-group > label:not(.toggle) {margin-top:10px;}
.color-entry {display:flex;align-items:center;gap:10px;background:var(--canvas);border:1px solid var(--hairline);border-radius:10px;padding:5px 10px;min-height:42px;}
.color-entry > input[type="color"] {width:42px;height:30px;border:0;background:transparent;padding:0;cursor:pointer;}
.color-entry > span {font-size:.83rem;font-variant-numeric:tabular-nums;color:var(--ink-soft);}
.avatar-choices {display:flex;gap:9px;flex-wrap:wrap;align-items:center;}
.avatar-choices .field {flex:1;min-width:180px;}
.avatar-upload {cursor:pointer;display:inline-flex;align-items:center;justify-content:center;}
.text-size-range {width:100%;accent-color:var(--accent);min-height:36px;}
@media (max-width:760px) {
  .composer {padding:11px 11px 10px;border-width:2px;}
  .composer .field#message {min-height:72px;padding:11px 12px;}
  .composer-heading .composer-title {font-size:.86rem;}
  .composer-subtitle {font-size:.66rem;}
  .appearance-grid {grid-template-columns:1fr;}
  .masthead .wordmark {max-width:48vw;}
}

/* Barra de mídia compacta, anexos e área de arrastar arquivos. */
.attachment-tray { display:none; border:1px solid var(--hairline); border-radius:13px; padding:11px; background:var(--surface); }
.attachment-tray[data-has-media="true"] { display:block; }
.media-tray-head { display:flex; gap:6px 12px; justify-content:space-between; align-items:center; flex-wrap:wrap; margin-bottom:8px; font-size:.78rem; }
.media-tray-head strong { color:var(--ink); }
.media-tray-head > span { font-size:.72rem; color:var(--ink-faint); }
.media-count { color:var(--accent); font-weight:650; }
.media-tools { display:flex; gap:8px; justify-content:space-between; align-items:center; flex-wrap:wrap; }
.media-tools .drop { display:inline-flex; justify-content:center; min-height:32px; padding:5px 11px; border:1px dashed var(--hairline); border-radius:9px; background:var(--raised); }
.media-tools .drop .hint { color:var(--accent); font-size:.77rem; padding:0; }
.media-tools #clear { font-size:.76rem; padding:6px 9px; }
.composer .attachment-tray .thumbs { padding:5px 0 9px; gap:9px; }
.attachment-tray .thumb { position:relative; border:1px solid var(--hairline); padding:5px; border-radius:9px; min-width:72px; background:var(--raised); max-width:135px; }
.attachment-tray .thumb canvas { max-width:120px; height:70px; object-fit:contain; }
.attachment-tray .thumb figcaption { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:120px; }
.composer-tools { display:flex; align-items:center; gap:10px; min-width:0; flex:1; }
.composer .media-trigger { color:var(--ink); border:1px solid var(--hairline); border-radius:10px; display:inline-flex; align-items:center; gap:7px; padding:7px 11px; background:var(--surface); min-height:38px; flex-shrink:0; font-weight:650; }
.media-trigger:hover,.media-trigger.has-media { color:var(--accent); border-color:var(--accent); }
.media-trigger > span:first-child { font-size:1.1rem; line-height:1; }
.media-hint { font-size:.72rem; line-height:1.3; }
.advanced-settings,.advanced-settings[hidden] { display:none!important; }
html:not([data-show-performance="yes"]) .performance { display:none!important; }
.media-drop-overlay { pointer-events:none; position:fixed; inset:12px; z-index:1000; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:12px; background:color-mix(in srgb,var(--accent) 13%,var(--raised)); border:3px dashed var(--accent); border-radius:17px; opacity:0; visibility:hidden; transition:opacity .14s,visibility .14s; text-align:center; padding:20px; }
.media-drop-overlay.is-visible { opacity:1; visibility:visible; }
.media-drop-overlay strong { font-size:clamp(1rem,2vw,1.4rem); }
.media-drop-overlay small { color:var(--ink-soft); }
.media-drop-symbol { font-size:3rem; color:var(--accent); }
/* Animação discreta do cursor, sem rolagem ou brilho excessivos. */
.qwen-md-output.is-writing::after { content:'▋'; display:inline-block; color:var(--accent); font-size:.8em; margin-left:2px; animation:writing-caret 1.05s steps(2,start) infinite; }
@keyframes writing-caret { 50% { opacity:0.15; } }
/* Duas abas para código executável gerado pela IA. */
.live-preview { margin:14px 0 11px 37px; background:var(--raised); border:1px solid var(--hairline); border-radius:14px; overflow:hidden; min-width:0; }
.preview-head { padding:10px 13px; display:flex; align-items:center; gap:8px; border-bottom:1px solid var(--hairline); }
.preview-head strong { font-size:.81rem; font-weight:680; color:var(--ink); }
.preview-mark { color:var(--accent); font-size:1.2rem; }
.preview-phase { margin-left:auto; font-size:.72rem; color:var(--ink-faint); }
.preview-tabs { display:flex; align-items:center; gap:4px; padding:7px 10px 0; }
.preview-tab { border:0; border-bottom:2px solid transparent; border-radius:7px 7px 0 0; background:transparent; color:var(--ink-soft); padding:7px 13px; font-size:.79rem; font-weight:620; cursor:pointer; }
.preview-tab[aria-selected="true"] { border-bottom-color:var(--accent); color:var(--accent); background:var(--surface); }
.preview-body { padding:0 10px; }
.preview-source { margin:8px 0 0; max-height:360px; overflow:auto; background:var(--surface); padding:12px; white-space:pre; border-radius:9px; color:var(--ink); font-size:.79rem; }
.preview-source[hidden],.preview-frame[hidden] { display:none; }
.preview-frame { display:block; background:white; width:100%; height:clamp(230px,35vh,420px); border:1px solid var(--hairline); border-radius:10px; margin:9px 0 0; }
.preview-disclaimer { font-size:.7rem; color:var(--ink-faint); padding:4px 11px 10px; margin:0; line-height:1.45; }
@media (max-width:760px) {
 .media-hint { display:none; }
 .composer .send-row { justify-content:space-between; }
 .composer-tools { flex:0 1 auto; }
 .live-preview { margin-left:34px; }
 .preview-frame { height:285px; }
 .preview-head { padding:8px; }
}
@media (prefers-reduced-motion:reduce) { .qwen-md-output.is-writing::after { animation:none; opacity:.85; } }

/* Contenção horizontal: os rótulos dinâmicos do motor não devem alargar a tela. */
.app-main,.composer,.composer .send-row,.send-actions { min-width:0; }
.composer { max-width:100%; box-sizing:border-box; }
.composer .send-row { flex-wrap:wrap; }
.send-actions { flex:0 1 auto; }
.send-button { overflow:hidden; text-overflow:ellipsis; max-width:190px; }
@media(max-width:760px) {
 .composer .send-row { display:flex; flex-wrap:nowrap; gap:5px; }
 .composer .send-row #reset { display:none; }
 .composer .send-button { padding:8px 9px; max-width:110px; white-space:nowrap; font-size:.77rem; }
 .composer .stop-button { padding:7px 8px; font-size:.75rem; }
 .composer .send-row .media-trigger { padding:7px 10px; min-width:0; }
 .composer .send-row .send-actions { gap:4px; }
 .composer .composer-heading .composer-subtitle { display:none; }
}


/* Uma única coluna de leitura e escrita em qualquer proporção de tela. */
.app-main { --conversa-largura: 840px; }
.app-main > .chat,
.app-main > .composer,
.app-main > .memory-suggestion {
  width: min(100%, var(--conversa-largura));
  max-width: var(--conversa-largura);
  align-self: center;
  box-sizing: border-box;
}
.app-main > .chat { padding: 10px 0 0; }
.app-main > .chat .conversation { width:100%; box-sizing:border-box; padding-inline: 6px; }
.app-main > .chat .message[data-role="model"] { width:100%; max-width:100%; }
.app-main > .chat .message[data-role="user"] { max-width: min(82%,680px); }
.app-main > .composer { margin-inline: auto; }
@media(max-width:760px) {
  .app-main > .chat,.app-main > .composer,.app-main > .memory-suggestion {width:100%;}
  .app-main > .chat .message[data-role="user"] {max-width:94%;}
  .app-main > .chat .conversation {padding-inline:3px;}
}

/* A memória pode ser consultada sem abrir a personalização geral. */
.memory-nav-link .memory-total {margin-left:auto;font-size:.7rem;padding:2px 7px;border-radius:999px;background:var(--surface);font-weight:700;color:var(--accent);}
.memory-suggestion[hidden],.memory-section[hidden] {display:none !important;}
.memory-suggestion {display:flex;gap:11px;align-items:center;background:var(--raised);border:1px solid color-mix(in srgb,var(--accent) 32%,var(--hairline));border-radius:13px;padding:11px 13px;box-shadow:0 5px 18px rgba(0,0,0,.035);}
.memory-suggestion-icon {display:grid;place-items:center;width:30px;height:30px;flex-shrink:0;border-radius:10px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);font-size:1.2rem;}
.memory-suggestion-content {min-width:0;flex:1;}
.memory-suggestion-content strong {display:block;font-size:.81rem;color:var(--ink);}
.memory-suggestion-content p {margin:3px 0 0;font-size:.79rem;color:var(--ink-soft);line-height:1.4;max-height:3.6em;overflow:auto;overflow-wrap:anywhere;}
.memory-suggestion-actions {display:flex;gap:6px;flex-shrink:0;}
.memory-suggestion-actions .control {padding:7px 10px;font-size:.77rem;}
.memory-approve {background:var(--accent);color:var(--on-accent);border-color:var(--accent);}
.memory-dialog {width:min(770px,calc(100% - 24px));}
.memory-body {display:grid;gap:20px;max-height:calc(90dvh - 95px);overflow:auto;padding:20px 24px 24px;}
.memory-summary {display:flex;align-items:center;gap:13px;background:var(--surface);border-radius:13px;padding:14px;}
.memory-summary-icon {width:38px;height:38px;flex-shrink:0;display:grid;place-items:center;font-size:1.55rem;border-radius:11px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);}
.memory-summary strong {font-size:.93rem;}
.memory-summary p,.memory-section-head small,.memory-privacy {margin:5px 0 0;color:var(--ink-soft);font-size:.77rem;line-height:1.5;}
.memory-section {display:grid;gap:10px;min-width:0;}
.memory-section-head {display:grid;gap:2px;}
.memory-section h3,.memory-editor h3 {font-size:.94rem;margin:0;font-weight:710;color:var(--ink);}
.memory-items {display:grid;gap:9px;}
.memory-item {padding:13px;border:1px solid var(--hairline);background:var(--raised);border-radius:12px;display:grid;gap:10px;}
.memory-item.is-disabled {opacity:.66;}
.memory-item-heading {display:flex;justify-content:space-between;align-items:baseline;gap:7px;flex-wrap:wrap;}
.memory-item-info {min-width:0;}
.memory-item-info strong {font-size:.87rem;color:var(--ink);}
.memory-item-info small {font-size:.71rem;color:var(--ink-faint);}
.memory-item-info p {font-size:.83rem;line-height:1.58;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink-soft);margin:5px 0 0;}
.memory-item-actions {display:flex;gap:5px;flex-wrap:wrap;}
.memory-item-actions .control {padding:6px 10px;font-size:.74rem;}
.memory-empty {margin:0;padding:14px;border:1px dashed var(--hairline);border-radius:11px;color:var(--ink-soft);font-size:.82rem;}
.memory-pending-item {background:color-mix(in srgb,var(--accent) 5%,var(--raised));}
.memory-editor {display:grid;gap:10px;background:var(--surface);border-radius:13px;padding:16px;}
.memory-editor-grid {display:grid;grid-template-columns:minmax(145px,.65fr) minmax(0,1.4fr);gap:12px;}
.memory-editor label {display:grid;gap:6px;color:var(--ink);font-size:.81rem;font-weight:600;min-width:0;}
.memory-editor .field {width:100%;max-width:100%;box-sizing:border-box;}
.memory-editor-actions,.memory-import-export {display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap;}
.memory-editor-actions .control {min-height:37px;}
.memory-import-export {justify-content:flex-start;}
.memory-import-label {cursor:pointer;display:inline-flex;align-items:center;justify-content:center;}
.memory-import-label input {display:none;}
.memory-privacy {margin:0;}
.memory-manage {justify-self:start;}
@media(max-width:760px) {
  .memory-suggestion {padding:10px;gap:7px;flex-wrap:wrap;}
  .memory-suggestion-content {flex-basis:calc(100% - 44px);}
  .memory-suggestion-actions {margin-left:40px;}
  .memory-body {padding:14px;gap:16px;}
  .memory-editor {padding:13px;}
  .memory-editor-grid {grid-template-columns:minmax(0,1fr);}
  .memory-item-actions .control {padding:7px 8px;}
}


/* Versão 6: fluxo único de leitura e escrita, sem rolagem interna no chat. */
html { scroll-behavior: auto; }
body { overflow-x: hidden; }
.app-main { height:auto!important; min-height:100dvh; overflow:visible; justify-content:flex-start; padding-bottom:28px; }
.app-main > .chat { flex:0 0 auto; overflow:visible; min-height:min(48vh,490px); height:auto; }
.app-main > .chat:has(.message), .app-main > .chat:has(.history-message) { min-height: 0; }
.app-main .conversation { flex:none; display:grid; overflow:visible!important; min-height:0; scroll-behavior:auto; padding-block:26px 24px; }
.app-main .composer { flex:0 0 auto; position:relative; margin-top:8px; margin-bottom:6px; }
.app-main > footer { max-height:none; overflow:visible; padding-bottom:12px; }
.app-main .conversation .placeholder { max-width:580px; min-height:auto; margin:clamp(28px, 7vh, 80px) auto; padding:20px 26px 22px; overflow:visible; box-sizing:border-box; border-radius:0; line-height:1.65; }
.app-main .conversation .placeholder::before { margin-top:2px; flex-shrink:0; }
.chat:has(.history-message) .conversation .placeholder { display:none!important; }
.history-thread[hidden] { display:none!important; }
.history-thread { width:100%; display:grid; align-content:start; gap:17px; padding:14px 6px 2px; }
.history-thread-head { display:flex; justify-content:space-between; flex-wrap:wrap; align-items:center; gap:8px; border-bottom:1px solid var(--hairline); padding:0 0 12px; }
.history-thread-head strong { font-size:.97rem; font-weight:690; min-width:0; overflow-wrap:anywhere; }
.history-thread-actions { display:flex; gap:5px; flex-wrap:wrap; }
.history-thread-head .control { font-size:.75rem; padding:6px 10px; }
.history-message { display:grid; position:relative; min-width:0; max-width:100%; overflow-wrap:anywhere; }
.history-message[data-role="user"] { justify-self:end; width:fit-content; max-width:min(83%,700px); border:1px solid var(--hairline); border-radius:17px 17px 5px 17px; padding:12px 15px; background:var(--surface); }
.history-message[data-role="model"] { justify-self:stretch; padding:7px 0 10px 37px; }
.history-message[data-role="model"]::before { content:var(--assistant-avatar-glyph,"✦"); width:26px; height:26px; border-radius:8px; display:grid; place-items:center; background:var(--accent); color:var(--on-accent); position:absolute; top:5px; left:0; }
.history-message .history-role { font-size:.73rem; color:var(--ink-faint); font-weight:700; margin-bottom:4px; }
.history-message .history-text { line-height:1.72; white-space:pre-wrap; }
.history-message .qwen-md-output { line-height:1.74; white-space:normal; }
.history-thread-note { color:var(--ink-faint); font-size:.78rem; line-height:1.5; }
.history-entry[aria-current="page"] { background:color-mix(in srgb,var(--accent) 10%,var(--surface)); box-shadow:inset 2px 0 var(--accent); }
/* Texto nativo fica invisível: evita um quadro de Markdown cru antes da formatação customizada. */
.message[data-role="model"] > .said { height:0!important; min-height:0!important; overflow:hidden!important; font-size:0!important; line-height:0!important; margin:0!important; padding:0!important; opacity:0!important; }
.message[data-role="model"] > .said::before { display:none!important; }
.message[data-role="model"]:not(.has-custom-render) .qwen-md-output:empty::before {content:'Preparando resposta…';font-size:.81rem;color:var(--ink-faint);}
.prefs-tabs { display:flex; overflow-x:auto; gap:5px; padding:12px 20px; border-bottom:1px solid var(--hairline); scrollbar-width:thin; }
.prefs-tab { border:1px solid transparent; border-radius:9px; background:transparent; color:var(--ink-soft); cursor:pointer; padding:9px 12px; flex-shrink:0; white-space:nowrap; font:inherit; font-size:.84rem; }
.prefs-tab[aria-selected="true"] { background:color-mix(in srgb,var(--accent) 13%,var(--raised)); color:var(--accent); font-weight:700; border-color:color-mix(in srgb,var(--accent) 25%,var(--hairline)); }
.prefs-tab:focus-visible {outline:2px solid var(--accent);outline-offset:1px;}
.prefs-body [data-settings-panel][hidden] { display:none!important; }
.prefs-body > .pref-group { border-bottom:1px solid var(--hairline); }
.backup-actions {display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0;}
.backup-actions .control {min-height:41px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}
.backup-group .field-help {line-height:1.65;}
@media(max-width:760px){
  .app-main { height:auto!important; min-height:100dvh; padding:0 10px 20px; }
  .app-main > .chat { min-height:min(40vh,380px); }
  .app-main .conversation .placeholder {margin:25px auto;padding:20px 10px;}
  .history-message[data-role="user"] {max-width:95%;}
  .history-thread-head strong {max-width:100%;}
  .prefs-tabs {padding:10px 12px;}
}

/* V7: um único scroll no modal e datas nos balões. */
#settings-modal {display:none; overflow-y:auto; overscroll-behavior:contain;}
#settings-modal[open] {display:block;}
#settings-modal .prefs-body {overflow:visible!important;max-height:none!important;}
#settings-modal .dialog-head {position:sticky;top:0;z-index:5;background:var(--raised);}
.chat-timestamp {display:block; font-size:.68rem; font-weight:450; line-height:1.4; margin-top:6px; color:var(--ink-faint);}
.history-message[data-role="user"] > .chat-timestamp {text-align:right;}
.history-message[data-role="model"] > .chat-timestamp {text-align:left;}
.conversation .message > .chat-timestamp {font-size:.67rem;margin-top:4px;color:var(--ink-faint);}
.history-entry .chat-timestamp {font-size:.67rem;}
.saved-media {display:flex;flex-wrap:wrap;gap:9px;margin-top:9px;max-width:100%;}
.saved-media-item {margin:0;min-width:105px;max-width:260px; flex:0 1 180px;display:grid;gap:4px;overflow:hidden;}
.saved-media-item > img,.saved-media-item > video {width:100%;max-height:220px;object-fit:contain;border:1px solid var(--hairline);border-radius:10px;background:var(--canvas);}
.saved-media-item figcaption {white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:.69rem;color:var(--ink-faint);}
.saved-message-metrics {font-size:.74rem;color:var(--ink-faint);margin-top:9px;}
.saved-message-metrics summary {cursor:pointer;}
.saved-message-metrics p {margin:.35rem 0 0;}


/* Versão 8 — carimbo de horário, estados verificáveis, miniaturas SVG. */
.conversation .message[data-role="model"] > .chat-timestamp {
  grid-column: 1 / -1;
  justify-self: start;
  margin-left: 37px;
  margin-top: 2px;
  max-width: calc(100% - 37px);
}
.conversation .message[data-role="user"] > .chat-timestamp {
  grid-column: 1 / -1;
  justify-self: end;
  text-align: right;
  margin-top: 2px;
}
.generation-indicator[hidden] { display:none!important; }
.generation-indicator {
  display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px;
  align-self:center; width:min(100%,900px); padding:10px 15px;
  margin-block:7px 6px; background:var(--raised);
  border:1px solid var(--hairline); border-radius:12px;
  color:var(--ink-soft); font-size:.8rem; line-height:1.4;
}
.generation-indicator strong { font-weight:670; color:var(--ink); }
.generation-indicator .generation-elapsed,
.generation-indicator .generation-tokens, .generation-indicator .generation-rate, .generation-indicator .generation-first {font-variant-numeric:tabular-nums;color:var(--ink-faint);}
.generation-light {width:9px;height:9px;background:var(--accent);border-radius:50%;flex:0 0 auto;}
.generation-indicator[data-phase="preparing"] .generation-light,
.generation-indicator[data-phase="reading"] .generation-light,
.generation-indicator[data-phase="thinking"] .generation-light,
.generation-indicator[data-phase="replying"] .generation-light,
.generation-indicator[data-phase="displaying"] .generation-light {animation:qwen-status-breathe 1.6s ease-in-out infinite;}
.generation-indicator[data-phase="error"] .generation-light {background:#d33e4b;}
.generation-indicator[data-phase="finished"] .generation-light {background:#2a9b70;}
@keyframes qwen-status-breathe {50%{opacity:.32;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}
.svg-thumbs:empty {display:none;}
.svg-thumbs {display:flex;flex-wrap:wrap;gap:9px;margin-bottom:8px;}
.svg-preview-item {margin:0;display:grid;gap:3px;width:112px;max-width:100%;padding:6px;
  background:var(--raised);border:1px solid var(--hairline);border-radius:10px;}
.svg-preview-item img {display:block;width:100%;height:77px;object-fit:contain;border-radius:7px;background:var(--surface);}
.svg-preview-item figcaption {font-size:.7rem;color:var(--ink-faint);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;}
@media(prefers-reduced-motion:reduce){.generation-light{animation:none!important;}}

.svg-thumbs[hidden] {display:none!important;}

/* V9: anexos individuais, código com prévia integrada e largura segura. */
.action-confirmed { background:color-mix(in srgb,#16865a 15%,var(--raised))!important; color:#16865a!important; border-color:color-mix(in srgb,#16865a 38%,var(--hairline))!important; }
.attachment-tray .thumb,.svg-preview-item {position:relative;}
.remove-one-media { position:absolute;right:4px;top:4px;z-index:3;width:27px;height:27px;border-radius:50%;border:1px solid var(--hairline);background:var(--raised);color:var(--ink);display:grid;place-items:center;cursor:pointer;font-size:1.15rem;line-height:1;box-shadow:0 2px 7px rgba(0,0,0,.14);}
.remove-one-media:hover,.remove-one-media:focus-visible {background:#b62c3e;color:#fff;border-color:#b62c3e;}
.app-layout,.app-main,.chat,.conversation,.message,.history-thread,.history-message,.qwen-md-output {min-width:0;max-width:100%;}
.app-main > .chat .message[data-role="model"],.history-message[data-role="model"] {min-width:0;}
.message[data-role="model"] > .qwen-md-output {width:calc(100% - 37px);max-width:calc(100% - 37px);box-sizing:border-box;}
.qwen-md-output .code-wrap {min-width:0;max-width:100%;width:100%;box-sizing:border-box;overflow:hidden;overflow-anchor:none;}
.qwen-md-output .code-header {min-width:0;display:flex;flex-wrap:wrap;gap:7px;padding:7px 10px;}
.qwen-md-output .code-header > span {min-width:0;overflow-wrap:anywhere;}
.qwen-md-output .code-wrap pre {display:block;min-width:0;max-width:100%;width:100%;box-sizing:border-box;overflow-x:auto;overscroll-behavior-x:contain;white-space:pre;}
.qwen-md-output .code-wrap pre[hidden] {display:none!important;}
.qwen-md-output .code-wrap pre code {white-space:pre;overflow-wrap:normal;word-break:normal;}
.code-preview-tabs {display:flex;gap:3px;align-items:center;order:3;flex-basis:100%;min-width:0;}
.code-preview-tab {background:transparent;color:var(--ink-soft);border:0;border-bottom:2px solid transparent;padding:7px 13px;font:inherit;font-size:.77rem;cursor:pointer;}
.code-preview-tab[aria-selected="true"] {color:var(--accent);border-bottom-color:var(--accent);font-weight:700;}
.code-preview-pane {min-width:0;max-width:100%;padding:9px;overflow:hidden;overflow-anchor:none;}
.code-preview-pane[hidden]{display:none!important;}
.code-preview-frame {display:block;width:100%;height:clamp(250px,40vh,440px);box-sizing:border-box;border:1px solid var(--hairline);border-radius:9px;background:#fff;overflow-anchor:none;}
.history-message .qwen-md-output {max-width:100%;min-width:0;}
@media (max-width:760px) {
  .app-main {padding-top:calc(59px + env(safe-area-inset-top,0px))!important;}
  .app-main > .masthead {position:fixed;top:0;left:0;right:0;z-index:12;min-height:55px;box-sizing:border-box;
    padding:calc(7px + env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) 7px max(12px,env(safe-area-inset-left,0px));
    background:var(--raised);box-shadow:0 1px 10px rgba(0,0,0,.06);border-bottom:1px solid var(--hairline);}
  .message[data-role="model"] > .qwen-md-output {width:calc(100% - 34px);max-width:calc(100% - 34px);}
  .code-preview-frame {height:300px;}
  .qwen-md-output .code-header {gap:5px;}
}

/* V10 — controles claros, edição e motor sob demanda. */
.edit-question-banner[hidden]{display:none!important;}
.edit-question-banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;border:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--raised));padding:9px 12px;border-radius:11px;margin-bottom:10px;font-size:.82rem;}
.edit-question-banner span{color:var(--ink-soft);flex:1;min-width:120px;}
.edit-question-banner button{font-size:.77rem;}
.question-tools{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;}
.question-tools .control{font-size:.74rem;padding:6px 10px;min-height:31px;}
.quick-memory{white-space:nowrap;}
.engine-power-box{display:grid;gap:7px;padding:9px 5px;font-size:.75rem;color:var(--ink-soft);border-top:1px solid var(--hairline);}
.engine-sleep-button{font-size:.72rem;padding:7px;min-height:32px;}
@media(max-width:480px){.quick-memory{padding:7px 9px;}.composer-tools{flex-wrap:wrap;}}

.resume-follow[hidden]{display:none!important;}
.resume-follow{position:fixed;right:max(17px,env(safe-area-inset-right,0px));bottom:max(22px,env(safe-area-inset-bottom,0px));z-index:13;border:1px solid var(--accent);background:var(--raised);color:var(--accent);font-weight:700;box-shadow:0 6px 20px rgba(0,0,0,.12);border-radius:999px;padding:10px 15px;cursor:pointer;}
