:root{
--green-950:#102a43;
--green-900:#12395b;
--green-800:#155d75;
--green-700:#168aad;
--green-600:#24a6b8;
--green-100:#e7f5f8;
--green-050:#f4fafc;
--gold:#f4b942;
--page:#edf3f8;
--surface:#ffffff;
--text:#17211d;
--muted:#6b7771;
--border:#d6e1ea;
--danger:#963a3a;
--success:#1e7b52;
--warning:#9a6c1d;
--shadow-sm:0 8px 25px rgba(7,31,26,.07);
--shadow-md:0 16px 42px rgba(7,31,26,.11);
--shadow-lg:0 28px 75px rgba(7,31,26,.20);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--page);color:var(--text)}
html.lock,html.lock body{overflow:hidden}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
button{cursor:pointer}

/* HEADER */
.app-header{
height:80px;
background:rgba(255,255,255,.97);
border-bottom:1px solid var(--border);
display:grid;
grid-template-columns:1fr auto 1fr;
align-items:center;
padding:0 24px;
position:sticky;
top:0;
z-index:300;
backdrop-filter:blur(16px);
box-shadow:0 5px 20px rgba(7,31,26,.05)
}
.header-left{display:flex;align-items:center}
.mobile-menu{display:none;width:43px;height:43px;border:0;border-radius:12px;background:var(--green-100);padding:10px;margin-right:10px}
.mobile-menu span{display:block;height:2px;background:var(--green-900);margin:4px 0;border-radius:10px}
.app-brand{display:flex;align-items:center;gap:12px}
.app-logo{
width:50px;height:50px;border-radius:15px;
background:linear-gradient(145deg,var(--green-950),var(--green-600));
color:#fff;display:grid;place-items:center;font-weight:900;font-size:13px;letter-spacing:.06em;
box-shadow:0 13px 28px rgba(11,48,41,.20)
}
.app-brand-copy strong,.app-brand-copy small{display:block}
.app-brand-copy strong{font-family:Georgia,serif;font-size:15px;font-weight:600}
.app-brand-copy small{font-size:10px;color:var(--muted);margin-top:4px}
.campaign-context{
min-width:300px;text-align:center;border:1px solid var(--border);border-radius:14px;
padding:9px 18px;background:linear-gradient(180deg,#fff,#f8fbf9)
}
.campaign-context>span{font-size:8px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
.campaign-context>span i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#2daf73;box-shadow:0 0 0 4px rgba(45,175,115,.10);margin-right:5px}
.campaign-context>span.neutral i{background:var(--gold)}
.campaign-context strong,.campaign-context small{display:block}
.campaign-context strong{font-size:12px;margin-top:4px}
.campaign-context small{font-size:9px;color:var(--muted);margin-top:3px}
.header-user{justify-self:end;display:flex;align-items:center;gap:10px}
.user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(145deg,var(--green-900),var(--green-600));color:#fff;display:grid;place-items:center;font-weight:800}
.user-copy strong,.user-copy small{display:block}
.user-copy strong{font-size:11px}
.user-copy small{font-size:9px;color:var(--muted);margin-top:3px}
.logout-button{font-size:10px;font-weight:800;color:var(--danger);padding:8px 10px;border-radius:9px;background:#fbf2f2}

/* LAYOUT */
.app-shell{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:calc(100vh - 118px)}
.sidebar{
background:
radial-gradient(circle at top right,rgba(255,255,255,.07),transparent 25%),
linear-gradient(180deg,var(--green-900),var(--green-950));
color:#fff;
position:sticky;top:80px;height:calc(100vh - 80px);
display:flex;flex-direction:column;justify-content:space-between;
z-index:230;box-shadow:12px 0 35px rgba(7,31,26,.08)
}
.sidebar-scroll{padding:19px 14px;overflow-y:auto}
.sidebar-summary{
padding:17px;border:1px solid rgba(255,255,255,.12);border-radius:16px;
background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.035));
margin-bottom:19px
}
.sidebar-summary span,.sidebar-summary strong,.sidebar-summary small,.sidebar-summary em{display:block}
.sidebar-summary span{font-size:8px;text-transform:uppercase;letter-spacing:.15em;color:#97aea6}
.sidebar-summary strong{font-family:Georgia,serif;font-size:16px;font-weight:500;margin-top:8px}
.sidebar-summary small{font-size:10px;color:#c1d0ca;margin-top:4px}
.sidebar-summary em{font-size:9px;color:#8ea89e;font-style:normal;margin-top:5px}
.sidebar-nav{display:grid;gap:6px}
.nav-section{font-size:8px;text-transform:uppercase;letter-spacing:.17em;color:#7f998f;padding:19px 12px 7px}
.nav-item,.nav-parent{
width:100%;min-height:52px;border:0;border-radius:13px;background:transparent;color:#dce8e3;
display:flex;align-items:center;gap:11px;padding:11px 12px;text-align:left
}
.nav-item:hover,.nav-parent:hover{background:rgba(255,255,255,.09);color:#fff}
.nav-item.active{background:#fff;color:var(--green-900);box-shadow:0 11px 25px rgba(0,0,0,.15)}
.nav-icon{width:25px;height:25px;display:grid;place-items:center;font-style:normal;font-size:16px}
.nav-text b,.nav-text small,.nav-parent-left span b,.nav-parent-left span small{display:block}
.nav-text b,.nav-parent-left span b{font-size:11px}
.nav-text small,.nav-parent-left span small{font-size:8px;color:#a0b6ae;margin-top:3px}
.nav-item.active .nav-text small{color:#6b8178}
.nav-parent{justify-content:space-between}
.nav-parent-left{display:flex;align-items:center;gap:11px}
.nav-arrow{font-style:normal;transition:transform .2s}
.nav-group.open .nav-arrow{transform:rotate(180deg)}
.nav-submenu{display:none;padding:6px 0 5px 47px}
.nav-group.open .nav-submenu{display:grid;gap:3px}
.nav-submenu a{position:relative;padding:9px 11px;border-radius:9px;color:#b9ccc4;font-size:11px}
.nav-submenu a:before{content:"";position:absolute;left:-13px;top:50%;width:7px;height:1px;background:#718f84}
.nav-submenu a:hover,.nav-submenu a.active{background:rgba(255,255,255,.09);color:#fff}
.sidebar-footer{padding:13px;border-top:1px solid rgba(255,255,255,.10)}
.security-card{display:flex;gap:9px;align-items:center;padding:11px;border-radius:12px;background:rgba(255,255,255,.05)}
.security-card>span{width:8px;height:8px;border-radius:50%;background:#3ac17d;box-shadow:0 0 0 4px rgba(58,193,125,.10)}
.security-card b,.security-card small{display:block}
.security-card b{font-size:10px}
.security-card small{font-size:8px;color:#9eb7ae;margin-top:3px}

/* MAIN */
.main-content{
padding:30px;min-width:0;
background:
radial-gradient(circle at top right,rgba(47,117,99,.10),transparent 25%),
linear-gradient(180deg,#f1f5f3,#edf2ef)
}
.dashboard-hero{
position:relative;overflow:hidden;display:flex;justify-content:space-between;min-height:270px;padding:38px;
border-radius:25px;
background:
radial-gradient(circle at 83% 20%,rgba(255,255,255,.14),transparent 26%),
linear-gradient(135deg,var(--green-950),var(--green-600));
color:#fff;margin-bottom:30px;box-shadow:var(--shadow-lg)
}
.dashboard-hero:after{
content:"";position:absolute;inset:auto -80px -160px auto;width:430px;height:430px;border-radius:50%;
border:1px solid rgba(255,255,255,.08)
}
.hero-copy{position:relative;z-index:2;max-width:720px}
.hero-kicker{font-size:9px;text-transform:uppercase;letter-spacing:.17em;color:#d2dfda}
.dashboard-hero h1{font-family:Georgia,serif;font-size:44px;line-height:1.08;font-weight:500;margin:18px 0 8px}
.dashboard-hero p{font-size:13px;color:#d2ded9;margin:0 0 27px}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap}
.hero-graphic{position:relative;width:240px;min-width:240px;z-index:2}
.hero-ring{position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.16)}
.ring-a{width:230px;height:230px;right:-20px;top:-20px}
.ring-b{width:155px;height:155px;right:18px;top:18px}
.hero-letter,.hero-symbol{
position:absolute;right:57px;top:56px;width:84px;height:84px;border-radius:50%;
display:grid;place-items:center;background:rgba(255,255,255,.12);
border:1px solid rgba(255,255,255,.18);font-family:Georgia,serif;font-size:38px
}
.hero-symbol{font-size:18px;font-family:Inter,Segoe UI,sans-serif;font-weight:900;letter-spacing:.06em}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:15px;margin-bottom:15px}
.section-heading span,.panel-heading span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted)}
.section-heading h2,.panel-heading h2{font-family:Georgia,serif;font-size:23px;font-weight:500;margin:5px 0 0}
.section-heading>small{font-size:9px;color:var(--muted)}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:22px}
.metric-card{
display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.96);
border:1px solid rgba(217,226,221,.96);border-radius:17px;padding:18px;
box-shadow:var(--shadow-sm);position:relative;overflow:hidden;transition:.18s
}
.metric-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.metric-card:after{content:"";position:absolute;width:76px;height:76px;border-radius:50%;background:rgba(201,168,106,.09);right:-30px;bottom:-31px}
.metric-icon{width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,var(--green-100),#f7faf8);color:var(--green-800);display:grid;place-items:center;font-size:18px}
.metric-card small,.metric-card b,.metric-card em{display:block}
.metric-card small{font-size:8px;text-transform:uppercase;color:var(--muted)}
.metric-card b{font-family:Georgia,serif;font-size:28px;font-weight:500;color:var(--green-800);margin-top:3px}
.metric-card em{font-size:8px;color:#8b958f;font-style:normal;margin-top:3px}
.dashboard-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:20px}
.lower-grid{grid-template-columns:1fr 1fr;margin-top:2px}
.panel{
background:rgba(255,255,255,.96);border:1px solid rgba(217,226,221,.96);
border-radius:19px;padding:23px;margin-bottom:19px;box-shadow:var(--shadow-sm)
}
.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}
.panel-heading a{font-size:9px;font-weight:800;color:var(--green-700);padding:7px 9px;border-radius:8px;background:var(--green-050)}
.action-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}
.action-grid a{
display:grid;grid-template-columns:36px 1fr auto;gap:11px;align-items:center;padding:17px;
border:1px solid var(--border);border-radius:14px;background:linear-gradient(180deg,#fff,#fafcfb);transition:.18s
}
.action-grid a:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:#c7d5ce}
.action-grid i{width:30px;height:30px;border-radius:9px;background:var(--green-100);color:var(--green-800);display:grid;place-items:center;font-size:9px;font-style:normal;font-weight:800}
.action-grid b,.action-grid small{display:block}
.action-grid b{font-size:11px}
.action-grid small{font-size:9px;color:var(--muted);margin-top:3px}
.action-grid>a>strong{color:var(--green-700)}
.governance-list{display:grid;gap:12px}
.governance-list>div{display:flex;gap:10px;padding:14px;border-radius:13px;background:linear-gradient(180deg,var(--green-050),#fff)}
.governance-list i{width:25px;height:25px;border-radius:50%;background:#dff0e7;color:var(--success);display:grid;place-items:center;font-style:normal;font-weight:800}
.governance-list b,.governance-list small{display:block}
.governance-list b{font-size:10px}
.governance-list small{font-size:9px;color:var(--muted);line-height:1.5;margin-top:3px}
.activity-list,.task-list{display:grid;gap:9px}
.activity-list article,.task-list article{
display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;
padding:13px;border:1px solid var(--border);border-radius:12px;background:#fbfcfb
}
.activity-date{min-width:45px;text-align:center;padding:8px;border-radius:9px;background:var(--green-100);color:var(--green-800);font-size:9px;font-weight:800}
.activity-list b,.activity-list small,.task-list b,.task-list small{display:block}
.activity-list b,.task-list b{font-size:10px}
.activity-list small,.task-list small{font-size:8px;color:var(--muted);margin-top:3px}
.activity-list em{font-size:9px;font-style:normal;color:var(--green-700);font-weight:800}
.task-list article{grid-template-columns:auto 1fr}
.priority{font-size:8px;text-transform:uppercase;padding:6px 8px;border-radius:999px;background:#edf1ef}
.priority.urgente{background:#f8dddd;color:#923737}
.priority.alta{background:#fff0cc;color:#8b631e}
.priority.media{background:#dcecf8;color:#275f82}
.priority.baja{background:#dff0e7;color:#1c7049}
.list-empty{padding:24px;text-align:center;border:1px dashed var(--border);border-radius:12px;color:var(--muted);font-size:10px}
.campaign-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:15px}
.campaign-card{
background:#fff;border:1px solid var(--border);border-radius:18px;padding:21px;box-shadow:var(--shadow-sm);transition:.2s
}
.campaign-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.campaign-card-top{display:flex;align-items:center;gap:8px}
.campaign-card-top small{font-size:8px;text-transform:uppercase;letter-spacing:.10em;color:var(--muted)}
.campaign-status-dot{width:8px;height:8px;border-radius:50%;background:#2daf73;box-shadow:0 0 0 4px rgba(45,175,115,.10)}
.campaign-card h3{font-family:Georgia,serif;font-size:21px;font-weight:500;margin:16px 0 7px}
.campaign-card p{font-size:11px;margin:0}
.campaign-card em{display:block;font-size:9px;color:var(--muted);font-style:normal;margin-top:5px}
.campaign-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px;padding-top:15px;border-top:1px solid var(--border)}
.campaign-stats span{text-align:center}
.campaign-stats b,.campaign-stats small{display:block}
.campaign-stats b{font-family:Georgia,serif;font-size:20px;color:var(--green-800)}
.campaign-stats small{font-size:8px;color:var(--muted);margin-top:3px}
.campaign-enter{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding:10px 12px;border-radius:10px;background:var(--green-050);color:var(--green-700);font-size:10px;font-weight:800}
.empty-state{grid-column:1/-1;text-align:center;padding:45px;border:1px dashed var(--border);border-radius:18px;background:#fff}
.empty-state>span{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--green-100);color:var(--green-800);margin:0 auto}
.empty-state h3{font-family:Georgia,serif;font-size:22px;font-weight:500;margin:15px 0 7px}
.empty-state p{font-size:10px;color:var(--muted);margin-bottom:18px}

/* COMMON MODULES */
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:21px}
.page-head h1{font-family:Georgia,serif;font-size:31px;font-weight:500;margin:0}
.page-head p{font-size:12px;color:var(--muted);margin:7px 0 0}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}
.grid .full{grid-column:1/-1}
label{display:block;font-size:10px;text-transform:uppercase;font-weight:800;color:#47544e}
input,select,textarea{display:block;width:100%;margin-top:6px;border:1px solid #ccd7d1;border-radius:10px;padding:11px 12px;background:#fff}
textarea{min-height:98px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--green-600);box-shadow:0 0 0 4px rgba(47,117,99,.08)}
.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;padding:11px 15px;font-size:11px;font-weight:800}
.btn.primary{background:linear-gradient(135deg,var(--green-900),var(--green-600));color:#fff}
.btn.white{background:#fff;color:var(--green-900)}
.btn.transparent{background:rgba(255,255,255,.07);color:#fff;border:1px solid rgba(255,255,255,.30)}
.btn.ghost{background:#fff;color:var(--green-900);border:1px solid var(--border)}
.full{width:100%}
.mini{margin-top:6px;border:0;border-radius:8px;padding:8px;background:#e9f2ed;color:var(--green-900)}
.gps-status{font-size:10px;color:var(--muted)}
.table{overflow:auto;border:1px solid var(--border);border-radius:13px;background:#fff}
.table table{width:100%;border-collapse:collapse;min-width:760px}
.table th,.table td{padding:12px;border-bottom:1px solid var(--border);font-size:11px;text-align:left;vertical-align:top}
.table th{background:#edf3f0;text-transform:uppercase;font-size:9px;color:#4d5b55}
.table tbody tr:hover{background:#fafcfb}
.alert{padding:12px 14px;border-radius:11px;margin-bottom:15px}
.alert.error{background:#f7dddd;color:#8e3030}
.alert.success{background:#def0e5;color:#176b45}
.app-footer{padding:14px 24px;background:#fff;border-top:1px solid var(--border);display:flex;justify-content:space-between;font-size:9px;color:var(--muted)}
.overlay{display:none}

/* LOGIN + INSTALLER */
.auth-bg{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#dce9e3,#f8faf9);padding:20px}
.auth-card{width:min(460px,100%);background:#fff;border-radius:20px;padding:30px;box-shadow:var(--shadow-md)}
.auth-card h1{font-family:Georgia,serif;font-size:30px}
.auth-card label{margin-bottom:12px}
.auth-logo,.brand-big{width:48px;height:48px;border-radius:14px;background:linear-gradient(145deg,var(--green-950),var(--green-600));color:#fff;display:grid;place-items:center;font-size:13px}
.login-page{min-height:100vh;background:linear-gradient(135deg,var(--green-950),var(--green-600));padding:25px;display:grid;place-items:center}
.login-wrap{width:min(1100px,100%);min-height:650px;background:#fff;border-radius:25px;overflow:hidden;display:grid;grid-template-columns:1.15fr .85fr;box-shadow:0 35px 90px rgba(0,0,0,.25)}
.login-cover{padding:45px;color:#fff;background:radial-gradient(circle at 80% 20%,rgba(255,255,255,.14),transparent 28%),linear-gradient(145deg,var(--green-950),var(--green-600));display:flex;flex-direction:column;justify-content:center}
.brand-big{background:#fff;color:var(--green-900);margin-bottom:18px}
.login-cover h1{font-family:Georgia,serif;font-size:46px;font-weight:500;margin:18px 0}
.login-cover p{line-height:1.7;color:#d1dfd9}
.login-box{padding:50px;display:flex;flex-direction:column;justify-content:center}
.login-box h2{font-family:Georgia,serif;font-size:34px;font-weight:500;margin-bottom:5px}
.login-box p{color:var(--muted)}
.mobile{display:none}

/* RESPONSIVE */
@media(max-width:1180px){
.campaign-context{display:none}
.app-header{grid-template-columns:1fr auto}
.metric-grid{grid-template-columns:repeat(2,1fr)}
.dashboard-grid,.lower-grid{grid-template-columns:1fr}
}
@media(max-width:900px){
.app-header{height:68px;grid-template-columns:auto 1fr auto;padding:0 11px}
.mobile-menu{display:block}
.app-brand-copy,.user-copy{display:none}
.app-shell{grid-template-columns:1fr}
.sidebar{position:fixed;left:-320px;top:68px;width:300px;height:calc(100dvh - 68px);z-index:240;transition:left .25s;box-shadow:20px 0 55px rgba(0,0,0,.34)}
.menu-open .sidebar{left:0}
.overlay{position:fixed;inset:68px 0 0;background:rgba(0,0,0,.48);z-index:220;backdrop-filter:blur(3px)}
.menu-open .overlay{display:block}
.main-content{padding:16px}
.login-wrap{grid-template-columns:1fr;min-height:100vh;border-radius:0}
.login-cover{display:none}
.login-page{padding:0}
.mobile{display:grid}
.hero-graphic{display:none}
.dashboard-hero h1{font-size:34px}
}
@media(max-width:640px){
.metric-grid{grid-template-columns:1fr}
.action-grid{grid-template-columns:1fr}
.grid{grid-template-columns:1fr}
.grid .full{grid-column:auto}
.dashboard-hero{padding:26px;min-height:auto}
.page-head{flex-direction:column}
.page-head h1{font-size:26px}
.panel{padding:15px}
.login-box{padding:25px}
.app-footer{flex-direction:column;gap:4px}
}


/* =====================================================
   IDENTIDAD VISUAL COLOR PROFESIONAL
   ===================================================== */

.color-login-page{
    min-height:100vh;
    margin:0;
    padding:28px;
    display:grid;
    place-items:center;
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(circle at 15% 15%, rgba(36,166,184,.24), transparent 30%),
        radial-gradient(circle at 85% 80%, rgba(244,185,66,.22), transparent 28%),
        linear-gradient(135deg,#0a1f33 0%,#12395b 45%,#155d75 100%);
}

.color-login-background{
    position:fixed;
    inset:0;
    overflow:hidden;
    pointer-events:none;
}

.shape{
    position:absolute;
    border-radius:50%;
    filter:blur(2px);
}

.shape-one{
    width:420px;
    height:420px;
    left:-130px;
    top:-120px;
    background:linear-gradient(145deg,rgba(36,166,184,.40),rgba(22,138,173,.10));
}

.shape-two{
    width:520px;
    height:520px;
    right:-190px;
    bottom:-210px;
    background:linear-gradient(145deg,rgba(244,185,66,.30),rgba(255,255,255,.04));
}

.shape-three{
    width:220px;
    height:220px;
    right:18%;
    top:8%;
    border:1px solid rgba(255,255,255,.12);
    background:rgba(255,255,255,.03);
}

.color-login-shell{
    position:relative;
    z-index:2;
    width:min(1220px,100%);
    min-height:720px;
    display:grid;
    grid-template-columns:1.12fr .88fr;
    border-radius:30px;
    overflow:hidden;
    background:rgba(255,255,255,.98);
    border:1px solid rgba(255,255,255,.35);
    box-shadow:0 40px 110px rgba(4,17,31,.38);
}

.color-login-cover{
    position:relative;
    padding:46px;
    color:#fff;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    background:
        linear-gradient(rgba(11,40,67,.12),rgba(11,40,67,.25)),
        radial-gradient(circle at 85% 18%,rgba(255,255,255,.16),transparent 28%),
        linear-gradient(145deg,#102a43,#155d75 68%,#168aad);
}

.color-login-cover:after{
    content:"";
    position:absolute;
    right:-110px;
    bottom:-140px;
    width:430px;
    height:430px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.13);
    box-shadow:
        0 0 0 65px rgba(255,255,255,.03),
        0 0 0 130px rgba(255,255,255,.025);
}

.cover-brand,
.cover-content,
.cover-footer{
    position:relative;
    z-index:2;
}

.cover-brand{
    display:flex;
    align-items:center;
    gap:14px;
}

.cover-logo,
.login-mobile-brand{
    width:60px;
    height:60px;
    border-radius:18px;
    display:grid;
    place-items:center;
    background:linear-gradient(145deg,#ffffff,#e9f7fa);
    color:#12395b;
    font-weight:900;
    letter-spacing:.06em;
    box-shadow:0 15px 34px rgba(0,0,0,.17);
}

.cover-brand strong,
.cover-brand small{
    display:block;
}

.cover-brand strong{
    font-family:Georgia,serif;
    font-size:17px;
    font-weight:600;
}

.cover-brand small{
    margin-top:4px;
    font-size:10px;
    color:#cce5ec;
}

.cover-content{
    max-width:640px;
}

.cover-kicker,
.form-kicker{
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.18em;
    font-weight:800;
}

.cover-kicker{
    color:#d7edf2;
}

.cover-content h1{
    margin:18px 0;
    font-family:Georgia,serif;
    font-size:46px;
    line-height:1.08;
    font-weight:500;
}

.cover-content>p{
    max-width:610px;
    font-size:14px;
    line-height:1.75;
    color:#d6e8ed;
}

.cover-features{
    display:grid;
    gap:13px;
    margin-top:30px;
}

.cover-features article{
    display:flex;
    gap:13px;
    align-items:flex-start;
    padding:15px;
    border-radius:15px;
    border:1px solid rgba(255,255,255,.13);
    background:rgba(255,255,255,.08);
    backdrop-filter:blur(8px);
}

.cover-features article>span{
    width:34px;
    height:34px;
    border-radius:10px;
    display:grid;
    place-items:center;
    background:linear-gradient(145deg,rgba(244,185,66,.30),rgba(255,255,255,.10));
    color:#fff4d1;
    font-size:9px;
    font-weight:900;
}

.cover-features b,
.cover-features small{
    display:block;
}

.cover-features b{
    font-size:11px;
}

.cover-features small{
    margin-top:4px;
    font-size:9px;
    line-height:1.5;
    color:#c9dde3;
}

.cover-footer{
    display:flex;
    justify-content:space-between;
    font-size:9px;
    color:#bfd5dc;
}

.color-login-form-area{
    display:grid;
    place-items:center;
    padding:56px;
    background:
        radial-gradient(circle at top right,rgba(36,166,184,.10),transparent 35%),
        linear-gradient(180deg,#ffffff,#f6fafc);
}

.color-login-card{
    width:min(420px,100%);
}

.login-mobile-brand{
    display:none;
    margin-bottom:20px;
    color:#fff;
    background:linear-gradient(145deg,#12395b,#168aad);
}

.form-kicker{
    color:#168aad;
}

.color-login-card h2{
    margin:11px 0 7px;
    font-family:Georgia,serif;
    font-size:36px;
    font-weight:500;
    color:#102a43;
}

.color-login-card>p{
    margin:0 0 28px;
    color:#6b7771;
    font-size:12px;
    line-height:1.6;
}

.color-login-form{
    display:grid;
    gap:17px;
}

.color-login-form label>span{
    display:block;
    margin-bottom:7px;
    color:#405367;
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.color-input{
    display:grid;
    grid-template-columns:46px 1fr;
    overflow:hidden;
    border:1px solid #d6e1ea;
    border-radius:14px;
    background:#fff;
    transition:.2s;
}

.color-input:focus-within{
    border-color:#24a6b8;
    box-shadow:0 0 0 4px rgba(36,166,184,.11);
}

.color-input i{
    display:grid;
    place-items:center;
    background:linear-gradient(180deg,#edf8fa,#f8fbfc);
    color:#168aad;
    font-style:normal;
    font-size:11px;
    font-weight:900;
}

.color-input input{
    border:0;
    outline:0;
    margin:0;
    padding:14px;
    background:transparent;
}

.color-login-button{
    margin-top:5px;
    border:0;
    border-radius:14px;
    padding:15px 18px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    color:#fff;
    font-size:11px;
    font-weight:900;
    background:linear-gradient(135deg,#12395b,#168aad);
    box-shadow:0 17px 34px rgba(18,57,91,.24);
    transition:.2s;
}

.color-login-button:hover{
    transform:translateY(-2px);
    box-shadow:0 21px 40px rgba(18,57,91,.28);
}

.color-login-button i{
    font-style:normal;
    font-size:17px;
}

.login-security{
    display:flex;
    gap:10px;
    margin-top:24px;
    padding:14px;
    border-radius:13px;
    background:linear-gradient(180deg,#edf8fa,#f8fbfc);
    border:1px solid #dbeef2;
}

.security-light{
    width:9px;
    height:9px;
    border-radius:50%;
    margin-top:4px;
    background:#27ae60;
    box-shadow:0 0 0 4px rgba(39,174,96,.12);
}

.login-security b,
.login-security small{
    display:block;
}

.login-security b{
    font-size:10px;
    color:#12395b;
}

.login-security small{
    margin-top:4px;
    font-size:9px;
    line-height:1.5;
    color:#6b7771;
}

/* CABECERA Y DASHBOARD CON MAYOR COLOR */
.app-header{
    border-bottom:3px solid transparent;
    border-image:linear-gradient(90deg,#12395b,#24a6b8,#f4b942) 1;
}

.app-logo{
    background:linear-gradient(145deg,#12395b,#168aad);
}

.sidebar{
    background:
        radial-gradient(circle at top right,rgba(36,166,184,.18),transparent 27%),
        linear-gradient(180deg,#12395b,#102a43 65%,#0a2136);
}

.dashboard-hero{
    background:
        radial-gradient(circle at 82% 18%,rgba(255,255,255,.18),transparent 26%),
        linear-gradient(135deg,#102a43 0%,#155d75 54%,#24a6b8 100%);
}

.dashboard-hero:before{
    content:"";
    position:absolute;
    inset:auto auto -120px -80px;
    width:340px;
    height:340px;
    border-radius:50%;
    background:rgba(244,185,66,.13);
}

.metric-card:nth-child(1) .metric-icon{
    background:#e6f6f8;
    color:#168aad;
}
.metric-card:nth-child(2) .metric-icon{
    background:#fff3d9;
    color:#b47c0d;
}
.metric-card:nth-child(3) .metric-icon{
    background:#e9edf9;
    color:#4054a5;
}
.metric-card:nth-child(4) .metric-icon{
    background:#e9f6ef;
    color:#218956;
}

.action-grid a:nth-child(1) i{background:#e6f6f8;color:#168aad}
.action-grid a:nth-child(2) i{background:#fff3d9;color:#b47c0d}
.action-grid a:nth-child(3) i{background:#e9edf9;color:#4054a5}
.action-grid a:nth-child(4) i{background:#e9f6ef;color:#218956}
.action-grid a:nth-child(5) i{background:#f9eafa;color:#9b4ca8}
.action-grid a:nth-child(6) i{background:#fdebea;color:#b44b45}

.campaign-card{
    position:relative;
    overflow:hidden;
}

.campaign-card:before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:5px;
    background:linear-gradient(90deg,#12395b,#24a6b8,#f4b942);
}

.btn.primary{
    background:linear-gradient(135deg,#12395b,#168aad);
}

.btn.white{
    color:#12395b;
}

.nav-item.active{
    color:#12395b;
    border-left:4px solid #f4b942;
}

@media(max-width:800px){
    .color-login-page{padding:0}
    .color-login-shell{
        min-height:100vh;
        grid-template-columns:1fr;
        border-radius:0;
    }
    .color-login-cover{display:none}
    .color-login-form-area{
        padding:28px;
        background:
            radial-gradient(circle at top left,rgba(36,166,184,.18),transparent 30%),
            linear-gradient(180deg,#ffffff,#f5fafc);
    }
    .login-mobile-brand{display:grid}
}

@media(max-width:420px){
    .color-login-form-area{padding:22px}
}


/* =====================================================
   BASE CIUDADANA Y GRUPO FAMILIAR
   ===================================================== */

.page-eyebrow{
    display:block;
    margin-bottom:6px;
    color:var(--green-700);
    font-size:8px;
    font-weight:900;
    letter-spacing:.17em;
    text-transform:uppercase;
}

.page-head-actions{
    display:flex;
    align-items:center;
    gap:9px;
    flex-wrap:wrap;
}

.citizen-summary{
    display:flex;
    align-items:center;
    gap:14px;
    padding:18px 20px;
    background:
        radial-gradient(circle at top right,rgba(36,166,184,.11),transparent 28%),
        linear-gradient(180deg,#ffffff,#f8fbfc);
}

.summary-icon{
    width:48px;
    height:48px;
    border-radius:15px;
    display:grid;
    place-items:center;
    color:#fff;
    font-size:20px;
    background:linear-gradient(145deg,#12395b,#24a6b8);
    box-shadow:0 12px 25px rgba(18,57,91,.18);
}

.citizen-summary span,
.citizen-summary b,
.citizen-summary small{
    display:block;
}

.citizen-summary span{
    color:var(--muted);
    font-size:8px;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.citizen-summary b{
    margin-top:4px;
    color:#12395b;
    font-family:Georgia,serif;
    font-size:20px;
    font-weight:500;
}

.citizen-summary small{
    margin-top:4px;
    color:var(--muted);
    font-size:9px;
}

.form-section-title{
    display:flex;
    align-items:center;
    gap:11px;
    margin:21px 0 13px;
    padding-bottom:10px;
    border-bottom:1px solid var(--border);
}

.form-section-title:first-of-type{
    margin-top:0;
}

.form-section-title>span{
    width:30px;
    height:30px;
    border-radius:9px;
    display:grid;
    place-items:center;
    color:#12395b;
    font-size:9px;
    font-weight:900;
    background:linear-gradient(145deg,#e5f5f8,#fff4d7);
}

.form-section-title b,
.form-section-title small{
    display:block;
}

.form-section-title b{
    color:#223447;
    font-size:10px;
}

.form-section-title small{
    margin-top:3px;
    color:var(--muted);
    font-size:8px;
}

.contact-section-title{
    align-items:flex-start;
}

.contact-section-title .contact-section-copy{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    min-width:0;
}

.contact-section-title .contact-consent-below{
    margin:5px 0 0;
    padding:0;
    align-items:center;
    white-space:normal;
}

.contact-section-title .contact-consent-below input{
    margin:0;
}

.family-panel{
    border-top:5px solid transparent;
    border-image:linear-gradient(90deg,#12395b,#24a6b8,#f4b942) 1;
}

.family-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;
    padding-bottom:18px;
    border-bottom:1px solid var(--border);
}

.family-owner{
    display:flex;
    align-items:center;
    gap:13px;
}

.family-avatar,
.member-avatar{
    width:52px;
    height:52px;
    border-radius:16px;
    display:grid;
    place-items:center;
    color:#fff;
    font-family:Georgia,serif;
    font-size:22px;
    background:linear-gradient(145deg,#12395b,#24a6b8);
    box-shadow:0 12px 25px rgba(18,57,91,.18);
}

.family-owner span,
.family-owner h2,
.family-owner small{
    display:block;
}

.family-owner>div>span{
    color:var(--green-700);
    font-size:8px;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.family-owner h2{
    margin:5px 0 4px;
    color:#102a43;
    font-family:Georgia,serif;
    font-size:23px;
    font-weight:500;
}

.family-owner small{
    color:var(--muted);
    font-size:9px;
}

.family-form{
    margin-top:20px;
    padding:20px;
    border:1px solid #dbe8ee;
    border-radius:16px;
    background:
        radial-gradient(circle at top right,rgba(36,166,184,.09),transparent 30%),
        linear-gradient(180deg,#fbfdfe,#f5fafc);
}

.family-members-heading{
    margin:24px 0 13px;
}

.family-members-heading span,
.family-members-heading h3{
    display:block;
}

.family-members-heading span{
    color:var(--muted);
    font-size:8px;
    font-weight:900;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.family-members-heading h3{
    margin:5px 0 0;
    color:#102a43;
    font-family:Georgia,serif;
    font-size:21px;
    font-weight:500;
}

.family-card-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:13px;
}

.family-member-card{
    position:relative;
    overflow:hidden;
    padding:17px;
    border:1px solid var(--border);
    border-radius:16px;
    background:#fff;
    box-shadow:var(--shadow-sm);
}

.family-member-card:before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:4px;
    background:linear-gradient(90deg,#12395b,#24a6b8,#f4b942);
}

.member-card-top{
    display:flex;
    align-items:center;
    gap:11px;
    margin-bottom:14px;
}

.member-avatar{
    width:42px;
    height:42px;
    border-radius:13px;
    font-size:18px;
}

.member-card-top h3{
    margin:0;
    color:#102a43;
    font-size:12px;
}

.member-card-top small{
    display:block;
    margin-top:4px;
    color:var(--green-700);
    font-size:8px;
    font-weight:800;
}

.family-member-card dl{
    display:grid;
    gap:8px;
    margin:0;
}

.family-member-card dl>div{
    display:grid;
    grid-template-columns:95px minmax(0,1fr);
    gap:8px;
    padding:8px 9px;
    border-radius:9px;
    background:#f7fafb;
}

.family-member-card dt{
    color:var(--muted);
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
}

.family-member-card dd{
    overflow-wrap:anywhere;
    margin:0;
    color:#34485b;
    font-size:9px;
}

.member-delete{
    width:100%;
    margin-top:13px;
    padding:9px;
    border:0;
    border-radius:9px;
    color:#943b3b;
    font-size:9px;
    font-weight:800;
    background:#fbefef;
}

.citizen-list-heading{
    align-items:center;
}

.citizen-search{
    display:flex;
    align-items:center;
    gap:7px;
    flex-wrap:wrap;
}

.citizen-search input{
    width:min(350px,70vw);
    margin:0;
}

.citizen-table td b,
.citizen-table td small,
.citizen-table td span{
    display:block;
}

.citizen-table td small{
    margin-top:4px;
    color:var(--muted);
    font-size:8px;
}

.email-line{
    overflow-wrap:anywhere;
    color:#23566b;
    font-size:9px;
}

.family-link{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:8px 10px;
    border-radius:10px;
    color:#12395b;
    font-size:9px;
    font-weight:800;
    background:linear-gradient(145deg,#e7f5f8,#fff4d7);
}

.family-link span{
    min-width:24px;
    height:24px;
    padding:0 6px;
    border-radius:8px;
    display:grid;
    place-items:center;
    color:#fff;
    background:linear-gradient(145deg,#12395b,#24a6b8);
}

@media(max-width:760px){
    .family-header{
        align-items:flex-start;
        flex-direction:column;
    }

    .citizen-list-heading{
        align-items:flex-start;
        flex-direction:column;
    }

    .citizen-search{
        width:100%;
    }

    .citizen-search input{
        width:100%;
    }
}

@media(max-width:520px){
    .citizen-summary{
        align-items:flex-start;
    }

    .family-owner{
        align-items:flex-start;
    }

    .family-avatar{
        width:44px;
        height:44px;
        min-width:44px;
    }

    .family-owner h2{
        font-size:19px;
    }

    .family-member-card dl>div{
        grid-template-columns:1fr;
        gap:3px;
    }
}


/* =====================================================
   USUARIOS Y PERMISOS
   ===================================================== */

.users-page-head{
    align-items:center;
}

.user-form-panel{
    border-top:5px solid transparent;
    border-image:linear-gradient(90deg,#12395b,#24a6b8,#f4b942) 1;
}

.users-table .user-cell{
    display:flex;
    align-items:center;
    gap:10px;
}

.table-avatar{
    width:36px;
    height:36px;
    min-width:36px;
    border-radius:11px;
    display:grid;
    place-items:center;
    color:#fff;
    font-weight:900;
    background:linear-gradient(145deg,#12395b,#24a6b8);
    box-shadow:0 8px 18px rgba(18,57,91,.16);
}

.user-cell b,
.user-cell small{
    display:block;
}

.user-cell b{
    font-size:10px;
}

.user-cell small{
    margin-top:3px;
    color:var(--green-700);
    font-size:8px;
    font-weight:800;
}

.role-badge,
.status-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:6px 9px;
    border-radius:999px;
    font-size:8px;
    font-weight:900;
}

.role-superadmin{
    color:#6f4c0d;
    background:#fff2cf;
}

.role-admin{
    color:#12395b;
    background:#e5f1f8;
}

.role-coordinador{
    color:#166b75;
    background:#e3f6f7;
}

.role-visitador{
    color:#2e6c45;
    background:#e8f5eb;
}

.role-comunicaciones{
    color:#7a477f;
    background:#f5e9f7;
}

.role-logistica{
    color:#865a27;
    background:#f8eddf;
}

.status-badge.active{
    color:#196942;
    background:#e2f3e8;
}

.status-badge.inactive{
    color:#8b3d3d;
    background:#f8e3e3;
}

.inactive-row{
    opacity:.68;
    background:#fafafa;
}

.table-actions{
    display:flex;
    align-items:center;
    gap:7px;
    flex-wrap:wrap;
}

.table-actions form{
    margin:0;
}

.action-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:32px;
    padding:7px 10px;
    border:0;
    border-radius:9px;
    font-size:8px;
    font-weight:900;
    cursor:pointer;
}

.action-button.edit{
    color:#12395b;
    background:#e4f2f6;
}

.action-button.delete{
    color:#913737;
    background:#f8e2e2;
}

.action-button.restore{
    color:#1c6f49;
    background:#e1f2e7;
}

.action-button:hover{
    transform:translateY(-1px);
    filter:brightness(.98);
}

@media(max-width:760px){
    .users-page-head{
        align-items:flex-start;
    }

    .table-actions{
        min-width:150px;
    }
}


/* =====================================================
   CAMPAÑAS: FOTO DEL CANDIDATO Y LOGO
   ===================================================== */

.campaign-editor-panel{
    border-top:5px solid transparent;
    border-image:linear-gradient(90deg,#12395b,#24a6b8,#f4b942) 1;
}

.campaign-editor-grid{
    display:grid;
    grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);
    gap:22px;
    align-items:start;
}

.media-upload-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:13px;
}

.media-upload-card{
    padding:14px;
    border:1px solid var(--border);
    border-radius:15px;
    background:linear-gradient(180deg,#fff,#f8fbfc);
}

.media-label{
    display:block;
    margin-bottom:9px;
    color:#33475a;
    font-size:9px;
    font-weight:900;
    text-transform:uppercase;
}

.media-preview{
    position:relative;
    overflow:hidden;
    width:100%;
    height:190px;
    margin-bottom:10px;
    border-radius:13px;
    display:grid;
    place-items:center;
    background:
        radial-gradient(circle at top right,rgba(36,166,184,.16),transparent 30%),
        linear-gradient(145deg,#e9f4f7,#f8fbfc);
}

.logo-preview{
    height:150px;
}

.media-preview img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.logo-preview img{
    object-fit:contain;
    padding:16px;
}

.media-placeholder{
    color:#12395b;
    font-family:Georgia,serif;
    font-size:24px;
    opacity:.55;
}

.media-upload-card input[type=file]{
    padding:8px;
    font-size:9px;
}

.media-upload-card small{
    display:block;
    margin-top:8px;
    color:var(--muted);
    font-size:8px;
    line-height:1.5;
}

.media-live-status{
    min-height:24px;
}

.media-live-status-error{
    color:#b42318 !important;
    font-weight:800;
}

.campaign-media-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid var(--border);
}

.campaign-media-actions form{
    margin:0;
}

.professional-campaign-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
    gap:17px;
}

.professional-campaign-card{
    position:relative;
    overflow:hidden;
    border:1px solid var(--border);
    border-radius:20px;
    background:#fff;
    box-shadow:var(--shadow-sm);
    transition:.2s;
}

.professional-campaign-card:hover{
    transform:translateY(-4px);
    box-shadow:var(--shadow-md);
}

.campaign-card-media{
    position:relative;
    height:230px;
    overflow:hidden;
    background:
        radial-gradient(circle at top right,rgba(255,255,255,.20),transparent 28%),
        linear-gradient(145deg,#102a43,#168aad);
}

.campaign-card-photo{
    width:100%;
    height:100%;
    display:grid;
    place-items:center;
}

.campaign-card-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
}

.campaign-card-photo>span{
    width:100px;
    height:100px;
    border-radius:50%;
    display:grid;
    place-items:center;
    color:#fff;
    font-family:Georgia,serif;
    font-size:44px;
    background:rgba(255,255,255,.13);
    border:1px solid rgba(255,255,255,.22);
}

.campaign-card-logo{
    position:absolute;
    left:18px;
    bottom:16px;
    width:74px;
    height:74px;
    padding:8px;
    border-radius:18px;
    display:grid;
    place-items:center;
    background:#fff;
    border:1px solid rgba(255,255,255,.65);
    box-shadow:0 14px 30px rgba(4,17,31,.24);
}

.campaign-card-logo img{
    width:100%;
    height:100%;
    object-fit:contain;
}

.campaign-card-logo span{
    color:#12395b;
    font-size:12px;
    font-weight:900;
}

.campaign-level{
    position:absolute;
    right:15px;
    top:15px;
    padding:7px 10px;
    border-radius:999px;
    color:#fff;
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
    background:rgba(16,42,67,.74);
    backdrop-filter:blur(8px);
}

.campaign-card-body{
    padding:20px;
}

.campaign-state{
    display:flex;
    align-items:center;
    gap:7px;
    color:var(--muted);
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.10em;
}

.campaign-state i{
    width:8px;
    height:8px;
    border-radius:50%;
    background:#2daf73;
    box-shadow:0 0 0 4px rgba(45,175,115,.10);
}

.campaign-card-body h3{
    margin:12px 0 5px;
    color:#102a43;
    font-family:Georgia,serif;
    font-size:23px;
    font-weight:500;
}

.campaign-card-body>b{
    display:block;
    color:#168aad;
    font-size:10px;
}

.campaign-card-body>p{
    margin:6px 0 0;
    color:var(--muted);
    font-size:9px;
}

.campaign-card-body blockquote{
    margin:14px 0;
    padding:11px 13px;
    border-left:4px solid #f4b942;
    border-radius:0 10px 10px 0;
    color:#475a6d;
    font-family:Georgia,serif;
    font-size:11px;
    font-style:italic;
    background:#fff8e8;
}

.campaign-card-stats{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    margin-top:16px;
    padding-top:15px;
    border-top:1px solid var(--border);
}

.campaign-card-stats span{
    text-align:center;
}

.campaign-card-stats strong,
.campaign-card-stats small{
    display:block;
}

.campaign-card-stats strong{
    color:#12395b;
    font-family:Georgia,serif;
    font-size:20px;
    font-weight:500;
}

.campaign-card-stats small{
    margin-top:3px;
    color:var(--muted);
    font-size:8px;
}

.campaign-card-actions{
    display:flex;
    gap:8px;
    margin-top:16px;
}

.campaign-context{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
}

.campaign-context-logo{
    width:42px;
    height:42px;
    padding:5px;
    border-radius:11px;
    display:grid;
    place-items:center;
    background:#fff;
    border:1px solid var(--border);
}

.campaign-context-logo img{
    width:100%;
    height:100%;
    object-fit:contain;
}

.campaign-context-logo span{
    color:#12395b;
    font-weight:900;
}

.dashboard-campaign-card{
    padding:0;
    overflow:hidden;
}

.dashboard-campaign-media{
    position:relative;
    height:170px;
    margin:-21px -21px 16px;
    overflow:hidden;
    background:linear-gradient(145deg,#102a43,#168aad);
}

.dashboard-candidate-photo{
    width:100%;
    height:100%;
    display:grid;
    place-items:center;
}

.dashboard-candidate-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
}

.dashboard-candidate-photo>span{
    color:#fff;
    font-family:Georgia,serif;
    font-size:42px;
}

.dashboard-campaign-logo{
    position:absolute;
    left:14px;
    bottom:12px;
    width:56px;
    height:56px;
    padding:6px;
    border-radius:14px;
    display:grid;
    place-items:center;
    background:#fff;
    box-shadow:0 10px 22px rgba(4,17,31,.22);
}

.dashboard-campaign-logo img{
    width:100%;
    height:100%;
    object-fit:contain;
}

.dashboard-campaign-logo span{
    color:#12395b;
    font-size:10px;
    font-weight:900;
}

.campaign-hero-identity{
    position:relative;
    z-index:2;
    width:290px;
    min-width:290px;
    height:220px;
}

.campaign-hero-photo{
    position:absolute;
    right:0;
    bottom:-38px;
    width:220px;
    height:260px;
    overflow:hidden;
    border-radius:28px 28px 0 0;
    background:rgba(255,255,255,.10);
    border:1px solid rgba(255,255,255,.18);
}

.campaign-hero-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
}

.campaign-hero-photo>span{
    width:100%;
    height:100%;
    display:grid;
    place-items:center;
    color:#fff;
    font-family:Georgia,serif;
    font-size:62px;
}

.campaign-hero-logo{
    position:absolute;
    left:0;
    bottom:12px;
    width:88px;
    height:88px;
    padding:9px;
    border-radius:22px;
    display:grid;
    place-items:center;
    background:#fff;
    box-shadow:0 16px 34px rgba(4,17,31,.26);
}

.campaign-hero-logo img{
    width:100%;
    height:100%;
    object-fit:contain;
}

.campaign-hero-logo span{
    color:#12395b;
    font-weight:900;
}

@media(max-width:980px){
    .campaign-editor-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:900px){
    .campaign-hero-identity{
        display:none;
    }
}

@media(max-width:640px){
    .media-upload-grid{
        grid-template-columns:1fr;
    }

    .professional-campaign-grid{
        grid-template-columns:1fr;
    }

    .campaign-card-actions{
        flex-direction:column;
    }

    .campaign-card-actions .btn{
        width:100%;
    }
}

/* TERRITORIO Y ESTRUCTURA POLÍTICA */
.territory-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.territory-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.territory-columns h3{font-family:Georgia,serif;color:#102a43}
.catalog-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:11px;border:1px solid var(--border);border-radius:11px;margin-bottom:8px;background:#fbfdfe}
.catalog-row b,.catalog-row small{display:block}.catalog-row small{font-size:8px;color:var(--muted);margin-top:3px}
.structure-editor{border-top:5px solid transparent;border-image:linear-gradient(90deg,#12395b,#24a6b8,#f4b942) 1}
.structure-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.structure-card{padding:17px;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:var(--shadow-sm)}
.structure-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.structure-level{padding:6px 9px;border-radius:999px;background:#e7f5f8;color:#12395b;font-size:8px;font-weight:900;text-transform:uppercase}
.structure-card h3{font-family:Georgia,serif;font-size:20px;color:#102a43;margin:14px 0 5px}
.structure-card p,.structure-card small{color:var(--muted);font-size:9px}
.structure-card dl{display:grid;gap:7px;margin:14px 0 0}.structure-card dl div{display:flex;justify-content:space-between;gap:10px;padding:8px;border-radius:9px;background:#f7fafb}
.structure-card dt{font-size:8px;text-transform:uppercase;color:var(--muted)}.structure-card dd{margin:0;font-size:9px}
.structure-card blockquote{margin:12px 0 0;padding:10px;border-left:4px solid #f4b942;background:#fff8e8;font-size:9px;color:#475a6d}
.guidance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.guidance-grid article{padding:15px;border:1px solid var(--border);border-radius:13px;background:linear-gradient(180deg,#fff,#f8fbfc)}
.guidance-grid b{color:#12395b;font-size:10px}.guidance-grid p{font-size:9px;line-height:1.55;color:var(--muted)}
@media(max-width:1000px){.territory-admin-grid,.territory-columns,.guidance-grid{grid-template-columns:1fr}}

/* GESTIÓN POLÍTICA INTEGRAL */
.campaign-switcher select{margin:0;min-width:190px;padding:9px 11px;border-radius:11px;background:#f5fafc}
.commitment-editor,.communication-panel{border-top:5px solid transparent;border-image:linear-gradient(90deg,#12395b,#24a6b8,#f4b942) 1}
.commitment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.commitment-card{padding:18px;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:var(--shadow-sm)}
.commitment-top{display:flex;justify-content:space-between;gap:8px}.commitment-top span,.commitment-top b{font-size:8px;text-transform:uppercase;padding:6px 8px;border-radius:999px;background:#edf5f7}
.commitment-card h3{font-family:Georgia,serif;color:#102a43;font-size:20px;margin:14px 0 7px}.commitment-card p{font-size:9px;color:var(--muted);line-height:1.55}
.commitment-card dl{display:grid;gap:7px}.commitment-card dl div{display:flex;justify-content:space-between;gap:10px;padding:8px;background:#f7fafb;border-radius:9px}.commitment-card dt{font-size:8px;text-transform:uppercase;color:var(--muted)}.commitment-card dd{margin:0;font-size:9px;text-align:right}
.commitment-followup{display:grid;gap:8px;margin-top:13px}.commitment-followup textarea{min-height:70px}
.priority-urgente{border-top:4px solid #b54545}.priority-alta{border-top:4px solid #d39a2f}.priority-media{border-top:4px solid #3385a5}.priority-baja{border-top:4px solid #3b9a66}
@media(max-width:1180px){.campaign-switcher{display:none}}

/* PROVEEDORES Y AUDITORÍA */
.provider-tabs{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:16px}
.provider-tabs a{padding:10px 14px;border-radius:10px;background:#fff;border:1px solid var(--border);font-size:10px;font-weight:900}
.provider-tabs a.active{color:#fff;background:linear-gradient(135deg,#12395b,#168aad);border-color:transparent}
.provider-panel{border-top:5px solid transparent;border-image:linear-gradient(90deg,#12395b,#24a6b8,#f4b942) 1}
.provider-active{display:flex;align-items:center;gap:9px;text-transform:none}
.provider-active input{width:auto;margin:0}
.provider-meta{margin-top:16px;padding:11px;border-radius:10px;background:#f6fafc;color:var(--muted);font-size:9px}
.audit-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:17px}
.audit-metrics article{padding:18px;border-radius:16px;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-sm)}
.audit-metrics span,.audit-metrics b,.audit-metrics small{display:block}
.audit-metrics span{font-size:8px;text-transform:uppercase;color:var(--muted)}
.audit-metrics b{font-family:Georgia,serif;font-size:28px;color:#12395b;margin-top:6px}
.audit-metrics small{font-size:8px;color:var(--muted);margin-top:4px}
.audit-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:end}
.audit-event{display:inline-flex;padding:6px 8px;border-radius:999px;background:#e7f5f8;color:#12395b;font-size:8px;font-weight:900}
.user-agent-cell{max-width:300px;white-space:normal;word-break:break-word}
@media(max-width:1000px){.audit-filters{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.audit-metrics,.audit-filters{grid-template-columns:1fr}}

/* BACKUP Y RESTAURACIÓN */
.backup-operation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.backup-card{position:relative;overflow:hidden;border-top:5px solid transparent}
.backup-create-card{border-image:linear-gradient(90deg,#12395b,#24a6b8) 1}
.backup-restore-card{border-image:linear-gradient(90deg,#b64a4a,#f4b942) 1}
.backup-card-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;margin-bottom:15px;color:#fff;font-size:24px;background:linear-gradient(145deg,#12395b,#24a6b8);box-shadow:0 12px 24px rgba(18,57,91,.18)}
.backup-restore-card .backup-card-icon{background:linear-gradient(145deg,#963f3f,#d68a36)}
.backup-card h2{font-family:Georgia,serif;color:#102a43;font-size:24px;margin:7px 0}
.backup-card>p{font-size:10px;line-height:1.65;color:var(--muted)}
.backup-campaign-summary,.backup-warning{padding:13px;border-radius:11px;margin:16px 0;background:#f4fafc;border:1px solid #dbe9ef}
.backup-warning{background:#fff7e7;border-color:#f2dfb4}
.backup-campaign-summary b,.backup-campaign-summary small,.backup-warning b,.backup-warning small{display:block}
.backup-campaign-summary small,.backup-warning small{font-size:8px;color:var(--muted);margin-top:4px}
.btn.danger{color:#fff;background:linear-gradient(135deg,#8e3939,#c3534c);border:0}
.backup-selector-form{max-width:500px}
.backup-type{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:8px;font-weight:900}
.backup-type.backup{color:#155b73;background:#e4f4f7}
.backup-type.restore{color:#8a4f17;background:#fff0d8}
.status-badge.pending{color:#805c13;background:#fff2cf}
.backup-history-table td b,.backup-history-table td small{display:block}
.backup-history-table td small{margin-top:3px;color:var(--muted);font-size:8px}
@media(max-width:850px){.backup-operation-grid{grid-template-columns:1fr}}


/* =====================================================
   CENTRO DE MENSAJERÍA MULTICANAL
   ===================================================== */

.messaging-metrics{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:13px;
    margin-bottom:17px;
}

.messaging-metrics article{
    padding:17px;
    border:1px solid var(--border);
    border-radius:16px;
    background:#fff;
    box-shadow:var(--shadow-sm);
}

.messaging-metrics span,
.messaging-metrics b,
.messaging-metrics small{
    display:block;
}

.messaging-metrics span{
    color:var(--muted);
    font-size:8px;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.messaging-metrics b{
    margin-top:6px;
    color:#12395b;
    font-family:Georgia,serif;
    font-size:29px;
    font-weight:500;
}

.messaging-metrics small{
    margin-top:4px;
    color:var(--muted);
    font-size:8px;
}

.messaging-tabs{
    margin-bottom:16px;
}

.messaging-provider-status{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:11px;
    margin-bottom:17px;
}

.messaging-provider-status article{
    display:flex;
    align-items:center;
    gap:10px;
    padding:13px;
    border:1px solid var(--border);
    border-radius:13px;
    background:linear-gradient(180deg,#fff,#f8fbfc);
}

.messaging-provider-status article>div{
    min-width:0;
    flex:1;
}

.messaging-provider-status b,
.messaging-provider-status small{
    display:block;
}

.messaging-provider-status b{
    color:#12395b;
    font-size:10px;
}

.messaging-provider-status small{
    overflow:hidden;
    margin-top:3px;
    color:var(--muted);
    font-size:8px;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.channel-icon{
    width:36px;
    height:36px;
    min-width:36px;
    border-radius:11px;
    display:grid;
    place-items:center;
    color:#fff;
    font-size:10px;
    font-weight:900;
    background:linear-gradient(145deg,#12395b,#24a6b8);
}

.channel-badge{
    display:inline-flex;
    padding:6px 9px;
    border-radius:999px;
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
}

.channel-badge.whatsapp{
    color:#176d45;
    background:#e1f4e9;
}

.channel-badge.sms{
    color:#225f84;
    background:#e3f1f8;
}

.channel-badge.correo{
    color:#704c86;
    background:#f1e7f6;
}

.queue-progress{
    width:150px;
    max-width:100%;
    height:7px;
    overflow:hidden;
    margin-bottom:5px;
    border-radius:999px;
    background:#e7edf1;
}

.queue-progress span{
    display:block;
    height:100%;
    border-radius:inherit;
    background:linear-gradient(90deg,#168aad,#24a6b8);
}

.messaging-composer{
    border-top:5px solid transparent;
    border-image:linear-gradient(90deg,#12395b,#24a6b8,#f4b942) 1;
}

.message-variables{
    display:flex;
    align-items:center;
    gap:7px;
    flex-wrap:wrap;
    padding:13px;
    border:1px dashed #cbdce5;
    border-radius:12px;
    background:#f7fbfc;
}

.message-variables b{
    color:#12395b;
    font-size:9px;
}

.message-variables code{
    padding:5px 7px;
    border-radius:7px;
    color:#16637c;
    font-size:8px;
    background:#e5f4f7;
}

.message-composer-footer{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:14px;
    margin-top:18px;
    padding-top:15px;
    border-top:1px solid var(--border);
}

.message-composer-footer b,
.message-composer-footer small{
    display:block;
}

.message-composer-footer b{
    color:#12395b;
    font-size:10px;
}

.message-composer-footer small{
    margin-top:4px;
    color:var(--muted);
    font-size:8px;
}

.contact-check-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:8px;
    max-height:350px;
    overflow:auto;
    margin-top:9px;
    padding:10px;
    border:1px solid var(--border);
    border-radius:12px;
    background:#f8fbfc;
}

.contact-check-grid label{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:3px 8px;
    align-items:center;
    padding:9px;
    border:1px solid #e0e9ed;
    border-radius:10px;
    background:#fff;
}

.contact-check-grid input{
    grid-row:1/3;
    width:auto;
    margin:0;
}

.contact-check-grid span{
    color:#33485a;
    font-size:9px;
    font-weight:800;
}

.contact-check-grid small{
    color:var(--muted);
    font-size:8px;
}

.template-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:13px;
    margin-top:14px;
}

.template-card-top{
    display:flex;
    justify-content:space-between;
    gap:10px;
    align-items:center;
}

.template-card h3{
    margin:14px 0 6px;
    color:#102a43;
    font-family:Georgia,serif;
    font-size:20px;
}

.template-card>b{
    display:block;
    margin-bottom:8px;
    color:#168aad;
    font-size:9px;
}

.template-card p{
    color:#536678;
    font-size:9px;
    line-height:1.65;
}

.message-error-cell{
    max-width:300px;
    white-space:normal;
    word-break:break-word;
}

@media(max-width:950px){
    .messaging-metrics{
        grid-template-columns:repeat(2,1fr);
    }

    .messaging-provider-status{
        grid-template-columns:1fr;
    }
}

@media(max-width:650px){
    .messaging-metrics{
        grid-template-columns:1fr;
    }

    .message-composer-footer{
        align-items:flex-start;
        flex-direction:column;
    }

    .message-composer-footer .btn{
        width:100%;
    }
}


/* =====================================================
   CABECERA ADMINISTRATIVA V2
   ===================================================== */

.app-header{
    min-height:82px;
    height:auto;
    grid-template-columns:minmax(310px,1fr) auto minmax(300px,430px);
    gap:18px;
    padding:10px 22px;
}

.header-account{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:11px;
    min-width:230px;
    padding:7px 10px;
    border:1px solid var(--border);
    border-radius:14px;
    background:linear-gradient(180deg,#fff,#f8fbfc);
}

.header-user{
    justify-self:auto;
    min-width:0;
    gap:9px;
}

.user-copy{
    min-width:0;
}

.user-copy small,
.user-copy strong,
.user-copy em{
    display:block;
}

.user-copy small{
    margin:0 0 2px;
    color:var(--muted);
    font-size:7px;
    font-weight:900;
    letter-spacing:.10em;
    text-transform:uppercase;
}

.user-copy strong{
    overflow:hidden;
    max-width:170px;
    color:#102a43;
    font-size:11px;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.user-copy em{
    margin-top:2px;
    color:#168aad;
    font-size:8px;
    font-style:normal;
    font-weight:800;
    text-transform:capitalize;
}

.logout-button{
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:38px;
    padding:8px 11px;
    border:1px solid #efd0d0;
    color:#8f3838;
    background:#fff4f4;
    transition:.18s;
}

.logout-button:hover{
    color:#fff;
    background:#a34040;
    border-color:#a34040;
    transform:translateY(-1px);
}

.logout-icon{
    font-size:14px;
    line-height:1;
}

.header-campaign-area{
    min-width:0;
}

.header-campaign-area .campaign-context{
    width:100%;
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:10px;
    text-align:left;
}

.header-campaign-area .campaign-context>div:last-child{
    min-width:0;
}

.header-campaign-area .campaign-context strong,
.header-campaign-area .campaign-context small{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.campaign-switcher{
    width:100%;
}

.campaign-switcher label{
    display:block;
    margin:0;
    padding:8px 11px;
    border:1px solid var(--border);
    border-radius:14px;
    background:linear-gradient(180deg,#fff,#f8fbfc);
}

.campaign-switcher label>span{
    display:block;
    margin-bottom:4px;
    color:var(--muted);
    font-size:7px;
    font-weight:900;
    letter-spacing:.10em;
    text-transform:uppercase;
}

.campaign-switcher select{
    width:100%;
    min-width:0;
    margin:0;
    padding:7px 9px;
    border-radius:9px;
    color:#12395b;
    font-size:9px;
    font-weight:800;
    background:#fff;
}

/* ACCESO DESTACADO AL CENTRO DE MENSAJERÍA */

.nav-messaging{
    position:relative;
    overflow:hidden;
    min-height:64px;
    margin:3px 0 7px;
    color:#fff;
    background:
        radial-gradient(circle at top right,rgba(255,255,255,.16),transparent 28%),
        linear-gradient(135deg,#168aad,#24a6b8);
    box-shadow:0 12px 25px rgba(22,138,173,.22);
}

.nav-messaging:hover,
.nav-messaging.active{
    color:#fff;
    background:
        radial-gradient(circle at top right,rgba(255,255,255,.20),transparent 28%),
        linear-gradient(135deg,#0f6e91,#168aad);
}

.nav-messaging .nav-text b{
    color:#fff;
    font-size:12px;
}

.nav-messaging .nav-text small,
.nav-messaging.active .nav-text small{
    color:#d9f3f7;
}

.messaging-nav-icon{
    width:32px;
    height:32px;
    border-radius:10px;
    color:#12395b;
    background:#fff;
}

.nav-feature-badge{
    margin-left:auto;
    padding:4px 6px;
    border-radius:999px;
    color:#6d4c0d;
    font-size:6px;
    font-weight:900;
    letter-spacing:.08em;
    background:#ffd66e;
}

@media(max-width:1180px){
    .app-header{
        grid-template-columns:minmax(260px,1fr) auto;
    }

    .header-campaign-area{
        display:none;
    }

    .header-account{
        justify-self:end;
    }
}

@media(max-width:900px){
    .app-header{
        min-height:68px;
        grid-template-columns:auto minmax(0,1fr) auto;
        gap:7px;
        padding:7px 10px;
    }

    .header-left{
        min-width:0;
    }

    .app-brand{
        min-width:0;
    }

    .app-logo{
        width:42px;
        height:42px;
        border-radius:12px;
    }

    .header-account{
        justify-self:end;
        min-width:0;
        padding:5px;
        border:0;
        background:transparent;
    }

    .header-user{
        min-width:0;
    }

    .user-avatar{
        width:37px;
        height:37px;
    }

    .user-copy{
        display:none;
    }

    .logout-button{
        min-height:36px;
        padding:7px 9px;
    }

    .logout-button span:last-child{
        display:none;
    }
}

@media(max-width:420px){
    .app-logo{
        width:38px;
        height:38px;
    }

    .user-avatar{
        width:34px;
        height:34px;
    }

    .logout-button{
        min-height:34px;
        padding:6px 8px;
    }
}


/* =====================================================
   MENSAJERÍA INDIVIDUAL Y MASIVA
   ===================================================== */

.individual-message-panel{
    border-top:5px solid transparent;
    border-image:linear-gradient(90deg,#12395b,#24a6b8,#f4b942) 1;
}

.individual-message-layout{
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);
    gap:20px;
    align-items:start;
}

.individual-message-summary{
    position:sticky;
    top:105px;
    padding:18px;
    border:1px solid var(--border);
    border-radius:16px;
    background:
        radial-gradient(circle at top right,rgba(36,166,184,.10),transparent 28%),
        linear-gradient(180deg,#fff,#f7fbfc);
    box-shadow:var(--shadow-sm);
}

.individual-message-summary h3{
    margin:6px 0 15px;
    color:#102a43;
    font-family:Georgia,serif;
    font-size:20px;
    font-weight:500;
}

.recipient-preview{
    display:flex;
    align-items:center;
    gap:11px;
    padding:12px;
    border-radius:13px;
    background:#eef7f9;
}

.recipient-preview-avatar{
    width:42px;
    height:42px;
    min-width:42px;
    border-radius:13px;
    display:grid;
    place-items:center;
    color:#fff;
    font-family:Georgia,serif;
    font-size:18px;
    background:linear-gradient(145deg,#12395b,#24a6b8);
}

.recipient-preview b,
.recipient-preview small{
    display:block;
}

.recipient-preview b{
    color:#12395b;
    font-size:10px;
}

.recipient-preview small{
    margin-top:3px;
    color:var(--muted);
    font-size:8px;
}

.individual-message-summary dl{
    display:grid;
    gap:8px;
    margin:14px 0;
}

.individual-message-summary dl>div{
    display:grid;
    grid-template-columns:70px minmax(0,1fr);
    gap:8px;
    padding:9px;
    border-radius:9px;
    background:#fff;
    border:1px solid #e2ebef;
}

.individual-message-summary dt{
    color:var(--muted);
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
}

.individual-message-summary dd{
    overflow-wrap:anywhere;
    margin:0;
    color:#34495a;
    font-size:9px;
}

.individual-send-note{
    padding:11px;
    border-radius:10px;
    background:#fff6dd;
    border:1px solid #efdca5;
}

.individual-send-note b,
.individual-send-note small{
    display:block;
}

.individual-send-note b{
    color:#755314;
    font-size:9px;
}

.individual-send-note small{
    margin-top:4px;
    color:#806b3d;
    font-size:8px;
    line-height:1.5;
}

.send-now-control{
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:12px;
    padding:10px;
    border-radius:10px;
    color:#12395b;
    font-size:9px;
    font-weight:900;
    background:#e9f5f7;
}

.send-now-control input{
    width:auto;
    margin:0;
}

.messaging-tabs a:nth-child(2){
    border-color:#9fd5dd;
}

.messaging-tabs a:nth-child(3){
    border-color:#e7c976;
}

@media(max-width:900px){
    .individual-message-layout{
        grid-template-columns:1fr;
    }

    .individual-message-summary{
        position:static;
    }
}

@media(max-width:560px){
    .individual-message-summary dl>div{
        grid-template-columns:1fr;
        gap:3px;
    }
}


/* =====================================================
   GRUPO FAMILIAR, EDAD Y ACTIVIDADES
   ===================================================== */

.family-management-panel{
    border-top:5px solid transparent;
    border-image:linear-gradient(90deg,#12395b,#24a6b8,#f4b942) 1;
}

.family-metrics{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:11px;
    margin:18px 0;
}

.family-metrics article{
    padding:15px;
    border:1px solid var(--border);
    border-radius:14px;
    background:linear-gradient(180deg,#fff,#f8fbfc);
}

.family-metrics span,
.family-metrics b,
.family-metrics small{
    display:block;
}

.family-metrics span{
    color:var(--muted);
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
}

.family-metrics b{
    margin-top:5px;
    color:#12395b;
    font-family:Georgia,serif;
    font-size:25px;
    font-weight:500;
}

.family-metrics small{
    margin-top:4px;
    color:var(--muted);
    font-size:8px;
}

.family-policy-note{
    margin-bottom:18px;
    padding:14px;
    border-left:5px solid #f4b942;
    border-radius:0 12px 12px 0;
    background:#fff8e8;
}

.family-policy-note span{
    display:block;
    color:#795512;
    font-size:9px;
    font-weight:900;
    text-transform:uppercase;
}

.family-policy-note p{
    margin:6px 0 0;
    color:#6e603f;
    font-size:9px;
    line-height:1.6;
}

.family-form-section{
    margin:18px 0;
    padding:16px;
    border:1px solid var(--border);
    border-radius:14px;
    background:#fbfdfe;
}

.family-form-section h3{
    margin:0 0 13px;
    color:#12395b;
    font-family:Georgia,serif;
    font-size:17px;
    font-weight:500;
}

.family-checkbox{
    display:flex;
    align-items:flex-start;
    gap:9px;
    padding:11px;
    border-radius:10px;
    color:#334a5c;
    font-size:9px;
    line-height:1.55;
    background:#eef7f9;
}

.family-checkbox input{
    width:auto;
    margin:2px 0 0;
}

.minor-authorization-section{
    border-color:#ecd79d;
    background:#fffaf0;
}

.adult-consent-section{
    border-color:#cbe6d7;
    background:#f3fbf6;
}

.expanded-family-grid{
    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
}

.family-member-card{
    position:relative;
}

.family-member-card.minor-member{
    border-top:4px solid #d7a83c;
}

.family-member-card.adult-member{
    border-top:4px solid #2f9a69;
}

.member-card-top{
    position:relative;
    padding-right:105px;
}

.age-classification{
    position:absolute;
    right:0;
    top:0;
    padding:6px 8px;
    border-radius:999px;
    font-size:7px;
    font-weight:900;
    text-transform:uppercase;
}

.age-classification.minor{
    color:#7a5613;
    background:#fff0c9;
}

.age-classification.adult{
    color:#176742;
    background:#e3f4e9;
}

.minor-status,
.adult-consent-status{
    margin-top:12px;
    padding:9px;
    border-radius:9px;
    font-size:8px;
}

.minor-status{
    color:#735617;
    background:#fff4d9;
}

.adult-consent-status{
    color:#1e6947;
    background:#e9f6ed;
}

.member-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-top:13px;
}

.member-actions form{
    margin:0;
}

@media(max-width:950px){
    .family-metrics{
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:620px){
    .family-metrics{
        grid-template-columns:1fr;
    }

    .member-card-top{
        padding-right:0;
    }

    .age-classification{
        position:static;
        margin-left:auto;
    }
}

/* OPERACIÓN POLÍTICA INTEGRAL */
.survey-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:16px}
.survey-list{display:grid;gap:8px;margin-top:15px}.survey-list a{padding:11px;border:1px solid var(--border);border-radius:10px;background:#fff}.survey-list a.active{border-color:#24a6b8;background:#edf9fb}.survey-list b,.survey-list small{display:block}.survey-list small{font-size:8px;color:var(--muted);margin-top:3px}
.question-list{display:grid;gap:10px;margin-top:15px}.question-list article{padding:12px;border:1px solid var(--border);border-radius:11px;background:#fbfdfe}.question-controls{display:grid;grid-template-columns:1fr 100px auto;gap:8px;margin:8px 0}
.survey-response-grid{display:grid;gap:14px;margin:18px 0}.survey-question{padding:14px;border:1px solid var(--border);border-radius:12px;background:#fbfdfe}.survey-question b{display:block;margin-bottom:8px;color:#12395b}
.activity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.activity-card h3{font-family:Georgia,serif;color:#102a43;font-size:20px}.activity-card p,.activity-card small{color:var(--muted);font-size:9px}.activity-stats{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.activity-stats b{padding:6px 8px;border-radius:8px;background:#eef7f9;font-size:8px}
.activity-management-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.activity-management-grid form{padding:14px;border:1px solid var(--border);border-radius:12px;background:#fbfdfe}.activity-management-grid h3{font-family:Georgia,serif;color:#12395b}
.activity-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:16px}.activity-photo-grid figure{margin:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff}.activity-photo-grid img{width:100%;height:170px;object-fit:cover}.activity-photo-grid figcaption{padding:8px;font-size:8px;color:var(--muted)}
@media(max-width:950px){.survey-layout,.activity-management-grid{grid-template-columns:1fr}}


/* =====================================================
   DATOS ELECTORALES POR PERSONA
   ===================================================== */

.electoral-person-card{
    margin:18px 0;
    padding:18px;
    border:1px solid #c9dde7;
    border-radius:16px;
    background:
        radial-gradient(circle at top right,rgba(36,166,184,.10),transparent 30%),
        linear-gradient(180deg,#fff,#f6fbfc);
}

.electoral-person-heading{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:14px;
    margin-bottom:15px;
}

.electoral-person-heading span,
.electoral-person-heading h3{
    display:block;
}

.electoral-person-heading>div>span{
    color:var(--muted);
    font-size:8px;
    font-weight:900;
    letter-spacing:.1em;
    text-transform:uppercase;
}

.electoral-person-heading h3{
    margin:5px 0 0;
    color:#102a43;
    font-family:Georgia,serif;
    font-size:21px;
    font-weight:500;
}

.verification-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:6px 9px;
    border-radius:999px;
    font-size:7px;
    font-weight:900;
    text-transform:uppercase;
    white-space:nowrap;
}

.verification-badge.sin_verificar{
    color:#6f5d38;
    background:#f1eadb;
}

.verification-badge.informado{
    color:#265f7f;
    background:#e3f0f7;
}

.verification-badge.verificado{
    color:#176944;
    background:#e2f4e9;
}

.verification-badge.actualizar{
    color:#8d3e3e;
    background:#f8e5e5;
}

.electoral-data-form{
    padding-top:15px;
    border-top:1px solid #dbe8ee;
}

.family-electoral-details{
    margin-top:13px;
    border:1px solid #d5e3e9;
    border-radius:12px;
    background:#f8fbfc;
}

.family-electoral-details summary{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    padding:11px 12px;
    cursor:pointer;
    list-style:none;
}

.family-electoral-details summary::-webkit-details-marker{
    display:none;
}

.family-electoral-details summary span{
    color:#12395b;
    font-size:9px;
    font-weight:900;
}

.family-electoral-details summary b{
    overflow:hidden;
    max-width:65%;
    color:#168aad;
    font-size:8px;
    text-align:right;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.family-electoral-form{
    padding:13px;
    border-top:1px solid #d5e3e9;
    background:#fff;
}

.electoral-metrics{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:13px;
    margin-bottom:17px;
}

.electoral-metrics article{
    padding:17px;
    border:1px solid var(--border);
    border-radius:16px;
    background:#fff;
    box-shadow:var(--shadow-sm);
}

.electoral-metrics span,
.electoral-metrics b,
.electoral-metrics small{
    display:block;
}

.electoral-metrics span{
    color:var(--muted);
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
}

.electoral-metrics b{
    margin-top:6px;
    color:#12395b;
    font-family:Georgia,serif;
    font-size:28px;
    font-weight:500;
}

.electoral-metrics small{
    margin-top:4px;
    color:var(--muted);
    font-size:8px;
}

.electoral-filters{
    display:grid;
    grid-template-columns:minmax(220px,1.4fr) repeat(2,minmax(180px,1fr)) auto;
    gap:10px;
    align-items:end;
}

.electoral-table td b,
.electoral-table td small{
    display:block;
}

.electoral-table td small{
    margin-top:3px;
    color:var(--muted);
    font-size:8px;
}

@media(max-width:950px){
    .electoral-metrics{
        grid-template-columns:repeat(2,1fr);
    }

    .electoral-filters{
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:620px){
    .electoral-metrics,
    .electoral-filters{
        grid-template-columns:1fr;
    }

    .electoral-person-heading{
        flex-direction:column;
    }

    .family-electoral-details summary{
        align-items:flex-start;
        flex-direction:column;
    }

    .family-electoral-details summary b{
        max-width:100%;
        text-align:left;
        white-space:normal;
    }
}

/* CRUD DE PUESTOS Y GRUPO FAMILIAR VISIBLE */
.voting-admin-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}
.family-roster{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.family-entry-section{margin-top:20px;padding:18px;border:1px solid #cfe1e8;border-radius:16px;background:#f8fbfc}
.family-header .actions{display:flex;gap:8px;flex-wrap:wrap}
.member-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.member-actions form{margin:0}
@media(max-width:900px){.voting-admin-grid{grid-template-columns:1fr}}


/* BASE CIUDADANA RECONSTRUIDA */
.citizen-editor{border-top:5px solid transparent;border-image:linear-gradient(90deg,#12395b,#24a6b8,#f4b942) 1}
.citizen-editor .form-section-title{margin-top:20px}
.family-management-panel{margin-top:18px}
.family-management-panel .family-card-grid{margin-top:16px}
.family-entry-section{margin-top:20px}
.citizen-search{display:flex;align-items:end;gap:9px;flex-wrap:wrap}
.citizen-search>input{min-width:250px}
.table-actions{display:flex;gap:7px;flex-wrap:wrap}
.table-actions form{margin:0}
@media(max-width:700px){.citizen-search>input{width:100%;min-width:0}.citizen-search{align-items:stretch}}


/* =====================================================
   ACTIVACIÓN Y BLOQUEO DE USUARIOS
   ===================================================== */

.user-access-metrics{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:13px;
    margin-bottom:17px;
}

.user-access-metrics article{
    padding:17px;
    border:1px solid var(--border);
    border-radius:16px;
    background:#fff;
    box-shadow:var(--shadow-sm);
}

.user-access-metrics span,
.user-access-metrics b,
.user-access-metrics small{
    display:block;
}

.user-access-metrics span{
    color:var(--muted);
    font-size:8px;
    font-weight:900;
    letter-spacing:.10em;
    text-transform:uppercase;
}

.user-access-metrics b{
    margin-top:6px;
    color:#12395b;
    font-family:Georgia,serif;
    font-size:28px;
    font-weight:500;
}

.user-access-metrics small{
    margin-top:4px;
    color:var(--muted);
    font-size:8px;
}

.user-access-filters{
    display:grid;
    grid-template-columns:minmax(220px,1.5fr) repeat(2,minmax(170px,1fr)) auto;
    gap:10px;
    align-items:end;
}

.access-state{
    display:flex;
    align-items:center;
    gap:8px;
}

.access-state>span{
    width:10px;
    height:10px;
    min-width:10px;
    border-radius:50%;
}

.access-state.enabled>span{
    background:#2f9a69;
    box-shadow:0 0 0 4px rgba(47,154,105,.12);
}

.access-state.blocked>span{
    background:#b94b4b;
    box-shadow:0 0 0 4px rgba(185,75,75,.12);
}

.access-state b,
.access-state small{
    display:block;
}

.access-state b{
    color:#253b4d;
    font-size:9px;
}

.access-state small{
    margin-top:2px;
    color:var(--muted);
    font-size:8px;
}

.access-toggle{
    min-width:120px;
    padding:7px 10px;
    border:0;
    border-radius:8px;
    cursor:pointer;
    font-size:8px;
    font-weight:900;
}

.access-toggle.disable{
    color:#8e3636;
    background:#fae7e7;
}

.access-toggle.disable:hover{
    color:#fff;
    background:#a54040;
}

.access-toggle.enable{
    color:#176743;
    background:#e4f4e9;
}

.access-toggle.enable:hover{
    color:#fff;
    background:#287e57;
}

.users-table .inactive-row{
    opacity:.72;
    background:#fbf7f7;
}

@media(max-width:950px){
    .user-access-metrics{
        grid-template-columns:repeat(2,1fr);
    }

    .user-access-filters{
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:620px){
    .user-access-metrics,
    .user-access-filters{
        grid-template-columns:1fr;
    }

    .access-toggle{
        width:100%;
    }
}


/* =====================================================
   REORGANIZACIÓN INTEGRAL · DATOS Y REPORTES
   ===================================================== */

.data-source-note,
.data-ethics-note{
    margin:14px 0 18px;
    padding:14px 16px;
    border-left:5px solid #24a6b8;
    border-radius:0 12px 12px 0;
    background:#eff9fb;
}

.data-source-note b,
.data-ethics-note b{
    display:block;
    color:#155b73;
    font-size:9px;
    text-transform:uppercase;
}

.data-source-note p,
.data-ethics-note p{
    margin:5px 0 0;
    color:#536678;
    font-size:9px;
    line-height:1.6;
}

.territorial-sync-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
    gap:10px;
}

.territorial-sync-grid article{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:12px;
    border:1px solid var(--border);
    border-radius:12px;
    background:#fff;
}

.territorial-sync-grid article>div{
    min-width:0;
}

.territorial-sync-grid span,
.territorial-sync-grid b,
.territorial-sync-grid small{
    display:block;
}

.territorial-sync-grid span{
    color:#168aad;
    font-size:8px;
    font-weight:900;
}

.territorial-sync-grid b{
    margin-top:3px;
    color:#12395b;
    font-size:10px;
}

.territorial-sync-grid small{
    margin-top:3px;
    color:var(--muted);
    font-size:8px;
}

.principal-links-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    margin-top:15px;
}

.principal-links-grid a{
    display:block;
    transition:.18s;
}

.principal-links-grid a:hover{
    transform:translateY(-2px);
}

.principal-links-grid span{
    color:#168aad;
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
}

.principal-links-grid h3{
    margin:7px 0;
    color:#102a43;
    font-family:Georgia,serif;
    font-size:20px;
}

.principal-links-grid p{
    margin:0;
    color:var(--muted);
    font-size:9px;
}

.catalog-admin-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:11px;
}

.catalog-admin-grid article{
    padding:13px;
    border:1px solid var(--border);
    border-radius:12px;
    background:#fbfdfe;
}

.catalog-admin-grid article>form:first-child{
    display:grid;
    gap:7px;
}

.catalog-admin-grid span,
.catalog-admin-grid small{
    display:block;
}

.catalog-admin-grid span{
    color:#168aad;
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
}

.catalog-admin-grid small{
    margin:3px 0 7px;
    color:var(--muted);
    font-size:8px;
}

.backup-download-form{
    display:flex;
    align-items:center;
    gap:6px;
}

.backup-download-form input{
    width:95px;
    min-width:95px;
    padding:6px 7px;
    font-size:8px;
}

.political-score-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:13px;
    margin-bottom:16px;
}

.political-score-grid article,
.report-kpi-grid article{
    padding:16px;
    border:1px solid var(--border);
    border-radius:15px;
    background:#fff;
    box-shadow:var(--shadow-sm);
}

.political-score-grid span,
.political-score-grid b,
.political-score-grid small,
.report-kpi-grid span,
.report-kpi-grid b,
.report-kpi-grid small{
    display:block;
}

.political-score-grid span,
.report-kpi-grid span{
    color:var(--muted);
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
}

.political-score-grid b,
.report-kpi-grid b{
    margin-top:6px;
    color:#12395b;
    font-family:Georgia,serif;
    font-size:27px;
    font-weight:500;
}

.political-score-grid small,
.report-kpi-grid small{
    margin-top:5px;
    color:var(--muted);
    font-size:8px;
}

.report-progress{
    height:7px;
    overflow:hidden;
    margin-top:9px;
    border-radius:999px;
    background:#e7eef2;
}

.report-progress i{
    display:block;
    height:100%;
    border-radius:inherit;
    background:linear-gradient(90deg,#168aad,#24a6b8);
}

.report-kpi-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin-bottom:16px;
}

.report-two-columns{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    margin-bottom:15px;
}

.growth-list{
    display:grid;
    gap:10px;
}

.growth-list>div{
    display:grid;
    grid-template-columns:70px 1fr 50px;
    gap:8px;
    align-items:center;
}

.growth-list span,
.growth-list b{
    font-size:8px;
}

.growth-list>div>div{
    height:9px;
    overflow:hidden;
    border-radius:999px;
    background:#e7eef2;
}

.growth-list i{
    display:block;
    height:100%;
    border-radius:inherit;
    background:linear-gradient(90deg,#12395b,#24a6b8);
}

.recommendation-panel ol{
    display:grid;
    gap:10px;
    margin:0;
    padding-left:22px;
}

.recommendation-panel li{
    padding:10px;
    color:#42586a;
    font-size:9px;
    line-height:1.6;
    background:#f7fafb;
    border-radius:9px;
}

.campaign-card-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:14px;
    margin-top:15px;
}

.campaign-card-brand{
    width:58px;
    height:58px;
    display:grid;
    place-items:center;
    overflow:hidden;
    border-radius:16px;
    color:#fff;
    font-family:Georgia,serif;
    font-size:22px;
    background:linear-gradient(145deg,#12395b,#24a6b8);
}

.campaign-card-brand img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.campaign-card h3{
    margin:8px 0 5px;
    color:#102a43;
    font-family:Georgia,serif;
    font-size:21px;
}

.campaign-card p,
.campaign-card small{
    color:var(--muted);
    font-size:9px;
}

@media(max-width:1000px){
    .political-score-grid,
    .report-kpi-grid{
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:800px){
    .report-two-columns,
    .principal-links-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:600px){
    .political-score-grid,
    .report-kpi-grid{
        grid-template-columns:1fr;
    }

    .backup-download-form{
        align-items:stretch;
        flex-direction:column;
    }

    .backup-download-form input{
        width:100%;
    }
}


/* =====================================================
   TERRITORIO URBANO/RURAL
   ===================================================== */

.territory-summary-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin-bottom:16px;
}

.territory-summary-grid article{
    padding:16px;
    border:1px solid var(--border);
    border-radius:15px;
    background:#fff;
    box-shadow:var(--shadow-sm);
}

.territory-summary-grid span,
.territory-summary-grid b,
.territory-summary-grid small{
    display:block;
}

.territory-summary-grid span{
    color:var(--muted);
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
}

.territory-summary-grid b{
    margin-top:5px;
    color:#12395b;
    font-family:Georgia,serif;
    font-size:27px;
    font-weight:500;
}

.territory-summary-grid small{
    margin-top:4px;
    color:var(--muted);
    font-size:8px;
}

.urban-rural-editor{
    border-top:4px solid #24a6b8;
}

.territory-area-help{
    margin:12px 0;
    padding:11px 12px;
    border-radius:10px;
    background:#eef8fa;
    border:1px solid #cae6eb;
}

.territory-area-help b,
.territory-area-help small{
    display:block;
}

.territory-area-help b{
    color:#155b73;
    font-size:9px;
}

.territory-area-help small{
    margin-top:4px;
    color:#526a78;
    font-size:8px;
    line-height:1.5;
}

.territory-directory-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}

.territory-directory-grid>article{
    min-width:0;
}

.territory-directory-grid h3{
    margin:0 0 10px;
    color:#12395b;
    font-family:Georgia,serif;
    font-size:18px;
    font-weight:500;
}

.territory-record-list{
    display:grid;
    gap:8px;
}

.territory-record{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    padding:11px;
    border:1px solid var(--border);
    border-radius:11px;
    background:#fbfdfe;
}

.territory-record>div:first-child{
    min-width:0;
}

.territory-record b,
.territory-record small{
    display:block;
}

.territory-record b{
    color:#253d50;
    font-size:9px;
}

.territory-record small{
    margin-top:3px;
    color:var(--muted);
    font-size:8px;
}

.territory-badges{
    display:flex;
    gap:5px;
    flex-wrap:wrap;
    margin-top:5px;
}

.territory-badges span{
    padding:4px 7px;
    border-radius:999px;
    color:#455b6d;
    font-size:7px;
    font-weight:900;
    text-transform:uppercase;
    background:#e9eef1;
}

.territory-badges .urban{
    color:#176682;
    background:#dff2f7;
}

.territory-badges .rural{
    color:#4f6f2e;
    background:#e8f3dc;
}

/* =====================================================
   CATÁLOGOS ADMINISTRABLES AMIGABLES
   ===================================================== */

.catalog-dashboard{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin-bottom:16px;
}

.catalog-dashboard article{
    padding:16px;
    border:1px solid var(--border);
    border-radius:15px;
    background:#fff;
    box-shadow:var(--shadow-sm);
}

.catalog-dashboard span,
.catalog-dashboard b,
.catalog-dashboard small{
    display:block;
}

.catalog-dashboard span{
    color:var(--muted);
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
}

.catalog-dashboard b{
    margin-top:5px;
    color:#12395b;
    font-family:Georgia,serif;
    font-size:27px;
    font-weight:500;
}

.catalog-dashboard small{
    margin-top:4px;
    color:var(--muted);
    font-size:8px;
}

.catalog-toolbar{
    display:grid;
    grid-template-columns:minmax(260px,1fr) minmax(170px,.35fr);
    gap:10px;
    align-items:end;
    margin-bottom:14px;
    padding:13px;
    border-radius:12px;
    background:#f6f9fa;
}

.catalog-toolbar label>span{
    display:block;
    margin-bottom:5px;
    color:#526779;
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
}

.catalog-group-tabs{
    display:flex;
    gap:7px;
    overflow-x:auto;
    padding:2px 2px 10px;
    scrollbar-width:thin;
}

.catalog-group-tabs button{
    display:flex;
    align-items:center;
    gap:8px;
    min-width:max-content;
    padding:9px 11px;
    border:1px solid var(--border);
    border-radius:10px;
    color:#536779;
    cursor:pointer;
    background:#fff;
}

.catalog-group-tabs button span{
    font-size:8px;
    font-weight:900;
}

.catalog-group-tabs button b{
    min-width:22px;
    padding:3px 5px;
    border-radius:999px;
    color:#547082;
    font-size:7px;
    background:#edf2f4;
}

.catalog-group-tabs button.active{
    color:#fff;
    border-color:#168aad;
    background:linear-gradient(145deg,#12395b,#168aad);
}

.catalog-group-tabs button.active b{
    color:#12395b;
    background:#fff;
}

.catalog-manager-layout{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
}

.catalog-create-panel{
    padding:16px;
    border:1px solid #bcdde4;
    border-radius:14px;
    background:#f3fbfc;
}

.catalog-create-panel[hidden]{
    display:none;
}

.catalog-create-heading{
    display:flex;
    justify-content:space-between;
    gap:10px;
    margin-bottom:12px;
}

.catalog-create-heading span{
    color:#168aad;
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
}

.catalog-create-heading h3{
    margin:4px 0 0;
    color:#12395b;
    font-family:Georgia,serif;
    font-size:19px;
}

.catalog-create-heading button{
    width:30px;
    height:30px;
    border:0;
    border-radius:8px;
    color:#536779;
    cursor:pointer;
    font-size:20px;
    background:#e6f0f3;
}

.catalog-create-panel form{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}

.catalog-create-panel form label:nth-of-type(4),
.catalog-create-panel form button{
    grid-column:1/-1;
}

.catalog-create-panel label small{
    display:block;
    margin-top:4px;
    color:var(--muted);
    font-size:7px;
}

.catalog-group-panel{
    display:none;
}

.catalog-group-panel.active{
    display:block;
}

.catalog-group-panel>header{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:14px;
    margin-bottom:12px;
    padding:13px;
    border-radius:12px;
    background:linear-gradient(135deg,#f6fafb,#eef7f9);
}

.catalog-group-panel>header span{
    color:#168aad;
    font-size:7px;
    font-weight:900;
    text-transform:uppercase;
}

.catalog-group-panel>header h3{
    margin:4px 0;
    color:#12395b;
    font-family:Georgia,serif;
    font-size:20px;
}

.catalog-group-panel>header p{
    margin:0;
    color:#607383;
    font-size:8px;
    line-height:1.5;
}

.catalog-group-panel>header>b{
    min-width:max-content;
    padding:6px 8px;
    border-radius:8px;
    color:#155b73;
    font-size:8px;
    background:#dff1f5;
}

.catalog-friendly-list{
    display:grid;
    gap:8px;
}

.catalog-friendly-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:12px;
    padding:12px;
    border:1px solid var(--border);
    border-radius:12px;
    background:#fff;
}

.catalog-friendly-row[hidden]{
    display:none;
}

.catalog-item-main{
    display:flex;
    align-items:flex-start;
    gap:10px;
    min-width:0;
}

.catalog-order{
    width:34px;
    min-width:34px;
    padding:5px;
    border-radius:8px;
    color:#168aad;
    font-size:7px;
    font-weight:900;
    text-align:center;
    background:#e9f5f7;
}

.catalog-item-main>div{
    min-width:0;
}

.catalog-item-title{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}

.catalog-item-title h4{
    margin:0;
    color:#253d50;
    font-size:10px;
}

.catalog-item-main code{
    display:inline-block;
    margin-top:4px;
    color:#71808d;
    font-size:7px;
}

.catalog-item-main p{
    margin:5px 0 0;
    color:#607383;
    font-size:8px;
    line-height:1.45;
}

.catalog-item-actions{
    display:flex;
    gap:7px;
    align-items:center;
}

.catalog-item-actions form{
    margin:0;
}

.catalog-inline-editor{
    grid-column:1/-1;
    padding:13px;
    border-top:1px solid var(--border);
    background:#f8fbfc;
    border-radius:0 0 10px 10px;
}

.catalog-inline-editor[hidden]{
    display:none;
}

.catalog-empty-state,
.catalog-no-results{
    padding:24px;
    border:1px dashed #cbd9df;
    border-radius:12px;
    text-align:center;
    background:#fafcfd;
}

.catalog-empty-state b,
.catalog-empty-state small,
.catalog-no-results b,
.catalog-no-results small{
    display:block;
}

.catalog-empty-state b,
.catalog-no-results b{
    color:#40596b;
    font-size:10px;
}

.catalog-empty-state small,
.catalog-no-results small{
    margin-top:4px;
    color:var(--muted);
    font-size:8px;
}

@media(max-width:1000px){
    .territory-summary-grid,
    .catalog-dashboard{
        grid-template-columns:repeat(2,1fr);
    }

    .territory-directory-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:700px){
    .catalog-toolbar,
    .catalog-create-panel form{
        grid-template-columns:1fr;
    }

    .catalog-create-panel form label:nth-of-type(4),
    .catalog-create-panel form button{
        grid-column:auto;
    }

    .catalog-friendly-row{
        grid-template-columns:1fr;
    }

    .catalog-item-actions{
        justify-content:flex-start;
        flex-wrap:wrap;
    }

    .territory-record{
        align-items:flex-start;
        flex-direction:column;
    }
}

@media(max-width:560px){
    .territory-summary-grid,
    .catalog-dashboard{
        grid-template-columns:1fr;
    }
}


/* AUDITORÍA: ELIMINACIÓN EXCLUSIVA DEL SUPERADMINISTRADOR */
.audit-delete-policy{
    margin-bottom:16px;
    padding:13px 15px;
    border-left:5px solid #b94b4b;
    border-radius:0 12px 12px 0;
    background:#fff2f2;
}

.audit-delete-policy b,
.audit-delete-policy small{
    display:block;
}

.audit-delete-policy b{
    color:#8e3636;
    font-size:9px;
    text-transform:uppercase;
}

.audit-delete-policy small{
    margin-top:4px;
    color:#705252;
    font-size:8px;
    line-height:1.5;
}

.audit-heading-actions{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}

.audit-check-column{
    width:34px;
    text-align:center;
}

.audit-check-column input{
    width:auto;
}

/* CAMPAÑAS: ELIMINACIÓN EXCLUSIVA DEL SUPERADMINISTRADOR */
.campaign-admin-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-top:13px;
}

.campaign-admin-actions form{
    flex:1;
    margin:0;
}

.campaign-admin-actions .btn{
    width:100%;
}

.campaign-card-status{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
}

.campaign-card.inactive-row{
    opacity:.72;
    background:#fbf7f7;
}


/* =====================================================
   CARGA NACIONAL TERRITORIAL Y ELECTORAL
   ===================================================== */

.national-load-metrics{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:12px;
    margin-bottom:16px;
}

.national-load-metrics article{
    padding:16px;
    border:1px solid var(--border);
    border-radius:15px;
    background:#fff;
    box-shadow:var(--shadow-sm);
}

.national-load-metrics span,
.national-load-metrics b,
.national-load-metrics small{
    display:block;
}

.national-load-metrics span{
    color:var(--muted);
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
}

.national-load-metrics b{
    margin-top:5px;
    color:#12395b;
    font-family:Georgia,serif;
    font-size:27px;
    font-weight:500;
}

.national-load-metrics small{
    margin-top:4px;
    color:var(--muted);
    font-size:8px;
}

.data-quality-warning,
.electoral-source-warning{
    margin-bottom:16px;
    padding:14px 16px;
    border-left:5px solid #d7a83c;
    border-radius:0 12px 12px 0;
    background:#fff8e8;
}

.data-quality-warning b,
.data-quality-warning p,
.electoral-source-warning b,
.electoral-source-warning p{
    display:block;
}

.data-quality-warning b,
.electoral-source-warning b{
    color:#795512;
    font-size:9px;
    text-transform:uppercase;
}

.data-quality-warning p,
.electoral-source-warning p{
    margin:5px 0 0;
    color:#6e603f;
    font-size:9px;
    line-height:1.55;
}

.national-load-section{
    margin-bottom:16px;
}

.national-load-section>p{
    color:#5a6e7f;
    font-size:9px;
    line-height:1.6;
}

.source-official{
    padding:6px 9px;
    border-radius:999px;
    color:#176743;
    font-size:7px;
    font-weight:900;
    text-transform:uppercase;
    background:#e3f4e9;
}

.national-load-columns{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.national-load-columns>form,
.official-source-list{
    padding:15px;
    border:1px solid var(--border);
    border-radius:13px;
    background:#fbfdfe;
}

.national-load-columns>form{
    display:grid;
    gap:10px;
    align-content:start;
}

.official-source-list h3,
.source-card h3{
    margin:0 0 10px;
    color:#12395b;
    font-family:Georgia,serif;
    font-size:18px;
    font-weight:500;
}

.official-source-list{
    display:grid;
    gap:9px;
}

.official-source-list>form{
    display:grid;
    grid-template-columns:minmax(140px,.7fr) minmax(100px,.4fr) minmax(0,1fr) auto;
    gap:8px;
    align-items:center;
    padding:10px;
    border:1px solid #dce6ea;
    border-radius:10px;
    background:#fff;
}

.official-source-list b,
.official-source-list small{
    display:block;
}

.official-source-list b{
    color:#2b4355;
    font-size:9px;
}

.official-source-list small{
    margin-top:3px;
    color:var(--muted);
    font-size:8px;
}

.source-card{
    padding:13px;
    border-radius:11px;
    background:#eef7f9;
}

.source-card span{
    color:#168aad;
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
}

.source-card h3{
    margin:6px 0;
}

.source-card p{
    margin:0;
    color:#5d7181;
    font-size:8px;
    line-height:1.5;
}

@media(max-width:1100px){
    .national-load-metrics{
        grid-template-columns:repeat(3,1fr);
    }

    .official-source-list>form{
        grid-template-columns:1fr 1fr;
    }
}

@media(max-width:800px){
    .national-load-columns{
        grid-template-columns:1fr;
    }

    .national-load-metrics{
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:560px){
    .national-load-metrics{
        grid-template-columns:1fr;
    }

    .official-source-list>form{
        grid-template-columns:1fr;
    }
}


/* PAQUETE HUILA  */
.huila-package-panel{
    border-top:5px solid transparent;
    border-image:linear-gradient(90deg,#12395b,#24a6b8,#f4b942) 1;
}

.huila-package-metrics{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin-bottom:14px;
}

.huila-package-metrics article{
    padding:14px;
    border:1px solid var(--border);
    border-radius:13px;
    text-align:center;
    background:#f8fbfc;
}

.huila-package-metrics b,
.huila-package-metrics small{
    display:block;
}

.huila-package-metrics b{
    color:#12395b;
    font-family:Georgia,serif;
    font-size:24px;
    font-weight:500;
}

.huila-package-metrics small{
    margin-top:4px;
    color:var(--muted);
    font-size:8px;
}

@media(max-width:760px){
    .huila-package-metrics{
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:480px){
    .huila-package-metrics{
        grid-template-columns:1fr;
    }
}

/* =====================================================
   CRC 2.1 - RESUMEN ELECTORAL HUILA 
   ===================================================== */
.installer-card{max-width:760px}.installer-card .grid{grid-template-columns:repeat(2,minmax(0,1fr))}.installer-section-title{margin:22px 0 10px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.12);font-weight:800;letter-spacing:.02em}.installer-note{font-size:.82rem;opacity:.78;margin-top:16px}.page-head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.huila-summary-head{align-items:center}.huila-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.huila-filter-form{display:grid;grid-template-columns:minmax(190px,.7fr) minmax(280px,1.3fr) auto;gap:14px;align-items:end}.huila-filter-form .actions{margin:0}.map-coordinate{font-size:.82rem;text-decoration:none;white-space:nowrap}.map-coordinate:hover{text-decoration:underline}
@media(max-width:1050px){.huila-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.huila-filter-form{grid-template-columns:1fr 1fr}.huila-filter-form .actions{grid-column:1/-1}}
@media(max-width:680px){.installer-card .grid,.huila-metrics,.huila-filter-form{grid-template-columns:1fr}.huila-filter-form .actions{grid-column:auto}.page-head-actions{width:100%}.page-head-actions .btn{flex:1;text-align:center}}
.voting-filter-form{margin-bottom:18px}.compact-empty{padding:28px;text-align:center}.compact-empty b{display:block;font-size:1.05rem;margin-bottom:6px}.compact-empty p{margin:0;opacity:.75}


/* CRC v2.4: jerarquía territorial e importación masiva */
.hierarchy-stats{grid-template-columns:repeat(5,minmax(0,1fr));}
.hierarchy-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:20px;}
.hierarchy-form-grid .panel:last-child{grid-column:1/-1;}
.import-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:20px;}
.status-badge.warning{background:#fff4d6;color:#8a5a00;border-color:#f2d58b;}
.panel-divider{border:0;border-top:1px solid rgba(15,53,47,.12);margin:22px 0;}
@media(max-width:1100px){.hierarchy-stats{grid-template-columns:repeat(2,minmax(0,1fr));}.hierarchy-form-grid,.import-layout{grid-template-columns:1fr}.hierarchy-form-grid .panel:last-child{grid-column:auto;}}
@media(max-width:650px){.hierarchy-stats{grid-template-columns:1fr}.hierarchy-form-grid{gap:12px}}

/* =====================================================
   CRC v2.6 - MENÚ Y JERARQUÍA TERRITORIAL PROFESIONAL
   ===================================================== */
.nav-subtitle{
    display:block;
    margin:8px 10px 3px;
    color:#6f9286;
    font-size:8px;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}
.nav-subtitle:first-child{margin-top:2px}
.hierarchy-nav-group.open .nav-parent{
    background:linear-gradient(135deg,rgba(33,150,124,.2),rgba(28,112,165,.13));
    border-color:rgba(92,205,179,.22);
}
.hierarchy-nav-submenu a.active{
    background:linear-gradient(90deg,rgba(40,176,145,.2),rgba(47,130,185,.12));
    box-shadow:inset 2px 0 0 #55d0b4;
}
.hierarchy-nav-submenu{padding-bottom:10px}

.hierarchy-page-head{align-items:flex-end}
.hierarchy-tabs{
    overflow-x:auto;
    scrollbar-width:thin;
    white-space:nowrap;
}
.hierarchy-tabs a{flex:0 0 auto}
.hierarchy-stats-pro{
    grid-template-columns:repeat(6,minmax(0,1fr));
}
.hierarchy-stats-pro article:last-child{
    background:linear-gradient(145deg,#0d443a,#17617a);
    border-color:transparent;
}
.hierarchy-stats-pro article:last-child span,
.hierarchy-stats-pro article:last-child b,
.hierarchy-stats-pro article:last-child small{color:#fff}

.hierarchy-route{margin-bottom:18px;overflow:hidden}
.hierarchy-route-track{
    display:grid;
    grid-template-columns:minmax(135px,1fr) auto minmax(135px,1fr) auto minmax(155px,1.1fr) auto minmax(145px,1fr) auto minmax(135px,1fr) auto minmax(135px,1fr);
    align-items:stretch;
    gap:8px;
}
.hierarchy-route-track>a{
    position:relative;
    display:flex;
    min-height:112px;
    flex-direction:column;
    justify-content:center;
    padding:16px 14px 14px;
    border:1px solid rgba(16,82,69,.12);
    border-radius:14px;
    background:linear-gradient(145deg,#fbfefd,#f1f8f6);
    transition:.18s ease;
}
.hierarchy-route-track>a:hover{
    transform:translateY(-3px);
    border-color:rgba(25,142,117,.35);
    box-shadow:0 14px 28px rgba(19,65,55,.09);
}
.hierarchy-route-track>a i{
    position:absolute;
    top:10px;
    right:10px;
    display:grid;
    width:25px;
    height:25px;
    place-items:center;
    border-radius:9px;
    background:#dff3ed;
    color:#116c59;
    font-size:10px;
    font-style:normal;
    font-weight:900;
}
.hierarchy-route-track>a b{color:#123c34;font-size:11px}
.hierarchy-route-track>a small{margin-top:6px;color:var(--muted);font-size:8px;line-height:1.45}
.hierarchy-route-track>span{align-self:center;color:#72a596;font-size:18px;font-weight:900}

.hierarchy-command-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    margin-bottom:18px;
}
.hierarchy-command-card{
    display:block;
    position:relative;
    min-height:155px;
    overflow:hidden;
    transition:.18s ease;
}
.hierarchy-command-card:after{
    content:"";
    position:absolute;
    width:100px;
    height:100px;
    right:-34px;
    bottom:-44px;
    border-radius:50%;
    background:rgba(29,151,125,.07);
}
.hierarchy-command-card:hover{transform:translateY(-3px);box-shadow:0 16px 32px rgba(19,63,55,.09)}
.hierarchy-command-card>span{
    color:#168aad;
    font-size:8px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.hierarchy-command-card h3{margin:8px 0 7px;color:#102f49;font-family:Georgia,serif;font-size:18px}
.hierarchy-command-card p{max-width:92%;margin:0;color:var(--muted);font-size:9px;line-height:1.55}
.hierarchy-command-card>b{display:block;margin-top:13px;color:#147861;font-size:9px}
.hierarchy-command-card.accent{background:linear-gradient(145deg,#103f36,#17647b);border-color:transparent}
.hierarchy-command-card.accent span,.hierarchy-command-card.accent h3,.hierarchy-command-card.accent p,.hierarchy-command-card.accent>b{color:#fff}

.hierarchy-module-intro{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin:2px 0 14px;
    padding:17px 20px;
    border:1px solid rgba(18,82,70,.12);
    border-radius:15px;
    background:linear-gradient(130deg,#f8fcfb,#edf7f4);
}
.hierarchy-module-intro span{color:#168aad;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.1em}
.hierarchy-module-intro h2{margin:4px 0;color:#123d35;font-family:Georgia,serif;font-size:22px}
.hierarchy-module-intro p{margin:0;color:var(--muted);font-size:9px}
.hierarchy-level-chip{display:flex;align-items:center;gap:9px;padding:8px 12px;border-radius:12px;background:#fff;box-shadow:0 7px 18px rgba(24,74,63,.08)}
.hierarchy-level-chip i{display:grid;width:28px;height:28px;place-items:center;border-radius:9px;background:#174f43;color:#fff;font-style:normal;font-weight:900}
.hierarchy-level-chip span{white-space:nowrap;color:#456b62;font-size:8px}

.hierarchy-toolbar{
    display:grid;
    grid-template-columns:repeat(2,minmax(180px,.65fr)) minmax(240px,1.2fr) auto;
    gap:12px;
    align-items:end;
    margin-bottom:16px;
    padding:14px;
}
.hierarchy-toolbar label{margin:0}
.hierarchy-toolbar .actions{margin:0;white-space:nowrap}
.hierarchy-toolbar .actions .btn{min-height:35px}
.hierarchy-search{min-width:0}

.hierarchy-management-layout,
.voting-module-layout{
    display:grid;
    grid-template-columns:minmax(315px,.78fr) minmax(0,1.65fr);
    gap:17px;
    align-items:start;
}
.hierarchy-editor-card,
.voting-editor-panel{
    position:sticky;
    top:16px;
}
.hierarchy-editor-card .grid,
.voting-editor-panel .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.hierarchy-editor-note{
    margin-top:18px;
    padding:12px;
    border:1px solid #d8ebe5;
    border-radius:12px;
    background:#f4faf8;
}
.hierarchy-editor-note b{display:block;color:#174f43;font-size:9px}
.hierarchy-editor-note p{margin:5px 0 0;color:#668078;font-size:8px;line-height:1.5}
.hierarchy-list-card{min-width:0}
.hierarchy-list-card .table,
.voting-list-panel .table{max-height:680px;overflow:auto}
.hierarchy-list-card table,
.voting-list-panel table{min-width:780px}

.voting-module-stats{
    grid-template-columns:repeat(3,minmax(0,1fr));
    margin-bottom:17px;
}
.voting-module-layout{grid-template-columns:minmax(350px,.83fr) minmax(0,1.7fr)}
.voting-tables-layout{grid-template-columns:minmax(300px,.7fr) minmax(0,1.8fr)}
.voting-editor-panel form+form{margin-top:15px}
.selected-place-banner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:14px;
    padding:14px;
    border:1px solid #d7ebe5;
    border-radius:13px;
    background:linear-gradient(130deg,#f6fbfa,#edf7f4);
}
.selected-place-banner span,.selected-place-banner b,.selected-place-banner small{display:block}
.selected-place-banner span{color:#168aad;font-size:8px;font-weight:900;text-transform:uppercase}
.selected-place-banner b{margin-top:4px;color:#123f36;font-size:12px}
.selected-place-banner small{margin-top:4px;color:var(--muted);font-size:8px}
.voting-place-directory{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin-top:14px;
}
.voting-place-directory a{
    display:block;
    padding:12px;
    border:1px solid var(--border);
    border-radius:12px;
    background:#fbfefd;
    transition:.18s ease;
}
.voting-place-directory a:hover{transform:translateY(-2px);border-color:#9fd5c7;box-shadow:0 10px 20px rgba(15,64,54,.07)}
.voting-place-directory span,.voting-place-directory b,.voting-place-directory small{display:block}
.voting-place-directory span{color:#168aad;font-size:7px;font-weight:900;text-transform:uppercase}
.voting-place-directory b{margin-top:5px;color:#173f37;font-size:9px}
.voting-place-directory small{margin-top:5px;color:var(--muted);font-size:8px}

@media(max-width:1400px){
    .hierarchy-stats-pro{grid-template-columns:repeat(3,minmax(0,1fr))}
    .hierarchy-route-track{grid-template-columns:repeat(3,minmax(0,1fr))}
    .hierarchy-route-track>span{display:none}
}
@media(max-width:1120px){
    .hierarchy-command-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .hierarchy-management-layout,.voting-module-layout,.voting-tables-layout{grid-template-columns:1fr}
    .hierarchy-editor-card,.voting-editor-panel{position:static}
    .hierarchy-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}
    .hierarchy-toolbar .actions{grid-column:1/-1}
}
@media(max-width:720px){
    .hierarchy-stats-pro,.voting-module-stats{grid-template-columns:1fr 1fr}
    .hierarchy-route-track,.hierarchy-command-grid,.voting-place-directory{grid-template-columns:1fr}
    .hierarchy-module-intro,.selected-place-banner{align-items:flex-start;flex-direction:column}
    .hierarchy-toolbar{grid-template-columns:1fr}
    .hierarchy-toolbar .actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr}
    .hierarchy-editor-card .grid,.voting-editor-panel .grid{grid-template-columns:1fr}
    .hierarchy-editor-card .grid .full,.voting-editor-panel .grid .full{grid-column:auto}
}
@media(max-width:480px){
    .hierarchy-stats-pro,.voting-module-stats{grid-template-columns:1fr}
    .hierarchy-level-chip{display:none}
}


/* CRC v2.7 · campañas, alcance electoral y encuestas administrables */
.campaign-scope-assistant{margin-top:18px;padding:18px;border:1px solid rgba(122,17,24,.18);border-radius:18px;background:linear-gradient(135deg,rgba(122,17,24,.06),rgba(243,196,0,.08))}.campaign-scope-assistant b{display:block;color:var(--primary,#7a1118);margin-bottom:5px}.campaign-scope-assistant p{margin:0 0 12px;color:var(--muted,#5f6673)}.required-scope>select{box-shadow:0 0 0 3px rgba(181,31,42,.1)}
.scope-selector-panel{padding:18px}.scope-campaign-selector{max-width:720px}.scope-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:28px;align-items:center;overflow:hidden;position:relative}.scope-hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:rgba(243,196,0,.08);right:-100px;top:-120px}.scope-badge{display:inline-flex;padding:6px 11px;border-radius:999px;background:rgba(122,17,24,.1);color:#7a1118;font-size:.72rem;font-weight:800;letter-spacing:.08em}.scope-hero h2{font-size:1.75rem;margin:10px 0}.scope-rule{margin-top:18px;padding:14px 16px;border-radius:14px;border-left:4px solid}.scope-rule.municipal{background:#eef7ff;border-color:#3478bd}.scope-rule.departmental{background:#f3f8ef;border-color:#4b8b3b}.scope-hierarchy-map{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;position:relative;z-index:1}.scope-hierarchy-map span{padding:10px 12px;border:1px solid var(--border,#dfe3e8);background:#fff;border-radius:12px;font-size:.78rem;font-weight:700}.scope-hierarchy-map span.active{background:#7a1118;color:#fff;border-color:#7a1118}.scope-hierarchy-map i{font-style:normal;color:#9aa1ac}.scope-metrics article{background:linear-gradient(145deg,#fff,#fafafa);border-top:4px solid #7a1118}.scope-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}.scope-action-card{height:100%}.scope-action-card.recommended{box-shadow:0 18px 45px rgba(122,17,24,.09)}.scope-action-card form{display:grid;gap:14px}.scope-log-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.scope-log-grid span{padding:14px;border-radius:13px;background:var(--soft,#f6f7f9)}.scope-log-grid small,.scope-log-grid b{display:block}.scope-log-grid small{color:var(--muted,#6f7580);margin-bottom:5px}
.survey-pro-layout{align-items:start}.survey-sidebar{position:sticky;top:90px}.survey-workspace{display:grid;gap:20px}.survey-metadata-card,.question-creator-card{margin:0}.survey-options-box{margin:18px 0;padding:18px;border:1px solid rgba(122,17,24,.14);border-radius:18px;background:#fbfaf9}.survey-options-box[hidden]{display:none!important}.survey-options-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.survey-options-head b,.survey-options-head small{display:block}.survey-options-head small{color:var(--muted,#69707c);margin-top:3px}.survey-option-list{display:grid;gap:9px}.survey-option-row{display:grid;grid-template-columns:34px minmax(0,1fr) 34px 34px 34px;gap:7px;align-items:center}.option-index{width:31px;height:31px;border-radius:9px;background:#7a1118;color:white;display:grid;place-items:center;font-size:.75rem;font-weight:800}.survey-option-row button{height:34px;border:1px solid #d8dde4;background:#fff;border-radius:9px;cursor:pointer;font-weight:800}.survey-option-row button:last-child{color:#b51f2a}.survey-option-row button:disabled{opacity:.35;cursor:not-allowed}.multiple-limits{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.multiple-limits[hidden]{display:none!important}.question-list-pro{display:grid;gap:18px}.survey-question-card{position:relative;padding-left:76px}.question-card-number{position:absolute;left:20px;top:22px;width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#7a1118;color:#fff;font-weight:900}.question-card-footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:15px}.question-type-chip{padding:6px 10px;border-radius:999px;background:#f1f3f5;font-size:.74rem;font-weight:700}.question-toggle-form{position:absolute;right:20px;top:20px}.question-count{padding:6px 10px;border-radius:999px;background:#f4eee7;color:#7a1118;font-size:.75rem;font-weight:800}.survey-empty-workspace{text-align:center;min-height:300px;display:grid;place-content:center}.survey-application-panel{max-width:1050px;margin:auto}.survey-answer-card{border:1px solid #e1e4e9;border-radius:18px;padding:20px;margin:0;background:#fff}.survey-answer-card legend{display:flex;align-items:center;gap:10px;padding:0 8px}.survey-answer-card legend span{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#7a1118;color:white;font-size:.72rem}.question-help,.selection-rule{display:block;color:#6b7280;margin:0 0 14px}.answer-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.answer-choice-grid label{display:flex;align-items:center;gap:9px;padding:12px 14px;border:1px solid #dde1e7;border-radius:13px;background:#fafbfc;cursor:pointer}.answer-choice-grid label:has(input:checked){border-color:#7a1118;background:rgba(122,17,24,.05)}.answer-choice-grid input[type=radio],.answer-choice-grid input[type=checkbox]{width:18px;height:18px}.other-answer{grid-column:1/-1}.answer-scale{display:flex;gap:10px;flex-wrap:wrap}.answer-scale label input{position:absolute;opacity:0}.answer-scale label span{width:48px;height:48px;border-radius:14px;border:1px solid #d9dde3;display:grid;place-items:center;font-weight:800;cursor:pointer}.answer-scale label input:checked+span{background:#7a1118;color:#fff;border-color:#7a1118}
.survey-grid-builder{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.survey-grid-column-group{display:grid;gap:10px}.survey-matrix-table-wrap{width:100%;overflow-x:auto;border:1px solid #dde1e7;border-radius:14px;margin-top:10px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.03)}.survey-matrix-table{width:100%;border-collapse:collapse;min-width:480px;font-size:.88rem}.survey-matrix-table th,.survey-matrix-table td{padding:12px 14px;text-align:center;border-bottom:1px solid #eef1f4}.survey-matrix-table th:first-child,.survey-matrix-table td:first-child{text-align:left;font-weight:600;background:#fafbfc;position:sticky;left:0;z-index:1;min-width:160px;max-width:260px;border-right:1px solid #eef1f4}.survey-matrix-table th{background:#f8fafc;font-size:.80rem;font-weight:700;color:#475569}.survey-matrix-table tr:hover td{background:#fdf9f9}.survey-matrix-table tr:hover td:first-child{background:#f6f1f1}.survey-matrix-cell label{display:flex;align-items:center;justify-content:center;width:100%;height:100%;cursor:pointer;padding:6px;border-radius:8px;transition:background .15s ease}.survey-matrix-cell label:hover{background:rgba(122,17,24,.06)}.survey-matrix-table input[type=radio],.survey-matrix-table input[type=checkbox]{width:19px;height:19px;cursor:pointer;accent-color:#7a1118;margin:0}.survey-matrix-stat-table{width:100%;border-collapse:collapse;font-size:.84rem;margin-top:10px}.survey-matrix-stat-table th,.survey-matrix-stat-table td{padding:9px 12px;border:1px solid #e2e8f0;text-align:center}.survey-matrix-stat-table th:first-child,.survey-matrix-stat-table td:first-child{text-align:left;background:#f8fafc;font-weight:600}.survey-matrix-stat-table th{background:#f1f5f9;font-weight:700;font-size:.78rem;color:#334155}
@media(max-width:980px){.scope-hero,.scope-action-grid{grid-template-columns:1fr}.scope-log-grid{grid-template-columns:1fr 1fr}.survey-sidebar{position:static}.survey-question-card{padding-left:20px;padding-top:78px}.question-card-number{top:20px}.question-toggle-form{top:20px}}@media(max-width:620px){.scope-log-grid,.multiple-limits,.answer-choice-grid{grid-template-columns:1fr}.survey-option-row{grid-template-columns:30px minmax(0,1fr) 30px 30px 30px}.survey-options-head{align-items:flex-start;flex-direction:column}.scope-hierarchy-map i{display:none}.survey-grid-builder{grid-template-columns:1fr}}

.scope-inline-notice{margin:0 0 18px;padding:13px 16px;border-radius:14px;background:#f4f7fb;border:1px solid #dce5ef;color:#334155}.scope-inline-notice b{color:#7a1118}


/* Jerarquía territorial compacta y catálogo Colombia */
.hierarchy-form-department .grid{grid-template-columns:96px minmax(170px,240px);justify-content:start;align-items:end}
.hierarchy-form-department .field-name{width:100%;max-width:240px}
.hierarchy-form-department .field-code{width:96px}
.hierarchy-form-neighborhood .grid{grid-template-columns:122px minmax(170px,250px);justify-content:start;align-items:end}
.hierarchy-form-neighborhood .grid .full{grid-column:1/-1;width:100%;max-width:100%}
.hierarchy-form-neighborhood .field-type{width:122px}
.hierarchy-form-neighborhood .field-name{width:100%;max-width:250px}
.hierarchy-form-municipality .field-name{max-width:300px}
.hierarchy-form-municipality .field-code{max-width:150px}
.hierarchy-list-card .th-name-compact{width:230px;max-width:230px}
.hierarchy-list-card .cell-name-compact{width:230px;max-width:230px}
.hierarchy-list-card .cell-name-compact b{display:block;max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.campaign-territory-sync{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0;padding:20px 22px;border-left:5px solid #7a1118;background:linear-gradient(135deg,#fff,#fbf7f5)}
.campaign-territory-sync span{display:block;color:#7a1118;font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.campaign-territory-sync h3{margin:4px 0 6px}
.campaign-territory-sync p{margin:0;max-width:760px;color:var(--muted,#667085)}
.panel-heading-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
@media(max-width:700px){
 .hierarchy-form-department .grid,.hierarchy-form-neighborhood .grid{grid-template-columns:1fr}
 .hierarchy-form-department .field-name,.hierarchy-form-department .field-code,.hierarchy-form-neighborhood .field-type,.hierarchy-form-neighborhood .field-name{width:100%;max-width:none}
 .hierarchy-form-neighborhood .grid .full{grid-column:auto}
 .hierarchy-list-card .th-name-compact,.hierarchy-list-card .cell-name-compact{width:auto;max-width:200px}
 .campaign-territory-sync{align-items:flex-start;flex-direction:column}
}


/* CRC v3.0 · Municipios homologados visualmente con Departamentos */
.hierarchy-form-municipality-aligned .municipality-parent-fields{
    display:grid;
    grid-template-columns:minmax(190px,250px) minmax(220px,330px);
    gap:12px;
    align-items:start;
    justify-content:start;
    margin-bottom:14px;
}
.hierarchy-form-municipality-aligned .field-department,
.hierarchy-form-municipality-aligned .field-catalog{width:100%;margin:0}
.hierarchy-form-municipality-aligned .field-catalog small{
    display:block;
    margin-top:5px;
    color:var(--muted,#667085);
    font-size:8px;
    line-height:1.45;
}
.hierarchy-form-municipality-aligned .municipality-core-fields{
    grid-template-columns:110px minmax(170px,240px) 120px;
    justify-content:start;
    align-items:end;
    gap:12px;
}
.hierarchy-form-municipality-aligned .field-code{width:110px;max-width:110px}
.hierarchy-form-municipality-aligned .field-name{width:100%;max-width:240px}
.hierarchy-form-municipality-aligned .field-electoral{width:120px;max-width:120px}
.hierarchy-list-card .th-parent-compact{width:190px;max-width:190px}
.hierarchy-list-card .cell-parent-compact{width:190px;max-width:190px}
.hierarchy-list-card .cell-parent-compact b{
    display:block;
    max-width:170px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.hierarchy-list-card .cell-parent-compact small{display:block;margin-top:3px}
@media(max-width:720px){
    .hierarchy-form-municipality-aligned .municipality-parent-fields,
    .hierarchy-form-municipality-aligned .municipality-core-fields{grid-template-columns:1fr}
    .hierarchy-form-municipality-aligned .field-code,
    .hierarchy-form-municipality-aligned .field-name,
    .hierarchy-form-municipality-aligned .field-electoral{width:100%;max-width:none}
    .hierarchy-list-card .th-parent-compact,
    .hierarchy-list-card .cell-parent-compact{width:auto;max-width:180px}
}


/* CRC Profesional 4.0 */
.installer-shell{min-height:100vh;display:grid;grid-template-columns:minmax(320px,42%) minmax(420px,720px);align-items:center;gap:48px;max-width:1320px;margin:auto;padding:42px}.installer-intro{color:#fff}.installer-intro h1{font-size:clamp(38px,5vw,68px);line-height:1.02;margin:12px 0}.installer-intro p{max-width:680px;font-size:18px;line-height:1.65}.install-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:28px}.check-row{display:flex;gap:10px;align-items:center;padding:11px 13px;border-radius:12px;background:rgba(255,255,255,.1)}.check-row.ok b{color:#76e0ae}.check-row.bad b{color:#ff9a9a}.strategy-grid,.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.diagnostic-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.diagnostic-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow-sm)}.diagnostic-card b{display:grid;place-items:center;width:30px;height:30px;border-radius:50%}.diagnostic-card.ok b{background:#dff7ea;color:#147a45}.diagnostic-card.bad b{background:#ffe4e4;color:#a72828}.compact-list{display:grid;gap:10px}.compact-list article{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--border);border-radius:12px;padding:12px}.compact-list small,.table-wrap td small{display:block;color:var(--muted);margin-top:4px}.bar-list{display:grid;gap:14px}.bar-row>div{display:flex;justify-content:space-between;margin-bottom:7px}.bar-row i{display:block;height:9px;background:#e8efed;border-radius:999px;overflow:hidden}.bar-row em{display:block;height:100%;background:linear-gradient(90deg,#0b6856,#36a97f);border-radius:999px}.report-note{max-width:360px;padding:12px 14px;border-radius:12px;background:#eef6f4;color:#31524a;font-size:13px}.contact-governance-grid{background:#f6faf9;border:1px solid #dcebe7;border-radius:16px;padding:16px}.family-checkbox.warning{color:#8a2b2b}.alert.info{background:#edf5ff;border-color:#caddf5;color:#244d7a}.executive-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1050px){.installer-shell{grid-template-columns:1fr;max-width:760px}.strategy-grid,.report-grid{grid-template-columns:1fr}.diagnostic-grid,.executive-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.installer-shell{padding:18px}.install-checks,.diagnostic-grid,.executive-metrics{grid-template-columns:1fr}}


/* CRC 4.1 - instalación completa y verificación inicial */
.installer-options{display:grid;gap:10px;margin:14px 0 18px}
.installer-option{display:flex;gap:12px;align-items:flex-start;padding:13px 14px;border:1px solid var(--line,#dfe3ea);border-radius:12px;background:rgba(255,255,255,.65)}
.installer-option input{width:18px;height:18px;margin-top:2px;flex:0 0 auto}
.installer-option span{display:grid;gap:3px}
.installer-option small{line-height:1.4;color:var(--muted,#667085)}
.install-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}
.install-summary-grid>div{padding:14px;border:1px solid var(--line,#dfe3ea);border-radius:12px;background:#fff;display:grid;gap:4px;text-align:center}
.install-summary-grid b{font-size:1.5rem}.install-summary-grid span{font-size:.82rem;color:var(--muted,#667085)}
.installer-result{max-width:820px}.dashboard-summary{grid-template-columns:repeat(5,minmax(0,1fr))}
.check-list{display:grid;gap:8px;padding-left:20px}
@media(max-width:900px){.dashboard-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.install-summary-grid,.dashboard-summary{grid-template-columns:1fr 1fr}}

/* Instalador 4.3: catálogo visible y acción de guardado siempre identificable */
.installer-catalog-status{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    margin:8px 0 20px;
    padding:9px 12px;
    border-radius:12px;
    background:var(--green-050);
    border:1px solid var(--border);
    color:var(--green-800);
    font-size:12px;
}
.installer-catalog-status b{font-size:15px}
.installer-catalog-status span{color:var(--muted)}
.installer-submit-bar{
    position:sticky;
    bottom:0;
    z-index:20;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    margin:20px -4px -4px;
    padding:15px;
    border:1px solid rgba(21,93,117,.22);
    border-radius:15px;
    background:rgba(255,255,255,.97);
    box-shadow:0 -10px 30px rgba(16,42,67,.12);
    backdrop-filter:blur(12px);
}
.installer-submit-bar b,.installer-submit-bar small{display:block}
.installer-submit-bar b{font-size:13px;color:var(--green-900)}
.installer-submit-bar small{margin-top:4px;color:var(--muted);font-size:10px}
.installer-submit-bar .btn{min-width:225px}
@media(max-width:620px){
    .installer-submit-bar{position:static;align-items:stretch;flex-direction:column}
    .installer-submit-bar .btn{width:100%;min-width:0}
}
.installer-checks-light{grid-template-columns:1fr;margin:18px 0}
.installer-checks-light .check-row{background:var(--green-050);border:1px solid var(--border);color:var(--text)}
.installer-checks-light .check-row.bad{background:#fff1f1;border-color:#f0cccc}

/* CRC 4.6 — encuestas por rol, avance de compromisos y agenda editable */
.page-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.survey-execution-summary,.task-summary-grid,.agenda-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}
.task-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.survey-execution-summary article,.task-summary-grid article,.agenda-summary-grid article{background:#fff;border:1px solid var(--border);border-radius:16px;padding:17px;box-shadow:var(--shadow-sm);display:grid;gap:4px}
.survey-execution-summary span,.task-summary-grid span,.agenda-summary-grid span{font-size:12px;color:var(--muted)}
.survey-execution-summary b,.task-summary-grid b,.agenda-summary-grid b{font-size:24px;color:var(--green-900);overflow-wrap:anywhere}
.task-summary-grid article.risk{border-color:#efc3c3;background:#fff8f8}.task-summary-grid article.risk b{color:#a52e2e}
.survey-execution-filter .toolbar-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.survey-execution-filter label{min-width:260px;flex:1}
.survey-execution-layout{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:18px;margin-bottom:18px}
.survey-execution-list{display:grid;align-content:start;gap:8px}.survey-execution-item{display:flex;justify-content:space-between;gap:12px;padding:13px;border:1px solid var(--border);border-radius:12px;color:var(--text);text-decoration:none;background:#fff}.survey-execution-item:hover,.survey-execution-item.active{border-color:var(--green-600);background:var(--green-050)}.survey-execution-item div{display:grid;gap:4px}.survey-execution-item small{color:var(--muted)}
.survey-execution-detail{align-self:start}.survey-execution-detail>p{line-height:1.65;color:var(--muted)}.survey-execution-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.survey-execution-metrics div{padding:12px;border-radius:12px;background:var(--green-050);display:grid;gap:3px}.survey-execution-metrics b{overflow-wrap:anywhere}.survey-execution-metrics span{font-size:11px;color:var(--muted)}
.survey-recent-table td small,.agenda-table td small{display:block;color:var(--muted);margin-top:3px}
.task-progress-guide{margin:18px 0}.task-phase-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.task-phase-grid article{border:1px solid var(--border);border-radius:12px;padding:12px;display:grid;gap:3px}.task-phase-grid b{font-size:18px;color:var(--green-800)}.task-phase-grid span{font-weight:700}.task-phase-grid small{color:var(--muted);line-height:1.35}
.task-progress-header{display:flex;justify-content:space-between;gap:12px;align-items:end;margin:14px 0 7px}.task-progress-header>div{display:flex;gap:8px;align-items:baseline}.task-progress-header b{font-size:24px;color:var(--green-800)}.task-progress-header span{font-weight:700}.task-progress-header small{max-width:58%;text-align:right;color:var(--muted)}
.task-progress-track{height:10px;border-radius:999px;background:#e5eeeb;overflow:hidden;margin-bottom:15px}.task-progress-track span{display:block;height:100%;background:linear-gradient(90deg,#155d75,#38a57d);border-radius:inherit}
.commitment-card.is-overdue{border-color:#e8b6b6;box-shadow:0 0 0 2px rgba(174,52,52,.04)}.commitment-card dl .full{grid-column:1/-1}.quick-progress-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.card-actions{display:flex;gap:8px;flex-wrap:wrap}.card-actions .btn{flex:1;min-width:150px;text-align:center}
.agenda-table .table-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.agenda-table .table-actions form{margin:0}.agenda-table td:nth-child(2){min-width:220px}.status-chip{display:inline-flex;padding:5px 8px;border-radius:999px;background:#eef3f2;font-size:11px;font-weight:700}.status-realizada{background:#e3f6ec;color:#16754a}.status-cancelada{background:#fdeaea;color:#9c2d2d}.status-confirmada{background:#e7f0ff;color:#285f9c}
@media(max-width:1100px){.task-phase-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.task-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.survey-execution-layout{grid-template-columns:1fr}.survey-execution-summary,.agenda-summary-grid{grid-template-columns:1fr 1fr}.survey-execution-metrics{grid-template-columns:1fr}.task-progress-header{align-items:start;flex-direction:column}.task-progress-header small{max-width:none;text-align:left}}
@media(max-width:620px){.survey-execution-summary,.task-summary-grid,.agenda-summary-grid,.task-phase-grid,.quick-progress-grid{grid-template-columns:1fr}.page-actions{width:100%}.page-actions .btn{flex:1;text-align:center}.survey-execution-filter .toolbar-form{align-items:stretch}.survey-execution-filter label{min-width:0;width:100%}}


/* CRC 4.7 · Municipios administrables, sin panel bloqueado */
.municipality-sync-panel{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:16px;
  border-left:4px solid #168aad;
}
.municipality-sync-panel h3{margin:4px 0 6px;color:#143f36}
.municipality-sync-panel p{margin:0;max-width:760px;color:var(--muted);line-height:1.55}
.municipality-sync-panel>div>span{font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.09em;color:#168aad}
.municipality-management-layout .hierarchy-editor-card{position:static;top:auto}
.hierarchy-form-municipality-simple .municipality-form-grid{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:12px;
}
.hierarchy-form-municipality-simple .municipality-catalog-field small{
  display:block;
  margin-top:6px;
  color:var(--muted);
  font-size:8px;
  line-height:1.45;
}
.hierarchy-form-municipality-simple .municipality-catalog-field small.error-text{color:#a72828}
.hierarchy-form-municipality-simple select:disabled{cursor:wait;opacity:.72;background:#f2f5f4}
.municipality-form-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:14px}
@media(max-width:760px){
  .municipality-sync-panel{align-items:flex-start;flex-direction:column}
  .municipality-sync-panel form,.municipality-sync-panel .btn{width:100%}
  .hierarchy-form-municipality-simple .municipality-form-grid{grid-template-columns:1fr}
  .hierarchy-form-municipality-simple .municipality-form-grid .full{grid-column:auto}
}

/* CRC 4.9 · inteligencia artificial institucional y análisis agregado */
.survey-list-admin{display:grid;gap:8px;margin-top:16px}
.survey-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid var(--border);border-radius:12px;background:#fff;overflow:hidden}
.survey-list-row.active{border-color:var(--green-600);background:var(--green-050);box-shadow:0 0 0 2px rgba(21,93,117,.06)}
.survey-list-row>a{display:grid;gap:4px;padding:12px 8px 12px 13px;color:var(--text);text-decoration:none;min-width:0}
.survey-list-row>a b,.survey-list-row>a small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.survey-list-row>a small{color:var(--muted)}
.survey-list-row form{margin:0;padding-right:8px}
.survey-row-action{width:30px;height:30px;border:0;border-radius:9px;display:grid;place-items:center;font-size:18px;font-weight:800;cursor:pointer}
.survey-row-action.delete{background:#fff0f0;color:#a52e2e}.survey-row-action.delete:hover{background:#a52e2e;color:#fff}
.survey-row-action.restore{background:#e8f6ef;color:#16754a}.survey-row-action.restore:hover{background:#16754a;color:#fff}
.survey-results-toolbar{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(2,minmax(145px,.7fr)) repeat(4,auto);gap:10px;align-items:end}
.survey-results-toolbar label{min-width:0}.survey-results-toolbar .btn{white-space:nowrap}
.survey-results-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}
.survey-results-kpis article{background:#fff;border:1px solid var(--border);border-radius:16px;padding:17px;display:grid;gap:4px;box-shadow:var(--shadow-sm)}
.survey-results-kpis span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:800}
.survey-results-kpis b{font-size:26px;color:var(--green-900)}.survey-results-kpis small{color:var(--muted);line-height:1.4}
.survey-trend-panel{margin-bottom:18px}.survey-trend-chart{height:220px;display:flex;gap:7px;align-items:end;overflow-x:auto;padding:16px 4px 4px;border-top:1px solid var(--border)}
.survey-trend-column{height:180px;min-width:34px;display:grid;grid-template-rows:1fr auto auto;align-items:end;gap:4px;text-align:center}
.survey-trend-column>span{display:block;width:22px;min-height:8px;margin:auto;background:linear-gradient(180deg,#168aad,#155d75);border-radius:7px 7px 2px 2px}
.survey-trend-column small{font-size:8px;color:var(--muted);transform:rotate(-45deg);transform-origin:center;white-space:nowrap;margin:4px 0 3px}.survey-trend-column b{font-size:9px;color:var(--green-900)}
.survey-analysis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}
.survey-analysis-card{min-width:0}.survey-analysis-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border-bottom:1px solid var(--border);padding-bottom:13px;margin-bottom:12px}
.survey-analysis-heading>div:first-child{min-width:0}.survey-analysis-heading span{display:block;font-size:9px;color:#168aad;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.survey-analysis-heading h2{font-size:17px;line-height:1.42;margin:5px 0 0;overflow-wrap:anywhere}
.survey-response-rate{flex:0 0 auto;text-align:right}.survey-response-rate b{display:block;font-size:24px;color:var(--green-800)}.survey-response-rate small{font-size:9px;color:var(--muted)}
.survey-stat-strip{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.survey-stat-strip span{padding:7px 9px;border-radius:9px;background:var(--green-050);font-size:10px;color:var(--muted)}.survey-stat-strip b{color:var(--green-900)}
.survey-numeric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px}.survey-numeric-grid>div{padding:10px;border-radius:11px;border:1px solid var(--border);background:#fbfdfc;display:grid;gap:3px}.survey-numeric-grid span{font-size:9px;color:var(--muted)}.survey-numeric-grid b{font-size:16px;color:var(--green-800)}
.survey-analysis-note{font-size:10px;line-height:1.5;color:#6a5520;background:#fff8dc;border:1px solid #eadca7;padding:9px 11px;border-radius:10px}
.survey-frequency-list{display:grid;gap:10px;max-height:430px;overflow:auto;padding-right:3px}.survey-frequency-row{display:grid;gap:5px}.survey-frequency-label{display:flex;justify-content:space-between;gap:14px;font-size:11px}.survey-frequency-label span{overflow-wrap:anywhere}.survey-frequency-label b{flex:0 0 auto;color:var(--green-900)}
.survey-frequency-track{height:8px;border-radius:999px;background:#e7efed;overflow:hidden}.survey-frequency-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#168aad,#36a97f)}
.survey-results-table-panel{margin-top:18px}.survey-wide-table-wrap{overflow:auto;max-height:620px;border:1px solid var(--border);border-radius:12px}.survey-wide-table{min-width:1100px;border-collapse:separate;border-spacing:0}.survey-wide-table th{position:sticky;top:0;z-index:2;background:#f1f7f5;max-width:240px}.survey-wide-table td{max-width:320px;white-space:normal;overflow-wrap:anywhere;vertical-align:top}.survey-wide-table tbody tr:nth-child(even){background:#fbfdfc}
@media(max-width:1180px){.survey-results-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.survey-results-toolbar .btn{width:100%}.survey-analysis-grid{grid-template-columns:1fr}.survey-results-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.survey-results-toolbar,.survey-results-kpis,.survey-numeric-grid{grid-template-columns:1fr}.survey-analysis-heading{flex-direction:column}.survey-response-rate{text-align:left}.survey-list-row>a small{white-space:normal}.survey-trend-chart{height:190px}}
.survey-row-action{width:auto;min-width:68px;height:30px;padding:0 9px;font-size:9px;text-transform:uppercase;letter-spacing:.04em}


/* CRM Enterprise 1.0 - Autorización granular de módulos */
.enterprise-help-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.enterprise-help-grid article{border:1px solid var(--border);border-radius:14px;padding:16px;background:#f8fbfa}.enterprise-help-grid b,.enterprise-help-grid small{display:block}.enterprise-help-grid small{margin-top:5px;color:var(--muted);line-height:1.45}.permission-role-panel{margin-top:18px}.enterprise-permission-table{overflow:auto;border:1px solid var(--border);border-radius:14px}.enterprise-permission-table table{min-width:1120px;width:100%;border-collapse:collapse}.enterprise-permission-table th{position:sticky;top:0;background:#eef6f4;z-index:1}.enterprise-permission-table th,.enterprise-permission-table td{padding:11px 10px;border-bottom:1px solid var(--border);text-align:left}.enterprise-permission-table td small{display:block;color:var(--muted);margin-top:3px}.permission-check{text-align:center!important}.permission-check label{display:inline-grid;justify-items:center;gap:4px;margin:0;cursor:pointer}.permission-check input{width:18px;height:18px;accent-color:#0b6856}.permission-check span{font-size:10px;color:var(--muted)}.permission-savebar{position:sticky;bottom:12px;z-index:8;margin:22px 0 8px;padding:15px 18px;border-radius:16px;background:#123d35;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:18px;box-shadow:0 14px 34px rgba(10,41,35,.24)}.permission-savebar b,.permission-savebar small{display:block}.permission-savebar small{margin-top:3px;color:#cfe3dd}@media(max-width:800px){.enterprise-help-grid{grid-template-columns:1fr}.permission-savebar{align-items:stretch;flex-direction:column}.permission-savebar .btn{width:100%}}


/* CRM Enterprise 1.0 · Ficha ciudadana 360°, familia y compromisos */
.action-button.task{background:#e7f2ff;color:#1d5f91;border-color:#bcd8ef}.action-button.task:hover{background:#1d5f91;color:#fff}
.citizen-360-panel{margin-bottom:18px;border-top:4px solid #1d6d87}.citizen-360-header{display:flex;justify-content:space-between;gap:18px;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--border)}
.citizen-360-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:18px 0}.citizen-360-metrics article{padding:14px;border:1px solid var(--border);border-radius:14px;background:#f8fbfa;display:grid;gap:3px}.citizen-360-metrics article.risk{background:#fff2f2;border-color:#e7bebe}.citizen-360-metrics span{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:900}.citizen-360-metrics b{font-size:24px;color:var(--green-900)}.citizen-360-metrics small{color:var(--muted)}
.citizen-360-family-strip{padding:16px;border-radius:15px;background:#f2f8f6;margin-bottom:17px}.strip-title{display:flex;justify-content:space-between;gap:12px;align-items:end;margin-bottom:10px}.strip-title b,.strip-title small{display:block}.strip-title small{color:var(--muted)}.family-chip-list{display:flex;gap:9px;flex-wrap:wrap}.family-task-chip{display:grid;gap:2px;padding:9px 11px;border-radius:11px;border:1px solid #cfe2dd;background:#fff;color:var(--text);text-decoration:none}.family-task-chip:hover{border-color:#1d6d87;box-shadow:0 4px 12px rgba(29,109,135,.1)}.family-task-chip span{font-weight:800}.family-task-chip small{color:var(--muted)}
.citizen-task-list{display:grid;gap:10px}.citizen-task-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,.35fr);gap:18px;padding:15px;border:1px solid var(--border);border-radius:14px;background:#fff}.citizen-task-row.is-overdue{border-color:#e5aaaa;background:#fffafa}.task-row-title span{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#1d6d87;font-weight:900}.task-row-title h3{margin:4px 0 7px;font-size:16px}.task-row-main p{margin:0;color:var(--muted);line-height:1.5}.task-row-meta{display:grid;gap:5px;align-content:start}.task-row-meta>b{font-size:22px;color:var(--green-900)}.task-row-meta small{color:var(--muted)}
@media(max-width:1100px){.citizen-360-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.citizen-360-header,.strip-title{align-items:stretch;flex-direction:column}.citizen-360-header .actions{width:100%}.citizen-360-header .actions .btn{flex:1;text-align:center}.citizen-360-metrics{grid-template-columns:1fr 1fr}.citizen-task-row{grid-template-columns:1fr}}
@media(max-width:520px){.citizen-360-metrics{grid-template-columns:1fr}.family-task-chip{width:100%}}


/* CRM Enterprise 1.0 · Selector combobox para ejecutar encuestas */
.survey-combobox-form{width:100%;}
.survey-combobox-form label{max-width:none;width:100%;}
.survey-combobox-form select{width:100%;min-height:46px;}
.survey-execution-layout-single{grid-template-columns:minmax(0,1fr);}
.survey-execution-detail-full{width:100%;}

/* CRM Enterprise 1.0 - administración de catálogos financieros */
.field-note{display:block;color:var(--muted);font-size:12px;margin-top:6px;line-height:1.4}
.cell-note{display:block;color:var(--muted);font-size:12px;margin-top:4px;max-width:460px;white-space:normal}
.inline-admin-form{display:grid;gap:10px;min-width:min(460px,78vw);padding:14px;margin-top:8px;background:#f7faf9;border:1px solid var(--border);border-radius:12px}
.inline-admin-form label{display:grid;gap:5px;font-size:12px;font-weight:700}
.inline-admin-form textarea{min-height:80px}
details>summary.btn{list-style:none;cursor:pointer;display:inline-flex}
details>summary.btn::-webkit-details-marker{display:none}
.table-wrap code{font-size:12px;word-break:break-all}
@media(max-width:760px){.inline-admin-form{min-width:72vw}.panel-heading>.btn{width:100%;margin-top:10px}}


/* CRM Enterprise 1.0 - grupos familiares uno a muchos */
.family-capacity-note{
    display:flex;
    gap:14px;
    align-items:flex-start;
    margin:18px 0;
    padding:15px 17px;
    border:1px solid rgba(11,104,86,.18);
    border-left:5px solid var(--green-700,#0b6856);
    border-radius:12px;
    background:rgba(11,104,86,.055);
}
.family-capacity-note b{min-width:210px;color:var(--green-800,#075345)}
.family-capacity-note span{color:var(--muted);line-height:1.5}
.family-save-actions{flex-wrap:wrap}
.btn.secondary{background:#d7b45a;color:#17251f;border-color:#d7b45a}
.btn.secondary:hover{filter:brightness(.96)}
@media(max-width:760px){
  .family-capacity-note{display:block}
  .family-capacity-note b{display:block;margin-bottom:7px;min-width:0}
  .family-save-actions .btn{width:100%;text-align:center}
}

/* CRM Enterprise 1.0 - panel visible y analítico de grupos familiares */
.family-analytics-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}
.family-analytics-grid article{display:grid;gap:4px;padding:16px;border:1px solid var(--border);border-radius:15px;background:linear-gradient(145deg,#fff,#f2f8f6);box-shadow:0 6px 18px rgba(15,58,49,.05)}
.family-analytics-grid span{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.family-analytics-grid b{font-size:25px;color:var(--green-900)}
.family-analytics-grid small{color:var(--muted);line-height:1.35}
.family-data-panel{margin-bottom:18px}.family-relation-bars{display:grid;gap:10px}.family-relation-row{display:grid;grid-template-columns:minmax(160px,.35fr) minmax(0,1fr);align-items:center;gap:16px}.family-relation-row div{display:grid;gap:2px}.family-relation-row small{color:var(--muted)}.family-relation-row>span{height:10px;background:#e8f0ed;border-radius:999px;overflow:hidden}.family-relation-row>span i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0b6856,#d7b45a)}
.family-owner-selector{margin-bottom:18px}.family-owner-selector .panel-heading{align-items:flex-end}.family-owner-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;max-height:520px;overflow:auto;padding:2px}.family-owner-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;padding:13px;border:1px solid var(--border);border-radius:14px;background:#fff;color:var(--text);text-decoration:none}.family-owner-card:hover,.family-owner-card.selected{border-color:#0b6856;background:#f1f8f6;box-shadow:0 5px 16px rgba(11,104,86,.09)}.family-owner-card div{min-width:0;display:grid;gap:2px}.family-owner-card b,.family-owner-card small,.family-owner-card em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.family-owner-card b{white-space:normal;line-height:1.2}.crm17239-owner-surnames{display:inline-block;margin-top:2px;color:var(--muted);font-weight:700}.family-owner-card small,.family-owner-card em{color:var(--muted);font-size:11px}.family-owner-card em{font-style:normal}.family-owner-card>strong{font-size:20px;text-align:center;color:var(--green-900)}.family-owner-card>strong small{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.04em}.family-quick-form{margin-top:18px;border-top:4px solid #d7b45a}.family-quick-form .grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1180px){.family-analytics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.family-owner-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.family-quick-form .grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.family-analytics-grid,.family-owner-grid,.family-quick-form .grid{grid-template-columns:1fr}.family-relation-row{grid-template-columns:1fr}.family-owner-selector .panel-heading{align-items:stretch}.family-owner-card{grid-template-columns:auto minmax(0,1fr)}.family-owner-card>strong{grid-column:1/-1;text-align:left}.family-owner-grid{max-height:none}}


/* CRM Enterprise 1.0 · compromisos múltiples por ciudadano */
.citizen-task-selector,.citizen-commitment-dashboard{border-top:4px solid #7a1118}.citizen-task-search{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(300px,1.4fr) auto;gap:14px;align-items:end}.citizen-task-search label{display:grid;gap:6px}.citizen-360-metrics.six{grid-template-columns:repeat(6,minmax(0,1fr))}.commitment-filter{display:flex;gap:10px;align-items:end;margin:2px 0 18px}.citizen-commitment-list{display:grid;gap:16px}.citizen-commitment-card{border:1px solid var(--border);border-left:5px solid #1d6d87;border-radius:18px;padding:20px;background:#fff;box-shadow:0 8px 22px rgba(17,45,39,.06)}.citizen-commitment-card.is-overdue{border-left-color:#b51f2a;background:#fffafa}.commitment-card-head{display:flex;justify-content:space-between;gap:16px;align-items:start}.commitment-card-head>div:first-child span{display:block;color:#7a1118;text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:900}.commitment-card-head h3{margin:4px 0 0}.commitment-card-head>div:last-child{display:flex;align-items:center;gap:10px}.commitment-card-head>div:last-child>b{font-size:22px;color:var(--green-900)}.commitment-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.commitment-detail-grid>div{padding:11px;border-radius:12px;background:#f6f8f7;display:grid;gap:3px}.commitment-detail-grid small,.commitment-copy small{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.05em;font-weight:900}.commitment-detail-grid b{font-size:13px}.commitment-copy{display:grid;grid-template-columns:1fr 1fr;gap:12px}.commitment-copy>div{padding:13px;border:1px solid var(--border);border-radius:12px}.commitment-copy p{margin:5px 0 0;white-space:pre-wrap}.commitment-audit-line{margin-top:12px;color:var(--muted)}.citizen-commitment-followup{margin-top:16px;padding-top:16px;border-top:1px solid var(--border);display:grid;gap:10px}.citizen-commitment-followup>label{display:grid;gap:6px}.citizen-task-directory .status-badge{min-width:44px;text-align:center}.citizen-task-search select{min-height:46px}
@media(max-width:1160px){.citizen-360-metrics.six{grid-template-columns:repeat(3,minmax(0,1fr))}.commitment-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.citizen-task-search{grid-template-columns:1fr}.citizen-task-search .btn{width:100%}.citizen-360-metrics.six,.commitment-detail-grid,.commitment-copy{grid-template-columns:1fr}.commitment-card-head{flex-direction:column}.commitment-card-head>div:last-child{width:100%;justify-content:space-between}}


/* CRM Enterprise 1.0: seguimiento y permisos individuales */
.user-permission-table select.permission-mode{min-width:128px;padding:.52rem .6rem;border-radius:8px;font-size:.78rem;font-weight:700}
.user-permission-table select.inherit{background:#f4f6f8;color:#48515c}.user-permission-table select.allow{background:#e8f7ee;color:#176b3a}.user-permission-table select.deny{background:#fff0f0;color:#a12626}
.followup-metrics{margin-bottom:1rem}.followup-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem}.followup-card{background:#fff;border:1px solid var(--border,#dfe4ea);border-radius:16px;padding:1rem;box-shadow:0 8px 24px rgba(15,23,42,.05)}.followup-card.is-overdue{border-color:#d74646;box-shadow:0 0 0 2px rgba(215,70,70,.08)}.followup-card h3{margin:.55rem 0 .3rem}.followup-card dl{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin:.8rem 0}.followup-card dl div{background:#f7f8fa;border-radius:10px;padding:.6rem}.followup-card dt{font-size:.7rem;text-transform:uppercase;color:#67717d}.followup-card dd{margin:.2rem 0 0;font-weight:700}.followup-card .commitment-followup{margin-top:.85rem}.followup-card textarea{min-height:78px}
@media(max-width:760px){.followup-board{grid-template-columns:1fr}.user-permission-table select.permission-mode{min-width:105px}.followup-card dl{grid-template-columns:1fr}}

/* CRM Enterprise 1.0: tabla maestra y filtros de personas */
.citizen-search select{min-width:190px}
.citizen-list-heading small{display:block;color:var(--muted);margin-top:4px}
@media(max-width:700px){.citizen-search select{width:100%;min-width:0}}


/* CRM Enterprise 1.0 · Identificadores internos enmascarados */
.calendar-page-head{align-items:flex-end}.calendar-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.calendar-metric-grid article{background:linear-gradient(145deg,#fff,#f5f8f7);border:1px solid #dfe8e5;border-radius:18px;padding:18px;box-shadow:0 8px 24px rgba(14,47,41,.06)}.calendar-metric-grid span,.calendar-metric-grid small{display:block;color:#60736f}.calendar-metric-grid b{display:block;font-size:30px;color:#123e36;margin:7px 0}.calendar-metric-grid .calendar-alert-metric{background:linear-gradient(145deg,#fff6f2,#fff);border-color:#f2c4b2}.calendar-metric-grid .calendar-alert-metric b{color:#a03e21}.calendar-control-panel{padding:16px 18px}.calendar-filter-form{display:grid;grid-template-columns:1.05fr 1.35fr 1.35fr 1.2fr auto auto;gap:12px;align-items:end}.calendar-filter-form label{display:grid;gap:6px;color:#435a55;font-size:12px;font-weight:700}.calendar-filter-form input,.calendar-filter-form select{min-width:0}.calendar-main-panel{padding:0;overflow:hidden}.calendar-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:15px;padding:18px 20px;border-bottom:1px solid #e3ebe8}.calendar-toolbar h2{font-size:20px;margin:0;text-align:center;color:#163d36}.calendar-navigation{display:flex;align-items:center;gap:8px}.calendar-nav-button{width:38px;height:38px;display:grid;place-items:center;border:1px solid #d4e0dc;border-radius:11px;text-decoration:none;font-size:25px;color:#17483e;background:#fff}.calendar-view-switch{display:flex;justify-content:flex-end;gap:5px}.calendar-view-switch a{padding:8px 12px;border-radius:9px;color:#526863;text-decoration:none;font-size:12px;font-weight:800}.calendar-view-switch a.active{background:#17483e;color:#fff}.calendar-legend{display:flex;flex-wrap:wrap;gap:14px;padding:11px 20px;background:#f7faf9;border-bottom:1px solid #e3ebe8}.calendar-legend span{font-size:11px;font-weight:800;display:flex;align-items:center;gap:6px}.calendar-legend span:before{content:"";width:10px;height:10px;border-radius:3px}.calendar-legend .agenda:before{background:#2563a6}.calendar-legend .task:before{background:#d77a16}.calendar-legend .followup:before{background:#7b4db2}.calendar-legend .overdue:before{background:#bd3c31}.calendar-weekday-row{display:grid;grid-template-columns:repeat(7,1fr);background:#eef5f2;border-bottom:1px solid #dce7e3}.calendar-weekday-row div{text-align:center;padding:10px;font-size:11px;text-transform:uppercase;font-weight:800;color:#526963}.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#dfe8e5;gap:1px}.calendar-day-cell{min-height:150px;background:#fff;padding:8px;min-width:0}.calendar-day-cell.outside{background:#f5f7f6}.calendar-day-cell.today{box-shadow:inset 0 0 0 2px #19856f}.calendar-day-cell header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.calendar-day-cell header a{display:grid;place-items:center;width:28px;height:28px;text-decoration:none;color:#294a43;font-weight:900;border-radius:50%}.calendar-day-cell.today header a{background:#19856f;color:#fff}.calendar-day-cell header span{font-size:9px;text-transform:uppercase;color:#19856f;font-weight:900}.calendar-day-events{display:grid;gap:4px}.calendar-event{display:block;min-width:0;padding:5px 6px;border-radius:7px;text-decoration:none;border-left:4px solid;color:#203934;background:#f4f7f6;overflow:hidden}.calendar-event small,.calendar-event b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event small{font-size:9px;opacity:.72}.calendar-event b{font-size:10px;margin-top:1px}.calendar-event.agenda{border-color:#2563a6;background:#edf5ff}.calendar-event.task{border-color:#d77a16;background:#fff5e8}.calendar-event.followup{border-color:#7b4db2;background:#f5effd}.calendar-event.is-overdue{box-shadow:inset 0 0 0 1px #db8d83}.calendar-more{font-size:10px;font-weight:800;color:#345e55;text-decoration:none;padding-left:5px}.calendar-week-grid{display:grid;grid-template-columns:repeat(7,minmax(160px,1fr));overflow-x:auto;background:#e0e9e6;gap:1px}.calendar-week-column{background:#fff;min-height:460px}.calendar-week-column.today{background:#f2fbf7}.calendar-week-column>header{padding:13px;border-bottom:1px solid #e3ebe8;display:flex;justify-content:space-between}.calendar-week-column>header span{font-size:11px;text-transform:uppercase;color:#60736f;font-weight:800}.calendar-week-column>header a{font-weight:900;text-decoration:none;color:#17483e}.calendar-week-events{padding:9px;display:grid;gap:8px}.calendar-event-card{display:grid;gap:3px;padding:10px;border-radius:11px;text-decoration:none;color:#203934;border-left:5px solid #9aa}.calendar-event-card.agenda{background:#edf5ff;border-color:#2563a6}.calendar-event-card.task{background:#fff5e8;border-color:#d77a16}.calendar-event-card.followup{background:#f5effd;border-color:#7b4db2}.calendar-event-card span{font-size:9px;text-transform:uppercase;font-weight:900;opacity:.7}.calendar-event-card b{font-size:12px}.calendar-event-card small{font-size:10px}.calendar-empty-day{font-size:11px;color:#83928f;text-align:center;padding:25px 6px}.calendar-list-view{padding:18px;display:grid;gap:10px}.calendar-list-event{display:grid;grid-template-columns:68px 1fr auto;gap:16px;align-items:center;border:1px solid #e0e8e5;border-left:6px solid #879;padding:13px;border-radius:14px}.calendar-list-event.agenda{border-left-color:#2563a6}.calendar-list-event.task{border-left-color:#d77a16}.calendar-list-event.followup{border-left-color:#7b4db2}.calendar-list-date{text-align:center;border-right:1px solid #e0e8e5;padding-right:12px}.calendar-list-date b,.calendar-list-date span,.calendar-list-date small{display:block}.calendar-list-date b{font-size:24px;color:#173f37}.calendar-list-date span{text-transform:uppercase;font-size:10px;font-weight:900}.calendar-list-body>span{font-size:10px;text-transform:uppercase;font-weight:900;color:#647a75}.calendar-list-body h3{margin:3px 0;font-size:15px}.calendar-list-body p{margin:0 0 6px;color:#61736f;font-size:12px}.calendar-list-body>div{display:flex;flex-wrap:wrap;gap:14px}.calendar-dashboard-bottom{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.calendar-mini-list{display:grid}.calendar-mini-list>a{display:grid;grid-template-columns:10px 1fr auto;gap:10px;align-items:center;padding:11px 2px;border-bottom:1px solid #e7eeeb;text-decoration:none;color:#263f3a}.calendar-mini-list i{width:9px;height:36px;border-radius:6px;background:#899}.calendar-mini-list i.agenda{background:#2563a6}.calendar-mini-list i.task{background:#d77a16}.calendar-mini-list i.followup{background:#7b4db2}.calendar-mini-list b,.calendar-mini-list small{display:block}.calendar-mini-list b{font-size:12px}.calendar-mini-list small{font-size:10px;color:#697c78}.calendar-mini-list>a>span{font-size:11px;font-weight:900;color:#47625c}
@media(max-width:1180px){.calendar-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-metric-grid{grid-template-columns:repeat(2,1fr)}.calendar-day-cell{min-height:130px}.calendar-toolbar{grid-template-columns:1fr}.calendar-toolbar h2{order:-1}.calendar-navigation,.calendar-view-switch{justify-content:center}}
@media(max-width:760px){.calendar-metric-grid{grid-template-columns:1fr 1fr;gap:10px}.calendar-metric-grid article{padding:13px}.calendar-metric-grid b{font-size:24px}.calendar-filter-form{grid-template-columns:1fr}.calendar-weekday-row,.calendar-month-grid{min-width:760px}.calendar-main-panel{overflow-x:auto}.calendar-day-cell{min-height:120px}.calendar-dashboard-bottom{grid-template-columns:1fr}.calendar-list-event{grid-template-columns:54px 1fr}.calendar-list-event>.btn{grid-column:2}.calendar-view-switch{overflow:auto;justify-content:flex-start}.calendar-page-head .page-head-actions{width:100%}}

/* CRM Enterprise 1.0 - red jerárquica de referentes, líderes y ciudadanía */
.leadership-metrics{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:18px}.leadership-control{overflow:visible}.inline-filter{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:18px}.inline-filter label{display:grid;gap:6px;min-width:min(440px,100%)}.leadership-tree-wrap{overflow:auto;padding:8px 2px 8px 10px}.leadership-tree{list-style:none;margin:0;padding-left:0;position:relative}.leadership-tree .leadership-tree{margin-left:36px;padding-left:28px;border-left:2px solid #cbdad5}.leadership-tree li{position:relative;margin:12px 0}.leadership-tree .leadership-tree>li:before{content:"";position:absolute;left:-28px;top:31px;width:28px;border-top:2px solid #cbdad5}.leadership-node{display:grid;grid-template-columns:minmax(260px,1.5fr) auto auto;gap:16px;align-items:center;min-width:680px;padding:13px 15px;border:1px solid #dbe6e2;border-left:6px solid #64877e;border-radius:15px;background:#fff;box-shadow:0 7px 20px rgba(16,55,47,.06)}.leadership-node.role-referente_principal{border-left-color:#7a1118;background:linear-gradient(90deg,#fff7f7,#fff 26%)}.leadership-node.role-referente_politico{border-left-color:#b56a1f}.leadership-node.role-lider_territorial{border-left-color:#0b6856}.leadership-node.role-lider_sectorial{border-left-color:#246b91}.leadership-node.role-coordinador{border-left-color:#7b4db2}.leadership-node.role-enlace{border-left-color:#d7b45a}.leadership-node.role-ciudadano{border-left-color:#8da39d}.leadership-node-main{display:flex;align-items:center;gap:11px;min-width:0}.leadership-avatar{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:50%;background:#123e36;color:#fff;font-weight:900}.leadership-node-main>div{min-width:0}.leadership-node-main b,.leadership-node-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leadership-node-main small{color:#647770;font-size:11px;margin-top:2px}.leadership-node-stats{display:flex;gap:7px}.leadership-node-stats span{min-width:74px;padding:7px 9px;text-align:center;background:#f2f6f4;border-radius:10px;color:#5d706a;font-size:9px;text-transform:uppercase;font-weight:800}.leadership-node-stats b{display:block;color:#163f37;font-size:16px}.leadership-node-actions{display:flex;gap:6px}.leadership-node-actions a{padding:7px 9px;border:1px solid #d8e2df;border-radius:8px;text-decoration:none;color:#244c43;font-size:10px;font-weight:800}.leadership-node-actions a:hover{background:#edf6f3}.leadership-control .empty-state{padding:42px;text-align:center;border:1px dashed #bdcfca;border-radius:15px;background:#f8fbfa}.table-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.table-actions form{display:inline}.link-button{border:0;background:transparent;color:#7a1118;text-decoration:underline;cursor:pointer;padding:0;font:inherit}.leadership-control+section select[multiple]{min-height:230px}.leadership-metrics .metric-card{min-width:0}
@media(max-width:1180px){.leadership-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.leadership-node{grid-template-columns:minmax(260px,1fr) auto}.leadership-node-actions{grid-column:1/-1;justify-content:flex-end}}
@media(max-width:760px){.leadership-metrics{grid-template-columns:1fr 1fr}.inline-filter{display:grid;grid-template-columns:1fr}.inline-filter label{min-width:0}.leadership-tree-wrap{padding-left:0}.leadership-tree .leadership-tree{margin-left:20px;padding-left:16px}.leadership-tree .leadership-tree>li:before{left:-16px;width:16px}.leadership-node{min-width:560px}.page-actions{width:100%;display:flex;gap:8px;flex-wrap:wrap}.page-actions .btn{flex:1}}

.installer-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.installer-actions .btn{min-width:180px}@media(max-width:700px){.installer-actions{width:100%}.installer-actions .btn{width:100%}}

/* CRM Enterprise 1.0: fondo exclusivo del asistente de instalación */
body.installer-dark-bg{
  background:
    radial-gradient(circle at 14% 12%,rgba(44,112,190,.34),transparent 30%),
    radial-gradient(circle at 88% 88%,rgba(11,54,105,.42),transparent 32%),
    linear-gradient(135deg,#06172f 0%,#0b2f5b 48%,#071d3a 100%);
  background-attachment:fixed;
}
body.installer-dark-bg .installer-shell{position:relative}
body.installer-dark-bg .installer-intro{color:#f7fbff;text-shadow:0 2px 18px rgba(0,0,0,.18)}
body.installer-dark-bg .installer-intro p{color:#dbeafe}
body.installer-dark-bg .check-row{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(5px)}
body.installer-dark-bg .installer-card{box-shadow:0 30px 85px rgba(0,10,30,.38)}

/* CRM Enterprise 1.0 - grupos familiares dentro del árbol político */
.leadership-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}
.leadership-node.role-grupo_familiar{border-left-color:#d7b45a;background:linear-gradient(90deg,#fffaf0,#fff 28%)}
.leadership-node.role-integrante_familiar{border-left-color:#7b4db2;background:linear-gradient(90deg,#fbf8ff,#fff 28%)}
.leadership-node.role-grupo_familiar .leadership-avatar{background:#9b741c;font-size:11px}
.leadership-node.role-integrante_familiar .leadership-avatar{background:#6c439c}
.leadership-family-tree{margin-top:10px!important}
@media(max-width:1180px){.leadership-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.leadership-metrics{grid-template-columns:1fr 1fr}}

/* CRM Enterprise 1.0 · Directorio ciudadano simplificado y georreferenciado */
.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.field-label-row>a{font-size:11px;font-weight:800;color:var(--green-700);text-decoration:none}
.field-label-row>a:hover{text-decoration:underline}
.location-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 0 2px}
.location-tools .gps-status{font-size:11px;color:var(--muted);font-weight:700}
.location-dialog{width:min(760px,calc(100vw - 28px));border:0;border-radius:20px;padding:0;background:transparent;box-shadow:none}
.location-dialog::backdrop{background:rgba(7,18,31,.72);backdrop-filter:blur(4px)}
.location-dialog-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:24px;box-shadow:0 30px 80px rgba(5,18,31,.35);max-height:calc(100vh - 40px);overflow:auto}
.location-dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.location-dialog-head span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.09em;font-weight:900;color:var(--green-700)}
.location-dialog-head h2{margin:4px 0 5px;color:var(--green-900)}
.location-dialog-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.dialog-close{border:0;background:#eef3f1;color:var(--green-900);width:34px;height:34px;border-radius:50%;font-size:22px;line-height:1;cursor:pointer;flex:none}
.dialog-close:hover{background:#dfe9e5}
.map-coordinate{display:inline-flex;margin-top:4px;font-size:10px;font-weight:800;color:var(--green-700);text-decoration:none}
.map-coordinate:hover{text-decoration:underline}
@media(max-width:720px){.location-dialog-card{padding:18px}.location-dialog-card .grid{grid-template-columns:1fr}.location-tools .btn{width:100%}.location-tools .gps-status{width:100%}}

/* CRM Enterprise 1.0 - actualización nacional de veredas */
.village-sync-hero .small-metric{font-size:1rem;line-height:1.3;overflow-wrap:anywhere}
.progress-track{height:16px;border-radius:999px;background:#dbe4f0;overflow:hidden;margin:12px 0 22px}
.progress-track span{display:block;height:100%;background:linear-gradient(90deg,#17355f,#2474c6);transition:width .25s ease}
.action-row{display:flex;gap:10px;flex-wrap:wrap}.action-row .btn{flex:1 1 220px}


/* CRM Enterprise 1.0 · georreferenciación ocultable y grupo de hogar */
.geo-coordinate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.geo-coordinate-grid[hidden]{display:none!important}.territory-admin-link{display:flex;justify-content:flex-start;margin-top:-2px}.household-address-fields{border:1px dashed rgba(31,78,121,.24);border-radius:14px;padding:14px;background:rgba(241,246,251,.62)}.household-address-fields[hidden]{display:none!important}.household-same-address{padding:12px 14px;border-radius:12px;background:rgba(31,78,121,.07);border:1px solid rgba(31,78,121,.14)}@media(max-width:720px){.geo-coordinate-grid{grid-template-columns:1fr}.territory-admin-link .btn{width:100%;text-align:center}}


/* CRM Enterprise 1.0 · estado de georreferenciación y residencia heredada */
.gps-status{border:0;border-radius:999px;padding:9px 14px;font-size:12px;font-weight:900;line-height:1.1;opacity:1!important;cursor:default;color:#fff;box-shadow:0 4px 12px rgba(15,23,42,.12)}
.gps-status.is-saved{background:#15803d;color:#fff}
.gps-status.is-pending{background:#b91c1c;color:#fff}
.gps-status.is-working{background:#b45309;color:#fff}
.household-inherited-address{border:1px solid rgba(21,128,61,.24);border-radius:14px;padding:14px;background:rgba(240,253,244,.86)}
.household-inherited-address[hidden]{display:none!important}
.household-inherited-address input[readonly]{background:#fff;color:#18372a;border-color:rgba(21,128,61,.20);cursor:not-allowed}
.household-inherited-address small{display:block;margin-top:8px;color:#406451;line-height:1.45}

/* CRM Enterprise 1.0 · botón de georreferenciación y dirección del integrante */
.location-tools .gps-action{border:0;color:#fff;font-weight:900;box-shadow:0 5px 14px rgba(15,23,42,.16);transition:background .2s ease,transform .2s ease,box-shadow .2s ease}
.location-tools .gps-action::before{content:"";width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:8px;background:currentColor;box-shadow:0 0 0 3px rgba(255,255,255,.22)}
.location-tools .gps-action.is-pending{background:#b91c1c;color:#fff}
.location-tools .gps-action.is-saved{background:#15803d;color:#fff}
.location-tools .gps-action.is-working{background:#b45309;color:#fff}
.location-tools .gps-action:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(15,23,42,.22)}
.location-tools .gps-action:disabled{opacity:.86;cursor:wait}
.household-inherited-address input[readonly]{background:#eef2f7;color:#334155;cursor:not-allowed}
.household-address-fields:not([hidden]){animation:crcAddressReveal .18s ease-out}
@keyframes crcAddressReveal{from{opacity:.35;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* CRM Enterprise 1.0 · zona integrada al selector de barrio o vereda */

/* CRM Enterprise 1.0 · Estructura jerárquica de campaña */
.campaign-tree{max-width:1180px;margin:0 auto;padding:8px 4px 24px;overflow-x:auto}
.campaign-tree ul{list-style:none;margin:0;padding-left:34px;position:relative}
.campaign-tree ul:before{content:"";position:absolute;left:16px;top:0;bottom:24px;border-left:2px solid #dbe6ec}
.campaign-tree li{position:relative;padding:14px 0 0 22px;min-width:300px}
.campaign-tree li:before{content:"";position:absolute;left:-18px;top:40px;width:38px;border-top:2px solid #dbe6ec}
.campaign-tree-node{border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:var(--shadow-sm);padding:15px 17px;max-width:720px}
.campaign-tree-node h3{margin:8px 0 5px;color:#102a43;font-size:18px}
.campaign-tree-node-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.campaign-tree-actions{display:flex;align-items:center;gap:6px}.campaign-tree-actions form{margin:0}
.campaign-tree-responsible{display:flex;flex-direction:column;gap:2px;margin:7px 0;color:#334e68}.campaign-tree-responsible small{color:var(--muted)}
.campaign-tree-functions{margin-top:10px;padding:9px 11px;background:#f7fafb;border-radius:10px;color:#52697d;font-size:10px}
.campaign-tree-node.candidate-root{max-width:760px;border:2px solid #1d6786;background:linear-gradient(135deg,#eff9fc,#fff);margin-bottom:4px}
.candidate-root-main{display:flex;align-items:center;gap:14px}.candidate-root-main img,.candidate-root-avatar{width:58px;height:58px;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:#12395b;color:#fff;font-size:22px;font-weight:900}
.candidate-root-main h3{font-size:22px;margin:5px 0 2px}.candidate-root-main p{margin:0;color:var(--muted)}
.campaign-structure-summary .form-help{margin-top:12px}
@media(max-width:720px){.campaign-tree ul{padding-left:20px}.campaign-tree ul:before{left:7px}.campaign-tree li{padding-left:12px;min-width:260px}.campaign-tree li:before{left:-13px;width:24px}.campaign-tree-node{min-width:0}.campaign-tree-node-head{align-items:flex-start}.campaign-tree-actions{flex-wrap:wrap;justify-content:flex-end}}

/* CRM Enterprise 1.0: navegación parcial del sidebar */
.main-content{transition:opacity .16s ease,filter .16s ease}
.main-content.crc-partial-loading{opacity:.58;filter:saturate(.82);pointer-events:none;cursor:progress}
.main-content.crc-partial-loaded{animation:crcMainContentIn .16s ease both}
@keyframes crcMainContentIn{from{opacity:.72;transform:translateY(2px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.main-content,.main-content.crc-partial-loaded{transition:none;animation:none}}

/* CRM Enterprise 1.0 - importación NUIP resiliente */
.nuip-import-progress{margin-top:16px}.nuip-import-progress .panel-heading{align-items:center}.nuip-import-progress .panel-heading>strong{font-size:24px;color:var(--green-800)}.nuip-import-progress .progress-track{margin:8px 0 14px}.nuip-import-metrics{margin:12px 0}.nuip-import-metrics .stat-card{min-height:auto}.nuip-import-progress [data-nuip-status]{margin:10px 0}

/* CRM Enterprise 1.0 - paginación global centrada */
.crc-page-hidden{display:none!important}
.crc-table-pagination{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;width:100%;margin:18px auto 4px;text-align:center}
.crc-pagination-summary{font-size:11px;font-weight:800;color:var(--muted)}
.crc-pagination-nav{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;width:100%}
.crc-pagination-button{min-width:36px;height:34px;padding:0 10px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--green-900);font-size:11px;font-weight:900;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease}
.crc-pagination-button:hover:not(:disabled){border-color:var(--green-600);background:#f1f8f5;transform:translateY(-1px)}
.crc-pagination-button.active{background:var(--green-800);border-color:var(--green-800);color:#fff;box-shadow:0 3px 8px rgba(15,76,61,.18)}
.crc-pagination-button:disabled{opacity:.42;cursor:not-allowed;background:#f5f7f6}
.crc-pagination-ellipsis{display:inline-grid;place-items:center;min-width:24px;height:34px;color:var(--muted);font-weight:900}
@media(max-width:640px){.crc-pagination-nav{gap:4px}.crc-pagination-button{min-width:32px;height:32px;padding:0 7px;font-size:10px}}



/* CRM Enterprise 1.0 - encabezados de tablas interactivos */
.crc-sortable-table thead th{position:relative}
.crc-sort-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;text-align:left;text-transform:inherit;letter-spacing:inherit;cursor:pointer}
.crc-sort-trigger:hover,.crc-sort-trigger:focus-visible{color:var(--green-800);outline:none}
.crc-sort-label{min-width:0;overflow:hidden;text-overflow:ellipsis}
.crc-sort-indicator{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:34px;height:22px;padding:0 5px;border:1px solid #cddbd6;border-radius:7px;background:#fff;color:#526d65;font-size:9px;font-weight:900;letter-spacing:0;text-transform:none;line-height:1;transition:background .15s ease,border-color .15s ease,color .15s ease}
.crc-sort-trigger:hover .crc-sort-indicator,.crc-sort-trigger:focus-visible .crc-sort-indicator{border-color:var(--green-600);background:#eef7f4;color:var(--green-800)}
.crc-sort-active{background:#edf7f3!important;color:var(--green-900)!important}
.crc-sort-active .crc-sort-indicator{border-color:var(--green-700);background:var(--green-800);color:#fff}
.crc-server-sort-link{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;color:inherit;text-decoration:none;font:inherit;font-weight:inherit}
.crc-server-sort-link:hover,.crc-server-sort-link:focus-visible{color:var(--green-800);outline:none}
.crc-server-sort-link .crc-sort-indicator{display:inline-flex}
@media(max-width:700px){.crc-sort-indicator{min-width:29px;height:20px;font-size:8px}.crc-sort-trigger,.crc-server-sort-link{gap:5px}}

/* CRM Enterprise 1.0 · Accesibilidad, tablas interactivas y navegación administrativa */
html{font-size:calc(16px * var(--crc-text-scale,1))}
.header-text-size{display:inline-grid;place-items:center;min-width:38px;height:38px;padding:0 8px;border:1px solid rgba(255,255,255,.18);border-radius:10px;color:#fff;text-decoration:none;font-weight:900;letter-spacing:-.04em;transition:background .16s ease,border-color .16s ease,transform .16s ease}
.header-text-size:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.34);transform:translateY(-1px)}

/* Hover coherente en todas las tablas: transición sutil sin alterar el ancho. */
.table-wrap table tbody tr,.table table tbody tr,.tm-table tbody tr{transition:transform .16s ease,filter .16s ease,box-shadow .16s ease}
.table-wrap table tbody td,.table table tbody td,.tm-table tbody td{transition:background-color .16s ease,border-color .16s ease}
.table-wrap table tbody tr:hover,.table table tbody tr:hover,.tm-table tbody tr:hover{transform:translateY(-1px);filter:drop-shadow(0 4px 7px rgba(16,70,58,.10))}
.table-wrap table tbody tr:hover td,.table table tbody tr:hover td,.tm-table tbody tr:hover td{background:#f1f8f5}
.table-wrap table tbody tr:hover td:first-child,.table table tbody tr:hover td:first-child,.tm-table tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--green-700)}
@media (prefers-reduced-motion:reduce){.table-wrap table tbody tr,.table table tbody tr,.tm-table tbody tr,.table-wrap table tbody td,.table table tbody td,.tm-table tbody td{transition:none!important}.table-wrap table tbody tr:hover,.table table tbody tr:hover,.tm-table tbody tr:hover{transform:none;filter:none}}

/* Selector visual de submódulos con el patrón de Tablas maestras. */
.module-switcher{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:0 0 18px}
.module-switch-card{display:block;position:relative;text-decoration:none;color:inherit;background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px;min-height:88px;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}
.module-switch-card:hover{border-color:#76a99a;background:#f7fbf9;transform:translateY(-1px);box-shadow:0 7px 16px rgba(20,79,64,.08)}
.module-switch-card.active{border-color:#2c7b67;background:#f0f8f5;box-shadow:0 0 0 1px #2c7b67 inset}
.module-switch-card small{display:block;color:var(--muted);font-weight:800;font-size:.72rem}.module-switch-card strong{display:block;color:var(--green-900);margin:5px 0;font-size:.92rem}.module-switch-card b{display:block;font-family:Georgia,serif;font-size:1.35rem;color:#176b55}.module-switch-card p{margin:5px 0 0;color:var(--muted);font-size:.73rem;line-height:1.35}
.catalog-group-tabs{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(175px,1fr))!important;gap:10px!important;background:transparent!important;border:0!important;padding:0!important}
.catalog-group-tabs button{min-height:74px!important;border:1px solid var(--border)!important;border-radius:14px!important;background:#fff!important;padding:12px 14px!important;text-align:left!important;display:flex!important;justify-content:space-between!important;align-items:flex-start!important;gap:8px!important;transition:border-color .16s ease,background .16s ease,transform .16s ease!important}
.catalog-group-tabs button:hover{border-color:#76a99a!important;background:#f7fbf9!important;transform:translateY(-1px)}
.catalog-group-tabs button.active{border-color:#2c7b67!important;background:#f0f8f5!important;box-shadow:0 0 0 1px #2c7b67 inset!important;color:var(--green-900)!important}
.catalog-group-tabs button b{font-family:Georgia,serif;color:#176b55;font-size:1.15rem}

/* Google Maps territorial */
.map-control-layout{display:grid;grid-template-columns:minmax(250px,320px) minmax(0,1fr);gap:16px;margin-bottom:18px}.map-layer-panel{align-self:start}.map-layer-option{display:grid;grid-template-columns:auto 28px minmax(0,1fr);gap:9px;align-items:center;padding:10px 8px;border-bottom:1px solid var(--border);cursor:pointer}.map-layer-option input{width:17px;height:17px}.map-layer-option b,.map-layer-option small{display:block}.map-layer-option small{color:var(--muted);font-size:.72rem}.map-legend-icon{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#eef5f2;color:#0b5d4d;font-weight:900}.map-layer-option.stage-firme .map-legend-icon{color:#147a59}.map-layer-option.stage-probable .map-legend-icon{color:#2674a9}.map-layer-option.stage-indeciso .map-legend-icon{color:#d69a18}.map-layer-option.stage-opositor .map-legend-icon{color:#b9473f}.map-layer-option.stage-sin_clasificar .map-legend-icon{color:#7c8a86}.map-status{margin-top:12px;padding:10px 12px;border-radius:10px;background:#f4f7f6;color:var(--muted);font-size:.75rem;font-weight:800}.map-main-panel{padding:0!important;overflow:hidden;min-height:600px}.crc-google-map{width:100%;height:640px;min-height:520px}.map-empty{min-height:520px;display:grid;place-items:center;align-content:center;text-align:center;padding:30px;max-width:680px;margin:auto}.map-empty-icon{font-size:3rem;color:var(--green-700)}.map-empty h2{margin:8px 0}.map-empty p{color:var(--muted);line-height:1.5}.map-info{min-width:180px;max-width:280px}.map-info b,.map-info small{display:block}.map-info small{color:#477166;margin-top:3px}.map-info p{margin:7px 0 0;font-size:12px}.map-config-panel{margin-top:18px}
@media(max-width:900px){.map-control-layout{grid-template-columns:1fr}.map-main-panel{min-height:460px}.crc-google-map{height:520px}}

/* CRC 1.0.81 · patrones administrativos y lectura */
.tm-impact{padding:12px 14px;border:1px solid rgba(20,122,89,.18);border-radius:12px;background:rgba(20,122,89,.055);line-height:1.55}
.module-switch-card p{margin:6px 0 0;color:var(--muted,#65746f);font-size:.84rem;line-height:1.35}
.module-switch-card small{display:block;color:var(--muted,#65746f);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}
.module-switch-card strong{display:block;margin-top:3px}
.module-switch-card b{display:block;margin-top:7px;font-size:1.12rem}
.provider-channel-switcher,.messaging-tabs{margin-bottom:18px}
@media (max-width:760px){.module-switcher{grid-template-columns:1fr}.header-text-size{min-width:40px}}
/* 1.0.81: cobertura global del efecto hover para cualquier tabla de módulos. */
.main-content table tbody tr{transition:transform .16s ease,filter .16s ease,box-shadow .16s ease}
.main-content table tbody td{transition:background-color .16s ease,border-color .16s ease}
.main-content table tbody tr:hover{transform:translateY(-1px);filter:drop-shadow(0 4px 7px rgba(16,70,58,.10))}
.main-content table tbody tr:hover td{background:#f1f8f5}
.main-content table tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--green-700)}
@media (prefers-reduced-motion:reduce){.main-content table tbody tr,.main-content table tbody td{transition:none!important}.main-content table tbody tr:hover{transform:none;filter:none}}

/* CRM Enterprise 1.0 · ajustes de arquitectura visual y navegación parcial */
/* Red de referentes: indicadores en lectura vertical, no en seis tarjetas horizontales. */
.leadership-metrics{
  grid-template-columns:1fr!important;
  max-width:860px;
  gap:10px;
  margin-left:0;
  margin-right:auto;
}
.leadership-metrics .metric-card{
  display:grid;
  grid-template-columns:minmax(190px,.9fr) auto minmax(260px,1.3fr);
  align-items:center;
  gap:18px;
  min-height:74px;
  padding:15px 18px;
}
.leadership-metrics .metric-card>span{font-weight:850;color:var(--green-900);font-size:.9rem}
.leadership-metrics .metric-card>b{font-size:1.7rem;text-align:center;min-width:72px}
.leadership-metrics .metric-card>small{margin:0;color:var(--muted);line-height:1.4}
@media(max-width:760px){
  .leadership-metrics{max-width:none}
  .leadership-metrics .metric-card{grid-template-columns:1fr auto;gap:7px 14px}
  .leadership-metrics .metric-card>small{grid-column:1/-1}
}

/* Autorización de módulos compacta, por rol, área y página. */
.permission-guide.compact{padding-bottom:16px}
.permission-role-switcher{grid-template-columns:repeat(3,minmax(0,1fr));margin:16px 0}
.permission-role-switcher .module-switch-card{min-height:104px}
.permission-area-switcher{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:0 0 16px}
.permission-area-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:13px;background:#fff;text-decoration:none;color:var(--text);transition:.16s ease}
.permission-area-card:hover{border-color:#75a99a;background:#f7fbf9;transform:translateY(-1px)}
.permission-area-card.active{border-color:#2c7b67;background:#f0f8f5;box-shadow:0 0 0 1px #2c7b67 inset}
.permission-area-card span{font-size:.78rem;font-weight:850;color:var(--green-900)}
.permission-area-card b{display:grid;place-items:center;min-width:30px;height:26px;padding:0 7px;border-radius:999px;background:#edf5f2;color:#176b55;font-size:.76rem}
.permission-role-panel.compact{margin-top:0}
.permission-search-form{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:10px;align-items:end;margin-bottom:14px}
.permission-search-form label{display:grid;gap:6px}
.permission-page-form .enterprise-permission-table{max-height:620px}
.permission-savebar.compact{margin:14px 0 0}
.permission-pagination{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:9px;margin-top:18px;text-align:center}
.permission-pagination nav{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap}
.permission-pagination .page-current{background:var(--green-800);border-color:var(--green-800);color:#fff}
.permission-pagination .page-gap{display:inline-grid;place-items:center;min-width:24px;height:32px;color:var(--muted);font-weight:900}
.permission-pagination a.disabled{pointer-events:none;opacity:.42}
@media(max-width:980px){.permission-role-switcher{grid-template-columns:repeat(2,1fr)}.permission-area-switcher{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.permission-role-switcher,.permission-area-switcher,.permission-search-form{grid-template-columns:1fr}}

/* Mapa: capa de carga, motor activo y respaldo Leaflet. */
.map-main-panel{position:relative}
.map-loading-cover{position:absolute;inset:0;z-index:6;display:grid;place-items:center;align-content:center;gap:8px;text-align:center;padding:32px;background:linear-gradient(145deg,#f7fbf9,#eef6f3)}
.map-loading-cover[hidden]{display:none!important}
.map-loading-cover>span{font-size:3rem;color:var(--green-700)}
.map-loading-cover>b{color:var(--green-900)}
.map-loading-cover>small{max-width:500px;color:var(--muted);line-height:1.45}
.map-engine-line{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:#fff}
.map-engine-line small{color:var(--muted);font-weight:800}.map-engine-line b{font-size:.76rem;color:var(--green-800)}
.map-status.error{background:#fff0ef;color:#9b3128}
.crc-leaflet-pin-shell{background:transparent!important;border:0!important}
.crc-leaflet-pin{display:grid;place-items:center;width:30px;height:30px;border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--pin);color:#fff;box-shadow:0 3px 10px rgba(0,0,0,.28);font-size:12px;font-weight:900}
.crc-leaflet-pin>*{transform:rotate(45deg)}
.crc-leaflet-pin.puesto{font-size:13px}
.map-info a{display:inline-block;margin-top:8px;color:#0b6856;font-size:11px;font-weight:800;text-decoration:none}.map-info a:hover{text-decoration:underline}
/* Leaflet se inyecta dinámicamente; estos ajustes aseguran la altura en navegación parcial. */
.crc-google-map.leaflet-container,.crc-google-map{background:#e9efed}

/* CRM Enterprise 1.0 · administración selectiva de capas del mapa */
.map-layer-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border-bottom:1px solid var(--border)}
.map-layer-row .map-layer-option{border-bottom:0;min-width:0;padding-right:6px}
.map-layer-row .map-admin-btn{margin-right:8px;min-width:48px;padding:5px 8px;font-size:.68rem;line-height:1}
.map-layer-option em{display:block;margin-top:3px;color:var(--green-700);font-size:.66rem;font-style:normal;font-weight:850}
.map-layer-row.stage-jefes .map-legend-icon{color:#6d4ca1;background:#f3effa}
.map-admin-dialog{width:min(980px,calc(100vw - 28px));max-height:min(88vh,820px);padding:0;border:0;border-radius:18px;box-shadow:0 24px 80px rgba(8,39,32,.28);overflow:hidden;background:#fff}
.map-admin-dialog::backdrop{background:rgba(4,24,20,.48);backdrop-filter:blur(2px)}
.map-admin-shell{display:flex;flex-direction:column;max-height:min(88vh,820px)}
.map-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid var(--border);background:linear-gradient(145deg,#f8fbfa,#eef6f3)}
.map-admin-head span{display:block;color:var(--green-700);font-size:.69rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.map-admin-head h2{margin:3px 0 2px;font-size:1.15rem}.map-admin-head small{color:var(--muted)}
.dialog-close{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--text);font-size:1.25rem;cursor:pointer}
.map-admin-tools{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:12px;align-items:end;padding:14px 18px;border-bottom:1px solid var(--border)}
.map-admin-tools label{display:grid;gap:5px;font-size:.75rem;font-weight:850;color:var(--green-900)}
.map-admin-tools input{width:100%}
.map-admin-table-wrap{position:relative;overflow:auto;min-height:220px;max-height:440px}
.map-admin-table{margin:0}.map-admin-table thead th{position:sticky;top:0;z-index:2;background:#f6faf8}
.map-admin-table td:first-child,.map-admin-table th:first-child{width:58px;text-align:center}.map-admin-table input[type=checkbox]{width:17px;height:17px}
.map-admin-table td b,.map-admin-table td small{display:block}.map-admin-table td small{margin-top:3px;color:var(--muted);font-size:.7rem}
.map-admin-empty{padding:38px 20px;text-align:center;color:var(--muted);font-weight:800}
.map-admin-pagination{display:flex;justify-content:center;align-items:center;gap:5px;flex-wrap:wrap;padding:11px 16px;border-top:1px solid var(--border);background:#fafcfb}
.map-admin-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;border-top:1px solid var(--border);background:#fff}
.map-admin-foot b,.map-admin-foot small{display:block}.map-admin-foot small{margin-top:3px;color:var(--muted);font-size:.68rem}
.table-loading{padding:26px;text-align:center;color:var(--muted);font-weight:850}
@media(max-width:760px){.map-admin-tools{grid-template-columns:1fr}.map-admin-foot{align-items:stretch;flex-direction:column}.map-admin-foot .actions{justify-content:flex-end}.map-layer-row{grid-template-columns:minmax(0,1fr) auto}}
.btn.tiny{min-height:30px;padding:5px 9px;font-size:.68rem;border-radius:8px}

/* CRM Enterprise 1.0 · Gestión estratégica y compromisos */
.management-switcher{grid-template-columns:repeat(5,minmax(0,1fr))}
.management-filter{margin-bottom:16px}.management-filter-grid{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(190px,.8fr) minmax(170px,.7fr) auto;gap:10px;align-items:end}
.management-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.management-stat-grid article{background:#fff;border:1px solid var(--border);border-radius:16px;padding:16px;box-shadow:0 8px 25px rgba(25,67,57,.05)}.management-stat-grid span,.management-stat-grid small{display:block;color:var(--muted)}.management-stat-grid b{display:block;font-family:Georgia,serif;color:var(--green-900);font-size:28px;margin:6px 0}
.management-stat-columns{display:grid;grid-template-columns:1fr 1.3fr;gap:16px}.management-type{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;line-height:1.15}.management-type.type-estrategia_territorial{background:#edf4ff;color:#275b91}.management-type.type-tarea_administrativa{background:#f3f4f6;color:#4b5563}.management-type.type-compromiso_social{background:#eef8f3;color:#176b55}.management-progress{min-width:105px}.management-progress>b{display:block;margin-bottom:4px}.management-progress>span{display:block;height:6px;border-radius:999px;background:#e6ece9;overflow:hidden}.management-progress>span>i{display:block;height:100%;background:var(--green-700);border-radius:inherit}.management-followup{border-color:#bad9cf;box-shadow:0 12px 30px rgba(23,107,85,.08)}.danger-text{display:block;color:#a13a2e;font-weight:800;margin-top:4px}
[data-crm84-territory-form] small{display:block;margin-top:5px;color:var(--muted);line-height:1.35}.table-actions form{display:inline-flex;margin:0}
@media(max-width:1200px){.management-switcher{grid-template-columns:repeat(2,minmax(0,1fr))}.management-filter-grid{grid-template-columns:1fr 1fr}.management-filter-grid .form-actions{grid-column:1/-1}.management-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.management-switcher,.management-stat-grid,.management-stat-columns,.management-filter-grid{grid-template-columns:1fr}.management-filter-grid .form-actions{grid-column:auto}}


/* CRM Enterprise 1.0 - buscador global y consolidación de navegación */
.crm-global-search{display:flex;align-items:center;gap:7px;min-width:280px;max-width:460px;flex:1;margin:0 20px;padding:5px 6px 5px 12px;border:1px solid var(--border);background:#fff;border-radius:12px;box-shadow:0 3px 14px rgba(12,48,40,.06)}
.crm-global-search-icon{font-size:18px;color:var(--muted)}.crm-global-search input{border:0!important;box-shadow:none!important;outline:0;background:transparent;min-width:0;flex:1;padding:7px 4px}.crm-global-search button{border:0;background:var(--green-800,#174e42);color:#fff;border-radius:9px;padding:8px 12px;font-weight:800;cursor:pointer}
.crm-search-page-form{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:10px;max-width:780px}.crm-search-results{display:grid;gap:9px;margin-top:18px}.crm-search-count{font-size:13px;color:var(--muted);margin-bottom:4px}.crm-search-result{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;text-decoration:none;color:inherit;border:1px solid var(--border);border-radius:13px;padding:12px 14px;background:#fff;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.crm-search-result:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(12,48,40,.09);border-color:#82aa9e}.crm-search-result-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#edf6f3;color:#176b55;font-weight:900}.crm-search-result b,.crm-search-result small{display:block}.crm-search-result small{margin-top:3px;color:var(--muted);line-height:1.4}
@media(max-width:1050px){.crm-global-search{min-width:190px;margin:0 10px}.crm-global-search button{display:none}}@media(max-width:760px){.crm-global-search{order:4;width:100%;max-width:none;margin:8px 0 0}.crm-search-page-form{grid-template-columns:1fr}.crm-search-page-form .btn{width:100%}}

@media(min-width:1201px){.app-header{grid-template-columns:minmax(270px,1fr) minmax(280px,440px) auto minmax(280px,430px)}}
@media(max-width:1200px){.crm-global-search{display:none}}

/* CRM Enterprise 1.0: mayor legibilidad de clasificación electoral. */
.electoral-table td:last-child .verification-badge{
    font-size:15px;
    line-height:1.35;
    padding:8px 12px;
    min-width:120px;
    white-space:normal;
    text-align:center;
    font-weight:800;
}
.electoral-table th:last-child{min-width:150px;}

/* Agenda política unificada. */
.agenda-editor-grid textarea{min-height:105px;}
.agenda-editor-grid label small{display:block;margin-top:5px;line-height:1.35;}
.agenda-editor-grid .location-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}

/* CRM Enterprise 1.0 · normalización visual, contraste y operación día electoral */
:root{--crc-readable-text:#183a33;--crc-readable-muted:#526963;--crc-soft-panel:#f7faf9}
.main-content{min-width:0;overflow-x:hidden}.main-content>*{max-width:100%}.panel,.card,.content-card,.ai-shell,.permission-role-panel,.calendar-main-panel{min-width:0;max-width:100%}.grid>*{min-width:0}.table,.table-wrap,.tm-table-wrap,.enterprise-permission-table,.election-day-table-wrap{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}.table table,.table-wrap table,.election-day-table-wrap table{min-width:760px;width:100%}
.page-head{align-items:flex-start;gap:18px}.page-head>div:first-child{min-width:0}.page-head h1,.panel-heading h2,.panel-heading p,.page-head p{overflow-wrap:anywhere}.page-head-actions,.actions.wrap{flex-wrap:wrap}
.main-content label,.main-content td,.main-content dd{color:var(--crc-readable-text)}.main-content .form-help,.main-content .panel-heading>small,.main-content .page-head p,.main-content .panel-heading p{color:var(--crc-readable-muted)}
.main-content input,.main-content select,.main-content textarea{color:#17372f;background:#fff;border-color:#c8d8d2}.main-content input::placeholder,.main-content textarea::placeholder{color:#6f817d;opacity:1}.main-content input[readonly],.main-content input:disabled,.main-content select:disabled,.main-content textarea:disabled{color:#415b55;background:#eef3f1;opacity:1}
.main-content .btn.ghost{background:#fff;color:#17483e;border-color:#b9cec7}.main-content .btn.secondary{color:#123f35}.main-content .badge,.main-content .status-badge{font-weight:850}
.campaign-table-warning{border-color:#d7b862;background:#fff8df;color:#5e4811}.campaign-table-warning b{color:#4b3909}
.operational-error-panel{max-width:900px;margin:30px auto;padding:24px}
.election-day-contact-grid{padding:14px;border:1px solid #cfe0da;border-radius:14px;background:#f6fbf9}.election-transport-check{align-self:stretch}.election-day-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:0 0 18px}.election-day-metrics article{min-width:0;padding:16px;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:0 8px 22px rgba(16,70,58,.06)}.election-day-metrics span,.election-day-metrics small{display:block}.election-day-metrics span{font-size:.73rem;font-weight:850;color:#48635c}.election-day-metrics b{display:block;margin:5px 0;font-size:1.75rem;color:var(--green-900)}.election-team-form{grid-template-columns:repeat(3,minmax(0,1fr))}.election-day-filter{display:grid;grid-template-columns:minmax(240px,1.5fr) minmax(180px,.7fr) auto;gap:10px;align-items:end;margin-bottom:14px}.election-day-filter label{display:grid;gap:5px}.election-citizen-row{display:grid;grid-template-columns:minmax(165px,.8fr) auto minmax(220px,1.5fr) auto;gap:8px;align-items:center;min-width:580px}.mini-check{display:flex!important;align-items:center;gap:6px;white-space:nowrap;font-size:.72rem;font-weight:800}.mini-check input{width:16px;height:16px}.inline-form{margin:0}.election-day-table-wrap td small{display:block;margin-top:3px;color:#657a75}
@media(max-width:1200px){.election-day-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.election-team-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.page-head{display:grid}.page-head-actions{width:100%}.page-head-actions .btn{flex:1 1 180px}.election-day-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.election-team-form,.election-day-filter{grid-template-columns:1fr}.tc-hero,.calendar-dashboard-bottom,.management-stat-columns{grid-template-columns:1fr!important}.permission-area-switcher,.permission-role-switcher{grid-template-columns:repeat(2,minmax(0,1fr))!important}.ai-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:620px){.election-day-metrics,.permission-area-switcher,.permission-role-switcher,.ai-type-grid{grid-template-columns:1fr!important}.main-content{padding-left:12px;padding-right:12px}.panel{padding-left:14px;padding-right:14px}.page-head h1{font-size:clamp(1.45rem,7vw,2rem)}.btn{white-space:normal;text-align:center}.election-day-metrics article{padding:14px}}

/* 1.0.98 */
.main-content{min-width:0;overflow-x:hidden}.main-content .table-wrap,.main-content .enterprise-permission-table,.main-content .tc-table-wrap{max-width:100%;overflow-x:auto}.enterprise-permission-table table{width:100%;min-width:900px;table-layout:auto}

/* CRM Enterprise 1.0 — métricas compactas: etiqueta + valor + texto auxiliar */
/*
   No fuerza saltos de línea. Mantiene un espacio visual real entre las partes
   y solo permite envolver cuando el ancho disponible no alcanza.
*/
.stat-card,
.metric-grid > article:not(.metric-card),
.national-load-metrics > article,
.audit-metrics > article,
.messaging-metrics > article,
.family-metrics > article,
.electoral-metrics > article,
.user-access-metrics > article,
.executive-metrics > article,
.dashboard-summary > article,
.scope-metrics > article,
.huila-metrics > article,
.calendar-metric-grid > article,
.management-stat-grid > article,
.election-day-metrics > article {
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    align-content:center;
    column-gap:7px;
    row-gap:2px;
}

.stat-card > span,
.stat-card > b,
.stat-card > strong,
.stat-card > small,
.stat-card > em,
.metric-grid > article:not(.metric-card) > span,
.metric-grid > article:not(.metric-card) > b,
.metric-grid > article:not(.metric-card) > strong,
.metric-grid > article:not(.metric-card) > small,
.metric-grid > article:not(.metric-card) > em,
.national-load-metrics > article > span,
.national-load-metrics > article > b,
.national-load-metrics > article > strong,
.national-load-metrics > article > small,
.audit-metrics > article > span,
.audit-metrics > article > b,
.audit-metrics > article > strong,
.audit-metrics > article > small,
.messaging-metrics > article > span,
.messaging-metrics > article > b,
.messaging-metrics > article > strong,
.messaging-metrics > article > small,
.family-metrics > article > span,
.family-metrics > article > b,
.family-metrics > article > strong,
.family-metrics > article > small,
.electoral-metrics > article > span,
.electoral-metrics > article > b,
.electoral-metrics > article > strong,
.electoral-metrics > article > small,
.user-access-metrics > article > span,
.user-access-metrics > article > b,
.user-access-metrics > article > strong,
.user-access-metrics > article > small,
.executive-metrics > article > span,
.executive-metrics > article > b,
.executive-metrics > article > strong,
.executive-metrics > article > small,
.dashboard-summary > article > span,
.dashboard-summary > article > b,
.dashboard-summary > article > strong,
.dashboard-summary > article > small,
.scope-metrics > article > span,
.scope-metrics > article > b,
.scope-metrics > article > strong,
.scope-metrics > article > small,
.huila-metrics > article > span,
.huila-metrics > article > b,
.huila-metrics > article > strong,
.huila-metrics > article > small,
.calendar-metric-grid > article > span,
.calendar-metric-grid > article > b,
.calendar-metric-grid > article > strong,
.calendar-metric-grid > article > small,
.management-stat-grid > article > span,
.management-stat-grid > article > b,
.management-stat-grid > article > strong,
.management-stat-grid > article > small,
.election-day-metrics > article > span,
.election-day-metrics > article > b,
.election-day-metrics > article > strong,
.election-day-metrics > article > small {
    display:inline!important;
    margin:0!important;
    line-height:1.25;
}

/* Los enlaces usados como texto auxiliar también deben permanecer en flujo. */
.stat-card > small a,
.metric-grid > article:not(.metric-card) > small a {display:inline;}

@media(max-width:620px){
    .stat-card,
    .metric-grid > article:not(.metric-card),
    .national-load-metrics > article,
    .audit-metrics > article,
    .messaging-metrics > article,
    .family-metrics > article,
    .electoral-metrics > article,
    .user-access-metrics > article,
    .executive-metrics > article,
    .dashboard-summary > article,
    .scope-metrics > article,
    .huila-metrics > article,
    .calendar-metric-grid > article,
    .management-stat-grid > article,
    .election-day-metrics > article {column-gap:6px;row-gap:1px;}
}


/* CRM Enterprise 1.0 — composición específica de indicadores por módulo */
/*
   En estos módulos: etiqueta en la primera línea; valor + texto auxiliar en la segunda.
   La excepción es intencional y no modifica el patrón compacto del resto del CRM.
*/
.audit-metrics > article,
.diagnostic-summary > article,
.electoral-metrics > article,
.election-day-metrics > article,
.calendar-metric-grid > article,
.messaging-metrics > article,
.user-access-metrics > article {
    display:grid!important;
    grid-template-columns:max-content minmax(0,1fr)!important;
    align-items:baseline!important;
    align-content:center!important;
    column-gap:8px!important;
    row-gap:3px!important;
}
.audit-metrics > article > span,
.diagnostic-summary > article > span,
.electoral-metrics > article > span,
.election-day-metrics > article > span,
.calendar-metric-grid > article > span,
.messaging-metrics > article > span,
.user-access-metrics > article > span {
    grid-column:1 / -1!important;
    display:block!important;
    width:100%!important;
    margin:0!important;
    line-height:1.25!important;
}
.audit-metrics > article > b,
.audit-metrics > article > strong,
.diagnostic-summary > article > b,
.diagnostic-summary > article > strong,
.electoral-metrics > article > b,
.electoral-metrics > article > strong,
.election-day-metrics > article > b,
.election-day-metrics > article > strong,
.calendar-metric-grid > article > b,
.calendar-metric-grid > article > strong,
.messaging-metrics > article > b,
.messaging-metrics > article > strong,
.user-access-metrics > article > b,
.user-access-metrics > article > strong {
    grid-column:1!important;
    display:inline!important;
    margin:0!important;
    line-height:1.2!important;
}
.audit-metrics > article > small,
.diagnostic-summary > article > small,
.electoral-metrics > article > small,
.election-day-metrics > article > small,
.calendar-metric-grid > article > small,
.messaging-metrics > article > small,
.user-access-metrics > article > small {
    grid-column:2!important;
    display:inline!important;
    margin:0!important;
    line-height:1.3!important;
}

/* Tarjetas que el usuario pidió completamente centradas. */
.agenda-summary-grid > article,
.survey-execution-summary > article,
.survey-results-kpis > article,
.catalog-dashboard > article {
    text-align:center!important;
    justify-items:center!important;
    align-content:center!important;
}
.agenda-summary-grid > article > span,
.agenda-summary-grid > article > b,
.agenda-summary-grid > article > small,
.survey-execution-summary > article > span,
.survey-execution-summary > article > b,
.survey-execution-summary > article > small,
.survey-results-kpis > article > span,
.survey-results-kpis > article > b,
.survey-results-kpis > article > small,
.catalog-dashboard > article > span,
.catalog-dashboard > article > b,
.catalog-dashboard > article > small {
    text-align:center!important;
    justify-self:center!important;
}

/* Autorización de módulos: tarjetas de Rol del sistema. */
.permission-role-switcher .module-switch-card {
    text-align:center!important;
}
.permission-role-switcher .module-switch-card > small,
.permission-role-switcher .module-switch-card > strong,
.permission-role-switcher .module-switch-card > b,
.permission-role-switcher .module-switch-card > p {
    text-align:center!important;
}

/* Administración de tablas maestras. */
.tm-grid .tm-card {
    text-align:center!important;
}
.tm-grid .tm-card > small,
.tm-grid .tm-card > strong,
.tm-grid .tm-card > b {
    text-align:center!important;
}

/* Catálogos ciudadanos. */
.catalog-module-switcher .module-switch-card,
.catalog-group-tabs > button {
    text-align:center!important;
}
.catalog-module-switcher .module-switch-card > small,
.catalog-module-switcher .module-switch-card > strong,
.catalog-module-switcher .module-switch-card > b,
.catalog-module-switcher .module-switch-card > p,
.catalog-group-tabs > button > span,
.catalog-group-tabs > button > b {
    text-align:center!important;
}

/* Importar / Exportar información. */
.data-exchange-switcher .module-switch-card {
    text-align:center!important;
}
.data-exchange-switcher .module-switch-card > small,
.data-exchange-switcher .module-switch-card > strong,
.data-exchange-switcher .module-switch-card > b,
.data-exchange-switcher .module-switch-card > p {
    text-align:center!important;
}

@media(max-width:620px){
    .audit-metrics > article,
    .diagnostic-summary > article,
    .electoral-metrics > article,
    .election-day-metrics > article,
    .calendar-metric-grid > article,
    .messaging-metrics > article,
    .user-access-metrics > article {
        grid-template-columns:auto minmax(0,1fr)!important;
        column-gap:6px!important;
    }
}

/* CRM Enterprise 1.0 · Gestión de contacto territorial */
.territorial-contact-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.territorial-contact-tabs a{padding:10px 14px;border-radius:12px;border:1px solid var(--border);background:#fff;color:var(--text);font-weight:700;text-decoration:none}.territorial-contact-tabs a.active{background:#0b5d4b;color:#fff;border-color:#0b5d4b}.territorial-contact-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 16px}.territorial-contact-metrics article{background:#fff;border:1px solid var(--border);border-radius:16px;padding:15px;box-shadow:var(--shadow-sm)}.territorial-contact-metrics span,.territorial-contact-metrics b,.territorial-contact-metrics small{display:block}.territorial-contact-metrics span{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.territorial-contact-metrics b{font-size:26px;margin:5px 0 2px;color:#133c34}.territorial-contact-metrics small{color:var(--muted)}
.territorial-filter{display:grid;grid-template-columns:minmax(240px,2fr) repeat(2,minmax(170px,1fr)) auto;gap:10px;align-items:end}.territorial-filter input,.territorial-filter select{width:100%}.territorial-assignment-form select[multiple]{min-height:145px}.territorial-scope-choice{display:flex;gap:18px;flex-wrap:wrap;padding:12px;border-radius:12px;background:#f5faf8;border:1px solid var(--border)}.territorial-scope-choice label{display:flex;align-items:center;gap:8px}.territorial-contact-selector{max-height:390px;overflow:auto;border:1px solid var(--border);border-radius:14px;margin-top:14px}.territorial-contact-selector table{margin:0}.territorial-assignment-list{display:grid;gap:12px;margin-top:14px}.territorial-assignment-card{border:1px solid var(--border);border-left:5px solid #98aaa4;border-radius:16px;background:#fff;padding:15px}.territorial-assignment-card.state-en_gestion{border-left-color:#d49b2a}.territorial-assignment-card.state-completada{border-left-color:#1f8d66}.territorial-assignment-main{display:flex;justify-content:space-between;gap:16px}.territorial-assignment-main h3{margin:6px 0 2px}.territorial-assignment-main p{margin:0 0 4px}.territorial-assignment-main small{color:var(--muted)}.territorial-assignment-status{text-align:right;display:flex;flex-direction:column;gap:4px}.territorial-assignment-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.territorial-assignment-meta span{padding:7px 10px;background:#f4f7f6;border-radius:10px;font-size:12px}.territorial-assignment-meta b{margin-right:4px}.territorial-interaction{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}.territorial-interaction summary{cursor:pointer;font-weight:800;color:#0b5d4b}.territorial-interaction form{margin-top:12px}.contact-type-badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#e7f4ef;color:#0b5d4b;font-size:11px;font-weight:800}.network-territory-box{border:1px solid var(--border);border-radius:14px;padding:14px;background:#f8fbfa}.network-territory-box .form-section-title{margin-bottom:12px}
@media(max-width:1200px){.territorial-contact-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:820px){.territorial-contact-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.territorial-filter{grid-template-columns:1fr}.territorial-assignment-main{flex-direction:column}.territorial-assignment-status{text-align:left}}@media(max-width:520px){.territorial-contact-metrics{grid-template-columns:1fr}}


/* CRM Enterprise 1.0.106 · restauración visual completa del instalador */
.installer-visual-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:26px 0 8px}
.installer-visual-card{display:flex;align-items:center;gap:12px;min-height:82px;padding:13px 14px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(255,255,255,.06));box-shadow:inset 0 1px 0 rgba(255,255,255,.08);backdrop-filter:blur(8px)}
.installer-visual-card b,.installer-visual-card small{display:block}.installer-visual-card b{font-size:14px;color:#fff}.installer-visual-card small{margin-top:3px;color:#cfe0f4;font-size:11px;line-height:1.35}
.installer-visual-icon{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border-radius:14px;background:linear-gradient(145deg,rgba(77,178,255,.28),rgba(44,114,205,.14));color:#d8eeff;border:1px solid rgba(141,205,255,.18)}
.installer-visual-icon svg,.installer-next-icon svg,.installer-progress-core svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.installer-intro-note{display:grid;gap:5px;margin-top:14px;padding:14px 16px;border-radius:14px;background:rgba(1,13,33,.28);border:1px solid rgba(255,255,255,.1);color:#eaf5ff}
.installer-intro-note b{font-size:12px;text-transform:uppercase;letter-spacing:.08em}.installer-intro-note span{font-size:12px;line-height:1.55;color:#d6e7f7}
.installer-content-options{margin-top:12px}.installer-content-options .installer-option{position:relative;overflow:hidden}.installer-content-options .installer-option:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(#176b55,#46a987)}
.installer-content-options .installer-option:nth-child(2):before{background:linear-gradient(#2d6fa8,#5ca8d7)}.installer-content-options .installer-option:nth-child(3):before{background:linear-gradient(#7555aa,#9c83c8)}.installer-content-options .installer-option:nth-child(4):before{background:linear-gradient(#ae791a,#e0b64d)}.installer-content-options .installer-option:nth-child(5):before{background:linear-gradient(#7c8894,#aab3bb)}
.installer-option-copy{padding-left:2px}.installer-next-step{display:flex;align-items:center;gap:12px;margin:12px 0 6px;padding:13px 14px;border-radius:14px;border:1px solid #cfe0da;background:linear-gradient(145deg,#f7fbf9,#edf7f3)}
.installer-next-icon{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:50%;background:#176b55;color:#fff}.installer-next-step b,.installer-next-step small{display:block}.installer-next-step small{margin-top:3px;line-height:1.45;color:var(--muted)}
.installer-shell-result{grid-template-columns:minmax(320px,42%) minmax(420px,720px)}.installer-progress-intro,.installer-reset-intro{align-self:center}.installer-progress-visual{position:relative;width:210px;height:210px;margin:28px auto 24px;display:grid;place-items:center}
.installer-progress-orbit{position:absolute;inset:14px;border:1px solid rgba(255,255,255,.18);border-radius:50%;box-shadow:0 0 0 28px rgba(255,255,255,.025),0 0 0 58px rgba(255,255,255,.018)}
.installer-progress-orbit:before,.installer-progress-orbit:after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background:#6fc8ff;box-shadow:0 0 22px rgba(111,200,255,.75)}.installer-progress-orbit:before{top:13px;right:36px}.installer-progress-orbit:after{bottom:20px;left:25px;background:#78e0b2;box-shadow:0 0 22px rgba(120,224,178,.65)}
.installer-progress-core{display:grid;place-items:center;width:92px;height:92px;border-radius:26px;color:#dff3ff;background:linear-gradient(145deg,rgba(86,174,244,.3),rgba(18,70,133,.38));border:1px solid rgba(255,255,255,.18);box-shadow:0 18px 50px rgba(0,0,0,.22)}.installer-progress-core svg{width:42px;height:42px}
.installer-mini-features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.installer-mini-features span{padding:9px 11px;border-radius:11px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08);color:#dcecff;font-size:11px;font-weight:700}
.installer-progress-track{height:12px;background:#e5ebe9;border-radius:999px;overflow:hidden;margin:18px 0}.installer-progress-track>div{height:100%;background:linear-gradient(90deg,#176b55,#46a987,#5ca8d7);border-radius:inherit;transition:width .2s ease}.installer-progress-caption{display:flex;align-items:baseline;gap:7px;margin:-7px 0 18px}.installer-progress-caption b{font-size:24px;color:var(--green-900)}.installer-progress-caption span{color:var(--muted);font-size:12px}
.installer-reset-visual{width:250px;height:210px;margin:24px auto 18px;display:grid;place-items:center;color:#dcefff}.installer-reset-visual svg{width:210px;height:210px;fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 12px 28px rgba(0,0,0,.2))}.installer-reset-visual.compact{height:180px}.installer-reset-visual.compact svg{width:180px;height:180px}
@media(max-width:1050px){.installer-shell-result{grid-template-columns:1fr}.installer-progress-visual,.installer-reset-visual{margin-left:auto;margin-right:auto}}
@media(max-width:620px){.installer-visual-board,.installer-mini-features{grid-template-columns:1fr}.installer-visual-card{min-height:72px}.installer-progress-visual{width:160px;height:160px}.installer-reset-visual{width:180px;height:160px}.installer-reset-visual svg{width:160px;height:160px}}


/* CRM Enterprise 1.0.107 · identidad HTML CRM POLÍTICO en instalador */
.crm-product-intro{align-self:center}
.crm-political-brand{display:flex;align-items:center;gap:16px;margin:0 0 22px;padding:14px 16px;width:max-content;max-width:100%;border-radius:20px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 18px 46px rgba(0,7,25,.18);backdrop-filter:blur(10px)}
.crm-political-mark{position:relative;width:72px;height:72px;flex:0 0 72px;border-radius:22px;background:linear-gradient(145deg,#1b7b63,#194b78);border:1px solid rgba(255,255,255,.24);box-shadow:0 14px 35px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.18);overflow:hidden}
.crm-political-mark:before{content:"";position:absolute;left:13px;bottom:12px;width:44px;height:29px;border:2px solid rgba(255,255,255,.88);border-radius:9px 9px 13px 13px;transform:skewY(-4deg)}
.crm-mark-ballot{position:absolute;right:10px;bottom:9px;width:27px;height:33px;border-radius:6px;background:#f5fbff;box-shadow:0 5px 14px rgba(0,0,0,.2)}
.crm-mark-ballot:before{content:"";position:absolute;left:6px;top:7px;width:14px;height:2px;border-radius:2px;background:#2e6c8d;box-shadow:0 6px 0 #2e6c8d}
.crm-mark-ballot i{position:absolute;left:7px;bottom:6px;width:11px;height:6px;border-left:3px solid #1b7b63;border-bottom:3px solid #1b7b63;transform:rotate(-45deg)}
.crm-mark-node{position:absolute;z-index:2;width:9px;height:9px;border-radius:50%;background:#90e4bd;box-shadow:0 0 0 3px rgba(144,228,189,.16)}
.crm-node-a{left:13px;top:15px}.crm-node-b{left:34px;top:9px}.crm-node-c{left:22px;top:36px}
.crm-mark-link{position:absolute;z-index:1;height:2px;background:rgba(255,255,255,.7);transform-origin:left center}.crm-link-a{left:20px;top:19px;width:18px;transform:rotate(-17deg)}.crm-link-b{left:18px;top:23px;width:21px;transform:rotate(58deg)}
.crm-political-wordmark{display:grid;line-height:1}.crm-political-wordmark strong{font-size:31px;letter-spacing:.08em;color:#fff}.crm-political-wordmark b{margin-top:4px;font-size:14px;letter-spacing:.22em;color:#9fe4c3}.crm-political-wordmark small{margin-top:8px;font-size:10px;letter-spacing:.05em;color:#d6e8f6}
.crm-capability-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:25px 0 12px}.crm-capability-grid article{min-height:92px;padding:13px 14px;border-radius:15px;background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.055));border:1px solid rgba(255,255,255,.11);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}.crm-capability-grid b,.crm-capability-grid small{display:block}.crm-capability-grid b{font-size:12px;color:#fff;letter-spacing:.02em}.crm-capability-grid small{margin-top:5px;color:#cfe0f1;font-size:10.5px;line-height:1.5}
.crm-product-note{display:grid;gap:4px;margin-top:14px;padding:13px 15px;border-left:3px solid #85dcb5;border-radius:4px 13px 13px 4px;background:rgba(0,10,30,.25)}.crm-product-note b{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:#9fe4c3}.crm-product-note span{font-size:11px;line-height:1.55;color:#d8e8f5}
.crm-card-brand{display:flex;align-items:center;gap:10px;margin-bottom:14px}.crm-card-brand-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:linear-gradient(145deg,#176b55,#285e88);color:#fff;font-size:12px;font-weight:900;letter-spacing:.08em;box-shadow:0 8px 20px rgba(23,107,85,.22)}.crm-card-brand div{display:grid;gap:2px}.crm-card-brand b{font-size:13px;letter-spacing:.08em;color:var(--green-900)}.crm-card-brand small{font-size:10px;color:var(--muted)}
.crm-system-summary{display:grid;gap:4px;margin:12px 0 6px;padding:13px 14px;border-radius:14px;border:1px solid #cfe0da;background:linear-gradient(145deg,#f7fbf9,#edf7f3)}.crm-system-summary b{font-size:12px;color:var(--green-900)}.crm-system-summary small{line-height:1.5;color:var(--muted)}
@media(max-width:620px){.crm-political-brand{width:100%}.crm-political-mark{width:62px;height:62px;flex-basis:62px}.crm-political-wordmark strong{font-size:26px}.crm-capability-grid{grid-template-columns:1fr}.crm-capability-grid article{min-height:auto}}


/* CRM Enterprise 1.0.108 · logo CRM POLÍTICO en la plataforma */
.crm-app-logo{--crm-app-size:50px;--crm-app-scale:.694444;display:inline-block;position:relative;width:var(--crm-app-size);height:var(--crm-app-size);flex:0 0 var(--crm-app-size);overflow:hidden;border-radius:15px;vertical-align:middle;box-shadow:0 10px 24px rgba(12,48,70,.20)}
.crm-app-logo-art.crm-political-mark{display:block;margin:0;width:72px;height:72px;max-width:none;transform:scale(var(--crm-app-scale));transform-origin:0 0;box-shadow:none}
.crm-app-logo--header{--crm-app-size:50px;--crm-app-scale:.694444;border-radius:15px}
.crm-app-logo--cover{--crm-app-size:60px;--crm-app-scale:.833333;border-radius:18px;box-shadow:0 15px 34px rgba(0,0,0,.17)}
.crm-app-logo--mobile{--crm-app-size:48px;--crm-app-scale:.666667;border-radius:14px}
.crm-app-logo--hero{--crm-app-size:70px;--crm-app-scale:.972222;border-radius:22px;box-shadow:0 14px 30px rgba(0,0,0,.20)}
.crm-app-logo--campaign-small{--crm-app-size:44px;--crm-app-scale:.611111;border-radius:11px;box-shadow:none}
.crm-app-logo--campaign-large{--crm-app-size:68px;--crm-app-scale:.944444;border-radius:18px;box-shadow:none}
.hero-symbol .crm-app-logo{position:relative;z-index:2}
.dashboard-campaign-logo .crm-app-logo,.campaign-hero-logo .crm-app-logo{margin:auto}
.login-mobile-brand.crm-mobile-product-logo{background:transparent;box-shadow:none;width:auto;height:auto;border-radius:0;padding:0}

/* Confirmación segura por checkbox para reinstalación total */
.danger-confirm-check{display:flex!important;align-items:flex-start;gap:12px;padding:14px 15px;border:1px solid #e7c7c7;border-radius:14px;background:#fff7f7;cursor:pointer}
.danger-confirm-check input[type=checkbox]{width:20px;height:20px;min-width:20px;margin:2px 0 0;accent-color:var(--danger);cursor:pointer}
.danger-confirm-check span{display:grid;gap:3px}
.danger-confirm-check b{font-size:12px;color:#7e2c2c}
.danger-confirm-check small{font-size:10px;line-height:1.45;color:#7d5d5d}

/* CRM Enterprise 1.0.112 · jefaturas únicas y vista jerárquica */
.checkbox-row{display:flex!important;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--line,#d9e2df);border-radius:12px;background:rgba(255,255,255,.7)}
.checkbox-row input[type="checkbox"]{width:18px!important;height:18px!important;min-width:18px;margin-top:2px}
.checkbox-row span{display:grid;gap:3px}.checkbox-row small{font-weight:400;opacity:.78}
.module-head-assignment{display:grid;gap:10px;padding:14px;border:1px solid var(--line,#d9e2df);border-radius:14px;background:rgba(248,251,250,.9)}
.module-head-assignment .grid{align-items:stretch}
#estructura-vigente .campaign-tree-children{margin-top:12px}
#estructura-vigente .campaign-tree-children>li{margin-bottom:10px}


/* CRM Enterprise 1.0.113: autorización sin navegación parcial. */
.permission-role-switcher{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin:16px 0}
.permission-pager{display:flex;justify-content:center;align-items:center;gap:9px;margin-top:18px;text-align:center;flex-wrap:wrap}
.permission-pager nav{display:flex;gap:7px;align-items:center;justify-content:center;flex-wrap:wrap}
.permission-pager .page-current{background:var(--green-800);border-color:var(--green-800);color:#fff}
.permission-pager .page-gap{display:inline-grid;place-items:center;min-width:24px;height:32px;color:var(--muted);font-weight:900}
.permission-pager a.disabled{pointer-events:none;opacity:.42}

/* CRM Enterprise 1.0.145 · Persona Registrada con búsqueda/autocompletado */
.crc-person-native-select{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;opacity:0!important;pointer-events:none!important}
.crc-person-combobox{position:relative;display:block;width:100%;margin-top:7px}
.crc-person-combobox-input{width:100%!important;padding-right:48px!important;background:#fff!important}
.crc-person-combobox-input[aria-invalid="true"]{border-color:#c94a4a!important;box-shadow:0 0 0 3px rgba(201,74,74,.10)!important}
.crc-person-combobox-toggle{position:absolute;top:4px;right:4px;width:38px;height:38px;border:0;border-left:1px solid var(--line,#d9e2df);border-radius:0 9px 9px 0;background:transparent;color:var(--muted,#67736f);font-size:22px;line-height:1;cursor:pointer;display:grid;place-items:center}
.crc-person-combobox-toggle:hover,.crc-person-combobox-toggle:focus{color:var(--green-800,#155f49);background:#f3f8f6;outline:none}
.crc-person-combobox-list{position:absolute;z-index:1200;top:calc(100% + 6px);left:0;right:0;max-height:320px;overflow:auto;padding:6px;border:1px solid var(--line,#d9e2df);border-radius:12px;background:#fff;box-shadow:0 18px 40px rgba(18,50,42,.16)}
.crc-person-combobox-option{display:grid;width:100%;gap:2px;padding:10px 11px;border:0;border-radius:9px;background:transparent;text-align:left;color:inherit;cursor:pointer}
.crc-person-combobox-option span{font-weight:700;line-height:1.35}
.crc-person-combobox-option small{font-size:10px;color:var(--muted,#6d7874);font-weight:600}
.crc-person-combobox-option:hover,.crc-person-combobox-option.is-active{background:#edf7f3;color:var(--green-900,#124c3c)}
.crc-person-combobox-empty,.crc-person-combobox-more{padding:12px 11px;font-size:11px;line-height:1.45;color:var(--muted,#6d7874)}
.crc-person-combobox-empty{color:#9a3434;background:#fff5f5;border-radius:9px;font-weight:700}
.crc-person-combobox-message{display:block;margin-top:6px!important;color:#a33b3b!important;font-size:10px!important;font-weight:700!important;line-height:1.4}
@media(max-width:620px){.crc-person-combobox-list{max-height:260px}.crc-person-combobox-option{padding:11px 10px}}

/* CRM Enterprise 1.0.151 · búsqueda asistida de barrio en Base Ciudadana */
.territory-admin-link{gap:10px;flex-wrap:wrap}
.neighborhood-search-dialog{width:min(720px,calc(100vw - 28px))}
.neighborhood-search-dialog-card{max-height:min(760px,calc(100vh - 40px));overflow:auto}
.neighborhood-search-dialog label{display:block}
.neighborhood-search-dialog input[type="search"]{width:100%}
.neighborhood-search-dialog-actions{justify-content:flex-end;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
.territory-neighborhood-results{display:grid;gap:7px;margin-top:10px;max-height:280px;overflow:auto;padding-right:3px}
.territory-neighborhood-result{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--text);text-align:left;cursor:pointer}
.territory-neighborhood-result:hover,.territory-neighborhood-result:focus{border-color:var(--green-700);box-shadow:0 0 0 2px rgba(31,111,88,.10);outline:none}
.territory-neighborhood-result b{font-size:13px}.territory-neighborhood-result small{font-size:11px;color:var(--muted)}
.territory-neighborhood-empty{padding:13px;border:1px dashed var(--border);border-radius:12px;color:var(--muted);font-size:12px;background:#fff}
@media(max-width:720px){.territory-admin-link .btn{width:100%}.neighborhood-search-dialog-card{padding:18px}.neighborhood-search-dialog-actions .btn{width:100%}}
/* CRM Enterprise 1.0.153 · Contexto territorial y familiar en Persona Registrada */
.crc-person-combobox-option .crc-person-meta{display:block;line-height:1.35}
.crc-person-combobox-option .crc-person-classification{color:var(--green-800,#176b55)}
.crc-person-combobox-option .crc-person-location{color:#52645f}
.crc-person-combobox-option .crc-person-hierarchy{color:#7a5b22;font-weight:700}

/* CRM Enterprise 1.0.154 · Call Center */
.callcenter-heading{align-items:flex-end}.callcenter-architecture{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:0 0 18px;padding:14px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(135deg,#f6fbf9,#fff)}.callcenter-architecture>div{min-width:150px;text-align:center;padding:12px 16px;border:1px solid #dce8e4;border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}.callcenter-architecture b,.callcenter-architecture small{display:block}.callcenter-architecture b{color:var(--green-900)}.callcenter-architecture small{margin-top:3px;color:var(--muted)}.callcenter-architecture>span{font-weight:900;color:#5a8177}.callcenter-metrics{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:18px}.callcenter-grid-two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.callcenter-tech-list{display:grid;gap:10px}.callcenter-tech-list>div{display:grid;grid-template-columns:145px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid #edf2f0}.callcenter-tech-list span{color:var(--muted);font-size:.78rem}.callcenter-tech-list b{color:var(--green-900);overflow-wrap:anywhere}.status-pill{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;background:#eef4f2;color:#365f55;font-size:.72rem;font-weight:900}.status-pill.ok{background:#e6f6ef;color:#176b55}.status-pill.warn{background:#fff3d9;color:#8b6415}.callcenter-config-grid label small{display:block;margin-top:5px;color:var(--muted);line-height:1.4}.toggle-field{display:flex!important;align-items:flex-start;gap:10px}.toggle-field>input{width:auto!important;margin-top:3px}.toggle-field span b,.toggle-field span small{display:block}.callcenter-agent-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.callcenter-agent-card{padding:16px;border:1px solid var(--border);border-radius:15px;background:#fff;box-shadow:var(--shadow-sm)}.agent-title{display:flex;align-items:center;gap:10px;margin-bottom:14px}.agent-title b,.agent-title small{display:block}.agent-title small{color:var(--muted)}.callcenter-operation-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:18px;margin-bottom:18px}.callcenter-contact-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.callcenter-contact-facts>div{padding:12px;border:1px solid #e3ece9;border-radius:12px;background:#f9fcfb}.callcenter-contact-facts span,.callcenter-contact-facts b{display:block}.callcenter-contact-facts span{font-size:.7rem;color:var(--muted);text-transform:uppercase;font-weight:800}.callcenter-contact-facts b{margin-top:4px;color:var(--green-900)}.callcenter-objective{margin-top:14px;padding:13px;border-left:4px solid #277b67;background:#f2f8f6;border-radius:10px}.callcenter-objective span{font-size:.72rem;text-transform:uppercase;color:#52756d;font-weight:900}.callcenter-objective p{margin:6px 0 0}.callcenter-softphone{background:linear-gradient(180deg,#0e3d34,#082c26);color:#fff}.callcenter-softphone .panel-heading h2,.callcenter-softphone .panel-heading p,.callcenter-softphone .panel-heading span{color:#fff}.softphone-status{padding:6px 10px;border-radius:999px;background:#234f46;color:#d7f3e9;font-size:.7rem;font-weight:900}.softphone-status[data-state="connected"]{background:#1d825f}.softphone-status[data-state="dialing"]{background:#8c6a1d}.softphone-status[data-state="error"]{background:#8d3f3f}.softphone-number{text-align:center;padding:16px 8px}.softphone-number small,.softphone-number b,.softphone-number span{display:block}.softphone-number small{opacity:.7;text-transform:uppercase;font-size:.68rem}.softphone-number b{font-size:1.7rem;margin:4px 0}.softphone-number span{opacity:.75}.softphone-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.softphone-controls{display:flex;gap:16px;justify-content:center;margin:14px 0}.softphone-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:260px;margin:0 auto}.softphone-keypad button{height:46px;border-radius:12px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;font-size:1.1rem;font-weight:800}.softphone-keypad button:disabled{opacity:.35}.softphone-help{display:block;margin-top:14px;text-align:center;opacity:.7;line-height:1.4}.callcenter-script-box{padding:15px;border:1px solid #d8e5e1;border-radius:13px;background:#f7fbf9}.callcenter-script-box b{color:var(--green-900)}.callcenter-script-box p{white-space:pre-line;margin:8px 0 0;line-height:1.55}.callcenter-script-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.callcenter-script-card{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--border);border-radius:15px;background:#fff}.callcenter-script-card.inactive{opacity:.65}.callcenter-script-card span{font-size:.68rem;color:#1a755e;font-weight:900}.callcenter-script-card h3{margin:3px 0}.callcenter-script-card small{color:var(--muted)}.callcenter-script-card p{white-space:pre-line;line-height:1.55;max-height:260px;overflow:auto}.callcenter-script-card .actions{margin-top:auto;display:flex;gap:8px;align-items:center}.callcenter-filter{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr auto}.callcenter-result-list{display:grid;gap:13px}.callcenter-result-list>div{position:relative;padding-bottom:11px}.callcenter-result-list span{display:flex;justify-content:space-between;gap:8px}.callcenter-result-list span b,.callcenter-result-list span small{display:block}.callcenter-result-list span small{color:var(--muted)}.callcenter-result-list em{position:absolute;right:0;top:0;font-style:normal;font-weight:900;color:#2b6e5c}.callcenter-result-list i{display:block;height:7px;margin-top:7px;border-radius:999px;background:linear-gradient(90deg,#2d806a var(--pct),#e8efed var(--pct));}
@media(max-width:1100px){.callcenter-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.callcenter-grid-two,.callcenter-operation-layout{grid-template-columns:1fr}.callcenter-agent-grid{grid-template-columns:1fr}.callcenter-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.callcenter-filter .btn{width:100%}}
@media(max-width:700px){.callcenter-metrics,.callcenter-contact-facts,.callcenter-script-grid,.callcenter-filter{grid-template-columns:1fr}.softphone-actions{grid-template-columns:1fr}.callcenter-tech-list>div{grid-template-columns:1fr}.callcenter-architecture>span{transform:rotate(90deg)}}

/* CRM Enterprise 1.0.161 · Planificador administrativo de rutas desde Agenda política */
.route-filter-panel{overflow:visible}.route-filter-grid,.route-control-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;align-items:end}.route-filter-grid label{grid-column:span 4}.route-load-action{grid-column:span 3;display:flex;align-items:end}.route-control-grid{margin-top:14px;padding-top:14px;border-top:1px solid var(--border,#dfe7e4)}.route-control-grid>label{grid-column:span 3}.route-origin-field{grid-column:span 6!important}.route-origin-row{display:flex;gap:8px;align-items:center}.route-origin-row input{flex:1;min-width:0}.route-return-check{grid-column:span 4!important;align-self:center}.route-calculate-action{grid-column:span 4;display:flex;justify-content:flex-end}.route-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 18px}.route-summary-grid article{background:var(--surface,#fff);border:1px solid var(--border,#dfe7e4);border-radius:16px;padding:18px;box-shadow:0 8px 28px rgba(11,47,41,.05)}.route-summary-grid span{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.055em;color:var(--muted,#60716c);font-weight:700}.route-summary-grid b{display:block;font-size:1.65rem;line-height:1.15;margin:8px 0 4px}.route-summary-grid small{color:var(--muted,#60716c)}.route-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.8fr);gap:18px;align-items:start}.route-itinerary-panel,.route-map-panel{margin:0}.route-map-panel{position:sticky;top:90px}.route-map{min-height:430px;border:1px solid var(--border,#dfe7e4);border-radius:14px;overflow:hidden;background:#f2f6f5}.route-map-placeholder{min-height:430px;display:flex;align-items:center;justify-content:center;text-align:center;padding:28px;color:var(--muted,#60716c)}.route-map-placeholder.error{color:#9f2c2c;background:#fff3f2}.route-map-status{margin-top:10px;padding:10px 12px;border-radius:10px;background:#f5f8f7;color:var(--muted,#60716c);font-size:.88rem}.route-map-actions{display:flex;justify-content:flex-end;margin-top:10px}.route-admin-note{margin-top:14px;padding:14px;border-radius:12px;background:#eef7f4}.route-admin-note b{display:block;margin-bottom:4px}.route-admin-note p{margin:0;color:var(--muted,#60716c);font-size:.87rem}.route-itinerary{display:flex;flex-direction:column}.route-stop{display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;position:relative;padding:0 0 18px}.route-stop-sequence{display:flex;flex-direction:column;align-items:center}.route-stop-sequence span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#0b2f29;color:#fff;font-weight:800;z-index:2}.route-stop-sequence i{width:2px;background:#c7d8d2;flex:1;min-height:34px;margin-top:4px}.route-stop:last-child .route-stop-sequence i{display:none}.route-stop-main{border:1px solid var(--border,#dfe7e4);border-radius:14px;padding:14px 16px;background:#fff}.route-stop.location-missing .route-stop-main{border-color:#e8b65f;background:#fffaf0}.route-stop-title{display:flex;gap:12px;justify-content:space-between;align-items:flex-start}.route-stop-title>div{min-width:0}.route-stop-title time{display:block;font-size:.82rem;font-weight:800;color:#19745e;margin-bottom:2px}.route-stop-title h3{margin:0;font-size:1.03rem}.route-stop-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;margin-top:9px;color:var(--muted,#60716c);font-size:.87rem}.route-stop-meta span:last-child:nth-child(odd){grid-column:1/-1}.route-stop-admin{display:grid;grid-template-columns:minmax(120px,.65fr) repeat(2,minmax(140px,1fr));gap:10px;margin-top:12px;padding-top:12px;border-top:1px dashed #d8e3df}.route-stop-admin label{margin:0}.route-stop-admin label input{max-width:110px}.route-stop-admin label small{display:inline-block;margin-left:5px}.route-leg-data{padding:9px 11px;border-radius:10px;background:#f5f8f7}.route-leg-data span,.route-leg-data small{display:block}.route-leg-data span{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#60716c);font-weight:700}.route-leg-data b{display:block;margin:3px 0;font-size:1rem}.route-leg-data small{font-size:.78rem;color:var(--muted,#60716c)}.route-status.ok{color:#19745e!important}.route-status.warning{color:#9b6500!important}.route-status.danger{color:#b42318!important;font-weight:700}.route-stop-warning{margin-top:10px;padding:9px 11px;border-radius:9px;background:#fff0cf;color:#7f5b08;font-size:.84rem}.route-planner-head .page-actions{flex-wrap:wrap}
@media(max-width:1050px){.route-layout{grid-template-columns:1fr}.route-map-panel{position:static}.route-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-control-grid>label,.route-origin-field,.route-return-check,.route-calculate-action{grid-column:span 6!important}.route-filter-grid label{grid-column:span 6}.route-load-action{grid-column:span 6}}
@media(max-width:680px){.route-summary-grid{grid-template-columns:1fr 1fr}.route-filter-grid,.route-control-grid{grid-template-columns:1fr}.route-filter-grid label,.route-load-action,.route-control-grid>label,.route-origin-field,.route-return-check,.route-calculate-action{grid-column:1/-1!important}.route-calculate-action,.route-load-action{justify-content:stretch}.route-calculate-action .btn,.route-load-action .btn{width:100%}.route-origin-row{flex-direction:column;align-items:stretch}.route-stop{grid-template-columns:36px minmax(0,1fr)}.route-stop-sequence span{width:30px;height:30px}.route-stop-title{flex-direction:column}.route-stop-meta,.route-stop-admin{grid-template-columns:1fr}.route-map{min-height:340px}.route-map-placeholder{min-height:340px}}
@media print{.sidebar,.app-header,.page-actions,.route-filter-panel,.route-map-actions,.route-admin-note{display:none!important}.app-shell,.main-content{display:block!important;margin:0!important;padding:0!important}.route-layout{display:block}.route-map-panel{break-before:page;position:static}.route-stop-main{break-inside:avoid}.route-summary-grid{grid-template-columns:repeat(4,1fr)}}

/* CRM Enterprise 1.0.166 · Informe técnico estadístico y segmentación comunicacional */
.technical-report-head{align-items:flex-start}.technical-filter-panel{display:grid;gap:16px}.technical-report-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.technical-report-summary article{padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(145deg,#fff,#f7faf9)}.technical-report-summary span,.technical-report-summary b{display:block}.technical-report-summary span{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:850}.technical-report-summary b{margin-top:5px;font-size:1.15rem;color:var(--green-900)}
.technical-messaging-note{display:flex;align-items:flex-start;gap:12px;padding:13px 15px;border:1px solid #cfe5dc;border-radius:13px;background:#f2faf7;color:#244f45}.technical-messaging-note b,.technical-messaging-note span{display:block}.technical-messaging-note b{min-width:210px}.technical-messaging-note.warning{background:#fff8e8;border-color:#eed6a7;color:#6b531a}.technical-method-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.technical-method-grid>div{padding:14px;border:1px solid #e1ebe7;border-radius:13px;background:#fafcfb}.technical-method-grid b{display:block;color:var(--green-900);margin-bottom:5px}.technical-method-grid p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.48}
.technical-dimension{scroll-margin-top:90px}.technical-dimension-heading{align-items:flex-start}.technical-stat-pills{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px;max-width:58%}.technical-stat-pills span{display:inline-flex!important;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;background:#eef6f3;color:#47675f;font-size:.68rem!important;letter-spacing:0!important;text-transform:none!important}.technical-stat-pills b{color:var(--green-900)}.technical-matrix-wrap{overflow:auto;border:1px solid var(--border);border-radius:13px;max-height:560px}.technical-matrix{border-collapse:separate;border-spacing:0;min-width:920px;width:100%;font-size:.78rem}.technical-matrix th,.technical-matrix td{padding:9px 10px;border-right:1px solid #e6eeeb;border-bottom:1px solid #e6eeeb;text-align:center;white-space:nowrap}.technical-matrix thead th{position:sticky;top:0;z-index:3;background:#eaf4f0;color:#254f45;font-weight:900}.technical-matrix .sticky-col{position:sticky;left:0;z-index:2;text-align:left;background:#f8fbfa;box-shadow:1px 0 0 #dfe9e5}.technical-matrix thead .sticky-col{z-index:4;background:#eaf4f0}.technical-matrix tfoot th{background:#edf4f2;font-weight:900}.technical-matrix td b,.technical-matrix td a{display:block}.technical-matrix td a{margin-top:3px;font-size:.62rem;font-weight:850;color:#176b55;text-decoration:none}.technical-matrix td a:hover{text-decoration:underline}.technical-total-cell{background:#fbfdfc}.technical-matrix-note{margin-top:9px;padding:9px 11px;border-radius:10px;background:#f7f9f8;color:#60736f;font-size:.72rem}.technical-frequency{margin-top:15px;border-top:1px solid #e3ebe8;padding-top:12px}.technical-frequency summary{cursor:pointer;font-weight:900;color:#315c51;margin-bottom:12px}.technical-frequency .btn.small,.technical-segment-card .btn.small{padding:6px 9px;font-size:.68rem}.muted{color:var(--muted)}
.technical-segment-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid #cfe4dc;border-radius:14px;background:linear-gradient(135deg,#f2faf7,#fff)}.technical-segment-card>div{min-width:0}.technical-segment-card span,.technical-segment-card b,.technical-segment-card small{display:block}.technical-segment-card span{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:#507168;font-weight:900}.technical-segment-card b{margin:3px 0;color:var(--green-900)}.technical-segment-card small{color:var(--muted);line-height:1.4}
@media(max-width:1050px){.technical-report-summary,.technical-method-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.technical-stat-pills{max-width:none;justify-content:flex-start}.technical-dimension-heading{display:grid}}
@media(max-width:650px){.technical-report-summary,.technical-method-grid{grid-template-columns:1fr}.technical-messaging-note,.technical-segment-card{display:grid}.technical-messaging-note b{min-width:0}.technical-stat-pills{display:grid;grid-template-columns:1fr 1fr}.technical-matrix{font-size:.72rem}}

/* CRM Enterprise 1.0.168 · Selectores múltiples con búsqueda en Estructura de Campaña */
.crc-multi-native-select{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important}
.crc-compact-select-label{display:block!important}
.crc-multi-combobox{position:relative;display:grid;gap:7px;width:100%;margin-top:7px}
.crc-multi-combobox-chips{display:flex;flex-wrap:wrap;gap:6px;min-height:30px;align-items:center}
.crc-multi-combobox-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:5px 8px 5px 10px;border:1px solid #cfe3db;border-radius:999px;background:#eef8f4;color:#245e4f;font-size:.72rem;font-weight:850}
.crc-multi-combobox-chip>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crc-multi-combobox-chip button{display:grid;place-items:center;width:20px;height:20px;border:0;border-radius:999px;background:#d7eee5;color:#275c4f;font-size:16px;line-height:1;cursor:pointer}
.crc-multi-combobox-chip button:hover,.crc-multi-combobox-chip button:focus{background:#c4e4d8;outline:none}
.crc-multi-combobox-chip-empty{font-size:.72rem;color:var(--muted,#687773);font-weight:700}
.crc-multi-combobox-control{position:relative}
.crc-multi-combobox-input{width:100%!important;padding-right:48px!important;background:#fff!important}
.crc-multi-combobox-toggle{position:absolute;top:4px;right:4px;width:38px;height:38px;border:0;border-left:1px solid var(--line,#d9e2df);border-radius:0 9px 9px 0;background:transparent;color:var(--muted,#67736f);font-size:22px;line-height:1;cursor:pointer;display:grid;place-items:center}
.crc-multi-combobox-toggle:hover,.crc-multi-combobox-toggle:focus{color:var(--green-800,#155f49);background:#f3f8f6;outline:none}
.crc-multi-combobox-list{position:absolute;z-index:1250;top:calc(100% + 4px);left:0;right:0;max-height:330px;overflow:auto;padding:6px;border:1px solid var(--line,#d9e2df);border-radius:12px;background:#fff;box-shadow:0 18px 40px rgba(18,50,42,.16)}
.crc-multi-combobox-option{display:grid;grid-template-columns:24px minmax(0,1fr);gap:9px;align-items:flex-start;width:100%;padding:10px 11px;border:0;border-radius:9px;background:transparent;text-align:left;color:inherit;cursor:pointer}
.crc-multi-combobox-option:hover,.crc-multi-combobox-option.is-active{background:#edf7f3;color:var(--green-900,#124c3c)}
.crc-multi-combobox-option.is-selected{background:#f1faf6}
.crc-multi-combobox-option.is-disabled{cursor:not-allowed;opacity:.62;background:#f7f8f8;color:#67736f}
.crc-multi-combobox-check{display:grid;place-items:center;width:20px;height:20px;margin-top:1px;border:1px solid #bfd3cb;border-radius:6px;background:#fff;color:#176b55;font-weight:1000}
.crc-multi-combobox-option.is-selected .crc-multi-combobox-check{background:#dff2ea;border-color:#80bba8}
.crc-multi-combobox-copy{display:grid;gap:2px;min-width:0}
.crc-multi-combobox-copy b{font-size:.82rem;line-height:1.35}
.crc-multi-combobox-copy small{font-size:.69rem;line-height:1.42;color:var(--muted,#6d7874);font-weight:600}
.crc-multi-combobox-empty{padding:12px 11px;border-radius:9px;background:#f7f9f8;color:var(--muted,#6d7874);font-size:.75rem;font-weight:700}
.crc-multi-combobox-summary{display:block!important;margin-top:0!important;color:var(--muted,#687773)!important;font-size:.68rem!important;font-weight:700!important}
@media(max-width:620px){.crc-multi-combobox-list{top:calc(100% + 4px);max-height:270px}.crc-multi-combobox-option{padding:11px 10px}}

/* CRM Enterprise 1.0.172 · Revisión inteligente y Consulta de Ruta Jerárquica */
.review-badge{display:inline-flex;align-items:center;padding:7px 10px;border:1px solid var(--border,#dfe5ec);border-radius:999px;font-size:.75rem;font-weight:800;letter-spacing:.04em}
.review-upload input[type=file]{text-transform:none!important}.review-metrics{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}.review-preview{margin-top:18px;max-height:520px;border:1px solid var(--border,#dfe5ec);border-radius:14px}.review-preview table{min-width:1500px}.review-preview th{position:sticky;top:0;z-index:2;background:var(--surface,#fff)}.review-preview td{vertical-align:top;white-space:normal;min-width:120px;max-width:320px}.review-row-error td:nth-last-child(3){font-weight:800}.review-row-advertencia td:nth-last-child(3){font-weight:800}.review-row-correcto td:nth-last-child(3){font-weight:800}.review-blocked{display:inline-flex;align-items:center;padding:9px 12px;border:1px solid var(--border,#dfe5ec);border-radius:10px;font-weight:700}.review-flow{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.review-flow span{padding:8px 11px;border:1px solid var(--border,#dfe5ec);border-radius:10px;background:var(--surface,#fff);font-weight:700}.inline-form{display:inline-flex;margin:0}
.hierarchy-query-panel form{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:14px;align-items:end}.hierarchy-autocomplete{position:relative}.hierarchy-autocomplete>input{width:100%}.hierarchy-results{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:80;max-height:min(420px,55vh);overflow:auto;background:var(--surface,#fff);border:1px solid var(--border,#dfe5ec);border-radius:12px;box-shadow:0 18px 45px rgba(15,23,42,.16);padding:6px}.hierarchy-results button{display:flex;width:100%;flex-direction:column;gap:3px;text-align:left;border:0;background:transparent;padding:10px 11px;border-radius:9px;cursor:pointer;color:inherit}.hierarchy-results button:hover,.hierarchy-results button:focus{background:rgba(100,116,139,.1);outline:none}.hierarchy-results button b{font-size:.93rem}.hierarchy-results button small{font-size:.76rem;opacity:.75}.hierarchy-no-results{padding:12px;text-align:center;opacity:.7}.hierarchy-person-card .stat-text{font-size:1rem;line-height:1.35}.hierarchy-route-path{display:flex;align-items:stretch;gap:10px;overflow-x:auto;padding:8px 2px 16px}.hierarchy-route-node{min-width:210px;max-width:280px;display:flex;flex-direction:column;gap:5px;padding:14px;border:1px solid var(--border,#dfe5ec);border-radius:14px;background:var(--surface,#fff)}.hierarchy-route-node.is-origin{border-width:2px}.hierarchy-route-node.is-candidate{border-width:2px}.hierarchy-route-node b{font-size:.98rem}.hierarchy-route-node small{line-height:1.4}.hierarchy-node-level{font-size:.68rem;letter-spacing:.08em;font-weight:800;opacity:.62}.hierarchy-route-arrow{display:flex;min-width:55px;flex-direction:column;align-items:center;justify-content:center;font-size:1.4rem;font-weight:800}.hierarchy-route-arrow small{font-size:.68rem;font-weight:700;white-space:nowrap;opacity:.62}.hierarchy-route-card .tm-impact{margin-top:10px}
@media(max-width:760px){.hierarchy-query-panel form{grid-template-columns:1fr}.hierarchy-route-path{flex-direction:column;overflow:visible}.hierarchy-route-node{min-width:0;max-width:none;width:100%}.hierarchy-route-arrow{min-width:0;height:42px;transform:rotate(180deg)}.hierarchy-route-arrow small{transform:rotate(180deg)}.review-preview{max-height:60vh}}
@media print{.app-sidebar,.topbar,.page-head-actions,.hierarchy-query-panel,.footer,.app-footer{display:none!important}.app-main,.main-content{margin:0!important;padding:0!important}.hierarchy-route-path{overflow:visible!important;flex-wrap:wrap}.hierarchy-route-card,.hierarchy-person-card{break-inside:avoid;box-shadow:none!important}}

/* CRM Enterprise 1.0.174 - Alertas de duplicidad de documento en desenfoque */
[data-nuip-status], [data-family-nuip-status], [data-bp68-nuip-status] {
  display: block;
  margin-top: 6px;
  font-size: 0.82rem;
  line-height: 1.4;
}
[data-nuip-status][data-state="error"], [data-family-nuip-status][data-state="error"], [data-bp68-nuip-status][data-state="error"] {
  color: #b91c1c;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 8px;
  padding: 6px 10px;
  font-weight: 600;
}
[data-nuip-status][data-state="found"], [data-family-nuip-status][data-state="found"], [data-bp68-nuip-status][data-state="found"] {
  color: #15803d;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 8px;
  padding: 6px 10px;
  font-weight: 500;
}
[data-nuip-status][data-state="empty"], [data-family-nuip-status][data-state="empty"], [data-bp68-nuip-status][data-state="empty"] {
  color: #64748b;
  padding: 2px 4px;
}
