:root{--bg:#f6f7f9;--card:#fff;--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;--brand:#0c8f88}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--ink)}a{color:var(--brand);text-decoration:none}.container{max-width:960px;margin:0 auto;padding:24px}.brand{font-weight:700;font-size:20px;color:var(--brand)}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}.chip{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}.chip.pos{background:#dcfce7;color:#166534}.chip.neu{background:#f1f5f9;color:#475569}.chip.neg{background:#fee2e2;color:#991b1b}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);font-size:14px}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.banner{background:#fef9c3;border:1px solid #fde68a;color:#854d0e;padding:10px 14px;border-radius:10px;font-size:13px;margin-bottom:16px}.field{margin-bottom:12px}label{font-size:13px;color:var(--muted);display:block;margin-bottom:4px}input{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;font-size:14px}button{background:var(--brand);color:#fff;border:0;padding:10px 16px;border-radius:8px;font-weight:600;cursor:pointer}button:disabled{opacity:.5;cursor:default}.err{background:#fee2e2;border:1px solid #fecaca;color:#991b1b;padding:8px 12px;border-radius:8px;margin-bottom:12px}.err,.muted{font-size:13px}.muted{color:var(--muted)}.auth-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;position:relative;overflow:hidden}.auth-grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(12,143,136,.06) 1px,transparent 0),linear-gradient(90deg,rgba(12,143,136,.05) 1px,transparent 0);background-size:70px 70px;-webkit-mask-image:radial-gradient(ellipse 75% 70% at 50% 40%,black 15%,transparent 75%);mask-image:radial-gradient(ellipse 75% 70% at 50% 40%,black 15%,transparent 75%)}.auth-wordmark{font-weight:800;font-size:30px;letter-spacing:-.02em;color:var(--brand);margin-bottom:22px}.auth-card,.auth-wordmark{position:relative;z-index:1}.auth-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px rgba(15,23,42,.06);padding:24px}.auth-card h1{font-size:19px;margin:0 0 4px}.auth-card .sub{color:var(--muted);font-size:14px;margin:0 0 18px}.auth-footer{z-index:1;margin-top:26px;font-size:12px;color:var(--muted);text-align:center}.auth-footer,.input-wrap{position:relative}.input-wrap .eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:transparent;color:var(--muted);border:0;padding:6px;cursor:pointer;line-height:0}.link-c{color:var(--brand);font-size:14px;background:none;border:0;cursor:pointer;padding:0}.link-c:hover{text-decoration:underline}.center{text-align:center}.btn-full{width:100%}.totp-input{text-align:center;letter-spacing:.4em;font-size:18px}.ok-box{background:#dcfce7;border:1px solid #86efac;color:#166534;padding:10px 12px;border-radius:8px;font-size:13px}.spin{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(1turn)}}.app-shell{display:flex;min-height:100vh}.app-main{flex:1 1;min-width:0}.sidebar{width:220px;flex-shrink:0;background:var(--card);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:16px 10px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.sidebar.collapsed{width:64px}.sidebar .brand-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;padding:0 6px}.sidebar .wordmark{font-weight:800;color:var(--brand);font-size:18px;letter-spacing:-.02em}.sidebar.collapsed .wordmark{display:none}.sidebar.collapsed .brand-row{justify-content:center}.collapse-btn{background:transparent;border:0;color:var(--muted);cursor:pointer;padding:6px;border-radius:6px;line-height:0}.collapse-btn:hover{background:var(--bg)}.nav-item{display:flex;align-items:center;gap:12px;padding:10px;border-radius:8px;color:var(--ink);font-size:14px;font-weight:500;text-decoration:none;margin-bottom:4px}.nav-item:hover{background:var(--bg)}.nav-item.active{background:var(--brand);color:#fff}.nav-item .lbl{white-space:nowrap}.sidebar.collapsed .nav-item{justify-content:center}.sidebar.collapsed .nav-item .lbl{display:none}.sidebar-spacer{flex:1 1}.sidebar-foot{border-top:1px solid var(--line);padding-top:12px;margin-top:8px}.nav-item-boton{width:100%;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit}.gestora-picker{padding:0 6px 10px}.gestora-picker label{margin-bottom:4px}.gestora-nombre{padding:0 6px 8px;font-size:12px}.aviso-super{background:#fef3c7;border-bottom:1px solid #fde68a;color:#854d0e;padding:8px 24px;font-size:13px}.pagina{padding:24px;max-width:1200px}.pagina h1{margin:0 0 4px;font-size:22px;letter-spacing:-.02em}.pagina h2{font-size:16px;margin:32px 0 12px}.kpis{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0 8px}.kpi{min-width:156px}.kpi .kpi-titulo{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.kpi .kpi-valor{font-size:30px;font-weight:700;line-height:1.15}.kpi .kpi-pie{color:var(--muted);font-size:12px}.pestanas{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.pestana{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600}.pestana.activa{background:var(--brand);color:#fff;border-color:var(--brand)}.tabla-scroll{overflow-x:auto}.fila-clic{cursor:pointer}.fila-clic:hover,.fila-detalle td{background:var(--bg)}.sin-atribuir{color:#b45309;font-weight:600}.select-linea{width:auto;padding:6px 8px;border:1px solid var(--line);border-radius:8px;font-size:14px;background:var(--card);color:var(--ink)}.input-corto{width:90px}.acciones{text-align:right}.form-estrecho{max-width:560px;display:grid;grid-gap:12px;gap:12px}fieldset{border:1px solid var(--line);border-radius:12px;padding:16px;display:grid;grid-gap:10px;gap:10px}legend{font-weight:600;font-size:14px;padding:0 6px}.col-asunto{min-width:280px}th.col-asunto{width:32%}.punto-sentimiento{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:middle}.atendio-asistente{color:var(--brand);font-weight:600}td .chip.neg{margin-left:8px}