/* ── Reset + base ─────────────────────────────────────────── */
*{margin:0;padding:0;box-sizing:border-box}
.hidden{display:none !important}
body{background:#f0f4f8;color:#1e293b;font-family:'Segoe UI',-apple-system,BlinkMacSystemFont,sans-serif;min-height:100vh;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}
input,select,textarea,button{font-family:inherit}
button{cursor:pointer;border:none;background:none;color:inherit;-webkit-tap-highlight-color:transparent}
a{text-decoration:none}
pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:inherit}

/* ── Shell ────────────────────────────────────────────────── */
#cas-root{display:flex;flex-direction:column;height:100vh;overflow:hidden}
#login-screen{flex:1;overflow-y:auto}
#main-app{flex:1;display:flex;flex-direction:column;overflow:hidden}

/* ── Section switcher ─────────────────────────────────────── */
#section-switcher{
    display:flex;align-items:center;
    background:linear-gradient(135deg,#4f46e5,#7c3aed);
    padding:6px 10px;gap:6px;flex-shrink:0;
    box-shadow:0 2px 8px rgba(79,70,229,.3);
    -webkit-user-select:none;user-select:none;
}
.sec-tab{
    flex:1;padding:7px 10px;border-radius:8px;font-size:12px;font-weight:700;
    color:rgba(255,255,255,.65);transition:all .15s;
}
.sec-tab.active{background:rgba(255,255,255,.22);color:#fff}
.sec-tab:hover:not(.active){color:rgba(255,255,255,.85)}
.logout-btn{
    padding:6px 10px;border-radius:7px;font-size:11px;font-weight:700;
    color:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.25);
    flex-shrink:0;
}
.logout-btn:hover{background:rgba(255,255,255,.15);color:#fff}

/* ── Section panes ────────────────────────────────────────── */
.section-pane{flex:1;overflow-y:auto;overflow-x:hidden;position:relative;-webkit-overflow-scrolling:touch;padding-bottom:80px}
.section-pane.hidden{display:none}

/* ── Offline banner ───────────────────────────────────────── */
#offline-banner{
    position:fixed;top:0;left:0;right:0;z-index:9999;
    background:#f59e0b;color:#1e293b;
    padding:8px 16px;text-align:center;font-size:13px;font-weight:700;
}
#offline-banner.hidden{display:none}
#sync-badge{
    position:fixed;bottom:76px;right:16px;z-index:300;
    background:#6366f1;color:#fff;border-radius:14px;
    padding:5px 10px;font-size:11px;font-weight:700;
    box-shadow:0 2px 8px rgba(0,0,0,.2);pointer-events:none;
    transition:opacity .3s;
}
#sync-badge.hidden{opacity:0;pointer-events:none}

