@import url('https://fonts.googleapis.com/css2?family=Jost:wght@300;400;500;600;700&family=JetBrains+Mono:wght@300;400;500;700&display=swap');

:root{
  --teal:#124E50; --teal-l:#4A8587; --slate:#1e293b; --mid:#64748b;
  --light:#f8fafc; --terra:#C86B3C; --border:#e2e8f0; --r:6px;
  --ok:#16a34a; --warn:#d97706; --err:#dc2626;
}
*{box-sizing:border-box}
body{font-family:'Jost',sans-serif;font-weight:300;background:var(--light);color:var(--slate);margin:0;padding:0;-webkit-font-smoothing:antialiased}
a{color:var(--teal)}
.mono{font-family:'JetBrains Mono',monospace}

/* ---- Shell / header ---- */
header.sg-header{background:#fff;border-bottom:1px solid var(--border);padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.sg-brand{display:flex;align-items:center;gap:.7rem}
.sg-brand .tag{font-family:'JetBrains Mono',monospace;font-size:.62rem;color:var(--teal);text-transform:uppercase;letter-spacing:.22em}
.sg-brand h1{font-size:1.1rem;font-weight:500;margin:0;color:var(--slate)}
.sg-userbox{display:flex;align-items:center;gap:.8rem;font-size:.8rem;color:var(--mid)}
.sg-userbox b{color:var(--slate)}
.sg-userbox a, .sg-userbox button{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--teal);background:none;border:1px solid var(--border);border-radius:6px;padding:.35rem .7rem;cursor:pointer;text-decoration:none}
.sg-userbox a:hover, .sg-userbox button:hover{background:var(--light)}

.wrap{max-width:1180px;margin:0 auto;padding:1.5rem}

/* ---- Tabs ---- */
.sg-tabs{display:flex;gap:6px;border-bottom:1px solid var(--border);margin-bottom:1.5rem;flex-wrap:wrap}
.sg-tab{font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.04em;color:var(--mid);background:none;border:none;border-bottom:2px solid transparent;padding:.7rem 1rem;cursor:pointer}
.sg-tab.on{color:var(--teal);border-bottom-color:var(--teal)}
.sg-panel{display:none}
.sg-panel.on{display:block}

