/* ===========================================================
   Ferramentas — painel pessoal de engenharia ambiental (Ivan)
   Conceito: console de controle de ETE/ETA (SCADA/HMI) cruzado
   com caderno de campo. Fundo com grade técnica sutil, tipografia
   mono para dados/títulos, dupla ciano (fluxo) + âmbar (alerta),
   e "marcas de corte" nos cantos dos painéis como assinatura.
   =========================================================== */

@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap');

:root{
  --ink:#0a1416;
  --ink-2:#0d1a1c;
  --panel:#101d20;
  --panel-2:#16262a;
  --line:#20393d;
  --line-soft:rgba(45,212,200,.14);
  --grid-line:rgba(45,212,200,.05);
  --cyan:#2dd4c8;
  --cyan-dim:#1c8f87;
  --cyan-glow:rgba(45,212,200,.35);
  --amber:#f0a84e;
  --amber-glow:rgba(240,168,78,.35);
  --text:#e9f4f2;
  --muted:#799391;
  --ok:#3ddc97;
  --danger:#ff6b5b;
  --mono:'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --sans:'IBM Plex Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --radius:10px;
}

*{box-sizing:border-box;}

html{color-scheme:dark;}

body{
  margin:0;
  font-family:var(--sans);
  background:var(--ink);
  color:var(--text);
  min-height:100vh;
  padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
  background-image:
    linear-gradient(var(--grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  background-size:32px 32px;
  background-attachment:fixed;
}

[hidden]{display:none !important;}

a{color:inherit;}

::selection{background:var(--cyan-glow); color:var(--text);}

:focus-visible{outline:2px solid var(--cyan); outline-offset:2px;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; transition-duration:.001ms !important;}
}

/* ---------- cabeçalho (páginas de ferramenta) ---------- */

header{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  padding:16px 24px; border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, var(--ink-2), var(--ink));
  position:relative;
}
header::after{
  content:''; position:absolute; left:0; right:0; bottom:-1px; height:1px;
  background:linear-gradient(90deg, var(--cyan) 0%, transparent 28%);
  opacity:.6;
}
header a.voltar-link{
  color:var(--muted); text-decoration:none; font-family:var(--mono); font-size:.78rem;
  letter-spacing:.04em; flex-shrink:0; display:inline-flex; align-items:center; gap:6px;
  padding:6px 10px; border:1px solid var(--line); border-radius:7px; transition:border-color .15s,color .15s;
}
header a.voltar-link:hover{color:var(--cyan); border-color:var(--cyan-dim);}
header a{color:var(--muted); text-decoration:none; font-size:.9rem; flex-shrink:0;}
header a:hover{color:var(--text);}
header h1{
  font-family:var(--mono); font-size:1.02rem; font-weight:600; margin:0;
  letter-spacing:.01em; display:flex; align-items:center; gap:10px;
}
header h1::before{
  content:''; width:8px; height:8px; border-radius:50%; background:var(--cyan);
  box-shadow:0 0 0 3px var(--cyan-glow); flex-shrink:0;
  animation:pulso 2.6s ease-in-out infinite;
}
@keyframes pulso{
  0%,100%{opacity:1; box-shadow:0 0 0 3px var(--cyan-glow);}
  50%{opacity:.55; box-shadow:0 0 0 6px rgba(45,212,200,.12);}
}
header button{
  background:transparent; border:1px solid var(--line); color:var(--muted);
  padding:8px 14px; border-radius:7px; cursor:pointer; font-size:.82rem;
  font-family:var(--mono); letter-spacing:.02em; transition:border-color .15s, color .15s;
}
header button:hover{color:var(--cyan); border-color:var(--cyan-dim);}
@media (max-width:480px){
  header{padding:12px 16px;}
  main{padding:16px !important;}
}

/* ---------- layout ---------- */

