*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0f1a;--panel:#111827;--border:#1f2937;--text:#e5e7eb;--muted:#9ca3af;--accent:#c9a84c;--accent-dark:#b8922e;--user-bubble:#1e3a5f;--assistant-bubble:#161e2e}body,html{height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{display:flex;flex-direction:column;height:100vh;max-width:860px;margin:0 auto;padding:0 16px}.header{gap:12px;padding:18px 4px 14px;border-bottom:1px solid var(--border)}.header,.header .logo{display:flex;align-items:center}.header .logo{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-dark));justify-content:center;font-weight:800;font-size:18px;color:#0a0f1a}.header-title{flex:1 1}.header h1{font-size:18px;font-weight:700}.header p{font-size:12px;color:var(--muted)}.av-toggle,.voz-toggle{background:var(--panel);border:1px solid var(--border);color:var(--muted);border-radius:20px;padding:7px 12px;font-size:13px;cursor:pointer;white-space:nowrap}.av-toggle.on,.voz-toggle.on{color:var(--accent);border-color:var(--accent)}.avatar-mini{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--accent);flex-shrink:0}.avatar-panel{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 0 8px}.avatar-grande{width:130px;height:130px;border-radius:50%;object-fit:cover;border:3px solid var(--accent);transition:box-shadow .2s,transform .2s}.avatar-grande.hablando,.avatar-mini.hablando{animation:hablando-pulso .9s ease-in-out infinite}@keyframes hablando-pulso{0%,to{box-shadow:0 0 0 0 rgba(201,168,76,.55);transform:scale(1)}50%{box-shadow:0 0 0 12px rgba(201,168,76,0);transform:scale(1.03)}}.avatar-estado{font-size:12px;color:var(--accent);font-style:italic}.mic{background:var(--panel);border:1px solid var(--border);border-radius:10px;width:46px;font-size:18px;cursor:pointer;color:var(--text);flex-shrink:0}.mic:disabled{opacity:.5;cursor:default}.mic.rec{background:#7f1d1d;border-color:#dc2626;color:#fff;animation:pulso 1.1s ease-in-out infinite}@keyframes pulso{0%,to{box-shadow:0 0 0 0 rgba(220,38,38,.6)}50%{box-shadow:0 0 0 7px rgba(220,38,38,0)}}.messages{flex:1 1;overflow-y:auto;padding:18px 0;display:flex;flex-direction:column;gap:12px}.bubble{max-width:85%;padding:12px 16px;border-radius:14px;font-size:14.5px;line-height:1.55;white-space:pre-wrap;word-wrap:break-word}.bubble.user{align-self:flex-end;background:var(--user-bubble);border-bottom-right-radius:4px}.bubble.assistant{align-self:flex-start;background:var(--assistant-bubble);border:1px solid var(--border);border-bottom-left-radius:4px}.bubble.error{border-color:#7f1d1d;color:#fca5a5}.consultas{font-size:11px;margin-top:8px}.consultas,.thinking{color:var(--muted);font-style:italic}.composer{display:flex;gap:10px;padding:14px 0 18px;border-top:1px solid var(--border)}.composer input{flex:1 1;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px 14px;color:var(--text);font-size:14.5px;outline:none}.composer input:focus{border-color:var(--accent)}.composer button{background:var(--accent);color:#0a0f1a;border:none;border-radius:10px;padding:0 22px;font-weight:700;font-size:14.5px;cursor:pointer}.composer button:disabled{opacity:.5;cursor:default}.composer .detener{background:#7f1d1d;color:#fff}.login{flex-direction:column;height:100vh;gap:16px}.login,.login .logo{display:flex;align-items:center;justify-content:center}.login .logo{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-dark));font-weight:800;font-size:30px;color:#0a0f1a}.login-foto{width:160px;height:160px;border-radius:50%;object-fit:cover;border:4px solid var(--accent);box-shadow:0 8px 40px rgba(201,168,76,.35)}.login h1{font-size:30px;letter-spacing:.5px;margin-bottom:-6px}.login-sub{font-size:14px;letter-spacing:4px;text-transform:uppercase;color:var(--accent);font-weight:600}.login p{color:var(--muted);font-size:13px}.login form{display:flex;gap:10px;width:min(360px,90vw)}.login input{flex:1 1;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px 14px;color:var(--text);outline:none}.login button{background:var(--accent);color:#0a0f1a;border:none;border-radius:10px;padding:0 20px;font-weight:700;cursor:pointer}