/* Tina — visual do app do Claude (17/10) */
:root{
  --bg:#1b1820;--surface:#232029;--raised:#2b2832;--sunken:#16141a;--line:#38323f;
  --fg:#ece6ee;--mut:#a199a8;--mut2:#867e8d;
  --acc:#eba3c0;--on-acc:#2a1220;--acc-text:#f2b4cc;--acc-soft:rgba(235,163,192,.13);
  --ok:#86cba9;--on-ok:#0c2218;--ok-soft:rgba(134,203,169,.13);--warn:#e2bf80;--warn-soft:rgba(226,191,128,.13);--bad:#e68f98;--bad-soft:rgba(230,143,152,.13);--info:#8db4e2;--acc-rgb:235,163,192;--ok-rgb:134,203,169;--bad-rgb:230,143,152;--warn-rgb:226,191,128;
  --ov1:rgba(255,255,255,.04);--ov2:rgba(255,255,255,.07);--ov3:rgba(255,255,255,.12);
  --glass:rgba(35,32,41,.72);--hdr:rgba(27,24,32,.72);--ico:#d9d2de;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 28px rgba(0,0,0,.28);
  --ease:cubic-bezier(.2,.7,.2,1);
  --fundo:var(--bg);--lateral:var(--surface);--sup:var(--raised);--sup2:var(--raised);--eu:var(--acc-soft);--borda:var(--line);--borda2:var(--ov3);
  --texto:var(--fg);--sec:var(--mut);--fraco:var(--mut2);--clay:var(--acc);--clay2:var(--acc);--verde:var(--ok);--vermelho:var(--bad);--amarelo:var(--warn);--ciano:var(--acc);--lilas:var(--acc-text);
  --mono:ui-monospace,'Cascadia Code','SF Mono',Consolas,monospace;
  color-scheme:dark;
}
:root[data-theme="light"]{
  --bg:#ebe4e7;--surface:#f3eef0;--raised:#f8f4f6;--sunken:#e3dadf;--line:#d9cdd3;
  --fg:#2b242c;--mut:#7d727e;--mut2:#948997;
  --acc:#dd88a6;--on-acc:#3b1626;--acc-text:#a8416d;--acc-soft:#f3dde5;
  --ok:#33805c;--on-ok:#fff;--ok-soft:#dcebe3;--warn:#96691a;--warn-soft:#f1e5c9;--bad:#b84a58;--bad-soft:#f4dde0;--info:#3d6fa8;--acc-rgb:221,136,166;--ok-rgb:51,128,92;--bad-rgb:184,74,88;--warn-rgb:150,105,26;
  --ov1:rgba(60,30,45,.04);--ov2:rgba(60,30,45,.07);--ov3:rgba(60,30,45,.13);
  --glass:rgba(243,238,240,.78);--hdr:rgba(235,228,231,.78);--ico:#f6f1f3;
  --shadow:0 1px 2px rgba(60,30,45,.06),0 8px 24px rgba(60,30,45,.07);
  color-scheme:light;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; background: var(--fundo); color: var(--texto);
  font: 15px/1.5 'Plus Jakarta Sans', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; -webkit-tap-highlight-color: transparent;
  -webkit-font-smoothing: antialiased; }
button { font: inherit; color: inherit; cursor: pointer; border: 0; background: none; padding: 0; }
a { color: inherit; }
input, textarea { font: inherit; color: var(--texto); }
[hidden] { display: none !important; }
svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.fraco { color: var(--fraco); }
.erro { color: var(--vermelho); font-size: 13px; margin: 0; min-height: 1em; }
.so-cel { display: none !important; }

/* ---------- login ---------- */
.tela-login { min-height: 100dvh; display: grid; place-items: center; padding: 20px; }
.login-caixa { width: 100%; max-width: 340px; display: flex; flex-direction: column; gap: 12px; }
.login-caixa input { background: var(--sup); border: 1px solid var(--borda); border-radius:12px; padding: 12px 14px; outline: none; }
.login-caixa input:focus { border-color: var(--borda2); }
.bt-primario { background: var(--texto); color: var(--on-acc); border-radius:12px; padding: 12px; font-weight: 600; }
.marca { display: flex; align-items: center; gap: 8px; font-size: 19px; font-weight: 600; letter-spacing: -.01em; }
.marca.grande { font-size: 30px; justify-content: center; margin-bottom: 10px; }
.asterisco { color: var(--clay); font-size: 1.15em; line-height: 1; }

/* ---------- estrutura ---------- */
.app { display: flex; height: 100dvh; overflow: hidden; }
.lateral { width: 272px; flex: none; background: var(--lateral); border-right: 1px solid var(--borda); display: flex; flex-direction: column;
  padding: 12px 10px calc(env(safe-area-inset-bottom) + 10px); gap: 6px; }