main{padding:24px; max-width:1100px; margin:0 auto;}
.colunas{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.colunas3{display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px;}
@media (max-width:800px){ .colunas, .colunas3{grid-template-columns:1fr;} }

/* ---------- painéis (assinatura: marcas de corte nos cantos) ---------- */

section.bloco{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  padding:22px; margin-bottom:20px; position:relative;
}
section.bloco::before, section.bloco::after{
  content:''; position:absolute; width:12px; height:12px; pointer-events:none;
  border-color:var(--line-soft); opacity:.9; transition:border-color .2s, opacity .2s;
}
section.bloco::before{top:-1px; left:-1px; border-top:2px solid; border-left:2px solid; border-top-left-radius:4px;}
section.bloco::after{bottom:-1px; right:-1px; border-bottom:2px solid; border-right:2px solid; border-bottom-right-radius:4px;}
section.bloco:hover::before, section.bloco:hover::after,
section.bloco:focus-within::before, section.bloco:focus-within::after{
  border-color:var(--cyan); opacity:1;
}
section.bloco h2{
  font-family:var(--mono); font-size:.92rem; margin:0 0 14px; color:var(--cyan);
  text-transform:uppercase; letter-spacing:.06em; font-weight:600;
  display:flex; align-items:center; gap:8px;
}
section.bloco h3{
  font-size:.86rem; margin:18px 0 10px; color:var(--muted);
  text-transform:uppercase; letter-spacing:.05em; font-family:var(--mono); font-weight:500;
}
section.bloco .fonte{font-size:.74rem; color:var(--muted); margin-bottom:14px; line-height:1.5;}

/* ---------- formulários ---------- */

.campo{margin-bottom:13px;}
.campo label{
  display:block; font-size:.8rem; color:var(--muted); margin-bottom:5px;
  font-family:var(--sans);
}
.campo .unidade{font-size:.73rem; color:var(--muted); margin-left:4px; font-family:var(--mono);}
.campo input, .campo select{
  width:100%; padding:10px 12px; border-radius:7px; border:1px solid var(--line);
  background:var(--ink-2); color:var(--text); font-size:.95rem; font-family:var(--mono);
  transition:border-color .15s, box-shadow .15s;
}
.campo input:focus, .campo select:focus{
  border-color:var(--cyan); box-shadow:0 0 0 3px var(--cyan-glow); outline:none;
}
.campo input::placeholder{color:var(--muted); font-family:var(--sans);}

/* ---------- botões ---------- */

button.calcular, .btn-primario, .modal-botoes .btn-primario{
  width:100%; padding:13px; border:none; border-radius:8px;
  background:var(--cyan); color:#03211f; font-size:.92rem; font-weight:700;
  font-family:var(--mono); letter-spacing:.05em; text-transform:uppercase;
  cursor:pointer; margin:8px 0 20px; transition:filter .15s, box-shadow .15s, transform .1s;
  box-shadow:0 0 0 0 var(--cyan-glow);
}
button.calcular:hover, .btn-primario:hover{filter:brightness(1.08); box-shadow:0 0 20px -4px var(--cyan-glow);}
button.calcular:active, .btn-primario:active{transform:translateY(1px);}
.btn-secundario{
  background:transparent; border:1px solid var(--line) !important; color:var(--muted);
  font-family:var(--mono); letter-spacing:.03em;
}
.btn-secundario:hover{color:var(--text); border-color:var(--muted) !important;}

/* ---------- resultados ---------- */

.resultado-item{
  display:flex; justify-content:space-between; padding:8px 0; gap:10px;
  border-bottom:1px dashed var(--line); font-size:.88rem;
}
.resultado-item:last-child{border-bottom:none;}
.resultado-item span:first-child{color:var(--muted);}
.resultado-item .valor{
  font-weight:600; text-align:right; white-space:nowrap; font-family:var(--mono); color:var(--text);
}

.destaque{
  background:rgba(45,212,200,.08); border:1px solid var(--cyan-dim); border-radius:var(--radius);
  padding:14px; margin-bottom:14px; font-size:.95rem; text-align:center; font-weight:600;
  font-family:var(--mono); color:var(--cyan); letter-spacing:.02em;
}

.aviso{
  background:rgba(255,107,91,.08); border:1px solid rgba(255,107,91,.4); color:var(--danger);
  border-radius:var(--radius); padding:13px 15px; font-size:.85rem; margin-bottom:20px;
}

/* ---------- info button + popover ---------- */

.info-btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:20px; height:20px; border-radius:50%; background:transparent; border:1.5px solid var(--amber);
  color:var(--amber); font-size:.68rem; font-weight:700; font-style:normal; font-family:var(--mono);
  cursor:pointer; margin-left:5px; vertical-align:middle; padding:0;
  line-height:1; flex-shrink:0; transition:background .15s, color .15s;
}
.info-btn:hover{background:var(--amber); color:#241605;}
.info-popover{
  position:fixed; z-index:50; max-width:340px; background:var(--panel-2);
  border:1px solid var(--amber); border-radius:var(--radius); padding:13px 15px;
  font-size:.8rem; color:var(--text); box-shadow:0 12px 32px rgba(0,0,0,.5); white-space:pre-line;
}
.info-popover a{color:var(--cyan);}
.info-fundo{position:fixed; inset:0; z-index:40;}

/* ---------- tabelas ---------- */

table.ref, table.pecas-tabela, table.bomba{
  width:100%; border-collapse:collapse; font-size:.83rem;
}
table.ref th, table.ref td,
.pecas-tabela th, .pecas-tabela td,
table.bomba th, table.bomba td{
  padding:7px 9px; border-bottom:1px solid var(--line);
}
table.ref{text-align:right;}
table.ref th:first-child, table.ref td:first-child{text-align:left;}
table.ref th, .pecas-tabela th, table.bomba th{
  color:var(--cyan); font-weight:600; font-family:var(--mono);
  text-transform:uppercase; letter-spacing:.04em; font-size:.72rem; text-align:inherit;
}
table.ref tr.selecionado td{background:rgba(45,212,200,.1); font-weight:700; color:var(--text);}

.pecas-tabela{font-size:.85rem;}
.pecas-tabela th{text-align:left; padding:4px 8px; font-size:.7rem;}
.pecas-tabela td{padding:4px 8px;}
.pecas-tabela td.k{color:var(--muted); text-align:center; width:60px; font-family:var(--mono);}
.pecas-tabela td.qtd{width:70px;}
.pecas-tabela input{
  width:100%; padding:6px 8px; border-radius:6px; border:1px solid var(--line);
  background:var(--ink-2); color:var(--text); font-size:.85rem; font-family:var(--mono);
}
.pecas-tabela input:focus{border-color:var(--cyan); outline:none; box-shadow:0 0 0 2px var(--cyan-glow);}

.tabela-wrap{overflow-x:auto;}
table.bomba{white-space:nowrap;}
table.bomba th, table.bomba td{text-align:right;}
table.bomba th:first-child, table.bomba td:first-child{text-align:left; color:var(--muted);}

/* ---------- status / badges ---------- */

.status{
  text-align:center; font-weight:700; font-size:1.15rem; padding:14px; border-radius:var(--radius);
  margin-top:10px; font-family:var(--mono); letter-spacing:.03em;
  display:flex; align-items:center; justify-content:center; gap:10px;
}
.status::before{content:''; width:10px; height:10px; border-radius:50%; flex-shrink:0;}
.status.ok{background:rgba(61,220,151,.1); color:var(--ok); border:1px solid rgba(61,220,151,.35);}
.status.ok::before{background:var(--ok); box-shadow:0 0 8px var(--ok);}
.status.nok{background:rgba(255,107,91,.1); color:var(--danger); border:1px solid rgba(255,107,91,.35);}
.status.nok::before{background:var(--danger); box-shadow:0 0 8px var(--danger);}

.verif-item{
  display:grid; grid-template-columns:1fr minmax(120px,auto) 90px; align-items:center;
  padding:9px 0; border-bottom:1px dashed var(--line); font-size:.85rem; gap:10px;
}
.verif-item:last-child{border-bottom:none;}
.verif-info{text-align:center;}
.verif-faixa, .verif-vmp{font-size:.72rem; color:var(--muted); font-family:var(--mono);}
.verif-badge{
  font-size:.68rem; font-weight:700; padding:3px 10px; border-radius:20px; white-space:nowrap;
  justify-self:end; font-family:var(--mono); letter-spacing:.04em;
  display:inline-flex; align-items:center; gap:5px;
}
.verif-badge::before{content:''; width:6px; height:6px; border-radius:50%;}
.verif-badge.ok{background:rgba(61,220,151,.12); color:var(--ok);}
.verif-badge.ok::before{background:var(--ok); box-shadow:0 0 6px var(--ok);}
.verif-badge.atencao{background:rgba(255,107,91,.12); color:var(--danger);}
.verif-badge.atencao::before{background:var(--danger); box-shadow:0 0 6px var(--danger);}
@media (max-width:700px){
  .verif-item{grid-template-columns:1fr; gap:2px; text-align:left;}
  .verif-info, .verif-vmp{text-align:left;}
  .verif-badge{justify-self:start;}
}

/* ---------- alternador de método ---------- */

.metodo-opcoes{display:flex; gap:10px; margin-bottom:14px; flex-wrap:wrap;}
.metodo-opcao{
  flex:1; min-width:220px; border:1px solid var(--line); border-radius:var(--radius);
  padding:13px 15px; cursor:pointer; background:var(--ink-2); transition:border-color .15s, background .15s;
}
.metodo-opcao:hover{border-color:var(--cyan-dim);}
.metodo-opcao.selecionado{border-color:var(--cyan); background:rgba(45,212,200,.07);}
.metodo-opcao input{margin-right:8px; accent-color:var(--cyan);}
.metodo-opcao .desc{font-size:.76rem; color:var(--muted); margin-top:4px; margin-left:22px;}

/* ---------- mensagens ---------- */

.erro{color:var(--danger); font-size:.85rem; text-align:center; min-height:1.2em; margin-bottom:8px; font-family:var(--mono);}
.vazio{color:var(--muted); text-align:center; padding:32px 0; font-size:.9rem;}

/* ===========================================================
   HUB (index.html) — tela de login + grade de ferramentas
   =========================================================== */

.login-tela{display:flex; align-items:center; justify-content:center; min-height:100vh; padding:24px;}
.login-box{
  background:var(--panel); border:1px solid var(--line); border-radius:14px;
  padding:36px 30px; width:100%; max-width:340px; text-align:center; position:relative;
}
.login-box::before, .login-box::after{
  content:''; position:absolute; width:14px; height:14px; border-color:var(--cyan-dim);
}
.login-box::before{top:-1px; left:-1px; border-top:2px solid; border-left:2px solid; border-top-left-radius:6px;}
.login-box::after{bottom:-1px; right:-1px; border-bottom:2px solid; border-right:2px solid; border-bottom-right-radius:6px;}
.login-box h1{
  font-size:1.1rem; margin:0 0 26px; font-family:var(--mono); letter-spacing:.08em;
  text-transform:uppercase; color:var(--text); display:flex; align-items:center; justify-content:center; gap:10px;
}
.login-box h1::before{
  content:''; width:9px; height:9px; border-radius:50%; background:var(--cyan);
  box-shadow:0 0 0 3px var(--cyan-glow); animation:pulso 2.6s ease-in-out infinite;
}
.login-box input{
  width:100%; padding:12px 14px; border-radius:8px; border:1px solid var(--line);
  background:var(--ink-2); color:var(--text); font-size:1rem; margin-bottom:14px; font-family:var(--mono);
}
.login-box input:focus{border-color:var(--cyan); outline:none; box-shadow:0 0 0 3px var(--cyan-glow);}
.login-box button{
  width:100%; padding:12px; border:none; border-radius:8px; background:var(--cyan);
  color:#03211f; font-size:.92rem; font-weight:700; cursor:pointer; font-family:var(--mono);
  letter-spacing:.05em; text-transform:uppercase; transition:filter .15s;
}
.login-box button:hover{filter:brightness(1.08);}

.tela-app-header{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px;
  padding:16px 24px; border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, var(--ink-2), var(--ink)); position:relative;
}
.tela-app-header::after{
  content:''; position:absolute; left:0; right:0; bottom:-1px; height:1px;
  background:linear-gradient(90deg, var(--cyan) 0%, transparent 28%); opacity:.6;
}
.tela-app-header h1{
  font-family:var(--mono); font-size:1.05rem; margin:0; letter-spacing:.02em;
  display:flex; align-items:center; gap:10px;
}
.tela-app-header h1::before{
  content:''; width:8px; height:8px; border-radius:50%; background:var(--cyan);
  box-shadow:0 0 0 3px var(--cyan-glow); flex-shrink:0; animation:pulso 2.6s ease-in-out infinite;
}
.tela-app-header .acoes-topo{display:flex; gap:8px;}
.tela-app-header button{
  background:transparent; border:1px solid var(--line); color:var(--muted);
  padding:8px 14px; border-radius:7px; cursor:pointer; font-size:.8rem;
  font-family:var(--mono); letter-spacing:.02em; transition:border-color .15s, color .15s;
}
.tela-app-header button:hover{color:var(--cyan); border-color:var(--cyan-dim);}
@media (max-width:480px){
  .tela-app-header{padding:12px 16px;}
}

.grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:16px;}
.card{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  padding:22px 18px; text-align:center; color:var(--text); text-decoration:none;
  transition:border-color .15s, transform .1s; display:flex; flex-direction:column;
  align-items:center; gap:9px; position:relative; font-size:.95rem;
}
.card::before, .card::after{
  content:''; position:absolute; width:10px; height:10px; border-color:var(--line-soft);
  opacity:0; transition:opacity .15s, border-color .15s;
}
.card::before{top:-1px; left:-1px; border-top:2px solid; border-left:2px solid; border-top-left-radius:4px;}
.card::after{bottom:-1px; right:-1px; border-bottom:2px solid; border-right:2px solid; border-bottom-right-radius:4px;}
.card:hover{border-color:var(--cyan-dim); transform:translateY(-1px);}
.card:hover::before, .card:hover::after{opacity:1; border-color:var(--cyan);}
.card .icone{color:var(--cyan); display:flex;}
.card .icone svg{width:26px; height:26px;}

.card-nova-pasta{
  background:transparent; border:1px dashed var(--line); cursor:pointer;
  font-family:var(--mono); font-size:.85rem; letter-spacing:.03em; color:var(--muted);
  text-transform:uppercase;
}
.card-nova-pasta .icone{color:var(--muted); font-size:1.4rem; font-weight:700;}
.card-nova-pasta:hover{border-color:var(--amber); color:var(--amber);}
.card-nova-pasta:hover .icone{color:var(--amber);}

