
:root{
  --bg:#0b0f1a;
  --bg-sidebar:#0a0e18;
  --panel:#141b2d;
  --panel-2:#1a2338;
  --panel-3:#1f2942;
  --border:#232d47;
  --border-soft:#1a2338;
  --accent:#5b8cff;
  --accent-dim:rgba(91,140,255,.14);
  --accent-text:#a9c1ff;
  --text:#e8ecf6;
  --text-dim:#98a2ba;
  --text-faint:#5c6680;
  --success:#34d399;
  --success-dim:rgba(52,211,153,.14);
  --danger:#f87171;
  --danger-dim:rgba(248,113,113,.14);
  --warning:#fbbf24;
  --warning-dim:rgba(251,191,36,.14);
  --neutral:#64748b;
  --neutral-dim:rgba(100,116,139,.18);
  --radius:12px;
  --sidebar-w:264px;
  --sidebar-w-collapsed:72px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Inter',system-ui,sans-serif;
  font-size:14px;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.font-display{font-family:'Plus Jakarta Sans',sans-serif;}
::selection{background:var(--accent-dim);color:var(--text);}
::-webkit-scrollbar{height:10px;width:10px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--panel-3);border-radius:8px;}
::-webkit-scrollbar-thumb:hover{background:var(--border);}

.app{display:flex;min-height:100vh;}

/* ---------- SIDEBAR ---------- */
.sidebar{
  width:var(--sidebar-w);
  flex-shrink:0;
  background:var(--bg-sidebar);
  border-right:1px solid var(--border-soft);
  display:flex;
  flex-direction:column;
  position:sticky;
  top:0;
  height:100vh;
  transition:width .16s ease;
}
.sidebar-toggle-btn{
  position:absolute;top:24px;right:-13px;
  width:26px;height:26px;border-radius:50%;
  background:var(--panel-2);border:1px solid var(--border-soft);
  color:var(--text-dim);display:flex;align-items:center;justify-content:center;
  cursor:pointer;z-index:5;transition:background .12s,color .12s;
}
.sidebar-toggle-btn:hover{background:var(--panel-3);color:var(--text);}
.sidebar-toggle-btn svg{width:13px;height:13px;transition:transform .18s;}
body.sidebar-collapsed .sidebar-toggle-btn svg{transform:rotate(180deg);}

/* ---------- SIDEBAR RETRAÍDA (solo iconos) ---------- */
body.sidebar-collapsed .sidebar{width:var(--sidebar-w-collapsed);}
body.sidebar-collapsed .brand{padding:22px 0 18px;justify-content:center;}
body.sidebar-collapsed .brand-mark{margin:0;}
body.sidebar-collapsed .brand-name,
body.sidebar-collapsed .brand-sub{display:none;}
body.sidebar-collapsed .nav{padding:6px 10px;}
body.sidebar-collapsed .nav-item,
body.sidebar-collapsed .nav-group-toggle{justify-content:center;padding:10px 0;gap:0;}
body.sidebar-collapsed .nav-label,
body.sidebar-collapsed .chev{display:none;}
body.sidebar-collapsed .nav-sub{
  max-height:none!important;padding-left:0;border-left:none;margin-left:0;
}
body.sidebar-collapsed .nav-sub .nav-item{padding:9px 0;}
body.sidebar-collapsed .sidebar-footer{justify-content:center;padding:14px 0;}
body.sidebar-collapsed .sidebar-footer .who{display:none;}
.brand{
  display:flex;align-items:center;gap:10px;
  padding:22px 22px 18px;
}
.brand-mark{
  width:38px;height:38px;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.brand-mark img{width:100%;height:100%;object-fit:contain;}
.brand-name{font-family:'Plus Jakarta Sans';font-weight:700;font-size:15.5px;letter-spacing:.2px;}
.brand-sub{font-size:11px;color:var(--text-faint);margin-top:1px;}

.nav{flex:1;overflow-y:auto;padding:6px 12px;}
.nav-group{margin-bottom:2px;}
.nav-item, .nav-group-toggle{
  display:flex;align-items:center;gap:11px;
  padding:9px 12px;margin:1px 0;
  border-radius:9px;
  color:var(--text-dim);
  font-size:13.5px;font-weight:500;
  cursor:pointer;
  user-select:none;
  transition:background .12s,color .12s;
  border:none;background:none;width:100%;text-align:left;
}
.nav-item svg,.nav-group-toggle svg{flex-shrink:0;width:17px;height:17px;opacity:.85;}
.nav-item:hover,.nav-group-toggle:hover{background:var(--panel);color:var(--text);}
.nav-item.active{background:var(--accent-dim);color:var(--accent-text);}
.nav-item.active svg{opacity:1;}
.nav-group-toggle{justify-content:space-between;}
.nav-group-toggle .ngt-left{display:flex;align-items:center;gap:11px;}
.nav-group-toggle .chev{transition:transform .15s;opacity:.6;width:13px!important;height:13px!important;}
.nav-group.open .chev{transform:rotate(90deg);}
.nav-sub{
  overflow:hidden;max-height:0;transition:max-height .18s ease;
  padding-left:14px;border-left:1px solid var(--border-soft);margin-left:22px;
}
.nav-group.open .nav-sub{max-height:400px;}
.nav-sub .nav-item{font-size:13px;padding:7px 12px;gap:9px;}
.nav-sub .nav-item svg{width:14px;height:14px;}

.sidebar-footer{
  padding:14px;border-top:1px solid var(--border-soft);
  display:flex;align-items:center;gap:10px;
}
.avatar{
  width:32px;height:32px;border-radius:8px;background:var(--panel-3);
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;color:var(--accent-text);flex-shrink:0;
}
.sidebar-footer .who{flex:1;min-width:0;}
.sidebar-footer .who .n{font-size:12.5px;font-weight:600;color:var(--text);}
.sidebar-footer .who .r{font-size:11px;color:var(--text-faint);}

/* ---------- MAIN ---------- */
.main{flex:1;min-width:0;display:flex;flex-direction:column;}
.topbar{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 28px;border-bottom:1px solid var(--border-soft);
  background:rgba(11,15,26,.85);backdrop-filter:blur(8px);
}
.topbar h1{font-size:18px;margin:0;font-weight:700;}
.topbar .sub{font-size:12.5px;color:var(--text-faint);margin-top:2px;}
.topbar-actions{display:flex;align-items:center;gap:14px;}
.search-box-wrap{position:relative;}
.search-box{
  display:flex;align-items:center;gap:8px;
  background:var(--panel);border:1px solid var(--border);
  border-radius:9px;padding:8px 12px;width:230px;
  color:var(--text-faint);font-size:13px;
}
.search-box svg{width:15px;height:15px;flex-shrink:0;color:var(--text-faint);}
.search-box input{
  border:none;background:none;outline:none;color:var(--text);font-size:13px;
  width:100%;font-family:inherit;
}
.search-box input::placeholder{color:var(--text-faint);}

.search-dropdown{
  position:absolute;top:44px;left:0;width:340px;max-height:400px;
  background:var(--panel);border:1px solid var(--border);border-radius:12px;
  box-shadow:0 12px 32px rgba(0,0,0,.35);overflow-y:auto;
  padding:6px;z-index:60;
}
.search-dropdown[hidden]{display:none;}
.search-dropdown-msg{padding:16px;text-align:center;color:var(--text-faint);font-size:12.5px;}
.search-result-row{
  display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:9px;cursor:pointer;
}
.search-result-row:hover{background:var(--panel-2);}
.search-result-info{flex:1;min-width:0;}
.search-result-nombre{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.search-result-meta{font-size:11.5px;color:var(--text-faint);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.search-result-badge{
  flex-shrink:0;font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:100px;
  background:var(--panel-3);color:var(--text-dim);
}
.search-result-badge.papelera{background:var(--danger-dim);color:var(--danger);}
.search-result-badge.embudo{background:var(--accent-dim);color:var(--accent-text);}
.bell-wrap{position:relative;}
.bell{
  position:relative;width:36px;height:36px;border-radius:9px;
  background:var(--panel);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
}
.bell svg{width:16px;height:16px;color:var(--text-dim);}
.bell .dot{position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--danger);border:2px solid var(--bg-sidebar);}

.notif-panel{
  position:absolute;top:44px;right:0;width:340px;max-height:420px;
  background:var(--panel);border:1px solid var(--border);border-radius:12px;
  box-shadow:0 12px 32px rgba(0,0,0,.35);overflow:hidden;
  display:flex;flex-direction:column;z-index:50;
}
.notif-panel[hidden]{display:none;}
.notif-panel-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 14px;border-bottom:1px solid var(--border-soft);
  font-size:13px;font-weight:700;flex-shrink:0;
}
.notif-panel-list{overflow-y:auto;padding:6px;}
.notif-item{
  display:flex;align-items:flex-start;gap:9px;padding:9px 8px;border-radius:9px;cursor:pointer;
}
.notif-item:hover{background:var(--panel-2);}
.notif-item.unread{background:var(--accent-dim);}
.notif-item.unread:hover{background:var(--accent-dim);filter:brightness(1.1);}
.notif-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:5px;}
.notif-dot.lead{background:var(--accent);}
.notif-dot.cita{background:var(--warning);}
.notif-dot.duplicado{background:var(--danger);}
.notif-info{flex:1;min-width:0;}
.notif-msg{font-size:12.5px;line-height:1.4;}
.notif-time{font-size:11px;color:var(--text-faint);margin-top:2px;}