/* ── Loading state ────────────────────────────────────────── */
.cas-loading{text-align:center;padding:48px 20px;color:#94a3b8;font-size:14px;font-weight:600}

/* ── Login ────────────────────────────────────────────────── */
.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#ede9fe,#e0e7ff)}
.login-card{background:#fff;border-radius:20px;padding:32px 24px;width:90%;max-width:380px;box-shadow:0 8px 40px rgba(99,102,241,.15)}
.login-logo{width:56px;height:56px;border-radius:14px;background:linear-gradient(135deg,#6366f1,#8b5cf6);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:800;color:#fff;margin:0 auto 14px}
.login-title{font-size:22px;font-weight:800;color:#1e293b;text-align:center;margin-bottom:4px}
.login-sub{font-size:13px;color:#64748b;text-align:center;margin-bottom:24px}
.login-err{background:#fef2f2;border:2px solid #fca5a5;border-radius:8px;padding:10px 12px;color:#ef4444;font-size:13px;font-weight:600;margin-bottom:12px}
.field{margin-bottom:12px}
.field label{display:block;font-size:11px;font-weight:700;color:#64748b;margin-bottom:4px;letter-spacing:.4px;text-transform:uppercase}
input,select,textarea{width:100%;padding:10px 12px;background:#fff;border:2px solid #e2e8f0;border-radius:8px;color:#1e293b;font-size:14px;outline:none;transition:border .15s;-webkit-appearance:none;appearance:none}
input:focus,select:focus,textarea:focus{border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.1)}
textarea{resize:vertical;min-height:60px;line-height:1.6}

/* ── Captación header ─────────────────────────────────────── */
.hdr{background:linear-gradient(135deg,#6b1a6b,#9b2d9b,#c040c0);padding:14px 16px 0;position:sticky;top:0;z-index:100;box-shadow:0 4px 20px rgba(155,45,155,.35)}
.hdr-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.logo{width:36px;height:36px;border-radius:8px;background:rgba(255,255,255,.2);border:2px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0}
.hdr-name{font-size:14px;font-weight:700;color:#fff}
.hdr-sub{font-size:10px;color:rgba(255,255,255,.7);margin-top:1px}
.hdr-badge{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:11px;font-weight:700;padding:4px 10px;border-radius:16px}
.prop-sel{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:11px;font-weight:600;padding:4px 8px;border-radius:8px;cursor:pointer;max-width:120px}
.prop-sel option{color:#1e293b;background:#fff}

/* ── Seguimiento header ───────────────────────────────────── */
.hdr-seg{background:linear-gradient(135deg,#6366f1,#8b5cf6,#a855f7);padding:10px 14px 0;position:sticky;top:0;z-index:100;box-shadow:0 4px 20px rgba(99,102,241,.3)}
.hdr-title{font-size:16px;font-weight:700;color:#fff}
.hdr-sub{font-size:9px;color:rgba(255,255,255,.65);text-transform:uppercase;letter-spacing:1.5px}

/* ── Tabs (shared) ────────────────────────────────────────── */
.tabs{display:flex;gap:2px;background:rgba(255,255,255,.12);border-radius:10px;padding:3px;overflow-x:auto;scrollbar-width:none;margin-bottom:0}
.tabs::-webkit-scrollbar{display:none}
.tab{flex:0 0 auto;padding:7px 11px;border-radius:7px;font-size:11px;font-weight:600;white-space:nowrap;color:rgba(255,255,255,.65);transition:all .15s;border:none;background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center}
.tab.on{background:#fff;color:#6366f1;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.tab.on.cap{color:#9b2d9b}
.ticon{font-size:16px;display:block;margin-bottom:2px}
.ct{padding:12px;max-width:600px;margin:0 auto}

/* ── Captación-specific tabs override ────────────────────── */
.hdr .tab.on{color:#9b2d9b}
.hdr .tabs{border-radius:10px 10px 0 0;padding:3px 3px 0}
.hdr .tab{border-radius:8px 8px 0 0;padding:8px 11px 10px}

/* ── Dashboard ────────────────────────────────────────────── */
.day-banner{background:linear-gradient(135deg,#1e293b,#334155);border-radius:14px;padding:14px 16px;margin-bottom:12px;color:#fff}
.day-banner-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.day-date{font-size:12px;color:rgba(255,255,255,.6);font-weight:600}
.day-title{font-size:16px;font-weight:700;color:#fff}
.day-pills{display:flex;gap:8px;flex-wrap:wrap}
.day-pill{padding:7px 12px;border-radius:10px;font-size:12px;font-weight:700;display:flex;align-items:center;gap:5px;cursor:pointer;transition:opacity .15s}
.day-pill.red{background:rgba(239,68,68,.25);color:#fca5a5;border:1px solid rgba(239,68,68,.3)}
.day-pill.yellow{background:rgba(251,191,36,.2);color:#fcd34d;border:1px solid rgba(251,191,36,.3)}
.day-pill.purple{background:rgba(255,255,255,.15);color:#e9d5ff;border:1px solid rgba(255,255,255,.2)}
.day-pill.green{background:rgba(34,197,94,.2);color:#86efac;border:1px solid rgba(34,197,94,.3)}
.sg{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}
.sc{background:#fff;border:2px solid #e2e8f0;border-radius:10px;padding:10px 6px;text-align:center}
.sc-ic{font-size:18px;margin-bottom:3px}
.sc-n{font-size:22px;font-weight:700;color:#1e293b}
.sc-l{font-size:9px;color:#94a3b8;margin-top:2px;font-weight:700;letter-spacing:.3px}
.conv-box{background:#fff;border:2px solid #e2e8f0;border-radius:10px;padding:10px 14px;margin-bottom:12px;display:flex;align-items:center;gap:12px}
.conv-n{font-size:20px;font-weight:700;color:#9b2d9b;flex-shrink:0}
.conv-bar-wrap{flex:1}
.conv-l{font-size:9px;color:#94a3b8;font-weight:700;letter-spacing:.3px;margin-bottom:4px}
.conv-bar{background:#f1f5f9;border-radius:6px;height:6px;overflow:hidden}
.conv-fill{background:linear-gradient(90deg,#6366f1,#8b5cf6);height:100%;border-radius:6px;transition:width .6s}
.pipe-row{display:flex;gap:5px;margin-bottom:12px}
.ps{flex:1;background:#fff;border:2px solid #e2e8f0;border-radius:8px;padding:7px 4px;text-align:center}
.ps-n{font-size:16px;font-weight:700;color:#1e293b}
.ps-l{font-size:9px;color:#94a3b8;margin-top:2px;font-weight:700;letter-spacing:.3px}
.ps.act{border-color:#c4b5fd;background:#f5f3ff}
.ps.act .ps-n{color:#6366f1}
.alert-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;margin-bottom:6px;cursor:pointer;transition:all .15s}
.alert-item:hover{opacity:.88}
.alert-item.red{background:#fef2f2;border:2px solid #fca5a5}
.alert-item.yellow{background:#fffbeb;border:2px solid #fbbf24}
.alert-item.purple{background:#f5f3ff;border:2px solid #c4b5fd}
.alert-ic{font-size:16px;flex-shrink:0}
.alert-name{font-size:13px;font-weight:700;color:#1e293b}
.alert-meta{font-size:11px;color:#64748b;margin-top:1px}
.alert-badge{margin-left:auto;flex-shrink:0;font-size:10px;padding:3px 7px;border-radius:6px;font-weight:700}
.sec-t{font-size:10px;font-weight:700;color:#94a3b8;letter-spacing:1px;text-transform:uppercase;margin:12px 0 7px;padding-bottom:5px;border-bottom:2px solid #f1f5f9}

/* ── Form ─────────────────────────────────────────────────── */
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.tag{padding:6px 12px;border-radius:18px;font-size:12px;border:2px solid #e2e8f0;background:#fff;color:#64748b;cursor:pointer;transition:all .15s;font-weight:600}
.tag.on{background:#f5f3ff;border-color:#6366f1;color:#4338ca}
.cal-auto{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:8px;font-size:12px;font-weight:700;margin-top:8px;border:2px solid transparent;transition:all .3s}
.cal-auto.mhot{background:#fef2f2;border-color:#fca5a5;color:#ef4444}
.cal-auto.hot{background:#f0fdf4;border-color:#86efac;color:#16a34a}
.cal-auto.warm{background:#fffbeb;border-color:#fbbf24;color:#d97706}
.cal-auto.cold{background:#f8fafc;border-color:#e2e8f0;color:#94a3b8}

/* ── Buttons ──────────────────────────────────────────────── */
.btn-primary{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;width:100%;margin-top:14px;border-radius:10px;padding:13px;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;transition:opacity .15s;border:none;cursor:pointer}
.btn-primary:hover{opacity:.9}
.btn-cas{background:#f5f3ff;color:#4338ca;border:2px solid #c4b5fd;border-radius:8px;padding:9px 12px;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:5px;cursor:pointer;transition:all .15s}
.btn-cas:hover{background:#6366f1;color:#fff;border-color:#6366f1}
.btn-outline{background:#fff;color:#475569;border:2px solid #e2e8f0;border-radius:8px;padding:9px 12px;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:5px;cursor:pointer;transition:all .15s}
.btn-outline:hover{background:#f8fafc}
.btn-danger{background:#fff;color:#ef4444;border:2px solid #fca5a5;border-radius:8px;padding:9px 12px;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:5px;cursor:pointer;transition:all .15s}
.btn-danger:hover{background:#fef2f2}
.btn-wa{background:#22c55e;color:#fff;border-radius:10px;padding:12px;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;cursor:pointer;border:none;transition:all .15s}
.btn-wa:hover{background:#16a34a}
.btn-wa-dis{background:#e2e8f0;color:#94a3b8;cursor:not-allowed;border-radius:10px;padding:12px;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;width:100%}
/* Seguimiento button variants */
.btn{padding:11px;border-radius:8px;font-size:13px;font-weight:700;text-align:center;display:flex;align-items:center;justify-content:center;gap:6px}
.btn-gray{background:#f1f5f9;color:#475569}
.btn-ind{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}

/* ── Search & filters ─────────────────────────────────────── */
.srch-wrap{position:relative;margin-bottom:8px}
.srch-wrap input{padding-left:34px}
.srch-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:#94a3b8;pointer-events:none;font-size:14px}
.filter-row{display:flex;gap:5px;margin-bottom:10px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.filter-row::-webkit-scrollbar{display:none}
.fp{padding:6px 12px;border-radius:16px;font-size:11px;font-weight:700;border:2px solid #e2e8f0;background:#fff;color:#94a3b8;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}
.fp.on{background:#6366f1;color:#fff;border-color:#6366f1}
.fp:hover:not(.on){border-color:#c4b5fd;color:#4338ca;background:#f5f3ff}
.fp.red-pill.on{background:#ef4444;border-color:#ef4444}
.fp.yellow-pill.on{background:#d97706;border-color:#d97706}
.fp.green-pill.on{background:#16a34a;border-color:#16a34a}
.chip{padding:5px 12px;border:2px solid #e2e8f0;border-radius:20px;font-size:12px;font-weight:700;background:#fff;color:#94a3b8;cursor:pointer}
.chip.on{background:#6366f1;color:#fff;border-color:#6366f1}

/* ── Prospect rows (Captación) ────────────────────────────── */
.prow{background:#fff;border:2px solid #e2e8f0;border-radius:10px;margin-bottom:6px;overflow:hidden;transition:border-color .15s}
.prow.op{border-color:#c4b5fd;box-shadow:0 2px 10px rgba(99,102,241,.1)}
.prow-hdr{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;transition:background .15s}
.prow-hdr:hover{background:#f5f3ff}
.prow-av{width:34px;height:34px;border-radius:50%;background:#f5f3ff;border:2px solid #c4b5fd;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#4338ca;flex-shrink:0}
.prow-main{flex:1;min-width:0}
.prow-name{font-size:13px;font-weight:700;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prow-sub{font-size:11px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.prow-right{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0}
.qbadge{font-size:10px;padding:2px 7px;border-radius:5px;font-weight:700;white-space:nowrap}
.q-mhot{background:#fef2f2;color:#ef4444}
.q-hot{background:#f0fdf4;color:#16a34a}
.q-warm{background:#fffbeb;color:#d97706}
.q-cold{background:#f8fafc;color:#94a3b8;border:1px solid #e2e8f0}
.seg-badge{font-size:10px;padding:2px 7px;border-radius:5px;font-weight:700}
.seg-venc{background:#fef2f2;color:#ef4444}
.seg-hoy{background:#fffbeb;color:#d97706}
.seg-ok{background:#f0fdf4;color:#16a34a}
.prow-chev{color:#cbd5e1;font-size:14px;flex-shrink:0;transition:transform .2s;margin-left:4px}
.prow-body{display:none;border-top:2px solid #f1f5f9}
.prow-body.on{display:block}
.ptabs{display:flex;border-bottom:2px solid #f1f5f9;background:#fafafa}
.ptab{flex:1;padding:8px 4px;font-size:10px;font-weight:700;color:#94a3b8;text-align:center;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s;white-space:nowrap}
.ptab.on{color:#6366f1;border-bottom-color:#6366f1;background:#fff}
.psec{display:none;padding:12px}
.psec.on{display:block}

/* ── Detail grid ──────────────────────────────────────────── */
.dg{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}
.det{background:#f8fafc;border:1px solid #f1f5f9;border-radius:7px;padding:7px 9px}
.det-l{font-size:9px;color:#94a3b8;text-transform:uppercase;letter-spacing:.4px;margin-bottom:2px;font-weight:700}
.det-v{font-size:12px;font-weight:600;color:#1e293b}
.nota-block{background:#f5f3ff;border:2px solid #c4b5fd;border-radius:8px;padding:10px 12px;margin-bottom:8px}
.nota-label{font-size:9px;color:#4338ca;font-weight:700;text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}
.nota-text{font-size:12px;color:#1e293b;line-height:1.5}
.nota-edit{width:100%;padding:7px 9px;border:2px solid #c4b5fd;border-radius:7px;font-size:12px;background:#fff;color:#1e293b;resize:vertical;min-height:55px;display:none;margin-top:6px;line-height:1.5;outline:none}
.nota-edit:focus{border-color:#6366f1}
.nota-edit.on{display:block}
.est-fld{margin-bottom:8px}
.est-fld label{font-size:10px;font-weight:700;color:#64748b;display:block;margin-bottom:4px;text-transform:uppercase;letter-spacing:.4px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}

/* ── Messages (Captación) ─────────────────────────────────── */
.tpl-rec{background:linear-gradient(135deg,#4f46e5,#7c3aed);border-radius:10px;padding:12px 14px;margin-bottom:10px;color:#fff}
.tpl-rec-label{font-size:10px;font-weight:700;letter-spacing:.5px;opacity:.7;margin-bottom:4px;text-transform:uppercase}
.tpl-rec-name{font-size:14px;font-weight:700;margin-bottom:2px}
.tpl-rec-why{font-size:11px;opacity:.75}
.tpl-other-label{font-size:10px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px}
.tpl-pills{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}
.tpl-pill{padding:5px 10px;border-radius:14px;font-size:11px;font-weight:700;border:2px solid #e2e8f0;background:#fff;color:#64748b;cursor:pointer;transition:all .15s}
.tpl-pill.on{background:#6366f1;color:#fff;border-color:#6366f1}
.tpl-pill:hover:not(.on){border-color:#c4b5fd;color:#4338ca;background:#f5f3ff}
.msg-preview{background:#f8fafc;border:2px solid #e2e8f0;border-radius:8px;padding:11px 12px;font-size:12px;color:#334155;line-height:1.7;white-space:pre-wrap;word-break:break-word;margin-bottom:10px;display:none;max-height:180px;overflow-y:auto}
.msg-preview.on{display:block}
.msg-edit{width:100%;padding:9px 11px;border:2px solid #c4b5fd;border-radius:8px;font-size:12px;background:#fff;color:#1e293b;resize:vertical;min-height:140px;display:none;line-height:1.6;outline:none;margin-bottom:10px}
.msg-edit:focus{border-color:#6366f1}
.msg-edit.on{display:block}
.msg-actions{display:flex;gap:7px;margin-bottom:12px}
.next-block{background:#f0fdf4;border:2px solid #86efac;border-radius:10px;padding:12px 14px;margin-top:10px}
.next-title{font-size:11px;font-weight:700;color:#16a34a;margin-bottom:8px;text-transform:uppercase;letter-spacing:.4px}
.next-row{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:8px}
.hist-item{display:flex;gap:9px;padding:9px 0;border-bottom:1px solid #f1f5f9}
.hist-item:last-child{border-bottom:none}
.hist-dot{width:7px;height:7px;border-radius:50%;background:#6366f1;flex-shrink:0;margin-top:4px}
.hist-tpl{font-size:12px;font-weight:700;color:#1e293b}
.hist-date{font-size:10px;color:#94a3b8;margin-top:1px}
.hist-empty{text-align:center;padding:20px;color:#94a3b8;font-size:12px;line-height:1.6}
.seg-block{background:#fff;border:2px solid #e2e8f0;border-radius:10px;padding:12px}
.seg-status{padding:8px 10px;border-radius:8px;font-size:12px;font-weight:700;margin-top:8px}
.seg-status.venc{background:#fef2f2;color:#ef4444}
.seg-status.hoy{background:#fffbeb;color:#d97706}
.seg-status.ok{background:#f0fdf4;color:#16a34a}

/* ── Plantillas ───────────────────────────────────────────── */
.tpl-card{background:#fff;border:2px solid #e2e8f0;border-radius:10px;margin-bottom:7px;overflow:hidden}
.tpl-card.op{border-color:#c4b5fd}
.tpl-hdr{display:flex;align-items:center;gap:8px;padding:10px 13px;cursor:pointer;transition:background .15s}
.tpl-hdr:hover{background:#f5f3ff}
.tpl-num{width:24px;height:24px;border-radius:5px;background:#f5f3ff;color:#4338ca;border:2px solid #c4b5fd;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}
.tpl-title{font-size:12px;font-weight:700;color:#1e293b;flex:1}
.tpl-body{display:none;border-top:2px solid #f1f5f9;padding:12px}
.tpl-body.on{display:block}
.tpl-preview{font-size:12px;color:#475569;line-height:1.7;background:#f8fafc;border:2px solid #f1f5f9;padding:10px;border-radius:7px;margin-bottom:8px;white-space:pre-wrap;word-break:break-word}
.tpl-edit-area{width:100%;padding:9px 10px;border:2px solid #c4b5fd;border-radius:7px;font-size:12px;background:#fff;color:#1e293b;resize:vertical;min-height:150px;display:none;line-height:1.6;margin-bottom:8px;outline:none}
.tpl-edit-area.on{display:block}
.tpl-btns{display:flex;gap:6px;flex-wrap:wrap}
.tpl-btn{flex:1;min-width:75px;padding:8px;border-radius:7px;border:2px solid #e2e8f0;background:#fff;cursor:pointer;font-size:11px;font-weight:700;color:#475569;display:flex;align-items:center;justify-content:center;gap:4px;transition:all .15s}
.tpl-btn:hover{background:#f8fafc}
.tpl-btn.copied{background:#f0fdf4;color:#16a34a;border-color:#86efac}
.tpl-btn.editing{background:#f5f3ff;color:#4338ca;border-color:#c4b5fd}
.tpl-btn.restore{color:#ef4444;border-color:#fca5a5}
.edited-badge{font-size:9px;color:#f59e0b;font-weight:700}

/* ── Ajustes ──────────────────────────────────────────────── */
.set-sec{font-size:13px;font-weight:700;color:#1e293b;margin:14px 0 6px}
.set-sec:first-child{margin-top:0}
.set-desc{font-size:11px;color:#64748b;margin-bottom:8px;line-height:1.5}
.backup-row{display:flex;gap:7px;margin-bottom:7px}
.prop-item{display:flex;align-items:center;gap:8px;padding:9px 11px;background:#fff;border:2px solid #e2e8f0;border-radius:8px;margin-bottom:5px}
.prop-item.active{border-color:#c4b5fd;background:#f5f3ff}
.prop-item-name{flex:1;font-size:13px;font-weight:700;color:#1e293b}
.prop-item.active .prop-item-name{color:#4338ca}
.prop-item-cnt{font-size:11px;color:#94a3b8;font-weight:600}
.danger-zone{margin-top:14px;padding:12px;background:#fef2f2;border:2px solid #fca5a5;border-radius:10px}
.danger-title{font-size:12px;font-weight:700;color:#ef4444;margin-bottom:8px}
.info-banner{background:linear-gradient(135deg,#f0fdf4,#ecfdf5);border:2px solid #86efac;border-radius:9px;padding:10px 12px;margin-bottom:10px;font-size:12px;color:#16a34a;font-weight:600}

/* ── Visitas ──────────────────────────────────────────────── */
.vis-week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:14px}
.vis-day-col{background:#fff;border:2px solid #e2e8f0;border-radius:8px;padding:6px 4px;text-align:center;cursor:pointer;transition:all .15s;min-height:60px}
.vis-day-col:hover{border-color:#c4b5fd;background:#f5f3ff}
.vis-day-col.today{border-color:#6366f1;background:#f5f3ff}
.vis-day-col.has-vis{border-color:#c4b5fd}
.vis-day-name{font-size:9px;font-weight:700;color:#94a3b8;letter-spacing:.3px;text-transform:uppercase}
.vis-day-num{font-size:16px;font-weight:700;color:#1e293b;margin:2px 0}
.vis-day-col.today .vis-day-num{color:#6366f1}
.vis-day-cnt{font-size:10px;font-weight:700;color:#fff;background:#6366f1;border-radius:10px;padding:1px 5px;display:inline-block}
.vis-day-cnt.zero{background:transparent;color:transparent}
.vis-card{background:#fff;border:2px solid #e2e8f0;border-radius:10px;margin-bottom:7px;overflow:hidden}
.vis-card-hdr{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;transition:background .15s}
.vis-card-hdr:hover{background:#f5f3ff}
.vis-card-body{display:none;border-top:2px solid #f1f5f9;padding:12px}
.vis-card-body.on{display:block}
.vis-time{font-size:13px;font-weight:700;color:#6366f1;flex-shrink:0;min-width:48px}
.vis-info{flex:1;min-width:0}
.vis-name{font-size:13px;font-weight:700;color:#1e293b}
.vis-prop{font-size:11px;color:#64748b;margin-top:1px}
.vis-dur{font-size:10px;color:#94a3b8;margin-top:2px}
.vis-status-badge{font-size:10px;padding:2px 7px;border-radius:5px;font-weight:700;flex-shrink:0;align-self:flex-start}
.vs-pendiente{background:#fffbeb;color:#d97706}
.vs-confirmada{background:#f0fdf4;color:#16a34a}
.vs-realizada{background:#f8fafc;color:#94a3b8}
.vs-cancelada{background:#fef2f2;color:#ef4444}
.vs-no-presentó{background:#fef2f2;color:#ef4444}
.vis-form-card{background:#fff;border:2px solid #e2e8f0;border-radius:12px;padding:14px;margin-bottom:12px}
.vis-msg-box{background:#f0fdf4;border:2px solid #86efac;border-radius:8px;padding:10px 12px;margin-bottom:8px;font-size:12px;color:#166534;line-height:1.7;white-space:pre-wrap;font-style:italic}
.vis-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}
.overlap-warn{background:#fef2f2;border:2px solid #fca5a5;border-radius:8px;padding:8px 12px;font-size:12px;font-weight:700;color:#ef4444;margin-bottom:8px;display:none}
.overlap-warn.on{display:block}

/* ── FAB ──────────────────────────────────────────────────── */
.fab{position:sticky;bottom:20px;float:right;margin-right:16px;width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-size:24px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(99,102,241,.45);cursor:pointer;border:none;z-index:200;transition:transform .15s;flex-shrink:0}
.fab:active{transform:scale(.92)}

/* ── Toast ────────────────────────────────────────────────── */
.toast{position:sticky;bottom:80px;left:50%;transform:translateX(-50%) translateY(60px);background:#1e293b;color:#fff;padding:9px 18px;border-radius:16px;font-size:12px;font-weight:600;transition:transform .3s;z-index:999;white-space:nowrap;pointer-events:none;box-shadow:0 4px 16px rgba(0,0,0,.2);margin:0 auto;width:fit-content;display:block;text-align:center}
.toast.show{transform:translateX(-50%) translateY(0)}

/* ── Empty ────────────────────────────────────────────────── */
.empty{text-align:center;padding:32px 16px;color:#94a3b8;font-size:12px;line-height:1.7}
.empty-ic{font-size:32px;display:block;margin-bottom:8px}

/* ── Seguimiento specific ─────────────────────────────────── */
.badge{display:inline-block;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:700;color:#fff;white-space:nowrap}
.card{background:#fff;border:2px solid #e2e8f0;border-radius:12px;margin-bottom:8px;overflow:hidden}
.card.hi{box-shadow:0 4px 16px rgba(0,0,0,.1)}
.ch{padding:12px 14px;display:flex;align-items:center;gap:10px;cursor:pointer}
.cb{border-top:2px solid #f1f5f9;padding:14px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.lb{font-size:10px;color:#94a3b8;text-transform:uppercase;letter-spacing:1.2px;font-weight:700;display:block;margin-bottom:3px}
.pv{background:#f8fafc;border:2px solid #e2e8f0;border-radius:10px;padding:12px;margin:10px 0}
.pi{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border:2px solid #e2e8f0;border-radius:10px;margin-bottom:6px;cursor:pointer;transition:border-color .15s}
.pi.on{border-color:#6366f1;background:#f5f3ff}
.td{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;border:2px solid #e2e8f0;color:#94a3b8;flex-shrink:0}
.td.s{border-color:#22c55e;color:#22c55e;background:#f0fdf4}
.td.nx{border-color:#f59e0b;color:#f59e0b;background:#fffbeb;animation:pu 2s infinite}
@keyframes pu{0%,100%{opacity:1}50%{opacity:.4}}
.hoy-filter{display:flex;gap:5px;margin-bottom:12px}
.hoy-filter button{flex:1;padding:8px 4px;border-radius:8px;font-size:11px;font-weight:700;border:2px solid #e2e8f0;background:#fff;color:#64748b}
.hoy-filter button.on{background:#6366f1;color:#fff;border-color:#6366f1}
.mini-dash{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:12px}
.mini-dash-card{background:#fff;border-radius:10px;padding:10px 8px;text-align:center;border:2px solid #e2e8f0}
.mini-dash-num{font-size:20px;font-weight:800}
.mini-dash-lbl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#94a3b8;margin-top:2px}
.msg-sel{display:flex;align-items:center;gap:6px;background:#f8fafc;border:2px solid #e2e8f0;border-radius:8px;padding:6px 10px;margin-bottom:8px;cursor:pointer}
.msg-sel:hover{border-color:#6366f1;background:#f5f3ff}
.msg-sel.active{border-color:#6366f1;background:#f5f3ff}
.prox-agenda{background:#ecfeff;border:2px solid #67e8f9;border-radius:10px;padding:12px;margin-top:10px}
.stb{display:inline-block;padding:2px 8px;border-radius:6px;font-size:10px;font-weight:700;cursor:pointer}
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:200;display:flex;align-items:flex-end}
.modal{background:#fff;border-radius:20px 20px 0 0;width:100%;max-height:85vh;overflow-y:auto;padding:16px}
.modal-handle{width:40px;height:4px;background:#e2e8f0;border-radius:2px;margin:0 auto 16px}
.vzone{background:#ecfeff;border:2px solid #67e8f9;border-radius:10px;padding:10px 14px;margin-bottom:8px;display:flex;align-items:center;gap:10px;cursor:pointer}
.ic{margin-top:10px;padding:10px;background:linear-gradient(135deg,#f0fdf4,#ecfdf5);border:2px solid #86efac;border-radius:8px}

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width:360px){
    .sg{grid-template-columns:repeat(2,1fr)}
    .g3{grid-template-columns:1fr 1fr}
}