.voltar{
  display:inline-flex; align-items:center; gap:6px; color:var(--muted); text-decoration:none;
  font-size:.82rem; margin-bottom:18px; cursor:pointer; background:none; border:none; padding:0;
  font-family:var(--mono); letter-spacing:.02em; transition:color .15s;
}
.voltar:hover{color:var(--cyan);}
.cabecalho-pasta-linha{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-bottom:18px;}
.titulo-pasta{
  font-size:1rem; color:var(--text); margin:0; font-family:var(--mono); letter-spacing:.02em;
  display:flex; align-items:center; gap:8px;
}
.titulo-pasta .icone{color:var(--amber); display:flex;}
.titulo-pasta .icone svg{width:20px; height:20px;}
.acoes-pasta{display:flex; gap:8px;}
.acoes-pasta button{
  background:transparent; border:1px solid var(--line); color:var(--muted);
  padding:6px 12px; border-radius:7px; cursor:pointer; font-size:.76rem; font-family:var(--mono);
  transition:border-color .15s, color .15s;
}
.acoes-pasta button:hover{color:var(--cyan); border-color:var(--cyan-dim);}

/* ---------- modais ---------- */

.modal-fundo{
  display:flex; position:fixed; inset:0; background:rgba(3,8,9,.72); backdrop-filter:blur(2px);
  align-items:center; justify-content:center; padding:24px; z-index:60;
}
.modal{
  background:var(--panel); border:1px solid var(--line); border-radius:14px;
  padding:26px; width:100%; max-width:340px; position:relative;
}
.modal::before, .modal::after{
  content:''; position:absolute; width:12px; height:12px; border-color:var(--cyan-dim);
}
.modal::before{top:-1px; left:-1px; border-top:2px solid; border-left:2px solid; border-top-left-radius:6px;}
.modal::after{bottom:-1px; right:-1px; border-bottom:2px solid; border-right:2px solid; border-bottom-right-radius:6px;}
.modal h2{
  margin:0 0 16px; font-size:1rem; font-family:var(--mono); text-transform:uppercase; letter-spacing:.05em;
  color:var(--cyan);
}
.modal input{
  width:100%; padding:11px 13px; border-radius:8px; border:1px solid var(--line);
  background:var(--ink-2); color:var(--text); margin-bottom:10px; font-family:var(--mono);
}
.modal input:focus{border-color:var(--cyan); outline:none; box-shadow:0 0 0 3px var(--cyan-glow);}
.modal-botoes{display:flex; gap:8px; margin-top:8px;}
.modal-botoes button{
  flex:1; padding:11px; border-radius:8px; border:none; cursor:pointer; font-weight:700;
  font-family:var(--mono); letter-spacing:.03em; font-size:.85rem; text-transform:uppercase;
}