.view{padding:26px 28px 40px;}
.view[hidden]{display:none !important;}

/* ---------- VISTA A PANTALLA COMPLETA (PreCalificación, sección 12) ----------
   --topbar-h se fija por JS (ajustarAlturaTopbar) porque el alto real del
   topbar varía un poco según fuente/DPI; 64px es solo el valor de respaldo
   antes de que corra el JS. */
.view.view-full{
  padding:0;
  height:calc(100vh - var(--topbar-h, 64px));
  display:flex;
  flex-direction:column;
}
.view-full-bar{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 28px;border-bottom:1px solid var(--border-soft);
  font-size:12.5px;font-weight:600;color:var(--text-dim);
  flex-shrink:0;
}
.view.view-full iframe{
  flex:1;width:100%;border:0;display:block;background:#fff;
}

/* ---------- DASHBOARD ---------- */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px;}
.stat-card{
  background:var(--panel);border:1px solid var(--border-soft);
  border-radius:var(--radius);padding:18px;
  display:flex;flex-direction:column;gap:10px;
}
.stat-card .top{display:flex;align-items:center;justify-content:space-between;}
.stat-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;}
.stat-icon svg{width:16px;height:16px;}
.stat-value{font-family:'Plus Jakarta Sans';font-size:26px;font-weight:800;font-variant-numeric:tabular-nums;}
.stat-label{font-size:12.5px;color:var(--text-dim);}
.stat-trend{font-size:11.5px;font-weight:600;}

.section-title{display:flex;align-items:center;justify-content:space-between;margin:26px 0 12px;}
.section-title h2{font-size:15px;margin:0;font-weight:700;}
.section-title a{font-size:12.5px;color:var(--accent-text);text-decoration:none;cursor:pointer;}

.metrics-row{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:14px;}
.metric-card{
  background:var(--panel);border:1px solid var(--border-soft);
  border-radius:var(--radius);padding:20px;
  display:flex;align-items:center;gap:16px;
}
.approval-ring{position:relative;width:76px;height:76px;flex-shrink:0;}
.approval-ring svg{transform:rotate(-90deg);}
.approval-ring .pct{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:'Plus Jakarta Sans';font-weight:800;font-size:15px;}
.metric-simple{display:flex;flex-direction:column;gap:4px;}
.metric-simple .v{font-family:'Plus Jakarta Sans';font-size:24px;font-weight:800;}
.metric-simple .l{font-size:12px;color:var(--text-dim);}

.panel-block{background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius);overflow:hidden;}
table.data-table{width:100%;border-collapse:collapse;}
table.data-table th{
  text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.4px;
  color:var(--text-faint);font-weight:600;padding:12px 18px;border-bottom:1px solid var(--border-soft);
}
table.data-table td{padding:13px 18px;border-bottom:1px solid var(--border-soft);font-size:13.5px;vertical-align:middle;}
table.data-table tr:last-child td{border-bottom:none;}
.client-cell{display:flex;align-items:center;gap:10px;}
.mini-avatar{width:28px;height:28px;border-radius:7px;background:var(--panel-3);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--accent-text);flex-shrink:0;}

.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:100px;font-size:11.5px;font-weight:600;}
.badge.ok{background:var(--success-dim);color:var(--success);}
.badge.warn{background:var(--warning-dim);color:var(--warning);}
.badge.bad{background:var(--danger-dim);color:var(--danger);}
.badge.neutral{background:var(--neutral-dim);color:var(--text-dim);}
.link-btn{color:var(--accent-text);text-decoration:none;font-size:12.5px;font-weight:600;}

.two-col{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;align-items:start;}
.activity-feed{display:flex;flex-direction:column;padding:6px 0;}
.activity-item{display:flex;gap:12px;padding:13px 18px;border-bottom:1px solid var(--border-soft);}
.activity-item:last-child{border-bottom:none;}
.activity-dot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex-shrink:0;}
.activity-text{font-size:13px;color:var(--text);line-height:1.4;}
.activity-time{font-size:11.5px;color:var(--text-faint);margin-top:2px;}

/* ---------- KANBAN ---------- */
.kanban-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.btn{
  display:inline-flex;align-items:center;gap:7px;
  padding:9px 16px;border-radius:9px;font-size:13px;font-weight:600;
  border:1px solid var(--border);background:var(--panel);color:var(--text);
  cursor:pointer;transition:background .12s,border-color .12s;
}
.btn svg{width:14px;height:14px;}
.btn:hover{background:var(--panel-3);}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#0b0f1a;}
.btn-primary:hover{background:#7099ff;}
.btn-ghost{background:none;border-color:transparent;color:var(--text-dim);}
.btn-ghost:hover{background:var(--panel);color:var(--text);}
.btn-danger-ghost{background:none;border:1px solid var(--border);color:var(--danger);}
.btn-danger-ghost:hover{background:var(--danger-dim);}

.kanban-board{
  display:flex;gap:14px;overflow-x:auto;padding-bottom:14px;
  align-items:flex-start;
}
.kcol{
  flex:0 0 278px;background:var(--panel);border:1px solid var(--border-soft);
  border-radius:var(--radius);display:flex;flex-direction:column;max-height:calc(100vh - 210px);
}
.kcol.drag-over{border-color:var(--accent);background:var(--accent-dim);}
.kcol-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:13px 14px;border-bottom:1px solid var(--border-soft);flex-shrink:0;
}
.kcol-head-left{display:flex;align-items:center;gap:8px;min-width:0;}
.kcol-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.kcol-title{font-size:13px;font-weight:700;font-family:'Plus Jakarta Sans';white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:none;background:none;color:var(--text);padding:0;width:100%;}
.kcol-title:focus{outline:none;border-bottom:1px solid var(--accent);}
.kcol-count{font-size:11px;color:var(--text-faint);background:var(--panel-3);padding:2px 7px;border-radius:100px;flex-shrink:0;}
.kcol-head-right{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.kcol-delete-btn{
  width:20px;height:20px;border-radius:6px;border:none;background:none;
  color:var(--text-faint);display:flex;align-items:center;justify-content:center;
  cursor:pointer;flex-shrink:0;
}
.kcol-delete-btn svg{width:12px;height:12px;}
.kcol-delete-btn:hover{background:var(--danger-dim);color:var(--danger);}
.kcol-body{padding:10px;display:flex;flex-direction:column;gap:9px;overflow-y:auto;min-height:60px;}

.kcard{
  background:var(--panel-2);border:1px solid var(--border-soft);border-radius:10px;
  padding:12px;cursor:grab;transition:border-color .12s,transform .1s;
}
.kcard:hover{border-color:var(--border);}
.kcard.dragging{opacity:.4;}
.kcard-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}
.kcard-top-icons{display:flex;align-items:center;gap:4px;flex-shrink:0;}
.kcard-name{font-size:13.5px;font-weight:600;line-height:1.3;}
.kcard-flag{
  width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;cursor:pointer;color:var(--text-faint);border:1px solid transparent;
}
.kcard-flag svg{width:13px;height:13px;}
.kcard-flag:hover{background:var(--panel-3);}
.kcard-flag.active{color:var(--danger);background:var(--danger-dim);}
.kcard-adelanto-badge{
  width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;cursor:pointer;color:var(--warning);background:var(--warning-dim);border:1px solid transparent;
}
.kcard-adelanto-badge svg{width:12px;height:12px;}
.kcard-adelanto-badge:hover{filter:brightness(1.15);}
.kcard-recordatorio-badge{
  width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;color:var(--accent-text);background:var(--accent-dim);border:1px solid transparent;
}
.kcard-recordatorio-badge svg{width:12px;height:12px;}
.kcard-meta{font-size:11.5px;color:var(--text-faint);margin-top:5px;}
.kcard-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:10px;}
.kcard-pay{width:8px;height:8px;border-radius:50%;}
.kcard-wa{
  display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;
  color:var(--success);background:var(--success-dim);padding:5px 9px;border-radius:100px;
  text-decoration:none;
}
.kcard-wa svg{width:12px;height:12px;}
.kcard-left{display:flex;align-items:center;gap:7px;}
.kcard-date{font-size:10.5px;color:var(--text-faint);}