/* ---- Cards / KPIs ---- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.9rem;margin-bottom:1.5rem}
.kpi{background:#fff;border:1px solid var(--border);border-radius:var(--r);padding:1rem 1.1rem}
.kpi .k{font-family:'JetBrains Mono',monospace;font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mid);margin-bottom:.4rem}
.kpi .v{font-family:'JetBrains Mono',monospace;font-size:1.4rem;font-weight:500;color:var(--teal);line-height:1}
.card{background:#fff;border:1px solid var(--border);border-radius:var(--r);padding:1.3rem 1.4rem;margin-bottom:1.2rem}
.card h2{font-size:.9rem;font-weight:600;margin:0 0 1rem;color:var(--slate);display:flex;align-items:center;gap:.5rem}
.card h2 .n{font-family:'JetBrains Mono',monospace;font-size:.58rem;color:var(--teal);background:rgba(18,78,80,.08);padding:.15rem .4rem;border-radius:3px}

/* ---- Filter groups ---- */
.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem}
.filter-group-label{font-family:'JetBrains Mono',monospace;font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;color:var(--teal);margin:0 0 .5rem;border-top:1px solid var(--border);padding-top:.8rem}
.filter-grid .filter-group-label:nth-of-type(1){border-top:none;padding-top:0}
.filter-group-label.collapsible{cursor:pointer;display:flex;align-items:center;gap:6px;user-select:none}
.filter-group-label.collapsible:hover{color:var(--teal-l)}
.filter-group-label .chev{display:inline-block;transition:transform .15s ease;font-size:.7rem}
.filter-group-label .chev.open{transform:rotate(90deg)}
.collapse-block{display:none}
.collapse-block.open{display:block}
.field{margin-bottom:.8rem}
.field label{display:block;font-size:.72rem;color:var(--mid);margin-bottom:.3rem}
.field select, .field input[type=text], .field input[type=number], .field textarea{
  width:100%;font-family:'Jost',sans-serif;font-size:.85rem;padding:.45rem .55rem;
  border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--slate);
}
.field select[multiple]{height:90px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.radio-row{display:flex;gap:1rem;font-size:.8rem;flex-wrap:wrap}
.radio-row label{display:flex;align-items:center;gap:.3rem;cursor:pointer}
.pill-group{display:flex;gap:6px;flex-wrap:wrap}
.pill{font-family:'JetBrains Mono',monospace;font-size:.7rem;border:1px solid var(--border);border-radius:100px;padding:.3rem .7rem;cursor:pointer;background:#fff;color:var(--mid)}
.pill.on{background:var(--teal);color:#fff;border-color:var(--teal)}

/* ---- Buttons ---- */
.btn{font-family:'JetBrains Mono',monospace;font-size:.78rem;border:1px solid var(--teal);background:var(--teal);color:#fff;border-radius:6px;padding:.6rem 1.2rem;cursor:pointer}
.btn:hover{background:var(--teal-l)}
.btn:disabled{background:#cbd5e1;border-color:#cbd5e1;cursor:not-allowed}
.btn.secondary{background:#fff;color:var(--teal)}
.btn.secondary:hover{background:var(--light)}
.btn.danger{background:#fff;color:var(--err);border-color:var(--err)}
.btn.danger:hover{background:#fef2f2}

/* ---- Tables ---- */
table.sg-table{width:100%;border-collapse:collapse;font-size:.8rem}
table.sg-table th{font-family:'JetBrains Mono',monospace;font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mid);font-weight:500;padding:.55rem .7rem;border-bottom:2px solid var(--border);text-align:left}
table.sg-table td{padding:.55rem .7rem;border-bottom:1px solid var(--border)}
table.sg-table td.num{text-align:right;font-family:'JetBrains Mono',monospace}
table.sg-table tr:last-child td{border-bottom:none}

/* ---- Disclaimer / alerts ---- */
.disclaimer{border:1px solid var(--terra);background:#fef6f0;border-radius:6px;padding:.9rem 1rem;font-size:.8rem;color:var(--slate);margin-bottom:1rem;display:flex;gap:.7rem;align-items:flex-start}
.disclaimer input[type=checkbox]{margin-top:.2rem}
.alert{border-radius:6px;padding:.7rem 1rem;font-size:.8rem;margin-bottom:1rem}
.alert.err{background:#fef2f2;border:1px solid var(--err);color:#991b1b}
.alert.ok{background:#f0fdf4;border:1px solid var(--ok);color:#166534}
.alert.info{background:#eff6ff;border:1px solid #3b82f6;color:#1e40af}

/* ---- Distribution bar ---- */
.distbar{display:flex;height:36px;border-radius:6px;overflow:hidden;border:1px solid var(--border);margin-bottom:.6rem}
.distbar div{display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-size:.7rem;color:#fff;white-space:nowrap}
.distlegend{display:flex;gap:1.1rem;flex-wrap:wrap;font-size:.76rem;color:var(--mid)}
.distlegend span{display:flex;align-items:center;gap:6px}
.dot{width:9px;height:9px;border-radius:2px;display:inline-block}

/* ---- Login page ---- */
.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--light)}
.login-card{background:#fff;border:1px solid var(--border);border-radius:8px;padding:2.2rem 2.4rem;width:340px}
.login-card .tag{font-family:'JetBrains Mono',monospace;font-size:.62rem;color:var(--teal);text-transform:uppercase;letter-spacing:.22em;margin-bottom:.6rem;display:flex;align-items:center;gap:10px}
.login-card .tag::before{content:"";width:22px;height:1px;background:var(--teal)}
.login-card h1{font-size:1.3rem;font-weight:500;margin:0 0 1.4rem;color:var(--slate)}
.login-card .field{margin-bottom:1rem}
.login-card .btn{width:100%;margin-top:.4rem}
.footnote{font-family:'JetBrains Mono',monospace;font-size:.65rem;color:var(--mid);text-align:center;margin-top:1.2rem}

.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle;margin-right:6px}
@keyframes spin{to{transform:rotate(360deg)}}

.muted{color:var(--mid);font-size:.78rem}
.narrativa{font-size:.88rem;color:var(--slate)}
.narrativa p:last-child{margin-bottom:0}
.badge{font-family:'JetBrains Mono',monospace;font-size:.6rem;padding:.15rem .4rem;border-radius:3px}
.badge.admin{background:rgba(200,107,60,.12);color:var(--terra)}
.badge.user{background:rgba(18,78,80,.08);color:var(--teal)}
.badge.activo{background:rgba(22,163,74,.1);color:var(--ok)}
.badge.inactivo{background:#f1f5f9;color:var(--mid)}

/* ---- Chat (Entrevista) ---- */
.chat-msg{display:flex;margin-bottom:.9rem;gap:.6rem}
.chat-msg.usuario{justify-content:flex-end}
.chat-bubble{max-width:75%;padding:.6rem .85rem;border-radius:10px;font-size:.85rem;line-height:1.5}
.chat-msg.usuario .chat-bubble{background:var(--teal);color:#fff;border-radius:10px 10px 2px 10px}
.chat-msg.agente .chat-bubble{background:#fff;border:1px solid var(--border);color:var(--slate);border-radius:10px 10px 10px 2px}
.chat-msg.sistema .chat-bubble{background:none;color:var(--mid);font-size:.74rem;font-style:italic;border:none;padding:.2rem 0}

/* ---- Feed social (Simulación) ---- */
.tweet{display:flex;gap:.8rem;padding:.9rem 0;border-bottom:1px solid var(--border)}
.tweet:last-child{border-bottom:none}
.tweet-avatar{width:38px;height:38px;border-radius:50%;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-size:.78rem;flex-shrink:0}
.tweet-body{flex:1}
.tweet-head{display:flex;gap:.5rem;align-items:baseline;flex-wrap:wrap;margin-bottom:.2rem}
.tweet-handle{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--mid)}
.tweet-round{font-family:'JetBrains Mono',monospace;font-size:.6rem;color:var(--terra);background:rgba(200,107,60,.1);padding:.1rem .4rem;border-radius:3px}
.tweet-text{font-size:.86rem;color:var(--slate);line-height:1.5}