/* ---- avaliacao por IA ---- */
#bloco-ia .ia-carregando{
  font-family:var(--mono); font-size:.85rem; color:var(--cyan);
  padding:14px 0; letter-spacing:.03em;
}
#bloco-ia .ia-texto{
  margin-top:14px; padding:16px; border-radius:10px;
  background:var(--ink-2); border:1px solid var(--line); border-left:3px solid var(--cyan);
  font-size:.9rem; line-height:1.65; color:var(--text); white-space:normal;
}
#bloco-ia .ia-texto strong{color:var(--cyan);}
#bloco-ia .ia-rodape{
  margin-top:10px; font-size:.72rem; color:var(--muted); font-family:var(--mono);
  letter-spacing:.03em;
}
.card-menu{
  position:absolute; top:8px; right:8px; z-index:2;
  background:transparent; border:1px solid var(--line); color:var(--muted);
  border-radius:6px; width:26px; height:26px; line-height:1; cursor:pointer;
  font-size:1rem; display:none; align-items:center; justify-content:center; padding:0;
}
.card{position:relative;}
.modo-editar .card-menu{display:flex;}
.card-menu:hover{border-color:var(--danger); color:var(--danger);}
.lista-ocultas{margin-top:22px;}
.lista-ocultas h3{
  font-family:var(--mono); font-size:.8rem; text-transform:uppercase; letter-spacing:.05em;
  color:var(--muted); margin:0 0 10px;
}
.item-oculto{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:10px 12px; border:1px dashed var(--line); border-radius:8px; margin-bottom:8px;
  font-size:.85rem; color:var(--muted);
}
.item-oculto button{
  background:transparent; border:1px solid var(--line); color:var(--cyan);
  border-radius:6px; padding:6px 10px; cursor:pointer; font-family:var(--mono); font-size:.75rem;
}
.item-oculto button:hover{border-color:var(--cyan);}