.add-card-btn{
  width:100%;padding:9px;border-radius:8px;border:1px dashed var(--border);
  background:none;color:var(--text-faint);font-size:12px;cursor:pointer;font-weight:500;
}
.add-card-btn:hover{color:var(--text-dim);border-color:var(--text-faint);}

.add-col{
  flex:0 0 200px;display:flex;align-items:flex-start;
}
.add-col-inner{
  width:100%;border:1px dashed var(--border);border-radius:var(--radius);
  padding:13px;color:var(--text-faint);font-size:13px;cursor:pointer;
  display:flex;align-items:center;gap:8px;font-weight:500;
}
.add-col-inner:hover{color:var(--text-dim);border-color:var(--text-faint);}
.add-col-form{display:none;flex-direction:column;gap:8px;width:100%;}
.add-col-form.open{display:flex;}
.add-col-form input{
  background:var(--panel);border:1px solid var(--border);border-radius:8px;
  color:var(--text);padding:9px 11px;font-size:13px;font-family:inherit;
}
.add-col-form .row{display:flex;gap:8px;}

/* stamp badge */
.stamp{
  display:inline-flex;align-items:center;justify-content:center;
  border:1.5px dashed currentColor;border-radius:50%;
  width:15px;height:15px;transform:rotate(-8deg);flex-shrink:0;
}
.stamp svg{width:8px;height:8px;}

/* ---------- LISTA (vista de tabla) ---------- */
.list-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:12px;}
.list-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.input-icon{
  display:flex;align-items:center;gap:8px;
  background:var(--panel);border:1px solid var(--border);
  border-radius:9px;padding:8px 12px;width:240px;
}
.input-icon svg{width:15px;height:15px;color:var(--text-faint);flex-shrink:0;}
.input-icon input{
  border:none;background:none;outline:none;color:var(--text);font-size:13px;width:100%;font-family:inherit;
}
.input-icon input::placeholder{color:var(--text-faint);}
.select-mini{
  background:var(--panel);border:1px solid var(--border);border-radius:9px;
  padding:8px 12px;font-size:13px;color:var(--text);cursor:pointer;font-family:inherit;
}
.select-mini:focus{outline:none;border-color:var(--accent);}

.row-actions{display:flex;align-items:center;gap:14px;}
.row-actions button.link-btn{background:none;border:none;padding:0;cursor:pointer;font-family:inherit;}

.mini-select{
  background:var(--panel-3);border:1px solid var(--border);border-radius:7px;
  padding:6px 9px;font-size:12.5px;color:var(--text);cursor:pointer;font-family:inherit;
}
.mini-select:focus{outline:none;border-color:var(--accent);}

.pay-dot-wrap{position:relative;flex-shrink:0;}
.pay-dot{
  width:10px;height:10px;border-radius:50%;cursor:pointer;display:inline-block;
  border:2px solid var(--panel);box-shadow:0 0 0 1px var(--border);
}
.pay-menu{
  display:none;position:fixed;z-index:300;
  background:var(--panel-2);border:1px solid var(--border);border-radius:9px;
  padding:6px;min-width:150px;box-shadow:0 8px 24px rgba(0,0,0,.35);
}
.pay-menu.open{display:flex;flex-direction:column;gap:2px;}
.pay-menu button{
  display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:6px;
  background:none;border:none;color:var(--text);font-size:12.5px;text-align:left;cursor:pointer;font-family:inherit;
}
.pay-menu button:hover{background:var(--panel-3);}
.pay-swatch{width:8px;height:8px;border-radius:50%;flex-shrink:0;}

.list-pagination{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:14px;font-size:12.5px;color:var(--text-faint);
}
.pagination-controls{display:flex;gap:8px;}
.pagination-controls .btn{padding:7px 14px;font-size:12.5px;}
.pagination-controls .btn:disabled{opacity:.4;cursor:not-allowed;}

/* ---------- PLACEHOLDER VIEW ---------- */
.placeholder-box{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:90px 20px;color:var(--text-faint);
  background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius);
}
.placeholder-box svg{width:38px;height:38px;margin-bottom:16px;opacity:.5;}
.placeholder-box h3{color:var(--text-dim);margin:0 0 6px;font-size:15px;}
.placeholder-box p{margin:0;font-size:13px;max-width:340px;}

/* ---------- MODAL ---------- */
.modal-overlay{
  position:fixed;inset:0;background:rgba(5,7,14,.65);backdrop-filter:blur(3px);
  display:flex;align-items:flex-start;justify-content:center;
  padding:40px 20px;z-index:100;overflow-y:auto;
}
.modal-overlay[hidden]{display:none;}
.modal-overlay.stacked{z-index:110;}
.modal{
  background:var(--panel);border:1px solid var(--border);border-radius:16px;
  width:640px;max-width:100%;
}
.modal-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 24px;border-bottom:1px solid var(--border-soft);
}
.modal-head h3{margin:0;font-size:16px;font-weight:700;}
.modal-head .id-tag{font-size:11px;color:var(--text-faint);margin-top:3px;}
.modal-head-actions{display:flex;align-items:center;gap:8px;}
.icon-btn{
  width:32px;height:32px;border-radius:8px;border:1px solid var(--border);
  background:var(--panel-2);color:var(--text-dim);display:flex;align-items:center;justify-content:center;
  cursor:pointer;
}
.icon-btn:hover{background:var(--panel-3);color:var(--text);}
.icon-btn.active{background:var(--accent-dim);color:var(--accent-text);border-color:var(--accent);}
.icon-btn svg{width:14px;height:14px;}

