:root{--brand: #4f9a34;--brand-2: #67b247;--brand-tint: #eef7e9;--ink: #1c2733;--ink-2: #5b6b7b;--ink-3: #8494a3;--line: #e6ebf0;--line-2: #eff2f5;--bg: #f6f8fa;--card: #ffffff;--danger: #d64545;--danger-tint: #fdecec;--warn: #b7791f;--warn-tint: #fbf3e2;--ok: #2f8f5b;--ok-tint: #e8f5ee;--radius: 12px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1);--sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--sans);color:var(--ink);background:var(--bg);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit}.app{display:grid;grid-template-columns:236px 1fr;min-height:100vh}.sidebar{background:#0f1b2d;color:#c7d2de;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar .brand{display:flex;align-items:center;gap:10px;padding:20px 20px 18px;font-weight:700;color:#fff;letter-spacing:-.01em}.sidebar .brand .logo{width:30px;height:30px;border-radius:8px;background:var(--brand-2);color:#fff;display:grid;place-items:center;font-weight:800;font-size:17px}.sidebar .brand small{display:block;font-weight:500;color:#7c8ba0;font-size:11px;letter-spacing:.04em}.nav{padding:8px;display:flex;flex-direction:column;gap:2px;flex:1}.nav a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:9px;color:#aeb9c7;font-weight:500;font-size:13.5px}.nav a:hover{background:#ffffff0d;color:#fff}.nav a.active{background:var(--brand);color:#fff}.nav a svg{width:18px;height:18px;flex:none}.nav .sep{margin:10px 12px 4px;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#64748b;font-weight:700}.sidebar .foot{padding:12px;border-top:1px solid rgba(255,255,255,.07)}.userbox{display:flex;align-items:center;gap:10px;padding:6px 8px}.userbox .av{width:32px;height:32px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:700;flex:none}.userbox .nm{font-size:13px;color:#fff;font-weight:600;line-height:1.2}.userbox .rl{font-size:11px;color:#7c8ba0;text-transform:capitalize}.logout{margin-top:6px;width:100%;display:flex;align-items:center;gap:8px;background:transparent;border:1px solid rgba(255,255,255,.12);color:#aeb9c7;padding:7px 10px;border-radius:8px;cursor:pointer;font-size:12.5px}.logout svg{width:15px;height:15px;flex:none}.logout:hover{background:#ffffff0f;color:#fff}.main{min-width:0;display:flex;flex-direction:column}.topbar{height:60px;background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:5}.topbar h1{font-size:18px;font-weight:700;letter-spacing:-.01em}.content{padding:26px;max-width:1240px;width:100%}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card-h{padding:16px 20px;border-bottom:1px solid var(--line-2);display:flex;align-items:center;justify-content:space-between;gap:12px}.card-h h2{font-size:15px;font-weight:700}.card-b{padding:20px}.grid{display:grid;gap:16px}.grid.k4{grid-template-columns:repeat(4,1fr)}.grid.k3{grid-template-columns:repeat(3,1fr)}.grid.k2{grid-template-columns:repeat(2,1fr)}@media (max-width: 900px){.grid.k4,.grid.k3,.grid.k2{grid-template-columns:1fr 1fr}.app{grid-template-columns:1fr}.sidebar{position:fixed;z-index:40;width:236px;transform:translate(-100%)}}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}.stat .lbl{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:700}.stat .val{font-size:28px;font-weight:800;letter-spacing:-.02em;margin-top:6px}.stat .sub{font-size:12px;color:var(--ink-2);margin-top:4px}.funnel{display:flex;flex-direction:column;gap:10px}.frow{display:grid;grid-template-columns:130px 1fr 96px;align-items:center;gap:12px}.frow .fn{font-weight:600;color:var(--ink-2);font-size:13px}.fbar{height:30px;background:var(--brand-tint);border-radius:7px;overflow:hidden}.fbar span{display:block;height:100%;background:linear-gradient(90deg,var(--brand-2),var(--brand));border-radius:7px;min-width:3px;transition:width .5s ease}.frow .fv{text-align:right;font-variant-numeric:tabular-nums}.frow .fv b{font-weight:800}.frow .fv small{color:var(--ink-3);font-size:11.5px}.tbl-wrap{overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;font-size:13px}table.tbl th{text-align:left;padding:11px 16px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:700;border-bottom:1px solid var(--line);white-space:nowrap}table.tbl td{padding:12px 16px;border-bottom:1px solid var(--line-2);vertical-align:middle}table.tbl tr:last-child td{border-bottom:none}table.tbl tbody tr{cursor:default}table.tbl tbody tr.clickable:hover{background:var(--brand-tint);cursor:pointer}.mono{font-family:var(--mono);font-size:12px;color:var(--ink-2)}.th-f{display:inline-flex;align-items:center;gap:6px}.fnl{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;border:none;background:transparent;color:var(--ink-3);cursor:pointer;padding:0;flex:none;transition:background .15s,color .15s}.fnl:hover{background:var(--line-2);color:var(--ink-2)}.fnl.on{background:var(--brand-tint);color:var(--brand)}.fnl svg{width:13px;height:13px}.pop{position:fixed;z-index:70;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px #1018282e;padding:12px}.pop h4{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:700;margin-bottom:9px}.pop .field{margin-bottom:10px}.pop .field:last-child{margin-bottom:0}.pop-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.pop .opts{display:flex;flex-direction:column;gap:2px;max-height:260px;overflow:auto}.pop .opt{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--ink);border:none;background:transparent;text-align:left;width:100%;font-family:inherit}.pop .opt:hover{background:var(--line-2)}.pop .opt.sel{background:var(--brand-tint);color:var(--brand);font-weight:600}.toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-bottom:16px}.toolbar .active-note{margin-right:auto;font-size:12.5px;color:var(--ink-2)}.export-lead{font-size:13.5px;color:var(--ink-2);margin-bottom:14px}.export-opts{display:flex;flex-direction:column;gap:10px}.export-opt{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--card);cursor:pointer;font-family:inherit;transition:border-color .15s,background .15s,box-shadow .15s}.export-opt:hover{border-color:var(--brand-2);background:var(--brand-tint);box-shadow:0 0 0 3px var(--brand-tint)}.export-opt:disabled{opacity:.55;cursor:not-allowed}.eo-tag{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:10px;font-weight:800;font-size:12px;letter-spacing:.02em;color:#fff}.eo-tag.xlsx{background:#1d7a45}.eo-tag.csv{background:#5b6b7b}.eo-txt{display:flex;flex-direction:column;gap:2px}.eo-txt b{font-size:14px;color:var(--ink)}.eo-txt small{font-size:12px;color:var(--ink-3)}.cell-clamp{max-width:340px;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.consulta-detalle{display:flex;flex-direction:column;gap:18px}.cd-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.cd-head h3{margin:0 0 3px;font-size:16px;color:var(--ink)}.cd-datos{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin:0}.cd-datos div{display:flex;flex-direction:column;gap:2px}.cd-datos dt,.cd-msg dt{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-3)}.cd-datos dd{margin:0;font-size:14px;color:var(--ink)}.cd-datos a{color:var(--brand);text-decoration:none}.cd-datos a:hover{text-decoration:underline}.cd-msg{display:flex;flex-direction:column;gap:6px}.cd-msg p{margin:0;font-size:14px;line-height:1.55;color:var(--ink);white-space:pre-wrap;background:var(--line-2);border-radius:10px;padding:12px 14px}.cd-estado{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:16px}.cd-estado-lbl{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-3)}.opts.row{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px}.opts.row .opt{width:auto;border:1px solid var(--line);border-radius:999px;padding:6px 13px;font-size:12.5px;font-weight:600;color:var(--ink-2);background:var(--card);cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s,color .15s}.opts.row .opt:hover{background:var(--line-2)}.opts.row .opt.sel{background:var(--brand);border-color:var(--brand);color:#fff}.opts.row .opt:disabled{opacity:.55;cursor:not-allowed}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:700;border:1px solid transparent;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge.gris{background:#f1f4f7;color:#64748b}.badge.azul{background:#e8f0fe;color:#2563a8}.badge.ok{background:var(--ok-tint);color:var(--ok)}.badge.warn{background:var(--warn-tint);color:var(--warn)}.badge.danger{background:var(--danger-tint);color:var(--danger)}.badge.brand{background:var(--brand-tint);color:var(--brand)}.btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:9px;font-weight:600;font-size:13px;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--ink);transition:background .15s,border-color .15s}.btn:hover{background:var(--line-2)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-2)}.btn.danger{color:var(--danger);border-color:var(--danger-tint);background:var(--danger-tint)}.btn.danger:hover{background:#f9dede}.btn.sm{padding:5px 10px;font-size:12px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn svg{width:15px;height:15px}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:12.5px;font-weight:600;color:var(--ink-2)}.field-hint{font-size:11.5px;color:var(--ink-3);margin-top:2px}.input,.select,.textarea{width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:9px;font:inherit;font-size:13.5px;color:var(--ink);background:#fff}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--brand-2);box-shadow:0 0 0 3px var(--brand-tint)}.textarea{resize:vertical;min-height:90px}.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.filters .field{margin-bottom:0;min-width:150px}.check{display:inline-flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;cursor:pointer}.switch-txt{display:flex;flex-direction:column;gap:2px}.switch-txt b{font-size:13.5px;color:var(--ink)}.switch-txt small{font-size:12px;color:var(--ink-3)}.switch{position:relative;width:42px;height:24px;border-radius:999px;background:var(--line);transition:background .18s;flex:none}.switch input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.switch .knob{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #1018284d;transition:left .18s;pointer-events:none}.switch.on{background:var(--brand)}.switch.on .knob{left:21px}.pager{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-top:1px solid var(--line-2);font-size:13px;color:var(--ink-2)}.pager .pg{display:flex;gap:6px}.muted{color:var(--ink-3)}.empty{text-align:center;padding:44px 20px;color:var(--ink-3)}.spinner{width:18px;height:18px;border:2.5px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.center{display:grid;place-items:center;min-height:60vh}.toast-wrap{position:fixed;bottom:22px;right:22px;z-index:60;display:flex;flex-direction:column;gap:10px;align-items:flex-end;max-width:min(92vw,380px);pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;min-width:250px;background:var(--card);color:var(--ink);padding:12px 12px 13px 14px;border-radius:12px;font-size:13px;box-shadow:0 10px 34px #10182838;border:1px solid var(--line);border-left:3px solid var(--ink-3);position:relative;overflow:hidden;animation:toast-in .24s cubic-bezier(.2,.8,.2,1)}.toast.ok{border-left-color:var(--ok)}.toast.err{border-left-color:var(--danger)}.toast.info{border-left-color:#2563a8}.toast.leaving{animation:toast-out .2s forwards}.toast .t-ic{width:18px;height:18px;flex:none;margin-top:1px}.toast.ok .t-ic{color:var(--ok)}.toast.err .t-ic{color:var(--danger)}.toast.info .t-ic{color:#2563a8}.toast .t-msg{flex:1;line-height:1.4;padding-top:1px}.toast .t-close{flex:none;background:transparent;border:none;color:var(--ink-3);cursor:pointer;width:20px;height:20px;display:grid;place-items:center;border-radius:6px;margin:-1px -2px 0 0}.toast .t-close:hover{background:var(--line-2);color:var(--ink)}.toast .t-close svg{width:14px;height:14px}.toast .t-bar{position:absolute;left:0;bottom:0;height:3px;width:100%;transform-origin:left;opacity:.45;background:var(--ink-3);animation:toast-bar linear forwards}.toast.ok .t-bar{background:var(--ok)}.toast.err .t-bar{background:var(--danger)}.toast.info .t-bar{background:#2563a8}@keyframes toast-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@keyframes toast-out{to{opacity:0;transform:translate(18px)}}@keyframes toast-bar{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (prefers-reduced-motion: reduce){.toast,.toast.leaving{animation:none}.toast .t-bar{display:none}}.login-wrap{min-height:100vh;display:grid;place-items:center;background:radial-gradient(120% 120% at 50% 0%,#14243a,#0f1b2d);padding:20px}.login-card{background:var(--card);border-radius:16px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:380px;padding:32px 30px}.login-card .lg{display:flex;align-items:center;gap:11px;margin-bottom:22px}.login-card .lg .logo{width:40px;height:40px;border-radius:10px;background:var(--brand-2);color:#fff;display:grid;place-items:center;font-weight:800;font-size:22px}.login-card h1{font-size:18px}.login-card .lg small{color:var(--ink-3);font-size:12px;display:block}.login-err{background:var(--danger-tint);color:var(--danger);padding:9px 12px;border-radius:8px;font-size:13px;margin-bottom:14px}.modal-ov{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f1b2d80;display:grid;place-items:center;padding:20px;z-index:50}.modal{background:var(--card);border-radius:14px;width:100%;max-width:520px;max-height:90vh;overflow:auto;box-shadow:0 24px 70px #0000004d}.modal .card-h{position:sticky;top:0;background:var(--card)}.modal .card-h button{background:transparent;border:none;font-size:22px;cursor:pointer;color:var(--ink-3);line-height:1}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--line-2);position:sticky;bottom:0;background:var(--card)}.kv{display:grid;grid-template-columns:160px 1fr;gap:8px 16px;font-size:13.5px}.kv dt{color:var(--ink-3);font-weight:600}.kv dd{color:var(--ink)}.timeline{display:flex;flex-direction:column;gap:0}.tl-item{display:grid;grid-template-columns:20px 1fr;gap:12px;padding-bottom:16px;position:relative}.tl-item:not(:last-child):before{content:"";position:absolute;left:9px;top:18px;bottom:0;width:2px;background:var(--line)}.tl-dot{width:20px;height:20px;border-radius:50%;background:var(--brand-tint);border:2px solid var(--brand-2);z-index:1}.tl-body .tl-t{font-weight:600;font-size:13px}.tl-body .tl-d{color:var(--ink-3);font-size:12px}
