:root{--bg:#080808;--bg2:#111;--red:#ff2929;--fg:#fff;--mut:#9a9a9a;--line:#2a2a2a;--glow:0 0 18px rgba(255,41,41,.35)}
*{box-sizing:border-box}
html,body{height:100%;margin:0;background:var(--bg);color:var(--fg);font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
[hidden]{display:none!important}
button,input,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.muted{color:var(--mut)}.small{font-size:.8rem}.err{color:#ff6b6b;min-height:1.2em;font-size:.9rem}
.btn{border:1px solid var(--line);background:var(--bg2);border-radius:12px;padding:.65rem 1rem;cursor:pointer}
.btn.primary{background:var(--red);border-color:var(--red);color:#fff;font-weight:600}
.btn.primary:hover{box-shadow:var(--glow)}.btn:disabled{opacity:.5;cursor:not-allowed}.block{width:100%}
.link{background:none;border:0;color:var(--mut);cursor:pointer;text-align:left;padding:.25rem 0}.link:hover{color:#fff}.danger:hover{color:var(--red)}
.icon{background:none;border:0;cursor:pointer;font-size:1.2rem;padding:.4rem .6rem;border-radius:8px}.icon:hover{background:var(--bg2)}
.pill{font-size:.75rem;padding:.2rem .6rem;border-radius:99px;border:1px solid var(--line);color:var(--mut);white-space:nowrap}
.pill.ok{color:#5be37d;border-color:#1f6b33}.pill.bad{color:#ff6b6b;border-color:#7a2020}
input,textarea{width:100%;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:.7rem .9rem}
input:focus,textarea:focus{border-color:var(--red);box-shadow:var(--glow);outline:0}
label{display:block;margin:.7rem 0;font-size:.9rem;color:var(--mut)}label input{margin-top:.3rem;color:#fff}
#toast{position:fixed;top:12px;left:50%;transform:translateX(-50%);background:var(--bg2);border:1px solid var(--red);padding:.6rem 1rem;border-radius:12px;z-index:60;display:none;max-width:90vw}

/* auth */
.auth{min-height:100%;display:grid;place-items:center;padding:1rem;background:radial-gradient(circle at 50% 0,rgba(255,41,41,.15),transparent 60%)}
.auth-card{width:100%;max-width:400px;background:var(--bg2);border:1px solid var(--line);border-radius:20px;padding:1.5rem;text-align:center;box-shadow:var(--glow)}
.auth-card form,.auth-card #auth-form{text-align:left}.auth-logo{width:120px;height:120px;border-radius:50%}
.auth-card h1{margin:.4rem 0 0;letter-spacing:.1em}.tabs{display:flex;gap:.5rem;margin:1rem 0}
.tab{flex:1;background:none;border:0;border-bottom:2px solid var(--line);padding:.5rem;cursor:pointer;color:var(--mut)}.tab.on{color:#fff;border-color:var(--red)}

/* app */
.app{display:flex;height:100%;height:100dvh}
.side{width:290px;background:var(--bg2);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:.9rem;gap:.7rem;transition:margin .2s}
.app.collapsed .side{margin-left:-290px}
.brand{display:flex;align-items:center;gap:.6rem;font-weight:700;letter-spacing:.08em}.brand img{width:32px;height:32px;border-radius:8px}.brand b{color:var(--red)}.brand .icon{margin-left:auto}
.modes{display:flex;gap:.3rem}.mode{flex:1;border:1px solid var(--line);background:none;border-radius:10px;padding:.4rem;cursor:pointer;color:var(--mut);font-size:.85rem}
.mode.on{border-color:var(--red);color:#fff;box-shadow:var(--glow)}
.convs{flex:1;overflow:auto;display:flex;flex-direction:column;gap:2px}
.conv{background:none;border:0;border-radius:10px;padding:.55rem .7rem;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#ddd}
.conv:hover{background:#1b1b1b}.conv.on{background:#1f1212;border-left:3px solid var(--red)}
.side-foot{display:flex;flex-direction:column;gap:.1rem;border-top:1px solid var(--line);padding-top:.6rem}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.top{display:flex;align-items:center;gap:.4rem;padding:.6rem .8rem;padding-top:calc(.6rem + env(safe-area-inset-top,0px));border-bottom:1px solid var(--line)}
.ttl{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#ann .a{padding:.5rem 1rem;background:#2a1a00;border-bottom:1px solid #6b4a00;font-size:.9rem}
.msgs{flex:1;overflow:auto;padding:1rem;scroll-behavior:smooth}
.msg{max-width:820px;margin:0 auto 1rem;display:flex;gap:.7rem}
.msg .av{width:30px;height:30px;border-radius:8px;background:var(--bg2);border:1px solid var(--line);display:grid;place-items:center;flex:none;font-size:.8rem}
.msg.assistant .av{border-color:var(--red)}
.bub{min-width:0;flex:1;overflow-wrap:anywhere}
.msg.user .bub{background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:.6rem .9rem;white-space:pre-wrap}
.bub h1,.bub h2,.bub h3{margin:.8rem 0 .3rem}.bub p{margin:.4rem 0}.bub ul,.bub ol{padding-left:1.3rem}.bub a{color:var(--red)}
.bub code{background:#1b1b1b;padding:.1rem .35rem;border-radius:6px;font-size:.88em}
.code{position:relative;margin:.6rem 0;background:#0d0d0d;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.code .bar{display:flex;justify-content:space-between;align-items:center;padding:.3rem .7rem;background:#161616;font-size:.75rem;color:var(--mut)}
.code pre{margin:0;padding:.8rem;overflow:auto}.code pre code{background:none;padding:0}
.copy{background:none;border:1px solid var(--line);border-radius:8px;color:#ddd;cursor:pointer;font-size:.75rem;padding:.15rem .5rem}
.acts{display:flex;gap:.3rem;margin-top:.3rem}.acts button{background:none;border:0;cursor:pointer;opacity:.5}.acts button:hover,.acts button.on{opacity:1}
.empty{max-width:820px;margin:8vh auto 0;text-align:center}.empty img{width:110px;border-radius:50%;box-shadow:var(--glow)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.7rem;margin-top:1.2rem;text-align:left}
.card{background:var(--bg2);border:1px solid var(--line);border-radius:16px;padding:.9rem;cursor:pointer}.card:hover{border-color:var(--red);box-shadow:var(--glow)}
.card.off{opacity:.45;cursor:not-allowed}.card.off:hover{border-color:var(--line);box-shadow:none}
.dots span{display:inline-block;width:7px;height:7px;margin:0 2px;border-radius:50%;background:var(--red);animation:b 1s infinite}.dots span:nth-child(2){animation-delay:.15s}.dots span:nth-child(3){animation-delay:.3s}
@keyframes b{0%,80%,100%{opacity:.2}40%{opacity:1}}
.composer{padding:.7rem;padding-bottom:calc(.7rem + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);max-width:860px;width:100%;margin:0 auto}
.composer .row{display:flex;gap:.5rem;align-items:flex-end}textarea{resize:none;max-height:180px}
.retry{margin-left:.5rem}
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:20}
.only-m{display:none}
@media(max-width:800px){.side{position:fixed;inset:0 auto 0 0;z-index:30;margin-left:-300px;width:280px}.app.open .side{margin-left:0}.only-m{display:inline-block}.app.collapsed .side{margin-left:-300px}.app.open.collapsed .side{margin-left:0}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Suporte para Exportação em PDF */
@media print {
  body * { visibility: hidden; }
  #msgs, #msgs * { visibility: visible; }
  #msgs { position: absolute; left: 0; top: 0; width: 100%; background: #fff !important; color: #000 !important; }
  .msg.user .bub { background: #f0f0f0 !important; color: #000 !important; border: 1px solid #ccc !important; }
  .acts, .composer, .side, header.top, #toast { display: none !important; }
}

/* Atalhos Rápidos de Comandos */
.shortcuts-bar {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding: 4px 1rem 8px 1rem;
  margin-bottom: 4px;
  scrollbar-width: thin;
  scrollbar-color: var(--line) transparent;
  max-width: 860px;
  width: 100%;
  margin: 0 auto;
}
.shortcuts-bar::-webkit-scrollbar { height: 4px; }
.shortcuts-bar::-webkit-scrollbar-thumb { background: var(--line); border-radius: 4px; }
.shortcut-chip {
  background: var(--bg2);
  border: 1px solid var(--line);
  color: var(--mut);
  font-size: 0.75rem;
  padding: 4px 10px;
  border-radius: 20px;
  white-space: nowrap;
  cursor: pointer;
  transition: all 0.2s;
  flex: none;
}
.shortcut-chip:hover {
  border-color: var(--red);
  color: #fff;
  background: #1a0808;
}