.modal-body{padding:22px 24px;max-height:60vh;overflow-y:auto;}
.form-section{margin-bottom:22px;}
.form-section:last-child{margin-bottom:0;}
.form-section-title{
  font-size:11px;text-transform:uppercase;letter-spacing:.5px;font-weight:700;
  color:var(--text-faint);margin-bottom:12px;
}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.form-grid.full{grid-template-columns:1fr;}
.field label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:6px;font-weight:500;}
.field input,.field select,.field textarea{
  width:100%;background:var(--panel-2);border:1px solid var(--border);
  border-radius:8px;padding:10px 12px;color:var(--text);font-size:13.5px;font-family:inherit;
}
.field textarea{resize:vertical;min-height:56px;}
.field input:disabled,.field select:disabled,.field textarea:disabled{
  background:transparent;border-color:transparent;color:var(--text);padding-left:0;
  opacity:1;-webkit-text-fill-color:var(--text);
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);}
.field-pass{position:relative;}
.field-pass input{padding-right:70px;}
.field-pass-actions{position:absolute;right:6px;top:6px;display:flex;gap:2px;}
.field-pass-actions button{
  width:26px;height:26px;border:none;background:none;color:var(--text-faint);cursor:pointer;
  display:flex;align-items:center;justify-content:center;border-radius:6px;
}
.field-pass-actions button:hover{background:var(--panel-3);color:var(--text);}
.field-pass-actions svg{width:13px;height:13px;}
.field-copy{position:relative;}
.field-copy input{padding-right:40px;}
.field-copy .copy-btn{
  position:absolute;right:6px;top:6px;width:26px;height:26px;border:none;background:none;
  color:var(--text-faint);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;
}
.field-copy .copy-btn:hover{background:var(--panel-3);color:var(--text);}
.field-copy .copy-btn svg{width:13px;height:13px;}

.modal-foot{
  display:flex;align-items:center;justify-content:flex-end;gap:10px;
  padding:16px 24px;border-top:1px solid var(--border-soft);
}
.toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--panel-3);border:1px solid var(--border);color:var(--text);
  padding:11px 18px;border-radius:9px;font-size:13px;font-weight:500;
  opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:200;
  display:flex;align-items:center;gap:8px;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.toast svg{width:14px;height:14px;color:var(--success);}

/* ============================================================
   Estados de carga / vacío (fase 3 — datos reales)
   ============================================================ */
.empty-cell{padding:24px;text-align:center;color:var(--text-faint);font-size:13px;}

/* ============================================================
   LOGIN
   ============================================================ */
.login-body{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 30% 20%, #131b30, var(--bg) 60%);
}
.login-card{
  width:360px;max-width:90vw;background:var(--panel);border:1px solid var(--border-soft);
  border-radius:18px;padding:34px 30px;text-align:center;
}
.login-logo{width:64px;height:64px;object-fit:contain;margin-bottom:14px;}
.login-card h1{font-size:19px;margin:0 0 6px;}
.login-sub{font-size:13px;color:var(--text-faint);margin:0 0 22px;}
.login-error{
  background:var(--danger-dim);color:var(--danger);border-radius:8px;
  padding:9px 12px;font-size:12.5px;margin-bottom:16px;text-align:left;
}
.login-form{display:flex;flex-direction:column;gap:14px;text-align:left;}
.login-form .field label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:6px;font-weight:500;}
.login-form .field input{
  width:100%;background:var(--panel-2);border:1px solid var(--border);border-radius:9px;
  padding:11px 12px;color:var(--text);font-size:13.5px;font-family:inherit;
}
.login-form .field input:focus{outline:none;border-color:var(--accent);}
.btn-block{width:100%;justify-content:center;margin-top:4px;}

/* ============================================================
   CALENDARIO EMBAJADA (Citas → Calendario Embajada, sección 16)
   ============================================================ */
.stat-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.stat-grid.cols-2{grid-template-columns:repeat(2,1fr);}

.tidycal-panel{padding:14px 16px;margin-bottom:16px;}
.tidycal-links{display:flex;flex-wrap:wrap;gap:10px;}
.tidycal-link-item{
  display:flex;align-items:center;gap:6px;
  background:var(--panel-3);border:1px solid var(--border-soft);
  border-radius:999px;padding:6px 6px 6px 14px;
}
.tidycal-link-label{font-size:12.5px;font-weight:600;color:var(--text-dim);white-space:nowrap;}
.tidycal-link-item .icon-btn{width:26px;height:26px;}
.tidycal-link-item .icon-btn svg{width:13px;height:13px;}

/* ---------- PAGOS (secciones 14 y 19) ---------- */
#leadPagosList{display:flex;flex-direction:column;gap:6px;}
.pago-row{
  display:flex;align-items:center;gap:10px;
  padding:9px 10px;border:1px solid var(--border-soft);border-radius:9px;
  cursor:pointer;transition:background .12s;
}
.pago-row:hover{background:var(--panel-2);}
.pago-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.pago-info{flex:1;min-width:0;}
.pago-concepto{font-size:13px;font-weight:600;}
.pago-meta{font-size:11.5px;color:var(--text-faint);margin-top:2px;}

/* ---------- RECORDATORIOS (integración con Google Tasks) ---------- */
#leadRecordatoriosList{display:flex;flex-direction:column;gap:6px;}
.recordatorio-row{
  display:flex;align-items:center;gap:10px;
  padding:9px 10px;border:1px solid var(--border-soft);border-radius:9px;
  cursor:pointer;transition:background .12s;
}
.recordatorio-row:hover{background:var(--panel-2);}
.recordatorio-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--accent);}
.recordatorio-dot.vencido{background:var(--text-faint);}
.recordatorio-info{flex:1;min-width:0;}
.recordatorio-texto{font-size:13px;font-weight:600;}
.recordatorio-meta{font-size:11.5px;color:var(--text-faint);margin-top:2px;}