/* ---- conversa com a IA ---- */
#bloco-ia .ia-chat-titulo{
  margin:22px 0 10px; font-family:var(--mono); font-size:.8rem; text-transform:uppercase;
  letter-spacing:.05em; color:var(--cyan);
}
#ia-historico{max-height:420px; overflow-y:auto; padding-right:4px;}
#bloco-ia .ia-msg{
  margin-bottom:12px; padding:12px 14px; border-radius:10px; font-size:.88rem; line-height:1.6;
  border:1px solid var(--line);
}
#bloco-ia .ia-msg-eu{background:transparent; border-style:dashed;}
#bloco-ia .ia-msg-ia{background:var(--ink-2); border-left:3px solid var(--cyan);}
#bloco-ia .ia-quem{
  display:block; font-family:var(--mono); font-size:.68rem; text-transform:uppercase;
  letter-spacing:.06em; color:var(--muted); margin-bottom:6px;
}
#bloco-ia .ia-chat-entrada{display:flex; gap:8px; align-items:stretch; margin-top:6px;}
#bloco-ia .ia-chat-entrada textarea{
  flex:1; padding:11px 13px; border-radius:8px; border:1px solid var(--line);
  background:var(--ink-2); color:var(--text); font-family:inherit; font-size:.88rem; resize:vertical;
}
#bloco-ia .ia-chat-entrada textarea:focus{
  border-color:var(--cyan); outline:none; box-shadow:0 0 0 3px var(--cyan-glow);
}
#bloco-ia .ia-chat-entrada button{
  padding:0 18px; border-radius:8px; border:none; cursor:pointer; font-weight:700;
  font-family:var(--mono); font-size:.8rem; text-transform:uppercase; letter-spacing:.03em;
  background:var(--cyan); color:#04211f;
}
#bloco-ia .ia-chat-entrada button:disabled{opacity:.5; cursor:default;}
@media(max-width:480px){
  #bloco-ia .ia-chat-entrada{flex-direction:column;}
  #bloco-ia .ia-chat-entrada button{padding:12px;}
}
