:root {
  color-scheme: dark;
  --bg:#050d16; --panel:#0a1928; --panel2:#102438; --ink:#e4f3fb;
  --muted:#9bb1c5; --cyan:#65e6f0; --teal:#35c8d5; --line:#203b50;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink); font-size:15px;
}
* { box-sizing:border-box; }
[hidden] { display:none!important; }
body { margin:0; background:var(--bg); }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:default; opacity:.45; }
input,select,textarea { border:1px solid var(--line); border-radius:9px; padding:12px; background:#081725; color:var(--ink); width:100%; }
input:focus,select:focus,textarea:focus,button:focus-visible { outline:2px solid var(--cyan); outline-offset:3px; }
textarea { resize:vertical; line-height:1.6; }
label { display:block; font-weight:600; font-size:.87rem; margin:16px 0 7px; }
h1,h2,h3,p { margin-top:0; }
button { transition:background .18s,border-color .18s; }
.eyebrow { font-size:.68rem; letter-spacing:.18em; font-weight:700; color:#8daec5; }
.primary { background:var(--cyan); color:#06202b; border:1px solid #8bf5fb; border-radius:9px; padding:13px 20px; font-weight:700; display:inline-flex; gap:25px; align-items:center; justify-content:center; }
.primary:hover { background:#9ff6fb; }
.login-page { min-height:100vh; display:grid; grid-template-columns:1.1fr 1fr; }
.login-brand { background:radial-gradient(ellipse at 45% 30%,#0a3246,transparent 55%),#040c15; border-right:1px solid var(--line); padding:48px 13%; display:flex; flex-direction:column; align-items:flex-start; }
.login-brand .eyebrow { color:var(--cyan); }
.login-brand h1 { font-size:clamp(38px,4.8vw,65px); line-height:1.12; letter-spacing:-.04em; font-weight:500; margin:15px 0 25px; }
.login-brand>p:not(.eyebrow) { max-width:330px; color:var(--muted); line-height:1.7; }
.login-orbit { width:190px; aspect-ratio:1; border:2px solid #57d7e9; border-radius:50%; display:grid; place-items:center; box-shadow:0 0 35px #4ee8f01d,inset 0 0 25px #4ee8f02b; outline:1px dashed #387991; outline-offset:13px; margin:10px 0 45px; }
.login-orbit span { font:700 1.1rem Consolas,monospace; letter-spacing:.08em; color:#d1fbff; text-shadow:0 0 15px #5befff; }
.version { color:#86a4b9; font-size:.6rem; letter-spacing:.14em; margin-top:auto; padding-top:45px; }
.login-form { align-self:center; width:min(390px,80%); margin:50px auto; }
.login-form h2 { font-size:30px; letter-spacing:-.025em; margin:16px 0; }
.login-form>p { color:var(--muted); line-height:1.6; }
.login-form .primary { width:100%; justify-content:space-between; margin-top:24px; }
.footnote { font-size:.78rem; margin-top:35px; }
.error { color:#ffb1b8; font-size:.86rem; line-height:1.6; min-height:24px; padding-top:10px; }
.workspace { display:grid; grid-template-columns:235px 1fr; min-height:100vh; }
.sidebar { background:linear-gradient(180deg,#091724,#050d16); border-right:1px solid var(--line); color:var(--ink); padding:30px 20px; display:flex; flex-direction:column; position:sticky; top:0; height:100vh; }
.brand-row { display:flex; align-items:center; gap:13px; margin-bottom:40px; }
.monogram { height:44px; width:44px; display:grid; place-items:center; border:1px solid #4299af; border-radius:50%; font-size:26px; color:#c6fbff; box-shadow:0 0 18px #51e2ef14; }
.brand-row strong { font-size:1rem; letter-spacing:.17em; }
.brand-row span { display:block; font-size:.58rem; letter-spacing:.25em; color:#88a7bc; margin-top:5px; }
.sidebar select { background:#0e2233; font-size:.83rem; margin-bottom:22px; }
nav { display:grid; gap:7px; }
.nav-button { background:transparent; border:1px solid transparent; text-align:left; padding:12px 14px; color:#afc3d2; border-radius:8px; }
.nav-button:hover { background:#102536; }
.nav-button.active { background:#0f2c3d; color:#b9f8ff; border-color:#26586c; border-left:3px solid var(--cyan); }
.sidebar-section { margin-top:32px; }
.new-chat { background:none; border:1px solid var(--line); padding:10px; width:100%; color:#b1cedc; border-radius:7px; text-align:left; font-size:.77rem; }
.history { display:grid; gap:4px; margin-top:12px; max-height:34vh; overflow:auto; }
.history button { color:#a7bfce; background:transparent; border:0; font-size:.76rem; text-align:left; padding:9px 4px; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; }
.sidebar-bottom { margin-top:auto; display:grid; grid-template-columns:1fr auto; align-items:center; padding-top:22px; border-top:1px solid var(--line); gap:14px; font-size:.8rem; }
.sidebar-bottom button { background:none; border:0; color:var(--cyan); }
.sidebar-bottom small { grid-column:1/-1; font-size:.52rem; letter-spacing:.1em; color:#7f9db2; }
.main-area { padding:0 5%; max-width:1440px; width:100%; margin:0 auto; align-self:start; background-image:radial-gradient(ellipse at 50% 27%,#0a2c3c36,transparent 60%); }
.topbar { height:94px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); gap:15px; }
.topbar .eyebrow { margin:0 0 8px; }
.topbar h1 { font-size:1.25rem; margin:0; font-weight:500; }
.privacy-badge { font-size:.68rem; color:#a0ddd9; padding:7px 11px; border:1px solid #244c50; border-radius:30px; background:#0c2729; white-space:nowrap; }
.notice { background:#302917; color:#f0d598; border:1px solid #625332; border-radius:9px; padding:13px 17px; line-height:1.6; font-size:.83rem; margin-top:18px; }
.chat-panel { display:flex; flex-direction:column; min-height:calc(100vh - 94px); max-width:940px; margin:auto; }
.jarvis-console { display:grid; grid-template-columns:1fr min(285px,42vw) 1fr; align-items:center; justify-content:center; column-gap:36px; padding:24px 0 6px; position:sticky; top:0; z-index:3; background:radial-gradient(ellipse at 50% 45%,#0b2839bc,transparent 65%),linear-gradient(180deg,#050d16fa,#050d16f2); }
.jarvis-orb { position:relative; width:100%; aspect-ratio:1; grid-column:2; grid-row:1; }
.hud-rings { position:relative; display:block; width:100%; height:100%; overflow:visible; filter:drop-shadow(0 0 5px #54ddef65); }
.hud-rings circle,.hud-rings path { fill:none; }
.hud-guide { stroke:#2d6478; stroke-width:.8; }
.hud-ticks { stroke:#6ac4dc; stroke-width:5; stroke-dasharray:1 5; opacity:.55; }
.hud-rotor { transform-origin:170px 170px; animation:hud-rotate 18s linear infinite; animation-play-state:paused; }
.hud-outer { stroke:#80e8ee; stroke-width:2.5; }
.hud-outer .hud-gold { stroke:#d2b365; stroke-width:3; opacity:.8; }
.hud-middle { stroke:#439fc6; stroke-width:9; animation-direction:reverse; }
.hud-middle .hud-fine { stroke:#79e6f3; stroke-width:1; }
.hud-inner { stroke:#70d7e2; stroke-width:4; animation-duration:12s; }
.hud-inner-ticks { stroke:#78b4d2; stroke-width:3; stroke-dasharray:1 3; opacity:.65; }
.hud-core-border { stroke:#34768d; stroke-width:1; }
.hud-crosshair { stroke:#54d7e9; stroke-width:1; }
.hud-halo { position:absolute; inset:16%; border-radius:50%; background:radial-gradient(circle,#13adc51a,#29d4e909 62%,transparent 72%); box-shadow:0 0 38px #13cae518; }
.hud-core { position:absolute; inset:31% 13%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.hud-core-caption { color:#7eafc3; letter-spacing:.22em; font-size:.43rem; white-space:nowrap; }
.hud-core strong { font:700 clamp(16px,1.8vw,24px) Consolas,"Courier New",monospace; letter-spacing:.06em; color:#dafbff; text-shadow:0 0 14px #6feeff6b; margin:11px 0 13px; white-space:nowrap; }
.hud-wave { height:21px; display:flex; gap:4px; align-items:center; }
.hud-wave i { display:block; width:3px; height:3px; background:#65e6f0; border-radius:3px; box-shadow:0 0 7px #54e9f48c; animation:hud-wave .8s ease-in-out infinite alternate; animation-play-state:paused; }
.hud-wave i:nth-child(2n) { animation-delay:-.35s; }
.hud-wave i:nth-child(3n) { animation-delay:-.6s; }
.hud-wave i:nth-child(4n) { animation-delay:-.15s; }
.hud-side { font-family:Consolas,monospace; align-self:center; max-width:160px; color:#6d9db5; }
.hud-side-left { justify-self:end; text-align:right; }
.hud-side-right { justify-self:start; }
.hud-side span { font-size:.55rem; letter-spacing:.22em; }
.hud-side strong { display:block; font-size:.72rem; letter-spacing:.12em; color:#a6dbe8; margin-top:7px; font-weight:400; }
.hud-side i { display:block; width:75px; height:1px; margin:15px 0; background:linear-gradient(90deg,transparent,#419bb3); }
.hud-side-left i { margin-left:auto; }
.hud-side-right i { transform:rotate(180deg); }
.hud-side small { font-size:.55rem; line-height:1.7; letter-spacing:.15em; }
.hud-caption { grid-column:1/-1; display:flex; gap:9px; justify-content:center; align-items:center; color:#a3dce7; font-size:.7rem; letter-spacing:.1em; margin:8px 0 13px; }
.hud-led { width:5px; height:5px; background:#71acb8; border-radius:50%; }
.voice-controls { grid-column:1/-1; display:flex; justify-content:center; gap:8px; flex-wrap:wrap; }
.voice-controls button,.read-answer,.microphone-controls button { border:1px solid #2c566b; color:#a3e7ef; background:#0a2130; border-radius:6px; padding:8px 12px; font-size:.69rem; }
.voice-controls button:hover,.read-answer:hover,.microphone-controls button:hover { background:#14384a; }
.voice-controls button[aria-pressed="true"] { border-color:#5acee0; color:#d9ffff; background:#144354; }
.voice-note { grid-column:1/-1; text-align:center; color:#8aa8bc; font-size:.62rem; line-height:1.6; margin:9px 0 0; }
.jarvis-console[data-state="thinking"] .hud-rotor { animation-play-state:running; animation-duration:10s; }
.jarvis-console[data-state="thinking"] .hud-led { background:#e4c371; }
.jarvis-console[data-state="speaking"] .hud-rotor { animation-play-state:running; animation-duration:3.6s; }
.jarvis-console[data-state="speaking"] .hud-inner { animation-duration:2.5s; }
.jarvis-console[data-state="speaking"] .hud-wave i { animation-play-state:running; }
.jarvis-console[data-state="speaking"] .hud-halo { animation:hud-pulse 1.15s ease-in-out infinite alternate; }
.jarvis-console[data-state="speaking"] .hud-led { background:#a2ffff; box-shadow:0 0 8px #65e6f0; }
.jarvis-console[data-state="paused"] .hud-led { background:#e4c371; }
.has-messages .jarvis-console { grid-template-columns:155px 1fr; column-gap:24px; padding:12px 16px; border-bottom:1px solid var(--line); }
.has-messages .jarvis-orb { grid-column:1; grid-row:1/4; width:150px; }
.has-messages .hud-core strong { font-size:13px; margin:6px 0; }
.has-messages .hud-core-caption { font-size:.3rem; }
.has-messages .hud-wave { height:10px; gap:2px; }
.has-messages .hud-wave i { width:2px; }
.has-messages .hud-side { display:none; }
.has-messages .hud-caption { grid-column:2; grid-row:1; align-self:end; margin:5px 0 12px; }
.has-messages .voice-controls { grid-column:2; grid-row:2; }
.has-messages .voice-note { grid-column:2; grid-row:3; align-self:start; }
.welcome { text-align:center; padding:25px 10px 22px; }
.welcome .eyebrow { font-size:.61rem; }
.welcome h2 { font-size:clamp(25px,2.8vw,34px); font-weight:500; letter-spacing:-.025em; margin:13px 0; }
.welcome>p:not(.eyebrow) { color:var(--muted); max-width:530px; margin:0 auto; line-height:1.7; font-size:.87rem; }
.suggestions { display:flex; justify-content:center; gap:12px; margin-top:23px; }
.suggestions button { background:#0a1b2a; border:1px solid var(--line); border-radius:10px; padding:15px 18px; text-align:left; max-width:260px; color:#a8c7d9; font-size:.77rem; line-height:1.6; }
.suggestions button:hover { border-color:#3a7b96; background:#102b3c; }
.composer { background:#0b1d2d; border:1px solid #30536a; border-radius:13px; padding:14px 17px; box-shadow:0 8px 30px #0003; margin-top:auto; }
.composer textarea { border:0; background:transparent; padding:5px; resize:none; min-height:65px; }
.composer textarea::placeholder { color:#8aa5b9; }
.composer-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.composer-footer>div { display:flex; gap:18px; }
.check { display:flex; gap:7px; align-items:center; font-size:.67rem; color:#a4bccc; font-weight:400; margin:0; }
.check input { width:auto; accent-color:var(--teal); }
.composer .primary { font-size:.78rem; padding:10px 17px; gap:15px; }
.chat-availability { font-size:.65rem; color:#8ba4b8; text-align:center; line-height:1.6; margin:12px 0 20px; }
.messages { padding:20px 0 25px; display:grid; gap:22px; }
.messages:empty { display:none; }
.message { max-width:95%; line-height:1.8; font-size:.93rem; white-space:pre-wrap; overflow-wrap:anywhere; }
.message.user { margin-left:auto; background:#122e41; border:1px solid #244d66; border-radius:13px 13px 3px 13px; padding:15px 20px; max-width:80%; }
.message.assistant { padding:10px 5px; }
.message .who { display:block; font-size:.64rem; font-weight:700; letter-spacing:.13em; color:var(--cyan); margin-bottom:8px; }
.message .sources { white-space:normal; font-size:.7rem; color:var(--muted); margin-top:14px; }
.read-answer { display:block; margin-top:12px; }
.content-panel { max-width:800px; margin:42px auto; }
.content-panel h2 { font-size:30px; font-weight:500; letter-spacing:-.025em; margin:12px 0; }
.content-panel>p:not(.eyebrow) { color:var(--muted); line-height:1.7; }
.memory-form { padding:25px; background:var(--panel); border:1px solid var(--line); border-radius:12px; margin-top:26px; }
.memory-form>label:first-child { margin-top:0; }
.memory-form .primary { margin-top:20px; }
.form-row { display:grid; grid-template-columns:1.6fr 1fr; gap:20px; }
.form-row input,.form-row select { margin-top:8px; }
.memory-list { display:grid; gap:14px; margin-top:25px; }
.info-card,.memory-card { border:1px solid var(--line); border-radius:12px; padding:20px; background:var(--panel); line-height:1.7; }
.memory-card p { white-space:pre-wrap; overflow-wrap:anywhere; margin-bottom:12px; }
.memory-card small { color:var(--muted); font-size:.73rem; }
.memory-card button { background:none; color:#ffb3ba; border:0; float:right; font-size:.74rem; }
.status-list { display:grid; gap:13px; margin:28px 0; }
.status-item { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:20px; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.status-item span { font-size:.73rem; color:var(--muted); }
.info-card h3 { font-size:1rem; margin-bottom:6px; }
.info-card p { font-size:.85rem; color:var(--muted); margin-bottom:0; }
.empty { color:var(--muted); font-size:.84rem; padding:20px 0; line-height:1.7; }
.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; }
@keyframes hud-rotate { to { transform:rotate(360deg); } }
@keyframes hud-wave { from { height:3px; } to { height:20px; } }
@keyframes hud-pulse { from { opacity:.55; transform:scale(.97); } to { opacity:1; transform:scale(1.06); box-shadow:0 0 45px #29d7eb45; } }
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; }
  .jarvis-console[data-state="speaking"] .hud-halo { box-shadow:0 0 40px #29d7eb55; }
  .jarvis-console[data-state="speaking"] .hud-wave i:nth-child(2n) { height:15px; }
}
@media (max-width:780px) {
  .login-page { grid-template-columns:1fr; }
  .login-brand { padding:30px 10%; min-height:270px; border-right:0; border-bottom:1px solid var(--line); }
  .login-orbit { width:115px; margin:0 0 35px; }
  .login-orbit span { font-size:.7rem; }
  .login-brand h1 { font-size:36px; margin:5px 0 15px; }
  .login-brand h1 br { display:none; }
  .login-brand>p:not(.eyebrow),.version { display:none; }
  .login-form { margin:35px auto; width:80%; }
  .workspace { grid-template-columns:1fr; }
  .sidebar { height:auto; position:relative; padding:18px 6%; }
  .brand-row { margin-bottom:17px; }
  .sidebar .eyebrow,.sidebar-section,.sidebar-bottom small { display:none; }
  .sidebar select { margin-bottom:14px; }
  .sidebar nav { grid-template-columns:repeat(3,1fr); }
  .nav-button { text-align:center; padding:10px 6px; font-size:.8rem; }
  .sidebar-bottom { margin-top:15px; padding-top:12px; }
  .main-area { padding:0 5%; }
  .topbar { height:80px; }
  .topbar h1 { font-size:1.1rem; }
  .privacy-badge { font-size:.58rem; padding:6px 8px; }
  .chat-panel { min-height:calc(100vh - 350px); }
  .jarvis-console { grid-template-columns:1fr; padding-top:20px; }
  .jarvis-orb { grid-column:1; width:min(260px,70vw); justify-self:center; }
  .hud-side { display:none; }
  .hud-core strong { font-size:21px; }
  .has-messages .jarvis-console { grid-template-columns:112px 1fr; column-gap:10px; padding:10px 0; }
  .has-messages .jarvis-orb { width:110px; }
  .has-messages .hud-core strong { font-size:10px; }
  .has-messages .hud-core-caption { display:none; }
  .has-messages .voice-controls { gap:5px; }
  .has-messages .voice-controls button { font-size:.6rem; padding:7px; }
  .has-messages .voice-note { grid-column:1/-1; grid-row:4; margin-top:7px; }
  .welcome { padding:25px 0; }
  .suggestions { flex-direction:column; align-items:stretch; }
  .suggestions button { max-width:none; padding:14px; }
  .composer-footer>div { flex-direction:column; gap:8px; }
  .form-row { grid-template-columns:1fr; gap:0; }
  .content-panel { margin:30px auto; }
  .memory-form { padding:18px; }
  .status-item { align-items:flex-start; flex-direction:column; gap:7px; }
}

.sidebar-intro{color:var(--muted,#8ca4b8);font-size:.9rem;line-height:1.65;margin:0 0 1rem}.content-panel>select{max-width:440px;margin:.5rem 0 1rem}

/* Respostas estruturadas e controles de áudio */
.message-content { min-width:0; white-space:normal; overflow-wrap:anywhere; }
.message.user .message-content { white-space:pre-wrap; }
.message-content p { margin:.6em 0; }
.message-content h2,.message-content h3,.message-content h4 { margin:1.25em 0 .5em; font-size:1.15em; color:var(--cyan,#70e1ec); }
.message-content ul,.message-content ol { padding-left:1.5em; }
.message-content li { margin:.35em 0; }
.message-content a { color:#89e3ef; text-decoration:underline; }
.message-content blockquote { border-left:3px solid #368896; padding-left:1em; margin:1em 0; }
.message-content pre { max-width:100%; overflow:auto; background:#071623; border:1px solid #214859; padding:1em; border-radius:10px; white-space:pre; }
.message-content code { font-size:.88em; background:#0b2534; border-radius:4px; padding:.12em .3em; }
.table-scroll { max-width:100%; overflow:auto; margin:1em 0; }
.table-scroll table { border-collapse:collapse; width:100%; font-size:.92em; }
.table-scroll th,.table-scroll td { border:1px solid #284957; padding:.65em .8em; text-align:left; vertical-align:top; }
.table-scroll th { background:#123041; color:#a3edf1; }
.voice-controls { flex-wrap:wrap; }
.voice-controls select { width:auto; max-width:100%; margin:0; }
.microphone-controls { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin:8px 0 16px; }
.microphone-controls small { flex-basis:100%; color:#94b5c4; line-height:1.5; }
#microphone[aria-pressed="true"] { border-color:#edb66e; color:#ffd395; }
.jarvis-console[data-state="recording"] .hud-core-border { stroke:#efbd75; }
.jarvis-console[data-state="speaking"] .hud-halo { opacity:calc(.3 + var(--voice-level,.2)*.7); }

.microphone-controls button { min-height:42px; padding:9px 14px; font-size:.78rem; }
