/* SaaS Agente IA — UI del panel (MVP), alineada con los TOKENS REALES del SaaS
   Votaciones (extraídos de app.votaciones.factoriadeapps.com/general/css/general.css):
   coral #F9636B · navy #243B64 · ink #2D2D2D · bg #F7F7F9 · line #e3e5ec ·
   muted #6b7386 · radius 14px · shadow 0 8px 24px rgba(36,59,100,.10) · Rubik. */
@import url('https://fonts.googleapis.com/css2?family=Rubik:wght@400;500;600;700;800&display=swap');
:root{--brand:#F9636B;--navy:#243B64;--ink:#2D2D2D;--muted:#6b7386;--bg:#F7F7F9;--card:#fff;--line:#e3e5ec;--ok:#16a34a;--warn:#d97706;--radius:14px}
*{box-sizing:border-box}body{margin:0;font-family:'Rubik','Segoe UI',system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:15px}
a{color:var(--navy)}
.layout{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
.side{background:var(--navy);color:#fff;padding:1.1rem .9rem;display:flex;flex-direction:column;gap:.2rem}
.side .logo{font-weight:800;font-size:1.15rem;margin-bottom:1rem}.side .logo span{color:var(--brand)}
.side a{display:block;color:#c9d4e8;text-decoration:none;padding:.5rem .7rem;border-radius:8px;font-size:.92rem}
.side a.active,.side a:hover{background:rgba(255,255,255,.1);color:#fff}
.side .tenant{margin-top:auto;font-size:.8rem;color:#9fb0cf;border-top:1px solid rgba(255,255,255,.15);padding-top:.7rem}
.main{padding:1.4rem 2rem;width:100%}
h1{font-size:1.45rem;margin:.2rem 0 1rem;color:var(--navy)}h2{font-size:1.05rem;color:var(--navy)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;margin-bottom:1.2rem}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1rem;box-shadow:0 8px 24px rgba(36,59,100,.10)}
.kpi b{display:block;font-size:1.7rem;color:var(--brand)}.kpi span{font-size:.8rem;color:var(--muted)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem;margin-bottom:1rem;box-shadow:0 8px 24px rgba(36,59,100,.10)}
table{width:100%;border-collapse:collapse;font-size:.9rem}th{text-align:left;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;padding:.45rem .5rem;border-bottom:1px solid var(--line)}
td{padding:.5rem;border-bottom:1px solid var(--line);vertical-align:top}
.btn{display:inline-block;background:var(--brand);color:#fff;border:0;border-radius:8px;padding:.5rem .9rem;font-weight:600;cursor:pointer;text-decoration:none;font-size:.88rem}
.btn.sec{background:#fff;color:var(--navy);border:1px solid var(--line)}
.btn.small{padding:.25rem .6rem;font-size:.78rem}
.pill{display:inline-block;border-radius:999px;padding:.1rem .6rem;font-size:.75rem;font-weight:600}
.pill.ai{background:#ece9fd;color:#5b21b6}.pill.human{background:#fde8e9;color:#a4204d}.pill.ok{background:#dcfce7;color:#166534}.pill.warn{background:#fef3c7;color:#92400e}.pill.sand{background:#e2e8f0;color:#334155}
input,select,textarea{font:inherit;border:1px solid var(--line);border-radius:8px;padding:.5rem .6rem;width:100%;background:#fff}
label{font-size:.8rem;color:var(--muted);font-weight:600;display:block;margin:.5rem 0 .2rem}
form.inline{display:inline}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.thread{display:flex;flex-direction:column;gap:.5rem;max-height:52vh;overflow:auto;padding:.4rem;background:#fafbfd;border-radius:8px;border:1px solid var(--line)}
.msg{max-width:72%;padding:.5rem .8rem;border-radius:12px;font-size:.9rem;white-space:pre-wrap}
.msg.in{align-self:flex-start;background:#fff;border:1px solid var(--line)}
.msg.out{align-self:flex-end;background:#DCF8C6;color:#111b21}
.msg.out.system{background:#e2e8f0;color:#334155}.msg small{display:block;opacity:.6;font-size:.68rem;margin-top:.2rem}
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--navy)}
.login-card{background:#fff;border-radius:14px;padding:2rem;width:360px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.badge-src{display:inline-block;background:#eef2ff;color:#3730a3;border-radius:6px;font-size:.7rem;padding:.05rem .4rem;margin-right:.2rem}
.notice{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:.6rem .8rem;font-size:.85rem;color:#92400e;margin-bottom:1rem}
@media(max-width:860px){.layout{grid-template-columns:1fr}.side{flex-direction:row;flex-wrap:wrap}.side .tenant{display:none}.grid2{grid-template-columns:1fr}}