/* ---------- DOCUMENTOS (sección 15) ---------- */
#leadDocumentosList{display:flex;flex-direction:column;gap:6px;}
.doc-row{
  display:flex;align-items:center;gap:10px;
  padding:9px 10px;border:1px solid var(--border-soft);border-radius:9px;
}
.doc-icon{width:22px;height:22px;flex-shrink:0;color:var(--text-dim);display:flex;align-items:center;justify-content:center;}
.doc-icon svg{width:18px;height:18px;}
.doc-info{flex:1;min-width:0;}
.doc-nombre{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.doc-meta{font-size:11.5px;color:var(--text-faint);margin-top:2px;}

/* ---------- HISTORIAL DE NOTAS (sección 13) ---------- */
#leadNotasList{display:flex;flex-direction:column;gap:8px;max-height:220px;overflow-y:auto;}
.nota-row{padding:9px 10px;border:1px solid var(--border-soft);border-radius:9px;}
.nota-fecha{font-size:11px;color:var(--text-faint);margin-bottom:3px;}
.nota-texto{font-size:13px;line-height:1.4;white-space:pre-wrap;}

/* ---------- HISTORIAL DE CAMBIOS DE ETAPA (sección 13) ---------- */
#leadEtapasHistorialList{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow-y:auto;}
.etapa-hist-row{padding:8px 10px;border:1px solid var(--border-soft);border-radius:9px;}
.etapa-hist-fecha{font-size:11px;color:var(--text-faint);margin-bottom:3px;}
.etapa-hist-texto{font-size:13px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.etapa-hist-arrow{color:var(--text-faint);}

.cal-toggle{
  display:flex;align-items:center;gap:7px;
  font-size:13px;color:var(--text-dim);cursor:pointer;user-select:none;
}
.cal-toggle input{accent-color:var(--accent);width:14px;height:14px;cursor:pointer;}

/* Toggle segmentado Grid/Lista (Calendario Embajada, mejora del 26 ago 2026) */
.view-toggle{
  display:flex;background:var(--panel);border:1px solid var(--border);
  border-radius:9px;padding:3px;gap:2px;flex-shrink:0;
}
.view-toggle-btn{
  padding:7px 14px;border-radius:7px;border:none;background:none;
  color:var(--text-dim);font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;
}
.view-toggle-btn:hover{color:var(--text);}
.view-toggle-btn.active{background:var(--accent-dim);color:var(--accent-text);}

.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.cal-nav-left{display:flex;align-items:center;gap:10px;}
.cal-mes-label{font-family:'Plus Jakarta Sans';font-size:15px;font-weight:700;text-transform:capitalize;min-width:150px;text-align:center;}

.cal-panel{padding:16px;}
.cal-weekdays{
  display:grid;grid-template-columns:repeat(7,1fr);
  font-size:11px;text-transform:uppercase;letter-spacing:.4px;font-weight:600;
  color:var(--text-faint);padding:0 2px 10px;
}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.cal-cell{
  min-height:96px;border:1px solid var(--border-soft);border-radius:9px;
  padding:8px;display:flex;flex-direction:column;gap:5px;background:var(--panel-2);
}
.cal-cell-empty{border-color:transparent;background:none;}
.cal-cell-today{border-color:var(--accent);background:var(--accent-dim);}
.cal-cell-num{font-size:12px;font-weight:700;color:var(--text-dim);}
.cal-cell-today .cal-cell-num{color:var(--accent-text);}
.cal-cell-events{display:flex;flex-direction:column;gap:3px;overflow-y:auto;}
.cal-chip{
  font-size:10.5px;font-weight:600;line-height:1.35;padding:3px 6px;border-radius:6px;
  cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.cal-chip-time{opacity:.8;font-variant-numeric:tabular-nums;margin-right:3px;}
.cal-chip-neutral{background:var(--accent-dim);color:var(--accent-text);}
.cal-chip-ok{background:var(--success-dim);color:var(--success);}
.cal-chip-danger{background:var(--danger-dim);color:var(--danger);}

/* ---------- Modal "Obtener fechas" — lista de coincidencias ---------- */
.cal-sync-row{
  display:flex;align-items:center;gap:12px;
  padding:12px 4px;border-bottom:1px solid var(--border-soft);
}
.cal-sync-row:last-child{border-bottom:none;}
.cal-sync-check input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;}
.cal-sync-info{flex:1;min-width:0;}
.cal-sync-name{font-size:13.5px;font-weight:600;}
.cal-sync-meta{font-size:12px;color:var(--text-faint);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cal-sync-tipo{flex-shrink:0;}

/* ============================================================
   EVALUADOR DE PERFIL — embebido nativo (sección 12, PreCalificación)
   ------------------------------------------------------------
   Todo aislado bajo el ancestro .eval-embed para no chocar con las
   clases genéricas del CRM (.btn, .nav, .main, .toast, etc. — el
   Evaluador original también las usa, pero acá solo aplican a sus
   propios descendientes). Layout adaptado de position:fixed relativo
   al viewport a flex-column relativo al contenedor .view-full: header
   y barra de navegación quedan siempre visibles sin scroll de página,
   y solo el contenido de la pregunta actual scrollea internamente si
   hiciera falta.
   ============================================================ */

.eval-embed{
  --eval-navy:#07071f; --eval-navy2:#0d0d2e;
  --eval-gold:#c9a025; --eval-gold2:#e8bc3a;
  --eval-white:#ffffff; --eval-muted:rgba(255,255,255,0.55);
  --eval-card-bg:rgba(255,255,255,0.05);
  --eval-card-border:rgba(255,255,255,0.1);
  --eval-danger:#e05252; --eval-success:#52c97a; --eval-warn:#e0a452;
  --eval-test:#a855f7;
  height:100%; display:flex; flex-direction:column; position:relative;
  background:var(--eval-navy); color:var(--eval-white);
  font-family:'DM Sans',sans-serif; overflow:hidden;
}
.eval-embed *{ box-sizing:border-box; }


.eval-embed .ev-hdr{ flex-shrink:0; background:rgba(7,7,31,0.96); backdrop-filter:blur(14px); border-bottom:1px solid rgba(201,160,37,0.18); padding:10px 20px 8px; }
.eval-embed .ev-hdr-top{ display:flex; align-items:center; justify-content:flex-end; margin-bottom:8px; }
.eval-embed .ev-hdr-right{ display:flex; align-items:center; gap:14px; }
.eval-embed .ev-score-wrap{ display:flex; align-items:baseline; gap:4px; }
.eval-embed .ev-score-lbl{ font-size:.68rem; color:var(--eval-muted); text-transform:uppercase; letter-spacing:.08em; }
.eval-embed .ev-score-val{ font-family:'Playfair Display',serif; font-size:1.55rem; font-weight:700; color:var(--eval-gold); transition:all .35s ease; min-width:44px; text-align:right; }
.eval-embed .ev-score-max{ font-size:.72rem; color:var(--eval-muted); }
.eval-embed .ev-prog-bar-bg{ height:3px; background:rgba(255,255,255,0.09); border-radius:2px; overflow:hidden; }
.eval-embed .ev-prog-bar-fill{ height:100%; background:linear-gradient(90deg,var(--eval-gold),var(--eval-gold2)); border-radius:2px; transition:width .5s ease; width:0%; }
.eval-embed .ev-prog-lbl{ font-size:.65rem; color:var(--eval-muted); margin-top:4px; letter-spacing:.05em; }

.eval-embed .ev-main{ flex:1; overflow-y:auto; display:flex; }
.eval-embed .ev-sec{ display:none; width:100%; max-width:920px; margin:0 auto; padding:18px 32px 16px; animation:evFadeUp .38s ease; }
.eval-embed .ev-sec.active{ display:block; }
.eval-embed #ev-sec-result{ max-width:620px; margin:0 auto; }
@keyframes evFadeUp{ from{opacity:0;transform:translateY(18px)} to{opacity:1;transform:translateY(0)} }

.eval-embed .ev-sec-badge{ display:inline-block; font-size:.62rem; text-transform:uppercase; letter-spacing:.12em; color:var(--eval-gold); border:1px solid rgba(201,160,37,.28); padding:3px 11px; border-radius:20px; margin-bottom:12px; }
.eval-embed .ev-sec-title{ font-family:'Playfair Display',serif; font-size:clamp(1.25rem,3.5vw,1.7rem); font-weight:700; line-height:1.15; margin-bottom:4px; }
.eval-embed .ev-sec-title-sm{ font-size:clamp(.75rem,2.1vw,1.02rem); margin-bottom:14px; }
.eval-embed .ev-sec-sub{ font-size:.82rem; color:var(--eval-muted); line-height:1.5; margin-bottom:14px; }

.eval-embed .ev-mini-toggle{ display:flex; align-items:center; gap:6px; cursor:pointer; user-select:none; }
.eval-embed .ev-mini-toggle-lbl{ font-size:.66rem; color:var(--eval-muted); text-transform:uppercase; letter-spacing:.06em; white-space:nowrap; }
.eval-embed .ev-mini-toggle input{ opacity:0; width:0; height:0; position:absolute; }
.eval-embed .ev-mini-toggle-slider{ position:relative; width:28px; height:16px; flex-shrink:0; display:inline-block; background:rgba(255,255,255,.15); border-radius:16px; transition:.3s; }
.eval-embed .ev-mini-toggle-slider:before{ content:''; position:absolute; width:12px; height:12px; border-radius:50%; background:#fff; left:2px; top:2px; transition:.3s; }
.eval-embed .ev-mini-toggle input:checked + .ev-mini-toggle-slider{ background:var(--eval-test); }
.eval-embed .ev-mini-toggle input:checked + .ev-mini-toggle-slider:before{ transform:translateX(12px); }
.eval-embed .ev-mini-toggle input:checked ~ .ev-mini-toggle-lbl{ color:var(--eval-test); }

.eval-embed .ev-fld{ margin-bottom:10px; }
.eval-embed .ev-fld-grid{ display:grid; grid-template-columns:1fr 1fr; gap:6px 20px; margin-bottom:6px; }
.eval-embed .ev-fld-grid .ev-fld{ margin-bottom:8px; }
.eval-embed .ev-fld-lbl{ display:block; font-size:.76rem; text-transform:uppercase; letter-spacing:.07em; color:var(--eval-muted); margin-bottom:7px; }
.eval-embed .ev-fld-inp{ width:100%; background:rgba(255,255,255,0.06); border:1.5px solid var(--eval-card-border); border-radius:9px; padding:9px 13px; color:var(--eval-white); font-family:'DM Sans',sans-serif; font-size:.87rem; outline:none; transition:border-color .2s; }
.eval-embed .ev-fld-inp:focus{ border-color:var(--eval-gold); }
.eval-embed .ev-fld-inp option{ background:var(--eval-navy2); }

.eval-embed .ev-opts{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:8px 14px; margin-bottom:14px; }
.eval-embed .ev-opts.single-col{ grid-template-columns:1fr; }
.eval-embed .ev-opt{ background:var(--eval-card-bg); border:1.5px solid var(--eval-card-border); border-radius:12px; padding:14px 16px; cursor:pointer; display:flex; align-items:center; gap:13px; transition:all .22s ease; user-select:none; }
.eval-embed .ev-opt:hover{ border-color:rgba(201,160,37,.4); background:rgba(201,160,37,.05); }
.eval-embed .ev-opt.sel{ border-color:var(--eval-gold); background:rgba(201,160,37,.1); }
.eval-embed .ev-opt-radio{ width:19px; height:19px; border-radius:50%; border:2px solid rgba(255,255,255,.3); flex-shrink:0; display:flex; align-items:center; justify-content:center; transition:all .2s; }
.eval-embed .ev-opt.sel .ev-opt-radio{ border-color:var(--eval-gold); background:var(--eval-gold); }
.eval-embed .ev-opt.sel .ev-opt-radio::after{ content:''; width:7px; height:7px; border-radius:50%; background:var(--eval-navy); }
.eval-embed .ev-opt-check{ width:19px; height:19px; border-radius:5px; border:2px solid rgba(255,255,255,.3); flex-shrink:0; display:flex; align-items:center; justify-content:center; transition:all .2s; }
.eval-embed .ev-opt.sel .ev-opt-check{ border-color:var(--eval-gold); background:var(--eval-gold); }
.eval-embed .ev-opt.sel .ev-opt-check::after{ content:'✓'; font-size:11px; color:var(--eval-navy); font-weight:700; }
.eval-embed .ev-opt-txt{ font-size:.86rem; line-height:1.4; flex:1; }
.eval-embed .ev-opt-pts{ font-size:.7rem; color:var(--eval-gold); opacity:.75; white-space:nowrap; flex-shrink:0; }

.eval-embed .ev-yn-grid{ display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-bottom:10px; }
.eval-embed .ev-yn{ background:var(--eval-card-bg); border:1.5px solid var(--eval-card-border); border-radius:10px; padding:10px 12px; cursor:pointer; text-align:center; transition:all .22s; user-select:none; }
.eval-embed .ev-yn:hover{ border-color:rgba(201,160,37,.4); }
.eval-embed .ev-yn-icon{ font-size:1.4rem; margin-bottom:5px; }
.eval-embed .ev-yn-txt{ font-size:.86rem; font-weight:500; }
.eval-embed .ev-yn.ev-yn-yes{ border-color:var(--eval-success); background:rgba(82,201,122,.1); }
.eval-embed .ev-yn.ev-yn-no{ border-color:rgba(255,255,255,.35); background:rgba(255,255,255,.04); }
.eval-embed .ev-yn.ev-yn-flag{ border-color:var(--eval-danger); background:rgba(224,82,82,.1); }

.eval-embed .ev-notes-sep{ margin-top:10px; padding-top:10px; border-top:1px solid rgba(255,255,255,.07); }
.eval-embed .ev-notes-lbl{ font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:var(--eval-muted); margin-bottom:6px; display:flex; align-items:center; gap:5px; }
.eval-embed textarea.ev-fld-inp{ resize:vertical; min-height:44px; }

.eval-embed .ev-nav{ flex-shrink:0; width:100%; max-width:920px; margin:0 auto; background:rgba(7,7,31,.97); backdrop-filter:blur(12px); border-top:1px solid rgba(255,255,255,.07); padding:12px 32px; display:flex; align-items:center; gap:11px; }
.eval-embed .ev-btn{ padding:11px 22px; border-radius:11px; border:none; font-family:'DM Sans',sans-serif; font-size:.86rem; font-weight:600; cursor:pointer; transition:all .2s; flex:0 0 auto; }
.eval-embed .ev-btn-back{ background:rgba(255,255,255,.09); color:var(--eval-white); }
.eval-embed .ev-btn-back:hover{ background:rgba(255,255,255,.14); }
.eval-embed .ev-btn-next{ background:var(--eval-gold); color:var(--eval-navy); margin-left:auto; padding:11px 34px; }
.eval-embed .ev-btn-next:hover{ background:var(--eval-gold2); }
.eval-embed .ev-btn-next:disabled{ opacity:.38; cursor:not-allowed; }

.eval-embed .ev-modal-ov{ position:fixed; inset:0; background:rgba(0,0,0,.78); z-index:200; display:flex; align-items:center; justify-content:center; padding:20px; backdrop-filter:blur(5px); }
.eval-embed .ev-modal-ov[hidden]{ display:none; }
.eval-embed .ev-modal-box{ background:var(--eval-navy2); border:1.5px solid var(--eval-danger); border-radius:16px; padding:28px; max-width:400px; width:100%; box-shadow:0 0 44px rgba(224,82,82,.18); }
.eval-embed .ev-modal-ico{ font-size:2.4rem; margin-bottom:10px; }
.eval-embed .ev-modal-ttl{ font-family:'Playfair Display',serif; font-size:1.15rem; color:var(--eval-danger); margin-bottom:9px; }
.eval-embed .ev-modal-txt{ font-size:.86rem; color:var(--eval-white); line-height:1.65; margin-bottom:20px; }
.eval-embed .ev-modal-btn{ width:100%; padding:13px; background:var(--eval-danger); color:#fff; border:none; border-radius:10px; font-family:'DM Sans',sans-serif; font-size:.88rem; font-weight:600; cursor:pointer; }

.eval-embed .ev-sending-ov{ position:fixed; inset:0; background:rgba(7,7,31,.92); z-index:300; display:none; align-items:center; justify-content:center; flex-direction:column; gap:16px; }
.eval-embed .ev-sending-ov.show{ display:flex; }
.eval-embed .ev-spinner{ width:44px; height:44px; border:3px solid rgba(201,160,37,.2); border-top-color:var(--eval-gold); border-radius:50%; animation:evSpin .8s linear infinite; }
@keyframes evSpin{ to{ transform:rotate(360deg); } }
.eval-embed .ev-sending-txt{ font-size:.9rem; color:var(--eval-muted); }

.eval-embed .ev-toast{ position:absolute; bottom:80px; left:50%; transform:translateX(-50%); background:rgba(13,13,46,.97); border:1px solid rgba(255,255,255,.12); border-radius:10px; padding:12px 20px; font-size:.82rem; color:var(--eval-white); z-index:50; opacity:0; transition:opacity .3s; pointer-events:none; white-space:nowrap; max-width:90%; overflow:hidden; text-overflow:ellipsis; }
.eval-embed .ev-toast.show{ opacity:1; }

.eval-embed .ev-res-hero{ text-align:center; padding:16px 0 30px; }
.eval-embed .ev-res-ring{ width:136px; height:136px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; margin:0 auto 18px; border:3px solid transparent; }
.eval-embed .ev-res-ring.green{ border-color:var(--eval-success); background:radial-gradient(circle,rgba(82,201,122,.12),transparent); box-shadow:0 0 28px rgba(82,201,122,.18); }
.eval-embed .ev-res-ring.yellow{ border-color:var(--eval-warn); background:radial-gradient(circle,rgba(224,164,82,.12),transparent); box-shadow:0 0 28px rgba(224,164,82,.18); }
.eval-embed .ev-res-ring.red{ border-color:var(--eval-danger); background:radial-gradient(circle,rgba(224,82,82,.12),transparent); box-shadow:0 0 28px rgba(224,82,82,.18); }
.eval-embed .ev-res-num{ font-family:'Playfair Display',serif; font-size:2.7rem; font-weight:700; line-height:1; }
.eval-embed .ev-res-ring.green .ev-res-num{ color:var(--eval-success); }
.eval-embed .ev-res-ring.yellow .ev-res-num{ color:var(--eval-warn); }
.eval-embed .ev-res-ring.red .ev-res-num{ color:var(--eval-danger); }
.eval-embed .ev-res-max{ font-size:.68rem; color:var(--eval-muted); }
.eval-embed .ev-res-class{ font-family:'Playfair Display',serif; font-size:1.25rem; margin-bottom:5px; }
.eval-embed .ev-res-case{ font-size:.76rem; color:var(--eval-muted); letter-spacing:.09em; }
.eval-embed .ev-sheets-badge{ display:inline-flex; align-items:center; gap:5px; margin-top:8px; font-size:.68rem; background:rgba(82,201,122,.1); border:1px solid rgba(82,201,122,.3); color:var(--eval-success); padding:3px 11px; border-radius:20px; }
.eval-embed .ev-sheets-badge.test{ background:rgba(168,85,247,.1); border-color:rgba(168,85,247,.3); color:var(--eval-test); }

.eval-embed .ev-res-card{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:14px; padding:20px; margin-bottom:14px; }
.eval-embed .ev-res-card-ttl{ font-size:.7rem; text-transform:uppercase; letter-spacing:.1em; color:var(--eval-gold); margin-bottom:14px; }
.eval-embed .ev-cat-row{ display:flex; align-items:center; gap:10px; margin-bottom:9px; }
.eval-embed .ev-cat-name{ font-size:.8rem; color:var(--eval-white); width:130px; flex-shrink:0; }
.eval-embed .ev-cat-bar-bg{ flex:1; height:5px; background:rgba(255,255,255,.08); border-radius:3px; overflow:hidden; }
.eval-embed .ev-cat-bar-fill{ height:100%; border-radius:3px; transition:width .9s ease; }
.eval-embed .ev-cat-pct{ font-size:.72rem; color:var(--eval-muted); width:30px; text-align:right; }
.eval-embed .ev-sw-item{ display:flex; gap:9px; margin-bottom:9px; font-size:.84rem; line-height:1.5; }
.eval-embed .ev-dot-green{ color:var(--eval-success); flex-shrink:0; }
.eval-embed .ev-dot-red{ color:var(--eval-danger); flex-shrink:0; }
.eval-embed .ev-rec-item{ background:rgba(201,160,37,.07); border-left:3px solid var(--eval-gold); border-radius:0 8px 8px 0; padding:11px 14px; margin-bottom:9px; font-size:.84rem; line-height:1.6; }

.eval-embed .ev-act-grid{ display:grid; grid-template-columns:1fr 1fr; gap:11px; margin-top:18px; padding-bottom:16px; }
.eval-embed .ev-act-btn{ padding:15px 10px; border-radius:12px; border:none; font-family:'DM Sans',sans-serif; font-size:.8rem; font-weight:600; cursor:pointer; display:flex; flex-direction:column; align-items:center; gap:5px; transition:all .2s; }
.eval-embed .ev-act-ico{ font-size:1.25rem; }
.eval-embed .ev-btn-pdf{ background:var(--eval-gold); color:var(--eval-navy); }
.eval-embed .ev-btn-pdf:hover{ background:var(--eval-gold2); }
.eval-embed .ev-btn-wa{ background:#25d366; color:#fff; }
.eval-embed .ev-btn-wa:hover{ background:#1eb557; }
.eval-embed .ev-btn-email{ background:rgba(255,255,255,.11); color:var(--eval-white); border:1px solid rgba(255,255,255,.18); }
.eval-embed .ev-btn-email:hover{ background:rgba(255,255,255,.17); }
.eval-embed .ev-btn-hs{ background:#ff7a59; color:#fff; }
.eval-embed .ev-btn-hs:hover{ background:#ff6040; }

.eval-embed .ev-new-eval-btn{ width:100%; margin-top:6px; padding:13px; border-radius:11px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); color:var(--eval-white); font-family:'DM Sans',sans-serif; font-size:.86rem; font-weight:500; cursor:pointer; transition:background .2s; }
.eval-embed .ev-new-eval-btn:hover{ background:rgba(255,255,255,.12); }

@media(max-width:480px){
  .eval-embed .ev-cat-name{ width:100px; }
  .eval-embed .ev-act-grid{ grid-template-columns:1fr; }
}

/* ============================================================
   EMBUDO DE VENTAS
   ------------------------------------------------------------
   Dos modos dentro de una misma vista (.embudo-tabs alterna entre
   "Embudo" y "Pipeline"). El gráfico en sí es SVG generado por JS
   (renderEmbudoFunnel) directo en #embudoChartWrap, así que acá solo
   van los estilos de layout alrededor + el Pipeline (que reusa .kcol/
   .kcard vía las mismas clases del Kanban principal).
   ============================================================ */
.embudo-tabs{display:flex;gap:4px;background:var(--panel);border:1px solid var(--border-soft);border-radius:10px;padding:4px;}
.embudo-tab{
  border:none;background:none;color:var(--text-dim);font-size:13px;font-weight:600;
  padding:8px 18px;border-radius:7px;cursor:pointer;transition:background .12s,color .12s;
}
.embudo-tab:hover{color:var(--text);}
.embudo-tab.active{background:var(--accent);color:#0b0f1a;}
.embudo-perdidos-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:18px;height:18px;padding:0 5px;border-radius:100px;
  background:var(--danger-dim);color:var(--danger);font-size:10.5px;font-weight:700;margin-left:2px;
}

/* El atributo [hidden] por sí solo no alcanza acá: .kanban-board ya
   trae display:flex con la misma especificidad, así que sin esto el
   Pipeline se seguía viendo "por debajo" del gráfico del embudo aunque
   tuviera el atributo hidden puesto. */
#embudoBoard[hidden],
#embudoChartWrap[hidden]{display:none !important;}

/* El wrap se limita en ALTO a propósito (no en ancho): el SVG mantiene
   proporción por su viewBox, así que basta con topearle la altura
   disponible en el viewport para que el embudo completo (7 etapas)
   entre siempre sin scroll — dejándolo crecer en ancho todo lo que
   haga falta es lo que hace que el texto y el contador de leads se
   lean cómodos. */
#embudoChartWrap{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:clamp(430px, calc(100vh - 185px), 700px);
  padding:24px 18px !important;
  overflow:visible;
  background:
    radial-gradient(circle at 50% 8%, rgba(91,140,255,.06), transparent 42%),
    linear-gradient(180deg, rgba(255,255,255,.012), transparent 35%);
}
#embudoChartWrap svg{
  width:auto;
  height:auto;
  max-width:min(920px, 94%);
  max-height:clamp(430px, calc(100vh - 210px), 700px);
  display:block;
  overflow:visible;
  filter:drop-shadow(0 18px 28px rgba(0,0,0,.22));
}
.embudo-band{cursor:pointer;transition:opacity .16s,filter .16s;transform-origin:center;}
.embudo-band:hover{opacity:.94;filter:brightness(1.08) drop-shadow(0 5px 10px rgba(0,0,0,.18));}

@media(max-width:900px){
  #embudoChartWrap{min-height:clamp(390px, calc(100vh - 190px), 620px);padding:18px 10px !important;}
  #embudoChartWrap svg{max-width:94%;max-height:clamp(390px, calc(100vh - 210px), 620px);}
}
@media(max-width:600px){
  #embudoChartWrap{min-height:0;overflow:visible;}
  #embudoChartWrap svg{width:94vw;max-width:94vw;max-height:calc(100vh - 250px);flex:0 0 auto;}
}

.embudo-mensaje-row{
  padding:14px;border:1px solid var(--border-soft);border-radius:10px;margin-bottom:10px;
}
.embudo-mensaje-row .em-etapa-nombre{font-size:13px;font-weight:700;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;}
.embudo-mensaje-row textarea{
  width:100%;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;
  padding:10px 12px;color:var(--text);font-size:13px;font-family:inherit;resize:vertical;min-height:90px;
}
.embudo-mensaje-row .em-save-btn{margin-top:8px;}

.embudo-perdido-row{
  display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--border-soft);
  border-radius:9px;margin-bottom:8px;
}
.embudo-perdido-row .ep-info{flex:1;min-width:0;}
.embudo-perdido-row .ep-nombre{font-size:13px;font-weight:600;}
.embudo-perdido-row .ep-motivo{font-size:11.5px;color:var(--text-faint);margin-top:2px;}

.kcard-mensaje-btn{
  display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;
  color:var(--accent-text);background:var(--accent-dim);padding:5px 9px;border-radius:100px;
  border:none;cursor:pointer;font-family:inherit;
}
.kcard-mensaje-btn svg{width:12px;height:12px;}

/* ---------- Editor de plantillas — pestañas por etapa (mejora) ---------- */
.ema-tabs-wrap{
  display:flex;align-items:center;gap:6px;padding:0 24px;
  border-bottom:1px solid var(--border-soft);
}
.ema-tabs{
  display:flex;gap:2px;overflow-x:auto;flex:1;min-width:0;
  scrollbar-width:thin;
}
.ema-tab{
  flex:0 0 auto;padding:11px 14px;border:none;background:none;
  color:var(--text-dim);font-size:12.5px;font-weight:600;cursor:pointer;
  border-bottom:2px solid transparent;white-space:nowrap;font-family:inherit;
}
.ema-tab:hover{color:var(--text);}
.ema-tab.active{color:var(--accent-text);border-bottom-color:var(--accent);}
.ema-tab-add{
  flex-shrink:0;width:28px;height:28px;border-radius:8px;border:1px dashed var(--border);
  background:none;color:var(--text-faint);cursor:pointer;display:flex;align-items:center;justify-content:center;
  margin:8px 0;
}
.ema-tab-add:hover{color:var(--text-dim);border-color:var(--text-faint);}
.ema-tab-add svg{width:13px;height:13px;}

.embudo-mensaje-row{
  padding:14px;border:1px solid var(--border-soft);border-radius:10px;margin-bottom:10px;
}
.embudo-mensaje-row .em-nombre-row{
  display:flex;align-items:center;gap:8px;margin-bottom:8px;
}
.embudo-mensaje-row .em-nombre-input{
  flex:1;background:var(--panel-2);border:1px solid var(--border);border-radius:7px;
  padding:7px 10px;color:var(--text);font-size:12.5px;font-weight:600;font-family:inherit;
}
.embudo-mensaje-row .em-delete-btn{
  flex-shrink:0;width:28px;height:28px;border-radius:7px;border:1px solid var(--border);
  background:var(--panel-2);color:var(--danger);cursor:pointer;display:flex;align-items:center;justify-content:center;
}
.embudo-mensaje-row .em-delete-btn:hover{background:var(--danger-dim);}
.embudo-mensaje-row .em-delete-btn svg{width:13px;height:13px;}
.embudo-mensaje-row textarea{
  width:100%;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;
  padding:10px 12px;color:var(--text);font-size:13px;font-family:inherit;resize:vertical;min-height:90px;
}
.embudo-mensaje-row .em-save-btn{margin-top:8px;}
.ema-add-plantilla-btn{
  width:100%;padding:11px;border-radius:10px;border:1px dashed var(--border);
  background:none;color:var(--text-faint);font-size:12.5px;cursor:pointer;font-weight:500;
}
.ema-add-plantilla-btn:hover{color:var(--text-dim);border-color:var(--text-faint);}

/* ---------- Botón de WhatsApp directo en la tarjeta del Embudo (sin plantilla) ---------- */
.kcard-wa-icon{
  width:24px;height:24px;border-radius:100px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  color:var(--success);background:var(--success-dim);border:none;cursor:pointer;
}
.kcard-wa-icon:hover{filter:brightness(1.15);}
.kcard-wa-icon svg{width:13px;height:13px;}
.kcard-actions-right{display:flex;align-items:center;gap:6px;}

/* ---------- Modal "Enviar mensaje" unificado — lista compacta de mensajes ---------- */
.emsg-msg-list{display:flex;flex-direction:column;gap:6px;max-height:180px;overflow-y:auto;}
.emsg-msg-row{
  display:flex;align-items:center;gap:8px;
  padding:9px 10px;border:1px solid var(--border-soft);border-radius:9px;
  cursor:pointer;transition:background .12s,border-color .12s;
}
.emsg-msg-row:hover{background:var(--panel-2);}
.emsg-msg-row.active{border-color:var(--accent);background:var(--accent-dim);}
.emsg-msg-nombre{flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.emsg-msg-actions{display:flex;align-items:center;gap:4px;flex-shrink:0;}
.emsg-msg-icon-btn{
  width:24px;height:24px;border-radius:6px;border:none;background:none;
  color:var(--text-faint);cursor:pointer;display:flex;align-items:center;justify-content:center;
}
.emsg-msg-icon-btn:hover{background:var(--panel-3);color:var(--text);}
.emsg-msg-icon-btn.danger:hover{background:var(--danger-dim);color:var(--danger);}
.emsg-msg-icon-btn svg{width:12px;height:12px;}
.emsg-add-row{
  width:100%;padding:9px;border-radius:9px;border:1px dashed var(--border);
  background:none;color:var(--text-faint);font-size:12.5px;cursor:pointer;font-weight:500;text-align:center;
}
.emsg-add-row:hover{color:var(--text-dim);border-color:var(--text-faint);}
.emsg-empty-cat{padding:16px;text-align:center;color:var(--text-faint);font-size:12.5px;}

/* ---------- Modal "Enviar mensaje" — selector rápido arriba de las pestañas ---------- */
.emsg-buscar-wrap{padding:14px 24px 0;}
.emsg-buscar-wrap label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--text-faint);font-weight:600;margin-bottom:6px;}
.emsg-buscar-wrap select{
  width:100%;background:var(--panel-2);border:1px solid var(--border);border-radius:9px;
  padding:9px 12px;color:var(--text);font-size:13px;font-family:inherit;cursor:pointer;
}
.emsg-buscar-wrap select:focus{outline:none;border-color:var(--accent);}

/* ---------- Modal "Enviar mensaje" — nota/recordatorio del mensaje
   seleccionado (notaAdjunto). Puramente informativa, nunca bloquea
   "Guardar" ni "Enviar". ---------- */
.emsg-nota-wrap{
  display:flex;align-items:flex-start;gap:8px;
  background:var(--warning-dim);border:1px solid rgba(251,191,36,.3);
  border-radius:9px;padding:8px 10px;margin-bottom:8px;font-size:12.5px;
  color:var(--text);
}
.emsg-nota-wrap[hidden]{display:none;}
.emsg-nota-icon{flex-shrink:0;}
.emsg-nota-texto{flex:1;line-height:1.4;}
.emsg-nota-texto.emsg-nota-vacia{color:var(--text-faint);font-style:italic;}
.emsg-nota-edit-btn{
  flex-shrink:0;background:none;border:none;color:var(--text-dim);
  cursor:pointer;font-size:13px;padding:0 2px;
}
.emsg-nota-edit-btn:hover{color:var(--text);}

