:root{
  --bg:#14110c; --bg2:#1b1712; --line:#2c261d; --ink:#ece4d6; --ink2:#a89a86;
  --accent:#c98a3c; --me:#241d14; --clone:#1b1712; --err:#d98a6a;
  --serif:"Fraunces",Georgia,serif; --sans:"Inter",system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--sans);
  -webkit-font-smoothing:antialiased}
.hidden{display:none!important}
.muted{color:var(--ink2)} .err{color:var(--err);font-size:.85rem;min-height:1.2em}
.kicker{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 .4rem}

/* ── gate ── */
.gate{position:fixed;inset:0;display:grid;place-items:center;padding:24px;
  background:radial-gradient(120% 80% at 50% 0%,#1d1810 0%,var(--bg) 60%)}
.gate-card{width:min(420px,92vw)}
.gate-card h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.4rem,9vw,3.4rem);margin:.1em 0 .2em;letter-spacing:-.01em}
.gate-card input{width:100%;margin:18px 0 12px;padding:14px 16px;background:var(--bg2);
  border:1px solid var(--line);border-radius:12px;color:var(--ink);font-size:1rem;font-family:var(--sans)}
.gate-card input:focus{outline:none;border-color:var(--accent)}
.gate-card button{width:100%;padding:14px;background:var(--accent);color:#1a1308;border:none;
  border-radius:12px;font-weight:600;font-size:1rem;cursor:pointer}

/* ── app shell ── */
.app{display:flex;flex-direction:column;height:100dvh;max-width:760px;margin:0 auto}
.top{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;
  border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:5}
.who{display:flex;align-items:center;gap:10px}
.who .name{font-family:var(--serif);font-size:1.25rem}
.who .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent)}
.speak{display:flex;align-items:center;gap:7px;color:var(--ink2);font-size:.85rem;cursor:pointer}
.speak input{accent-color:var(--accent)}

/* ── thread ── */
.thread{flex:1;overflow-y:auto;padding:22px 18px 8px;display:flex;flex-direction:column;gap:14px}
.empty{margin:auto;text-align:center;max-width:30ch}
.empty .lead{font-family:var(--serif);font-size:1.3rem;line-height:1.4;color:var(--ink)}
.msg{max-width:82%;padding:12px 15px;border-radius:16px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word;font-size:.97rem}
.msg.me{align-self:flex-end;background:var(--me);border:1px solid var(--line);border-bottom-right-radius:5px}
.msg.clone{align-self:flex-start;background:var(--clone);border:1px solid var(--line);border-bottom-left-radius:5px}
.msg.clone .tools{display:flex;gap:12px;margin-top:8px}
.msg.clone .tools button{background:none;border:none;color:var(--ink2);font-size:.8rem;cursor:pointer;padding:0}
.msg.clone .tools button:hover{color:var(--accent)}
.msg .file-tag{display:inline-block;font-size:.78rem;color:var(--accent);margin-bottom:4px}
.typing{align-self:flex-start;color:var(--ink2);font-style:italic;font-family:var(--serif);font-size:1rem}

/* ── composer ── */
.composer{display:flex;align-items:flex-end;gap:8px;padding:12px 14px;border-top:1px solid var(--line);
  background:var(--bg);padding-bottom:max(12px,env(safe-area-inset-bottom))}
.composer textarea{flex:1;resize:none;max-height:140px;padding:12px 14px;background:var(--bg2);
  border:1px solid var(--line);border-radius:14px;color:var(--ink);font-family:var(--sans);font-size:1rem;line-height:1.4}
.composer textarea:focus{outline:none;border-color:var(--accent)}
.icon{width:44px;height:44px;flex:0 0 44px;border-radius:50%;border:1px solid var(--line);
  background:var(--bg2);color:var(--ink);font-size:1.2rem;cursor:pointer;display:grid;place-items:center}
.icon:active{transform:scale(.94)}
.icon.send{background:var(--accent);color:#1a1308;border:none;font-weight:700}
.icon.rec{background:var(--err);color:#1a1308;border:none;animation:pulse 1.1s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(217,138,106,.5)}50%{box-shadow:0 0 0 8px rgba(217,138,106,0)}}

/* ── modo fala (call) — estilo voz ── */
.callscreen{position:fixed;inset:0;z-index:20;background:linear-gradient(180deg,#1a1712 0%,#14110c 100%);
  display:flex;flex-direction:column;align-items:center;padding:max(28px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom))}
/* transcricao ao vivo no topo */
.call-transcript{flex:1;width:100%;max-width:560px;overflow-y:auto;display:flex;flex-direction:column;
  justify-content:flex-end;gap:14px;padding:14px 4px 8px}
.call-transcript .ct-me{align-self:flex-end;max-width:80%;background:#241d14;border:1px solid var(--line);
  padding:10px 14px;border-radius:16px;border-bottom-right-radius:5px;color:var(--ink);line-height:1.45}
.call-transcript .ct-clone{align-self:flex-start;max-width:88%;color:var(--ink);font-family:var(--serif);
  font-size:1.15rem;line-height:1.5}
/* orbe azul nuvem (referencia) */
.orb{width:128px;height:128px;border-radius:50%;margin:18px 0 6px;flex:0 0 auto;
  background:radial-gradient(circle at 35% 30%,#eaf4ff 0%,#9cd0ff 38%,#4a9eea 72%,#2f6fc0 100%);
  box-shadow:0 0 50px rgba(110,180,255,.45);transition:transform .15s ease}
.orb.listening{animation:breathe 2.4s ease-in-out infinite}
.orb.thinking{animation:spin 1.2s linear infinite}
.orb.speaking{animation:bounce .5s ease-in-out infinite}
@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.09)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes bounce{0%,100%{transform:scale(1)}50%{transform:scale(1.14)}}
.call-status{font-family:var(--sans);font-size:.95rem;color:var(--ink2);margin:0 0 18px;letter-spacing:.02em}
/* barra inferior: + / mic / X */
.call-bar{display:flex;align-items:center;justify-content:center;gap:26px;width:100%;max-width:560px}
.cbtn{width:60px;height:60px;border-radius:50%;border:1px solid var(--line);background:#221c15;color:var(--ink);
  font-size:1.4rem;cursor:pointer;display:grid;place-items:center}
.cbtn:active{transform:scale(.93)}
.cbtn.muted{background:var(--err);color:#1a1308;border:none}
.cbtn.end{background:#2a2018;color:var(--ink)}