.lat-topo { display: flex; align-items: center; justify-content: space-between; padding: 4px 8px 8px; }
.lat-nova { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius:12px; font-weight: 500; color: var(--texto); }
.lat-nova svg { background: var(--clay); color: var(--fg); border-radius:50%; padding: 3px; width: 22px; height: 22px; stroke-width: 2.4; }
.lat-nova:hover, .lat-item:hover, .lat-lista button:hover, .proj-bt:hover { background: var(--ov1); }
.lat-projeto { position: relative; }
.proj-bt { width: 100%; display: flex; align-items: center; gap: 9px; padding: 9px 10px; border-radius:12px; border: 1px solid var(--borda); text-align: left; }
.proj-ico { font-size: 15px; }
.proj-nome { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.proj-bt .seta { color: var(--fraco); }
.lat-rotulo { font-size: 12px; color: var(--fraco); padding: 12px 10px 4px; }
.lat-lista { flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: 1px; margin: 0 -4px; padding: 0 4px; }
.lat-lista .grupo-data { font-size: 11px; color: var(--fraco); padding: 10px 10px 4px; text-transform: uppercase; letter-spacing: .04em; }
.lat-lista button { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-radius:6px; text-align: left; font-size: 14px; color: var(--sec); }
.lat-lista button.ativa { background: var(--ov2); color: var(--texto); }
.lat-lista .tt { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lat-lista .st-rod { width: 7px; height: 7px; border-radius:50%; background: var(--clay); animation: pulsa 1.2s infinite; flex: none; }
.lat-lista .st-err { color: var(--vermelho); font-size: 12px; flex: none; }
.lat-lista .vazio-lat { color: var(--fraco); font-size: 13px; padding: 8px 10px; }
.lat-rodape { border-top: 1px solid var(--borda); padding-top: 8px; display: flex; flex-direction: column; gap: 1px; }
.lat-item { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius:6px; color: var(--sec); font-size: 14px; text-decoration: none; }

.principal { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.topo { display: flex; align-items: center; gap: 8px; padding: calc(env(safe-area-inset-top) + 8px) 14px 8px; min-height: 52px; }
.topo-titulo { flex: 1; min-width: 0; font-size: 15px; font-weight: 500; color: var(--sec); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ico-bt { width: 36px; height: 36px; display: grid; place-items: center; border-radius:12px; color: var(--sec); }
.ico-bt:hover { background: var(--ov2); }
.pilula { display: flex; align-items: center; gap: 7px; padding: 5px 11px; border-radius:99px; border: 1px solid var(--borda); font-size: 12.5px; color: var(--sec); white-space: nowrap; }
.pilula .ponto { width: 7px; height: 7px; border-radius:50%; background: var(--fraco); }
.pilula.on .ponto { background: var(--verde); box-shadow: 0 0 0 3px color-mix(in srgb,var(--ok) 15%,transparent); }
.pilula.off .ponto { background: var(--vermelho); }
.aviso { margin: 0 auto 6px; width: min(760px, calc(100% - 28px)); padding: 9px 13px; border-radius:12px; background: color-mix(in srgb,var(--warn) 12%,transparent);
  color: var(--warn); font-size: 13.5px; cursor: pointer; }

.rolagem { flex: 1; overflow-y: auto; overscroll-behavior: contain; scroll-behavior: auto; }
.mensagens { width: min(760px, 100%); margin: 0 auto; padding: 8px 18px 28px; display: flex; flex-direction: column; gap: 22px; }

/* boas-vindas */
.boas { margin: 12vh auto 0; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.boas h1 { margin: 0; font-size: clamp(26px, 6vw, 36px); font-weight: 400; letter-spacing: -.02em; font-family: Georgia, "Times New Roman", serif; display: flex; align-items: center; gap: 12px; }
.boas h1 .asterisco { font-size: 1.1em; }
.boas p { margin: 0; color: var(--fraco); font-size: 14px; }
.sugestoes { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 10px; }
.sugestoes button { padding: 8px 13px; border-radius:12px; border: 1px solid var(--borda); color: var(--sec); font-size: 13.5px; }
.sugestoes button:hover { background: var(--ov1); color: var(--texto); }

/* mensagens */
.eu { align-self: flex-end; max-width: 85%; background: var(--eu); border-radius:18px; padding: 10px 16px; white-space: pre-wrap; word-wrap: break-word; line-height: 1.55; }
.eu .anx { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.eu .anx span { font-size: 12px; padding: 3px 9px; border-radius:6px; background: var(--ov2); color: var(--sec); }
.eu.na-fila { opacity: .65; }
.eu .fila-tag { display: block; font-size: 11.5px; color: var(--fraco); margin-top: 4px; }
.claude, .corpo { display: flex; flex-direction: column; gap: 12px; min-width: 0; }

/* texto em markdown */
.md { font-size: 15.5px; line-height: 1.7; color: var(--texto); overflow-wrap: anywhere; }
.md > :first-child { margin-top: 0; } .md > :last-child { margin-bottom: 0; }
.md p { margin: 0 0 .75em; }
.md h1, .md h2, .md h3, .md h4 { margin: 1.1em 0 .45em; line-height: 1.3; font-weight: 600; }
.md h1 { font-size: 1.35em; } .md h2 { font-size: 1.2em; } .md h3 { font-size: 1.07em; } .md h4 { font-size: 1em; }
.md ul, .md ol { margin: 0 0 .75em; padding-left: 1.5em; }
.md li { margin: .2em 0; } .md li::marker { color: var(--fraco); }
.md strong { font-weight: 650; color: var(--fg); }
.md a { color: var(--acc-text); text-decoration: underline; text-underline-offset: 2px; text-decoration-color: color-mix(in srgb,var(--acc) 40%,transparent); }
.md code { font-family: var(--mono); font-size: .86em; background: var(--ov2); border: 1px solid var(--borda); padding: 1px 5px; border-radius:6px; color: var(--acc-text); }
.md blockquote { margin: 0 0 .75em; padding: 2px 14px; border-left: 3px solid var(--borda2); color: var(--sec); }
.md hr { border: 0; border-top: 1px solid var(--borda); margin: 1.2em 0; }
.md .tab { overflow-x: auto; margin: 0 0 .9em; border: 1px solid var(--borda); border-radius:12px; }
.md table { border-collapse: collapse; width: 100%; font-size: .93em; }
.md th, .md td { padding: 7px 11px; border-bottom: 1px solid var(--borda); text-align: left; vertical-align: top; }
.md th { font-weight: 600; background: var(--ov1); white-space: nowrap; }
.md tr:last-child td { border-bottom: 0; }
.cod { margin: 0 0 .9em; border: 1px solid var(--borda); border-radius:12px; overflow: hidden; background: var(--bg); }
.cod-top { display: flex; align-items: center; justify-content: space-between; padding: 6px 10px 6px 13px; font-size: 12px; color: var(--fraco); border-bottom: 1px solid var(--borda); }
.cod-top button { font-size: 12px; color: var(--sec); padding: 3px 8px; border-radius:6px; }
.cod-top button:hover { background: var(--ov2); }
.cod pre { margin: 0; padding: 12px 14px; overflow-x: auto; font-family: var(--mono); font-size: 13px; line-height: 1.55; color: var(--fg); }
.cod pre code { background: none; border: 0; padding: 0; color: inherit; font-size: inherit; }
.rasc::after { content: ''; display: inline-block; width: 7px; height: 1.05em; margin-left: 2px; vertical-align: text-bottom; background: var(--clay); border-radius:6px; animation: pisca 1s steps(2) infinite; }

/* ações (como no VS Code): um grupo recolhido por sequência */
.grupo { border: 1px solid var(--borda); border-radius:12px; background: var(--ov1); overflow: hidden; }
.grupo-cab { width: 100%; display: flex; align-items: center; gap: 9px; padding: 8px 12px; text-align: left; font-size: 13.5px; color: var(--sec); }
.grupo-cab:hover { background: var(--ov1); }
.grupo-cab .gic { display: grid; place-items: center; width: 16px; }
.grupo-cab .gtxt { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.grupo-cab .gtxt b { font-weight: 500; color: var(--texto); }
.grupo-cab .seta { color: var(--fraco); transition: transform .15s; }
.grupo.aberto .grupo-cab .seta { transform: rotate(180deg); }
.grupo-lista { display: none; border-top: 1px solid var(--borda); padding: 4px 0; }
.grupo.aberto .grupo-lista { display: block; }
.ac { border: 0; }
.ac summary { list-style: none; display: flex; align-items: center; gap: 9px; padding: 6px 12px; cursor: pointer; font-size: 13px; color: var(--sec); }
.ac summary::-webkit-details-marker { display: none; }
.ac summary:hover { background: var(--ov1); }
.ac .ac-ic { color: var(--fraco); display: grid; place-items: center; }
.ac .ac-ic svg { width: 15px; height: 15px; }
.ac .ac-t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ac .ac-t code { font-family: var(--mono); font-size: 12.3px; color: var(--fg); }
.ac .ac-v { color: var(--fraco); margin-right: 4px; }
.ac-st { flex: none; font-size: 12px; }
.ac-st.ok { color: var(--verde); } .ac-st.err { color: var(--vermelho); }
.ac pre { margin: 2px 12px 8px 36px; padding: 9px 11px; max-height: 280px; overflow: auto; background: var(--bg); border: 1px solid var(--borda); border-radius:6px;
  font-family: var(--mono); font-size: 12px; line-height: 1.5; color: var(--fg); white-space: pre-wrap; word-break: break-word; }
.ac .ac-cmd { color: var(--acc-text); display: block; margin-bottom: 6px; }
.gira { display: inline-block; width: 14px; height: 14px; border-radius:50%; border: 2px solid color-mix(in srgb,var(--acc) 30%,transparent); border-top-color: var(--clay); animation: gira .8s linear infinite; flex: none; }

/* trabalhando agora */
.vivo { display: flex; align-items: center; gap: 10px; color: var(--fraco); font-size: 13.5px; padding: 2px 0; }
.vivo .estrela { color: var(--clay); font-size: 19px; line-height: 1; animation: estrela 2.4s ease-in-out infinite; display: inline-block; }
.vivo .vtxt { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* rodapé de cada resposta */
.rodape { display: flex; align-items: center; gap: 2px; flex-wrap: wrap; color: var(--fraco); font-size: 12px; margin-top: -4px; }
.rodape .rb { display: grid; place-items: center; width: 30px; height: 30px; border-radius:6px; color: var(--fraco); }
.rodape .rb:hover { background: var(--ov2); color: var(--texto); }
.rodape .rb svg { width: 16px; height: 16px; }
.rodape .rb.tocando { color: var(--clay); }
.rodape .uso { margin-left: 6px; }
.rodape .uso b { color: var(--sec); font-weight: 500; }
.falha { border: 1px solid color-mix(in srgb,var(--bad) 35%,transparent); background: color-mix(in srgb,var(--bad) 8%,transparent); color: var(--bad); border-radius:12px; padding: 10px 13px; font-size: 13.5px; }
.na-fila-txt { color: var(--fraco); font-size: 13px; }

/* perguntas */
.pergunta { border: 1px solid var(--borda2); border-radius:12px; padding: 14px; background: var(--sup); display: flex; flex-direction: column; gap: 10px; }
.pergunta .p-tit { font-weight: 600; font-size: 14.5px; display: flex; align-items: center; gap: 8px; }
.pergunta .p-tit .chip { font-size: 11px; font-weight: 500; padding: 2px 8px; border-radius:99px; background: color-mix(in srgb,var(--acc) 16%,transparent); color: var(--acc-text); }
.pergunta .p-cmd { font-family: var(--mono); font-size: 12.5px; background: var(--bg); border-radius:6px; padding: 8px 10px; color: var(--fg); overflow-x: auto; white-space: pre-wrap; }
.pergunta .opcoes { display: flex; flex-direction: column; gap: 7px; }
.pergunta .opcao { text-align: left; border: 1px solid var(--borda); border-radius:12px; padding: 10px 12px; background: var(--ov1); display: flex; flex-direction: column; gap: 2px; }
.pergunta .opcao b { font-weight: 550; font-size: 14px; }
.pergunta .opcao small { color: var(--fraco); font-size: 12.5px; line-height: 1.4; }
.pergunta .opcao:hover { border-color: var(--borda2); }
.pergunta .opcao.sel { border-color: var(--clay); background: color-mix(in srgb,var(--acc) 10%,transparent); }
.pergunta .outro { background: var(--ov1); border: 1px solid var(--borda); border-radius:12px; padding: 9px 12px; outline: none; }
.pergunta .p-botoes { display: flex; gap: 8px; justify-content: flex-end; }
.pergunta .p-res { font-size: 13px; color: var(--sec); }
.pergunta .p-res b { color: var(--texto); font-weight: 550; }
.bt-claro { background: var(--texto); color: var(--on-acc); border-radius:12px; padding: 8px 16px; font-weight: 600; font-size: 14px; }
.bt-claro:disabled { opacity: .4; }
.bt-sec { border: 1px solid var(--borda2); border-radius:12px; padding: 7px 14px; font-size: 13.5px; color: var(--sec); }

/* ---------- compositor ---------- */
.base { padding: 0 14px calc(env(safe-area-inset-bottom) + 8px); }
.compositor { position: relative; width: min(760px, 100%); margin: 0 auto; background: var(--sup); border: 1px solid var(--borda); border-radius:18px;
  padding: 10px 10px 8px 14px; box-shadow: 0 4px 20px rgba(0,0,0,.18); transition: border-color .15s; }
.compositor:focus-within { border-color: var(--borda2); }
.compositor textarea { width: 100%; resize: none; border: 0; outline: none; background: none; padding: 4px 4px 2px 0; max-height: 220px; font-size: 15.5px; line-height: 1.5; display: block; }
.compositor textarea::placeholder { color: var(--fraco); }
.comp-linha { display: flex; align-items: center; justify-content: space-between; margin-top: 6px; }
.comp-esq, .comp-dir { display: flex; align-items: center; gap: 4px; }
.comp-ico { width: 34px; height: 34px; border-radius:12px; display: grid; place-items: center; color: var(--sec); border: 1px solid var(--borda); }
.comp-ico:hover { background: var(--ov1); color: var(--texto); }
.comp-ico.gravando { color: var(--fg); background: var(--vermelho); border-color: var(--vermelho); animation: pulsa 1.2s infinite; }
.comp-ico.voz { box-shadow: inset 0 0 0 1.5px var(--verde); }
.comp-modelo { display: flex; align-items: center; gap: 4px; padding: 6px 9px; border-radius:12px; font-size: 13px; color: var(--sec); }
.comp-modelo:hover { background: var(--ov1); }
.comp-modelo svg { width: 15px; height: 15px; }
.comp-enviar, .comp-parar { width: 34px; height: 34px; border-radius:12px; display: grid; place-items: center; }
.comp-enviar { background: var(--clay); color: var(--fg); }
.comp-enviar svg { stroke-width: 2.3; }
.comp-enviar:disabled { background: var(--line); color: var(--mut); cursor: default; }
.comp-parar { background: var(--texto); color: var(--on-acc); }
.comp-parar svg { fill: currentColor; stroke: none; }
.anexos-previa { display: flex; gap: 8px; flex-wrap: wrap; }
.anexos-previa:not(:empty) { margin-bottom: 8px; }
.anexos-previa .chip { position: relative; border: 1px solid var(--borda); border-radius:12px; overflow: hidden; background: var(--ov1); }
.anexos-previa img { width: 64px; height: 64px; object-fit: cover; display: block; }
.anexos-previa span { display: block; padding: 8px 40px 8px 10px; font-size: 12.5px; max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.anexos-previa .chip button { position: absolute; top: 2px; right: 2px; width: 32px; height: 32px; border-radius:50%; background: rgba(0,0,0,.75); font-size: 15px; color: var(--fg); display: flex; align-items: center; justify-content: center; }
.anexos-previa .tirar-todos { align-self: center; padding: 8px 14px; border-radius:99px; border: 1px solid var(--borda); background: var(--ov1); color: var(--texto); font-size: 13px; }
.base-dica { text-align: center; font-size: 11.5px; color: var(--fraco); padding: 7px 10px 0; }

/* menus */
.menu-pop { position: absolute; z-index: 30; background: var(--raised); border: 1px solid var(--borda2); border-radius:12px; box-shadow: 0 10px 30px rgba(0,0,0,.4);
  padding: 5px; display: flex; flex-direction: column; min-width: 220px; }
.menu-pop button { display: flex; align-items: center; gap: 10px; padding: 9px 11px; border-radius:12px; text-align: left; font-size: 14px; }
.menu-pop button:hover { background: var(--ov2); }
.menu-anexo { bottom: 52px; left: 8px; }
.menu-modelo { bottom: 52px; left: 48px; }
.menu-modelo button { flex-direction: column; align-items: flex-start; gap: 0; }
.menu-modelo button.sel b::after { content: ' ✓'; color: var(--clay); }
.menu-modelo small, .menu-voz-item small { display: block; color: var(--fraco); font-size: 12px; }
.menu-voz { bottom: 52px; right: 8px; width: min(300px, calc(100% - 16px)); }
.menu-tit { padding: 6px 11px 4px; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--fraco); }
.menu-voz-item { justify-content: space-between; }
.chave { width: 36px; height: 21px; border-radius:12px; background: var(--line); position: relative; flex: none; transition: background .2s; }
.chave::after { content: ''; position: absolute; top: 3px; left: 3px; width: 15px; height: 15px; border-radius:50%; background: var(--fg); transition: left .2s; }
.menu-voz-item.on .chave { background: var(--clay); }
.menu-voz-item.on .chave::after { left: 18px; }
.proj-menu { top: 44px; left: 0; right: 0; max-height: 60vh; overflow-y: auto; }
.proj-menu .pm-tit { font-size: 11px; color: var(--fraco); padding: 8px 11px 3px; text-transform: uppercase; letter-spacing: .05em; }
.proj-menu button.sel { background: var(--ov2); }
.proj-menu .pm-novo { color: var(--sec); border-top: 1px solid var(--borda); border-radius:0 0 12px 12px; margin-top: 4px; }

/* modal: tela do PC */
.modal { position: fixed; inset: 0; z-index: 40; background: rgba(0,0,0,.6); display: grid; place-items: center; padding: 14px; }
.modal-caixa { background: var(--lateral); border: 1px solid var(--borda2); border-radius:18px; width: min(1200px, 100%); max-height: 100%; display: flex; flex-direction: column; overflow: hidden; }
.modal-topo { display: flex; align-items: center; gap: 10px; padding: 10px 10px 10px 16px; border-bottom: 1px solid var(--borda); }
.modal-topo .fraco { flex: 1; font-size: 12.5px; }
.tela-corpo { overflow: auto; min-height: 200px; display: grid; place-items: center; }
.tela-corpo img { width: 100%; height: auto; display: block; cursor: zoom-in; }
.tela-corpo img.zoom { width: auto; max-width: none; cursor: zoom-out; }
.tela-corpo .fraco { padding: 40px; }

/* barra do modo conversa */
.conv-barra { width: min(760px, 100%); margin: 0 auto 8px; display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius:12px; background: var(--sup); border: 1px solid var(--borda); cursor: pointer; }
.conv-ponto { width: 11px; height: 11px; border-radius:50%; background: var(--fraco); flex: none; }
.conv-barra.ouvindo .conv-ponto { background: var(--vermelho); animation: pulsa 1s infinite; }
.conv-barra.pensando .conv-ponto { background: var(--amarelo); animation: pulsa 1.6s infinite; }
.conv-barra.falando .conv-ponto { background: var(--verde); animation: pulsa .8s infinite; }
.conv-texto { flex: 1; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.conv-sair { padding: 5px 11px; border-radius:12px; background: color-mix(in srgb,var(--bad) 15%,transparent); color: var(--vermelho); font-size: 13px; }

/* modo conversa em tela cheia */
.conv-tela { position: fixed; inset: 0; z-index: 50; display: flex; flex-direction: column;
  background: radial-gradient(120% 80% at 50% 38%, var(--acc-soft) 0%, var(--surface) 60%, var(--sunken) 100%);
  padding: calc(env(safe-area-inset-top) + 10px) 18px calc(env(safe-area-inset-bottom) + 16px); }
.conv-topo { display: flex; align-items: center; justify-content: space-between; }
.conv-nome { font-weight: 600; letter-spacing: .04em; color: var(--acc-text); }
.conv-bt-topo { width: 44px; height: 44px; border-radius:50%; font-size: 20px; background: var(--ov2); }
.conv-meio { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; text-align: center; min-height: 0; }
.conv-voce { min-height: 3em; max-width: 92%; font-size: 19px; line-height: 1.4; color: var(--fg); display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.conv-status { font-size: 14px; color: var(--fraco); letter-spacing: .03em; }
.conv-legenda { min-height: 4.5em; max-width: 92%; font-size: 15px; line-height: 1.45; color: var(--sec); display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.orbe { position: relative; width: 170px; height: 170px; border-radius:50%; flex: none;
  background: radial-gradient(circle at 35% 30%, var(--acc-text) 0%, var(--acc) 35%, var(--acc) 70%, var(--acc-soft) 100%);
  box-shadow: 0 0 60px color-mix(in srgb,var(--acc) 45%,transparent); transition: transform .3s, filter .3s; }
.orbe i { position: absolute; inset: 0; border-radius:50%; border: 2px solid color-mix(in srgb,var(--acc) 35%,transparent); opacity: 0; }
.conv-tela.ouvindo .orbe { animation: respira 1.6s ease-in-out infinite; }
.conv-tela.ouvindo .orbe i { animation: onda 1.8s ease-out infinite; }
.conv-tela.ouvindo .orbe i:nth-child(2) { animation-delay: .6s; } .conv-tela.ouvindo .orbe i:nth-child(3) { animation-delay: 1.2s; }
.conv-tela.pensando .orbe { animation: gira 2.4s linear infinite; filter: saturate(.8) brightness(.9);
  background: conic-gradient(from 0deg, var(--acc), var(--acc-text), var(--ok), var(--acc)); }
.conv-tela.falando .orbe { animation: fala .45s ease-in-out infinite alternate; box-shadow: 0 0 90px color-mix(in srgb,var(--acc) 70%,transparent); }
.conv-tela.parado .orbe { filter: grayscale(.6) brightness(.7); transform: scale(.9); }
.conv-baixo { display: flex; gap: 10px; justify-content: center; }
.conv-bt { padding: 12px 18px; border-radius:18px; background: var(--ov2); font-size: 14px; }
.conv-bt.on, .parar-bt { background: color-mix(in srgb,var(--bad) 18%,transparent); color: var(--vermelho); }
.conv-dica { text-align: center; font-size: 11px; color: var(--fraco); margin-top: 12px; }

@keyframes pulsa { 50% { opacity: .45; } }
@keyframes pisca { 50% { opacity: 0; } }
@keyframes gira { to { transform: rotate(360deg); } }
@keyframes estrela { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(90deg) scale(.82); } 100% { transform: rotate(180deg) scale(1); } }
@keyframes respira { 50% { transform: scale(1.06); } }
@keyframes onda { 0% { opacity: .8; transform: scale(1); } 100% { opacity: 0; transform: scale(1.6); } }
@keyframes fala { from { transform: scale(.97); } to { transform: scale(1.08); } }

/* ---------- celular ---------- */
@media (max-width: 860px) {
  .so-cel { display: grid !important; }
  .lateral { position: fixed; z-index: 35; inset: 0 auto 0 0; width: min(300px, 86vw); transform: translateX(-102%); transition: transform .22s ease;
    padding-top: calc(env(safe-area-inset-top) + 12px); }
  .lateral.aberta { transform: none; box-shadow: 10px 0 40px rgba(0,0,0,.4); }
  .fundo-lat { position: fixed; inset: 0; z-index: 34; background: rgba(0,0,0,.5); }
  .topo { padding-left: 8px; padding-right: 10px; }
  .mensagens { padding: 6px 14px 22px; gap: 18px; }
  .base { padding: 0 8px calc(env(safe-area-inset-bottom) + 6px); }
  .compositor { border-radius:18px; }
  .base-dica { display: none; }
  .md { font-size: 15px; }
  .boas { margin-top: 8vh; }
  .pilula #pilulaTxt { max-width: 34vw; overflow: hidden; text-overflow: ellipsis; }
}
@media (min-width: 861px) { .fundo-lat { display: none !important; } }

/* ---------- 17/10 v2: lateral em cápsulas, escolha PC/Servidor em 2 passos ---------- */
.lateral { gap: 10px; }
.lat-nova { justify-content: center; border: 1px solid var(--borda2); background: var(--ov1); padding: 10px; border-radius:12px; }
.lat-nova svg { width: 20px; height: 20px; padding: 2px; }
.cap { background: var(--ov1); border: 1px solid var(--borda); border-radius:12px; padding: 8px; display: flex; flex-direction: column; gap: 8px; }
.seg { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; padding: 3px; background: rgba(0,0,0,.22); border-radius:12px; }
.seg button { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 7px 6px; border-radius:6px; font-size: 13px; color: var(--fraco); transition: background .15s, color .15s; }
.seg button svg { width: 15px; height: 15px; }
.seg button.sel { background: var(--sup2); color: var(--texto); box-shadow: 0 1px 3px rgba(0,0,0,.3); }
.seg button:not(.sel):hover { color: var(--sec); }
.proj-bt { border: 1px solid var(--borda); background: rgba(0,0,0,.15); padding: 8px 10px; flex-wrap: nowrap; }
.proj-rot { font-size: 11px; color: var(--fraco); text-transform: uppercase; letter-spacing: .05em; flex: none; }
.proj-nome { text-align: right; font-weight: 500; color: var(--texto); }
.proj-menu { top: 42px; }
.proj-menu button { justify-content: space-between; }
.proj-menu button svg { color: var(--clay); width: 16px; height: 16px; }
.proj-menu .pm-novo { justify-content: flex-start; }
.estado-maq { display: flex; align-items: center; gap: 7px; font-size: 11.5px; color: var(--fraco); padding: 0 4px 2px; }
.estado-maq .ponto { width: 7px; height: 7px; border-radius:50%; background: var(--fraco); flex: none; }
.estado-maq.on .ponto { background: var(--verde); box-shadow: 0 0 0 3px color-mix(in srgb,var(--ok) 14%,transparent); }
.estado-maq.off .ponto { background: var(--vermelho); }
.estado-maq.off { color: var(--bad); }
.cap-conversas { flex: 1; min-height: 0; padding: 6px; }
.busca { display: flex; align-items: center; gap: 7px; padding: 6px 9px; border-radius:12px; background: rgba(0,0,0,.18); color: var(--fraco); }
.busca svg { width: 15px; height: 15px; }
.busca input { flex: 1; min-width: 0; border: 0; outline: none; background: none; font-size: 13.5px; padding: 0; }
.busca input::placeholder { color: var(--fraco); }
.cap-conversas .lat-lista { margin: 0; padding: 0; }
.lat-rodape { border-top: 0; padding-top: 0; }
.lat-lista .grupo-data { padding: 10px 8px 4px; }

/* topo e sugestões em cápsulas */
.topo { border-bottom: 1px solid transparent; }
.pilula { background: var(--ov1); max-width: 52vw; overflow: hidden; }
.pilula #pilulaTxt { overflow: hidden; text-overflow: ellipsis; }
.sugestoes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: min(620px, 100%); gap: 10px; }
.sugestoes button { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; text-align: left; padding: 12px 14px; border-radius:12px;
  background: var(--ov1); border: 1px solid var(--borda); transition: background .15s, border-color .15s; }
.sugestoes button b { font-size: 12px; font-weight: 600; color: var(--acc-text); letter-spacing: .02em; }
.sugestoes button span { font-size: 13.5px; color: var(--sec); line-height: 1.4; }
.sugestoes button:hover { background: var(--ov1); border-color: var(--borda2); }
.boas { width: 100%; }
@media (max-width: 860px) {
  .sugestoes { grid-template-columns: 1fr; }
  .boas { margin-top: 5vh; }
  .pilula { max-width: 46vw; }
}


/* ---------- 17/10: tema do StockEasy (mesmas cores, fonte e brilho do Painel ML) ---------- */
html, body { background-color: var(--fundo); }
body { background-image: radial-gradient(at 0% 0%, color-mix(in srgb,var(--acc) 12%,transparent) 0px, transparent 50%), radial-gradient(at 100% 100%, color-mix(in srgb,var(--acc) 8%,transparent) 0px, transparent 50%); background-attachment: fixed; }
.app, .principal { background: transparent; }
.lateral { background: color-mix(in srgb,var(--surface) 85%,transparent); border-right-color: var(--borda); }
.marca { font-weight: 700; letter-spacing: -.025em; }
.marca .asterisco { display: grid; place-items: center; width: 30px; height: 30px; border-radius:12px; font-size: 17px; color: var(--fg);
  background: linear-gradient(135deg, var(--clay), var(--ciano)); box-shadow: 0 4px 12px color-mix(in srgb,var(--acc) 25%,transparent); }
.marca.grande .asterisco { width: 46px; height: 46px; border-radius:12px; font-size: 26px; }
.marca-txt, .marca > span:last-child { background: linear-gradient(135deg, var(--fg), var(--acc-text)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.lat-nova { background: linear-gradient(135deg, var(--clay), var(--acc)); border: 0; color:var(--on-acc); box-shadow: 0 4px 15px color-mix(in srgb,var(--acc) 25%,transparent); }
.lat-nova svg { background: var(--ov3); }
.lat-nova:hover { filter: brightness(1.08); background: linear-gradient(135deg, var(--clay), var(--acc)); }
.cap { background: var(--sup); border-color: var(--ov2); }
.seg { background: rgba(0,0,0,.25); }
.seg button.sel { background: linear-gradient(135deg, var(--clay), color-mix(in srgb,var(--acc) 60%,transparent)); color:var(--on-acc); box-shadow: 0 4px 12px color-mix(in srgb,var(--acc) 20%,transparent); }
.proj-bt, .busca { background: var(--sup2); }
.lat-lista button.ativa { background: color-mix(in srgb,var(--acc) 16%,transparent); color: var(--fg); }
.boas h1 { font-family: inherit; font-weight: 700; letter-spacing: -.03em; }
.boas h1 > span:last-child, .boas-txt { background: linear-gradient(135deg, var(--fg), var(--acc-text)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.boas h1 .asterisco { display: grid; place-items: center; width: 42px; height: 42px; border-radius:12px; font-size: 24px; color: var(--fg); background: linear-gradient(135deg, var(--clay), var(--ciano)); }
.sugestoes button { background: var(--sup); border-color: var(--ov2); }
.sugestoes button:hover { background: var(--sup2); border-color: color-mix(in srgb,var(--acc) 35%,transparent); }
.eu { background: linear-gradient(135deg, color-mix(in srgb,var(--acc) 28%,transparent), color-mix(in srgb,var(--acc) 18%,transparent)); border: 1px solid color-mix(in srgb,var(--acc) 25%,transparent); }
.compositor { background: var(--sup); border-color: var(--ov3); box-shadow: 0 8px 32px rgba(0,0,0,.3); }
.compositor:focus-within { border-color: color-mix(in srgb,var(--acc) 50%,transparent); box-shadow: 0 0 0 3px color-mix(in srgb,var(--acc) 12%,transparent), 0 8px 32px rgba(0,0,0,.3); }
.comp-enviar { background: linear-gradient(135deg, var(--clay), var(--acc)); box-shadow: 0 4px 12px color-mix(in srgb,var(--acc) 30%,transparent); }
.comp-ico { background: var(--sup2); border-color: var(--ov2); }
.grupo { background: var(--sup); border-color: var(--ov2); }
.pergunta { background: var(--sup); border-color: color-mix(in srgb,var(--acc) 30%,transparent); }
.pergunta .opcao { background: var(--sup2); border-color: var(--ov2); }
.pergunta .opcao.sel { border-color: var(--clay); background: color-mix(in srgb,var(--acc) 16%,transparent); }
.bt-claro { background: linear-gradient(135deg, var(--clay), var(--acc)); color:var(--on-acc); box-shadow: 0 4px 12px color-mix(in srgb,var(--acc) 25%,transparent); }
.cod, .ac pre, .pergunta .p-cmd { background: var(--bg); border-color: var(--ov2); }
.pilula { background: var(--sup); }
.menu-pop { background: var(--raised); border-color: var(--ov3); }
.modal-caixa { background: var(--sup); }
.vivo .estrela { color: var(--lilas); }
.md strong { color: var(--fg); }

/* botão de avisos com chavinha */
#btnAvisos { position: relative; }
#btnAvisos #avisosTxt { flex: 1; }
.mini-chave { width: 30px; height: 17px; border-radius:12px; background: var(--line); position: relative; flex: none; transition: background .2s; }
.mini-chave::after { content: ''; position: absolute; top: 2.5px; left: 3px; width: 12px; height: 12px; border-radius:50%; background: var(--fg); transition: left .2s; }
.mini-chave.on { background: var(--verde); }
.mini-chave.on::after { left: 15px; }

@keyframes giraS { to { transform: rotate(360deg); } }
.gira { display: inline-block; animation: giraS 1s linear infinite !important; }
.fila-tag .gira { color: var(--lilas, var(--acc-text)); }

.barra-trab { display: flex; align-items: center; gap: 10px; margin: 0 auto 8px; max-width: 760px; width: calc(100% - 24px); padding: 8px 14px; border-radius:12px; background: color-mix(in srgb,var(--acc) 14%,transparent); border: 1px solid color-mix(in srgb,var(--acc) 35%,transparent); color: var(--acc-text); font-size: 13.5px; }
.barra-trab[hidden] { display: none; }
.barra-trab .gira { color: var(--acc-text); font-size: 18px; line-height: 1; }
.barra-trab #barraTxt { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.barra-trab .bt-col { display: flex; flex-direction: column; min-width: 0; gap: 1px; }
.barra-trab b { font-weight: 600; color: var(--acc-text); font-size: 13.5px; }
.barra-trab #barraTxt { font-size: 12px; color: var(--acc-text); opacity: .9; }
.barra-trab .gira { font-size: 22px; }

/* ===== Padrão Pedro: preto suave e rosa claro ===== */
:root{--r2:12px;--r3:18px}
body{background-image:radial-gradient(60% 45% at 0% 0%,var(--acc-soft),transparent 70%);background-attachment:fixed}
.ic{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-.2em}
.ic.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.dt{display:inline-block;width:.62em;height:.62em;border-radius:50%;margin-right:.4em;vertical-align:.04em;background:var(--mut2)}
.dt.ok{background:var(--ok)}.dt.warn{background:var(--warn)}
header{background:var(--hdr);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4)}
.logo-icon{background:var(--acc-soft)!important;color:var(--acc-text)!important;box-shadow:none!important}
.logo-text h1{white-space:nowrap}
.logo-text h1{background:none!important;-webkit-text-fill-color:currentColor!important;color:var(--fg)!important}
.glass-card{box-shadow:var(--shadow);-webkit-backdrop-filter:none;backdrop-filter:none}
button,.settings-btn,.nav-tab,a.settings-btn{transition:var(--transition-smooth)}
button:active:not(:disabled),.settings-btn:active,.nav-tab:active{transform:scale(.97)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.nav-tab.active{background:var(--acc-soft)!important;color:var(--acc-text)!important;border-color:var(--acc)!important;box-shadow:none!important}
.settings-btn{background:var(--ov1);border:1px solid var(--line);color:var(--fg)}
.settings-btn:hover{border-color:var(--acc)}
.settings-btn.danger{color:var(--bad)}
input,select,textarea{background:var(--ov1);color:var(--fg)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-soft)}
select option{background:var(--raised);color:var(--fg)}
.ok-flash{background:var(--ok-soft)!important;border-color:var(--ok)!important;color:var(--ok)!important}
@keyframes tin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.confirm-modal-box,.prompt-cadastro-box{animation:tin .26s var(--ease) both;background:var(--raised);box-shadow:var(--shadow)}
.toast{background:var(--glass);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);color:var(--fg);box-shadow:var(--shadow);animation:tin .24s var(--ease) both}
.tema-btn{cursor:pointer}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

/* Tina */
.bt-primario{background:var(--acc)!important;color:var(--on-acc)!important}
.lat-nova svg{background:var(--acc);color:var(--on-acc)}
.asterisco{color:var(--acc)}
.tema-bt{width:36px;height:36px;border-radius:12px;display:inline-grid;place-items:center;color:var(--fg);transition:var(--transition-smooth)}
.tema-bt:hover{background:var(--ov2)}
.lateral,.lat-topo{-webkit-backdrop-filter:none;backdrop-filter:none}

/* ===== Acabamento v2 (31/10): nada translúcido, sem caixa dentro de caixa, rolagem discreta ===== */
:root{--hdr:#1b1820;--glass:#27232d}
:root[data-theme="light"]{--hdr:#ebe4e7;--glass:#f3eef0}
:root[data-theme="light"] *{scrollbar-color:rgba(60,30,45,.18) transparent}
header,.toast,.lateral,.lat-topo{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html{-webkit-tap-highlight-color:transparent;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none}
button,a,summary,[role=button]{touch-action:manipulation;-webkit-user-select:none;user-select:none}
.compositor textarea,.compositor textarea:focus,.compositor textarea:focus-visible{background:transparent!important;box-shadow:none!important;border:0!important;outline:none!important;border-radius:0!important;caret-color:var(--acc)}
.compositor textarea{-webkit-appearance:none;appearance:none}
*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:6px}
::-webkit-scrollbar-track{background:transparent}
@media (pointer:coarse){::-webkit-scrollbar{width:0;height:0}*{scrollbar-width:none}}
::selection{background:color-mix(in srgb,var(--acc) 35%,transparent)}

/* funcional: rosa so em acao/selecao */
.conv-nome,.sugestoes button b,.ac .ac-cmd,.barra-trab b,.barra-trab #barraTxt{color:var(--mut)}

/* ===== minimalista + padrao unico (igual ao Painel ML) ===== */
.base-dica,.estado-maq{display:none!important}
.lat-nova{border:1px solid var(--ov3);background:var(--surface);border-radius:12px;font-size:.875rem;font-weight:600;padding:10px 12px;min-height:40px}
.lat-nova svg{background:var(--acc-soft);color:var(--acc-text)}
.lat-item{font-size:.875rem;border-radius:12px;min-height:40px}
.proj-bt{border-radius:12px;border:1px solid var(--ov3);min-height:40px}
.topo{min-height:56px;border-bottom:1px solid var(--ov3)}
.topo-titulo{font-size:.9375rem;font-weight:600}
.pilula{font-size:.75rem;font-weight:600}
.boas{margin-top:10vh;gap:10px}
.boas h1{font-family:inherit;font-weight:700;font-size:clamp(24px,5vw,30px);letter-spacing:-.02em}
.boas h1 .asterisco{color:var(--acc-text)}
.boas p{font-size:.8125rem;color:var(--mut2)}
.sugestoes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:10px;width:min(720px,100%);margin-top:18px}
.sugestoes button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:14px 16px;border-radius:18px;background:var(--surface);border:1px solid var(--ov3);min-width:0}
.sugestoes button b{font-size:.9375rem;font-weight:600;color:var(--fg)}
.sugestoes button span{font-size:.8125rem;color:var(--mut);line-height:1.4;font-weight:400}
.sugestoes button:hover{border-color:var(--acc);background:var(--surface)}
.compositor{border-radius:18px;border:1px solid var(--ov3);background:var(--surface)}
.grupo-data{font-size:.75rem;color:var(--mut2);text-transform:none;letter-spacing:0}
button,.btn{min-height:36px}
.lat-nova{color:var(--fg)}
.compositor,.compositor:focus-within{box-shadow:none!important}
.compositor:focus-within{border-color:var(--acc)}

/* app do botao lateral: leve */
html.lite *:not(.gira):not(.gira *){animation:none!important;transition:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:none!important;text-shadow:none!important;filter:none!important}
.mais-antigas{display:block;margin:8px auto;padding:8px 16px;border-radius:12px;border:1px solid var(--ov3,#38323f);background:transparent;color:inherit;font-size:13px}
