
.sb .ni-parent{cursor:pointer}
.sb .ni-chev{margin-left:auto;transition:transform .22s;flex-shrink:0}
.sb .ni-parent:not(.exp) .ni-chev{transform:rotate(-90deg)}
.sb .ni-sub{max-height:0;overflow:hidden;transition:max-height .28s ease}
.sb .ni-sub.open{max-height:300px}
.sb .ni-child{padding-left:34px}
.sb.collapsed .ni-child{padding:10px 0;justify-content:center}
.sb.collapsed .ni-chev{display:none}
.sb.collapsed .ni-sub{max-height:none;overflow:visible}
.sb.collapsed .ni-child{padding-left:12px}
.zp-sel{display:flex;flex-wrap:wrap;gap:12px;padding:2px 2px 6px;margin-bottom:6px}
.zp-pcard{position:relative;flex:0 0 auto;width:264px;display:flex;align-items:center;gap:14px;background:var(--surf);border:1.5px solid var(--bd);border-radius:var(--r16);padding:15px 16px;cursor:pointer;transition:transform var(--tr-16),border-color var(--tr-16),box-shadow var(--tr-16);text-align:left}
.zp-pcard-badge{position:absolute;top:-9px;right:14px;color:#fff;font-size:10px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:3px 10px;border-radius:20px;box-shadow:0 2px 7px rgba(0,0,0,.2)}
.zp-pcard:hover{border-color:var(--p);transform:translateY(-2px)}
.zp-pcard.on{transform:translateY(-1px)}
.zp-pcard-info{min-width:0;flex:1}
.zp-pcard-name{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t1);line-height:1.25;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.zp-ring{width:56px;height:56px;border-radius:50%;margin:0;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.zp-ring-in{width:43px;height:43px;border-radius:50%;background:var(--surf);display:flex;align-items:center;justify-content:center}
.zp-pcard.on .zp-ring-in{background:var(--bg)}
.zp-ring-in span{font-size:18px;font-weight:var(--fw-heavy);letter-spacing:-.5px}
.zp-pcard-est{font-size:var(--fs-ter);font-weight:var(--fw-bold);margin-bottom:3px}
.zp-pcard-pdv{font-size:var(--fs-label);color:var(--t3);font-weight:var(--fw-semi)}
.zp-selbar{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.zp-selbar-l{font-size:var(--fs-label);color:var(--t3);font-weight:600}
.zp-seldd{flex:1;min-width:240px;max-width:420px;padding:10px 12px;border:1.5px solid var(--bd);border-radius:10px;background:var(--surf);color:var(--t1);font-size:var(--fs-body);font-weight:600;cursor:pointer}
.zp-seldd:focus{outline:none;border-color:var(--p)}
.zp-find{display:flex;align-items:center;gap:var(--sp5);padding:9px 0;border-bottom:1px solid var(--bg)}
.zp-find:last-child{border-bottom:none}
.zp-find-n{font-size:20px;font-weight:var(--fw-heavy);min-width:38px;letter-spacing:-1px}
.zp-find-tx{flex:1;font-size:var(--fs-body);color:var(--t2);line-height:1.4}
.zcmp-tbl{width:100%;border-collapse:collapse;font-size:var(--fs-body);margin-top:4px}
.zcmp-tbl th{text-align:center;font-size:var(--fs-label);color:var(--t3);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--bd,#e5eaf0)}
.zcmp-tbl th:first-child{text-align:left}
.zcmp-tbl td{padding:9px 8px;border-bottom:1px solid var(--bd,#eef2f6);text-align:center;vertical-align:middle}
.zcmp-dim{display:flex;align-items:center;gap:8px;text-align:left;color:var(--t1);font-weight:600}
.zcmp-v{font-weight:800}
.zcmp-a{color:var(--t2)}
.zcmp-d{font-weight:700}
.zcmp-barcell{width:32%}
.zcmp-bar{position:relative;height:8px;background:#eef2f6;border-radius:4px}
.zcmp-fill{height:100%;border-radius:4px}
.zcmp-peer{position:absolute;top:-3px;width:2px;height:14px;background:var(--t1);opacity:.5;z-index:2}
.zmc-head{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.zmc-gauge{flex-shrink:0}
.zmc-info{flex:1;min-width:240px}
.zmc-name{font-size:22px;font-weight:800;color:var(--t1);line-height:1.2;margin-bottom:9px;word-break:break-word}
.zmc-tags{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
.zmc-pill{font-size:var(--fs-label);color:var(--t2);background:var(--bg);border:1px solid var(--bd,#e5eaf0);border-radius:20px;padding:4px 11px}
.zmc-generic{display:flex;flex-wrap:wrap;gap:24px}
.zmc-divider{height:1px;background:var(--bd,#eef2f6);margin:18px 0}
.zmc-cmp-ttl{font-size:var(--fs-body);font-weight:700;color:var(--t1)}
.zmc-cmp-sub{font-size:var(--fs-label);color:var(--t3);margin:2px 0 10px;line-height:1.5}
.zdd-card{padding:18px 20px;margin-bottom:18px}
.zdd-hd{display:flex;align-items:center;gap:13px}
.zdd-hd-ic{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.zdd-hd-tx{flex:1;min-width:0}
.zdd-hd-ttl{font-size:var(--fs-body);font-weight:700;color:var(--t1)}
.zdd-hd-sub{font-size:var(--fs-label);color:var(--t3);line-height:1.4}
.zdd-hd-score{text-align:right;flex-shrink:0}
.zdd-score-n{font-size:26px;font-weight:800;line-height:1}
.zdd-score-d{font-size:var(--fs-label);font-weight:600;margin-top:3px;white-space:nowrap}
.zdd-bar{position:relative;height:8px;background:#eef2f6;border-radius:4px;margin:13px 0 14px}
.zdd-bar-fill{height:100%;border-radius:4px}
.zdd-bar-peer{position:absolute;top:-3px;width:2px;height:14px;background:var(--t1);opacity:.5}
.zdd-tiles{display:flex;flex-wrap:wrap;gap:10px}
.zdd-tile{flex:1;min-width:118px;background:var(--bg);border:1px solid var(--bd,#e5eaf0);border-radius:10px;padding:10px 13px}
.zdd-tile-v{font-size:18px;font-weight:800}
.zdd-tile-l{font-size:var(--fs-label);color:var(--t3);margin-top:2px;line-height:1.3}
.zdd-probs{margin-top:12px;display:flex;flex-direction:column;gap:6px}
.zdd-prob{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#fef2f2;border-radius:8px;font-size:var(--fs-body)}
.zdd-prob-n{font-weight:800;color:#ef4444;min-width:24px}
.zdd-prob-tx{flex:1;color:var(--t2)}
.zdd-prob-pct{font-weight:700;color:#ef4444}
.zdc-hint{font-size:var(--fs-label);color:var(--t3);margin:0 0 12px;text-align:center}
.zdc-chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}
.zdc-chip{display:flex;align-items:center;gap:11px;flex:1 1 150px;min-width:150px;background:var(--surf);border:1.5px solid var(--bd,#e5eaf0);border-radius:14px;padding:12px 15px;cursor:pointer;transition:var(--tr-base);text-align:left}
.zdc-chip:hover{border-color:var(--t3);transform:translateY(-1px)}
.zdc-chip.on{box-shadow:0 4px 14px rgba(0,0,0,.07)}
.zdc-chip-ic{flex-shrink:0;display:flex;align-items:center}
.zdc-chip-tx{display:flex;flex-direction:column;line-height:1.1;min-width:0}
.zdc-chip-nm{font-size:var(--fs-label);font-weight:700;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zdc-chip-sc{font-size:20px;font-weight:800;margin-top:3px}
.zdc-detailcard{padding:20px 22px}

/* ── Embudo de exploración por dimensión ── */
.zfn{border-top:1px dashed var(--bd,#e5eaf0)}
.zfn-crumb{display:flex;align-items:center;flex-wrap:wrap;gap:3px;margin-bottom:14px}
.zfn-crumb-b{display:inline-flex;align-items:center;gap:7px;background:var(--bg,#f4f7fa);border:1px solid var(--bd,#e5eaf0);border-radius:20px;padding:5px 12px;cursor:pointer;font-size:var(--fs-label);color:var(--t2);font-weight:600;transition:var(--tr-base);max-width:220px}
.zfn-crumb-b:hover{border-color:var(--p);color:var(--p)}
.zfn-crumb-b.on{background:var(--p);border-color:var(--p);color:#fff}
.zfn-crumb-t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zfn-crumb-n{font-size:10px;font-weight:800;background:rgba(15,23,42,.08);border-radius:10px;padding:1px 7px;flex-shrink:0}
.zfn-crumb-b.on .zfn-crumb-n{background:rgba(255,255,255,.28)}
.zfn-crumb-sep{display:flex;align-items:center;color:var(--t3);opacity:.5}
.zfn-sum{display:flex;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(180deg,var(--bg,#f6f9fc),transparent);border:1px solid var(--bd,#e5eaf0);border-radius:14px;padding:13px 18px}
.zfn-sum-k{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--t3);font-weight:700}
.zfn-sum-v{font-size:19px;font-weight:800;color:var(--t1);margin-top:3px;line-height:1}
.zfn-sum-r{text-align:right}
.zfn-by{margin-bottom:12px}
.zfn-by-lbl{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--t3);font-weight:700;margin-bottom:8px}
.zfn-by-chips{display:flex;flex-wrap:wrap;gap:6px}
.zfn-chip{display:inline-flex;align-items:center;gap:6px;background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);color:var(--t2);font-size:var(--fs-label);font-weight:600;cursor:pointer;padding:7px 13px;border-radius:10px;transition:var(--tr-base)}
.zfn-chip:hover{border-color:var(--p);color:var(--p);transform:translateY(-1px)}
.zfn-chip.on{background:var(--p);border-color:var(--p);color:#fff;box-shadow:0 3px 10px rgba(19,193,172,.3)}
.zfn-chip-ic{display:flex;opacity:.9}
.zfn-bars{display:flex;flex-direction:column;gap:1px}
.zfn-bar-go{display:flex;justify-content:center;color:var(--t3);opacity:0;transform:translateX(-4px);transition:var(--tr-base)}
.zfn-bar:hover .zfn-bar-go{opacity:1;transform:translateX(0);color:var(--p)}
.zfn-leaf-btn{display:inline-flex;align-items:center;gap:8px;margin-top:14px;background:var(--surf,#fff);border:1.5px dashed var(--bd,#cfd8e3);color:var(--t2);font-size:var(--fs-label);font-weight:700;cursor:pointer;padding:9px 15px;border-radius:11px;transition:var(--tr-base)}
.zfn-leaf-btn:hover{border-color:var(--p);color:var(--p);background:var(--bg,#f4f7fa)}
.zfn-leaf-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.zfn-back{display:inline-flex;align-items:center;gap:6px;background:transparent;border:none;color:var(--p);font-size:var(--fs-label);font-weight:700;cursor:pointer;padding:4px 0;font-family:inherit}
.zfn-back:hover{opacity:.75}
.zfn-leaf-c{font-size:var(--fs-label);color:var(--t3);font-weight:600}
.zfn-pdvs{display:flex;flex-direction:column}
.zfn-pdv{background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);border-radius:12px;transition:box-shadow var(--tr-base)}
.zfn-pdv:hover{box-shadow:0 3px 12px rgba(15,23,42,.07)}
.zfn-pdv-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.zfn-pdv-name{font-size:var(--fs-body);font-weight:700;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zfn-pdv-loc{display:flex;align-items:center;gap:4px;font-size:var(--fs-label);color:var(--t3);margin-top:2px}
.zfn-pdv-badge{flex-shrink:0;font-size:11px;font-weight:800;border-radius:20px;padding:4px 11px;white-space:nowrap}
.zfn-pdv-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
.zfn-mchip{font-size:11px;font-weight:600;color:var(--t2);background:var(--bg,#f4f7fa);border-radius:6px;padding:3px 9px}
.zfn-pdv-vars{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.zfn-vchip{font-size:10.5px;font-weight:600;color:#0e9384;background:rgba(19,193,172,.1);border-radius:6px;padding:3px 8px}
.zfn-vmore{color:var(--t3);background:var(--bg,#f4f7fa)}
.zfn-pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px}
.zfn-pg-b{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);color:var(--t2);cursor:pointer;transition:var(--tr-base);padding:0}
.zfn-pg-b:hover:not([disabled]){border-color:var(--p);color:var(--p)}
.zfn-pg-b[disabled]{opacity:.4;cursor:default}
.zfn-pg-t{font-size:var(--fs-label);color:var(--t2);font-weight:700;min-width:48px;text-align:center}
.zfn-note{font-size:var(--fs-label);color:var(--t3);background:var(--bg,#f4f7fa);border-radius:9px;padding:10px 14px;margin-bottom:12px}
.zfn-empty{padding:16px;text-align:center;color:var(--t3);font-size:var(--fs-label)}
@media(max-width:600px){.zfn-sum{padding:11px 14px}.zfn-pdv-name{max-width:170px}.zfn-chip{padding:6px 11px}}
/* ── Embudo anidado (overrides + niveles) ── */
.zfn-levels{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.zfn-lv-lbl{text-transform:uppercase}
.zfn-lv{display:inline-flex;align-items:center;gap:6px;background:var(--p);color:#fff;border-radius:10px;font-size:var(--fs-label);font-weight:700;box-shadow:0 2px 8px rgba(19,193,172,.28)}
.zfn-lv-i{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;background:rgba(255,255,255,.28);border-radius:6px;font-size:10px;font-weight:800}
.zfn-lv-x{display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.2);border:none;color:#fff;width:18px;height:18px;border-radius:6px;cursor:pointer;padding:0;margin-left:1px;transition:var(--tr-base)}
.zfn-lv-x:hover{background:rgba(255,255,255,.4)}
.zfn-lv-arrow{display:inline-flex;color:var(--t3)}
.zfn-lv-plus{font-size:10px;color:var(--t3);font-weight:600;margin:0 3px 0 6px;text-transform:uppercase;letter-spacing:.04em}
.zfn-add{display:inline-flex;align-items:center;gap:5px;background:var(--surf,#fff);border:1px dashed var(--bd,#cfd8e3);color:var(--t2);font-size:var(--fs-label);font-weight:600;cursor:pointer;border-radius:10px;transition:var(--tr-base)}
.zfn-add:hover{border-color:var(--p);border-style:solid;color:var(--p);transform:translateY(-1px)}
.zfn-add svg:first-child{opacity:.55}
.zfn-lvl{display:flex;flex-direction:column}
.zfn-node{display:flex;flex-direction:column}
.zfn-bar{display:grid;grid-template-columns:26px minmax(84px,1fr) 2fr 46px 60px;gap:10px;align-items:center;width:100%;text-align:left;background:transparent;border:none;border-radius:9px;margin:0;cursor:pointer;transition:background var(--tr-base);font-family:inherit}
.zfn-bar:hover{background:var(--bg,#f4f7fa);box-shadow:inset 3px 0 0 var(--p)}
.zfn-bar.open{background:var(--bg,#f4f7fa);box-shadow:inset 3px 0 0 var(--p)}
.zfn-bar-cv{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:7px;background:var(--bg,#eef2f6);color:var(--t3);transition:transform .2s cubic-bezier(.34,1.3,.5,1),background var(--tr-base),color var(--tr-base)}
.zfn-bar:hover .zfn-bar-cv{background:rgba(19,193,172,.14);color:var(--p)}
.zfn-bar.open .zfn-bar-cv{transform:rotate(90deg);background:var(--p);color:#fff}
.zfn-hint{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--t3);font-weight:600;background:var(--bg,#f4f7fa);border-radius:9px}
.zfn-hint svg{color:var(--p);opacity:.9;flex-shrink:0}
.zfn-bar-k{font-size:var(--fs-body);font-weight:600;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zfn-bar-track{height:10px;background:#e9eef4;border-radius:6px;overflow:hidden;box-shadow:inset 0 1px 2px rgba(15,23,42,.05)}
.zfn-bar-fill{height:100%;border-radius:6px;transition:width .55s cubic-bezier(.34,1.1,.44,1);background-image:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,0))}
.zfn-bar-v{font-size:var(--fs-body);font-weight:800;text-align:right}
.zfn-bar-n{font-size:10px;color:var(--t2);font-weight:700;text-align:center;background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);border-radius:20px;padding:2px 0;white-space:nowrap}
.zfn-children{border-left:2px solid var(--bd,#e5eaf0)}
.zfn-node:last-child > .zfn-children{border-left-color:var(--bd,#e5eaf0)}
.zfn-pdv-tg{display:inline-flex;align-items:center;gap:7px;background:transparent;border:1px solid var(--bd,#e5eaf0);color:var(--t2);font-size:11.5px;font-weight:700;cursor:pointer;padding:6px 12px;border-radius:9px;transition:var(--tr-base);font-family:inherit}
.zfn-pdv-tg:hover{border-color:var(--p);color:var(--p);background:var(--bg,#f4f7fa)}
.zfn-pdv-tg.on{border-color:var(--p);color:var(--p);background:rgba(19,193,172,.07)}
.zfn-children .zfn-pdvs{margin-top:6px}
@media(max-width:600px){.zfn-bar{grid-template-columns:24px 1fr 1.25fr auto 50px;gap:8px}.zfn-children{padding-left:11px;margin-left:5px}.zfn-lv,.zfn-add{font-size:11px}}
/* ── Aire, jerarquía y botón "Ver detalle" en el embudo ── */
.zfn{margin-top:22px;padding-top:20px}
.zfn-sum{margin-bottom:20px}
.zfn-levels{gap:8px;margin:0 0 20px;padding:14px 16px 14px 15px;background:linear-gradient(180deg,var(--bg,#f4f7fa),transparent);border:1px solid var(--bd,#e5eaf0);border-left:3px solid var(--p);border-radius:13px}
.zfn-lv-lbl{font-size:12px;color:var(--t1);font-weight:800;letter-spacing:.03em;margin-right:4px}
.zfn-lv{padding:7px 9px 7px 7px}
.zfn-add{padding:8px 13px}
.zfn-hint{margin-bottom:14px;padding:9px 14px}
.zfn-bar{padding:9px 11px}
.zfn-lvl{gap:2px}
.zfn-children{margin:5px 0 12px 9px;padding-left:16px}
.zfn-pdvs{gap:10px}
.zfn-pdv{display:flex;justify-content:space-between;align-items:stretch;gap:14px;padding:14px 16px}
.zfn-pdv-main{flex:1;min-width:0}
.zfn-pdv-name{max-width:100%}
.zfn-pdv-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:10px;flex-shrink:0}
.zfn-pdv-det{display:inline-flex;align-items:center;gap:6px;background:var(--p2);border:1.5px solid var(--p);color:var(--pd);font-size:12px;font-weight:700;cursor:pointer;padding:8px 15px;border-radius:10px;white-space:nowrap;transition:var(--tr-base);font-family:inherit}
.zfn-pdv-det:hover{background:var(--p);border-color:var(--p);color:#fff;box-shadow:0 4px 12px rgba(19,193,172,.35);transform:translateY(-1px)}
.zfn-pdv-tg{margin:10px 0 3px}
@media(max-width:600px){.zfn-pdv{flex-direction:column;gap:11px}.zfn-pdv-side{flex-direction:row;justify-content:space-between;align-items:center;width:100%}}
.cv-fsearch{display:flex;align-items:center;gap:8px;flex:1 1 240px;min-width:200px;background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);border-radius:11px;padding:0 14px;height:46px}
.cv-fsearch:focus-within{border-color:var(--p);box-shadow:0 0 0 3px rgba(19,193,172,.12)}
.cv-finput{flex:1;border:none;outline:none;background:none;font-size:var(--fs-body);color:var(--t1);font-family:inherit;height:100%}
.cv-fsel{height:46px;border:1px solid var(--bd,#e5eaf0);background:var(--surf,#fff);border-radius:11px;padding:0 34px 0 14px;font-size:var(--fs-label);font-weight:600;color:var(--t2);cursor:pointer;font-family:inherit;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center}
.cv-datefilt{border:1px solid var(--bd,#e5eaf0);background:var(--surf,#fff);border-radius:11px;height:46px;padding:0 12px;font-size:var(--fs-label);font-weight:600;color:var(--t2);font-family:inherit;cursor:pointer}
.cv-gal-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px}
.cv-gal-count{margin-left:auto;font-size:12.5px;font-weight:700;color:var(--t3,#94a3b8)}
.cv-gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:640px){.cv-gal-grid{grid-template-columns:repeat(2,1fr)}}
.cv-gal-cell{position:relative;aspect-ratio:4/3;border-radius:12px;background-size:cover;background-position:center;background-color:var(--bg,#f1f5f9);cursor:zoom-in;overflow:hidden;border:1px solid var(--bd,#e5eaf0);transition:var(--tr-base)}
.cv-gal-cell:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.14)}
.cv-gal-meta{position:absolute;left:0;right:0;bottom:0;padding:22px 11px 9px;background:linear-gradient(transparent,rgba(0,0,0,.72));display:flex;flex-direction:column;gap:2px}
.cv-gal-com{font-size:12px;font-weight:800;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cv-gal-preg{font-size:10.5px;color:rgba(255,255,255,.85);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cv-gal-more{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin-top:16px;border:1.5px solid var(--bd,#e5eaf0);background:var(--surf,#fff);color:var(--pd,#0f766e);border-radius:11px;padding:12px;font-size:13.5px;font-weight:700;font-family:inherit;cursor:pointer;transition:var(--tr-base)}
.cv-gal-more:hover{border-color:var(--pd,#0f766e);background:var(--p2,#e6faf6)}
.cv-datefilt:focus{outline:none;border-color:var(--pd,#0f766e)}
.cv-fsel:hover{border-color:var(--p);color:var(--t1)}
.cv-fclear{display:inline-flex;align-items:center;gap:5px;height:46px;background:transparent;border:1px solid var(--bd,#e5eaf0);border-radius:11px;padding:0 15px;color:var(--t2);font-size:var(--fs-label);font-weight:600;cursor:pointer;font-family:inherit;transition:var(--tr-base)}
.cv-fclear:hover{border-color:#ef4444;color:#ef4444}
.cv-resp-panel{background:var(--surf);border:var(--border);border-radius:18px;overflow:hidden;box-shadow:var(--sh-sm);margin-bottom:14px}
.cv-resp-map{position:relative;height:352px;isolation:isolate;background:#aaceea}
.cv-resp-map .cv-map-big{height:100%;border-radius:0}
.cv-resp-mapempty{padding:30px 20px;border-bottom:1px solid var(--bd)}
.cv-resp-ctrl{padding:20px 22px 22px;border-top:1px solid var(--bd);background:var(--surf)}
.cv-resp-stats{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 16px;padding-bottom:16px;border-bottom:1px dashed var(--bd)}
.cv-rs-main{font-size:var(--fs-body);color:var(--t2);margin-right:6px;display:flex;align-items:baseline;gap:5px}
.cv-rs-main b{line-height:1;font-size:20px;font-weight:800;color:var(--t1);margin-right:3px;letter-spacing:-.5px}
.cv-rs-i{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-sec);font-weight:var(--fw-semi);color:var(--t2);padding:6px 13px;border-radius:var(--rpill);border:1px solid var(--bd);background:var(--surf)}
.cv-rs-ok{background:rgba(19,193,172,.1);border-color:rgba(19,193,172,.28);color:var(--pd)}
.cv-rs-ok b{color:var(--pd)}
.cv-rs-pend{background:rgba(245,158,11,.1);border-color:rgba(245,158,11,.32);color:#b45309}
.cv-rs-pend b{color:#b45309}
.cv-rs-i b{font-weight:800;color:var(--t1)}
.cv-resp-bar{display:flex;flex-wrap:wrap;align-items:center;gap:11px}
.cv-resp-tblsec{padding:0 0 6px;border-top:1px solid var(--bd)}
.cv-resp-ctrl-top{border-top:none!important;border-bottom:1px solid var(--bd)}
.cv-resp-tblsec-flat{padding-top:0}
.cv-resp-tblsec .cv-tbl th:first-child,.cv-resp-tblsec .cv-tbl td:first-child{padding-left:22px}
.cv-resp-tblsec .cv-tbl th:last-child,.cv-resp-tblsec .cv-tbl td:last-child{padding-right:22px}
.cv-resp-tblsec .cv-pager2{padding:12px 22px 4px}
.cv-resp-tblsec .cv-areabanner{margin:14px 22px 2px}
.cv-resp-tblsec .cv-empty{margin-left:22px;margin-right:22px}
.cv-idcell{font-weight:800;color:var(--pd);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:var(--fs-sec)}
.cv-resp-tblsec .cv-tnm{font-size:var(--fs-sec);font-weight:var(--fw-semi);color:var(--t1)}
.cv-resp-tblsec .cv-tsub{font-size:var(--fs-label);color:var(--t3);margin-top:1px}
.cv-resp-tblsec .cv-tcol{display:flex;flex-direction:column;gap:0;min-width:0}
.cv-resp-tblsec .cv-tbl-wrap{border-radius:0;overflow:hidden;background:var(--surf);box-shadow:0 0 0 1px var(--bd)}
.cv-resp-tblsec .cv-tbl{border-collapse:separate;border-spacing:0}
.cv-resp-tblsec .cv-tbl thead th{background:#7a8aa6;padding:14px;color:#fff;font-weight:var(--fw-heavy);border-bottom:none;letter-spacing:.5px}
.cv-resp-tblsec .cv-tbl thead th.cv-th-sort{color:#fff}
.cv-resp-tblsec .cv-tbl thead th.cv-th-sort:hover,.cv-resp-tblsec .cv-tbl thead th.on{color:#fff}
.cv-resp-tblsec .cv-tbl td{padding:14px}
.cv-resp-tblsec .cv-tbl tbody tr:nth-child(even){background:rgba(148,163,184,.045)}
.cv-resp-tblsec .cv-tbl tbody tr:last-child td{border-bottom:none}
.cv-resp-tblsec .cv-tbl tbody tr:hover{background:var(--pl)}
.cv-th-sort{cursor:pointer;user-select:none;white-space:nowrap;transition:color .12s}
.cv-th-sort:hover{color:var(--pd)}
.cv-th-sort.on{color:var(--pd)}
.cv-distg-n{display:inline-block;margin-left:6px;min-width:18px;padding:1px 6px;border-radius:20px;background:var(--pl,#e6faf6);color:var(--pd,#0f766e);font-size:10.5px;font-weight:800;text-align:center}
.cv-distg-b.on .cv-distg-n{background:var(--pl,#e6faf6);color:var(--pd,#0f766e)}
.pdv2-th{cursor:pointer;user-select:none;white-space:nowrap;transition:color .12s}
.pdv2-th:hover{color:var(--pd,#0f766e)}
.pdv2-th.on{color:var(--pd,#0f766e)}
.pdv2-th-ar{display:inline-block;margin-left:4px;font-size:10px;opacity:.6}
.pdv2-th.on .pdv2-th-ar{opacity:1}
.pdv2-tab-list{background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);color:var(--t1,#0f172a);font-weight:800;padding:8px 14px;border-radius:10px}
.pdv2-tab-list:hover{border-color:var(--pd,#0f766e);color:var(--pd,#0f766e)}
.pdv2-tab-list.on{background:var(--pd,#0f766e);border-color:var(--pd,#0f766e);color:#fff;box-shadow:0 1px 4px rgba(15,23,42,.14)}
.pdv2-tab-list .pdv2-tab-n{background:var(--bg,#f1f5f9);color:var(--t3,#94a3b8)}
.pdv2-tab-list.on .pdv2-tab-n{background:rgba(255,255,255,.22);color:#fff}
.pdv2-verpor-div{width:1px;align-self:center;height:26px;background:var(--bd,#e5eaf0);margin:0 4px;flex-shrink:0}
.ao-evt{margin-top:14px}
.ao-evt-l{font-size:12.5px;font-weight:800;color:var(--t1,#0f172a);margin-bottom:8px}
.ao-evt-opts{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.ao-evt-b{display:flex;align-items:center;gap:9px;text-align:left;background:var(--surf,#fff);border:1.5px solid var(--bd,#e5eaf0);border-radius:11px;padding:11px 13px;cursor:pointer;font-family:inherit;transition:var(--tr-14)}
.ao-evt-b:hover{border-color:var(--pd,#0f766e)}
.ao-evt-b.on{border-color:var(--pd,#0f766e);background:var(--pd,#0f766e)}
.ao-evt-ic{flex-shrink:0;display:flex}
.ao-evt-tx{display:flex;flex-direction:column;line-height:1.25}
.ao-evt-tx b{font-size:12.5px;font-weight:800;color:var(--t1,#0f172a)}
.ao-evt-tx small{font-size:11px;color:var(--t3,#94a3b8)}
.ao-evt-b.on .ao-evt-tx b,.ao-evt-b.on .ao-evt-tx small{color:#fff}
@media(max-width:520px){.ao-evt-opts{grid-template-columns:1fr}}
.mis-panel-coms{min-height:520px}
.mis-rev-name-req{background:linear-gradient(120deg,var(--pl,#e6faf6),transparent 90%);border:1px solid var(--bd,#e5eaf0);border-left:3px solid var(--p,#13c1ac);border-radius:12px;padding:14px 16px;gap:8px}
.mis-req{display:inline-block;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--pd,#0f766e);background:var(--surf,#fff);border:1px solid var(--p,#13c1ac);border-radius:20px;padding:1px 9px;margin-left:4px;vertical-align:middle}
.mis-rev-namein{display:flex;align-items:center;gap:9px;background:var(--surf,#fff);border:1.5px solid var(--bd,#e5eaf0);border-radius:10px;padding:0 13px;transition:var(--tr-14)}
.mis-rev-namein:focus-within{border-color:var(--p,#13c1ac);box-shadow:0 0 0 3px var(--pl,#e6faf6)}
.mis-rev-namein input{flex:1;border:none!important;outline:none;background:none;box-shadow:none!important;padding:12px 0;font-size:var(--fs-body);font-family:inherit;color:var(--t1,#0f172a)}
.mis-rev-namehint{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--t3,#94a3b8);margin-top:8px}
.mis-inp-err,.mis-rev-namein:has(.mis-inp-err){border-color:#ef4444!important;box-shadow:0 0 0 3px rgba(239,68,68,.12)!important}

/* ── solicitudes (revisión/aprobación) ── */
.sol-banner{display:flex;align-items:center;gap:10px;background:linear-gradient(120deg,var(--pl,#e6faf6),transparent 92%);border:1px solid var(--bd,#e5eaf0);border-left:3px solid var(--p,#13c1ac);border-radius:12px;padding:11px 15px;margin:0 0 14px;font-size:13px;color:var(--t2,#475569);line-height:1.4}
.sol-banner b{color:var(--t1,#0f172a);font-weight:800}
.sol-badge{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:800;border-radius:20px;padding:2px 9px;white-space:nowrap;vertical-align:middle}
.sol-rev{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}
.sol-ok{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}
.sol-no{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}

/* ── trazabilidad de solicitudes (tabla) ── */
.soltr{padding:18px 20px;margin:0 0 16px}
.soltr-hd{margin-bottom:12px}
.soltr-t{font-size:15px;font-weight:800;color:var(--t1,#0f172a)}
.soltr-sub{font-size:12px;color:var(--t3,#94a3b8);margin-top:2px}
.soltr-empty{display:flex;align-items:center;gap:10px;color:var(--t3,#94a3b8);font-size:13px;background:var(--bg,#f8fafc);border-radius:12px;padding:20px 16px;line-height:1.45}
.soltr-scroll{overflow-x:auto}
.soltr-tbl{width:100%;border-collapse:collapse;font-size:13px}
.soltr-tbl th{text-align:left;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--t3,#94a3b8);padding:8px 10px;border-bottom:1px solid var(--bd,#e5eaf0)}
.soltr-tbl td{padding:11px 10px;border-bottom:1px solid var(--bd,#eef2f6);color:var(--t2,#475569);vertical-align:top}
.soltr-tbl tr:last-child td{border-bottom:none}
.soltr-obj b{color:var(--t1,#0f172a);font-weight:700}
.soltr-fecha{color:var(--t3,#94a3b8);white-space:nowrap}
.soltr-nota{font-size:11px;color:#b91c1c;margin-top:4px}
.soltr-pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;border-radius:20px;padding:3px 10px;white-space:nowrap}
.soltr-rev{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}
.soltr-ok{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}
.soltr-no{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}
.soltr-foot{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:12px}
.soltr-pg{border:1px solid var(--bd,#e5eaf0);background:var(--surf,#fff);border-radius:8px;padding:6px 12px;font-size:12px;font-weight:700;color:var(--t2,#475569);cursor:pointer;font-family:inherit}
.soltr-pg:hover:not(:disabled){border-color:var(--p,#13c1ac);color:var(--p,#13c1ac)}
.soltr-pg:disabled{opacity:.4;cursor:default}
.soltr-pgn{font-size:12px;color:var(--t3,#94a3b8);font-weight:700}

.pro-ed-ov{position:fixed;inset:0;background:rgba(15,23,42,.5);display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}
.pro-ed-modal{background:var(--surf,#fff);border-radius:16px;max-width:580px;width:100%;max-height:88vh;overflow:auto;box-shadow:0 20px 60px rgba(15,23,42,.3)}
.pro-ed-hd{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--bd,#e5eaf0)}
.pro-ed-t{font-size:16px;font-weight:800;color:var(--t1,#0f172a)}
.pro-ed-x{background:none;border:none;font-size:22px;color:var(--t3,#94a3b8);cursor:pointer;line-height:1}
.pro-ed-body{padding:18px 22px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pro-ed-body .com-fld{margin:0}
.pro-ed-foot{display:flex;align-items:center;gap:10px;padding:16px 22px;border-top:1px solid var(--bd,#e5eaf0)}
@media(max-width:560px){.pro-ed-body{grid-template-columns:1fr}}

.cc-card-inactiva{border-top:3px solid var(--danger);opacity:.6;filter:grayscale(.4)}
.mis-campcard-rev{opacity:.5;filter:grayscale(.55);cursor:not-allowed}
.ced-del{color:#b91c1c!important;border-color:#fecaca!important}
.ced-del:hover{background:#fef2f2!important;border-color:#ef4444!important}
.cc-card-inactiva:hover{opacity:.75}
.cc-card-inactiva .cc-cta-primary{background:var(--bd,#e5eaf0);color:var(--t3,#94a3b8);cursor:not-allowed}


.cv-th-ar{font-size:9px;margin-left:3px;letter-spacing:-1px;display:inline-block;width:8px}
.cv-fcell{display:flex;flex-direction:column;gap:1px;line-height:1.25}
.cv-fdate{font-weight:var(--fw-semi);color:var(--t1)}
.cv-ftime{font-size:var(--fs-label);color:var(--t3)}
.cv-mapsearch{position:absolute;top:14px;left:50%;transform:translateX(-50%);z-index:500;display:inline-flex;align-items:center;gap:7px;background:var(--surf,#fff);border:1px solid var(--bd,#e5eaf0);color:var(--p);font-size:var(--fs-label);font-weight:700;cursor:pointer;padding:9px 16px;border-radius:22px;box-shadow:0 4px 16px rgba(15,23,42,.16);transition:var(--tr-base);font-family:inherit}
.cv-mapsearch:hover{background:var(--p);color:#fff;border-color:var(--p);box-shadow:0 6px 20px rgba(19,193,172,.35)}
.leaflet-div-icon.cv-pinico{background:none;border:none;box-shadow:none}
.cv-pinico svg{filter:drop-shadow(0 2px 3px rgba(15,23,42,.3))}
.cv-areabanner{display:flex;align-items:center;gap:11px;background:linear-gradient(180deg,rgba(19,193,172,.1),rgba(19,193,172,.05));border:1px solid rgba(19,193,172,.28);border-radius:12px;padding:13px 16px;margin:0 0 18px;font-size:var(--fs-body);color:var(--t2);box-shadow:0 1px 3px rgba(19,193,172,.08)}
.cv-areabanner>svg:first-child{color:var(--p);flex-shrink:0}
.cv-areabanner span{flex:1}
.cv-area-clear{display:inline-flex;align-items:center;gap:4px;background:var(--p);border:none;color:#fff;font-size:12px;font-weight:700;cursor:pointer;padding:6px 13px;border-radius:8px;font-family:inherit;flex-shrink:0}
.cv-area-clear:hover{filter:brightness(1.06)}
@media(max-width:820px){.cv-fsel,.cv-fsearch,.cv-fclear{flex:1 1 auto}}

/* ===== General de campaña · aire, jerarquía y color ===== */
.cv-body{display:flex;flex-direction:column;gap:18px}
.cv-sect{display:flex;align-items:center;gap:13px;margin:6px 0 15px}
.cv-sect-bar{width:5px;height:36px;border-radius:3px;background:linear-gradient(180deg,var(--p),var(--pd));flex:none}
.cv-sect-t{font-size:18px;font-weight:var(--fw-heavy);color:var(--t1);letter-spacing:-.3px}
.cv-sect-s{font-size:13px;color:var(--t3);margin-top:3px}
.cv-kpis.cc-exec{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:18px 0 4px;padding:0;background:none;border:none}
.cv-kpis .cc-stat{background:var(--surf);border:var(--border);border-radius:16px;box-shadow:var(--sh-xs);padding:17px 18px;flex-direction:row;align-items:center;gap:13px;min-width:0}
.cv-kpis .cc-stat::before{display:none}
.cv-kpis .cc-stat-ic{width:42px;height:42px;border-radius:12px;flex:none;display:flex;align-items:center;justify-content:center}
.cv-kpis .cc-stat-num{font-size:25px;letter-spacing:-.6px;line-height:1}
.cv-kpis .cc-stat-lbl{font-size:12px;margin-top:3px}
@media(max-width:1180px){.cv-kpis.cc-exec{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.cv-kpis.cc-exec{grid-template-columns:repeat(2,1fr)}}
.cv-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.cv-card{background:var(--surf);border:var(--border);border-radius:18px;padding:22px 24px;box-shadow:var(--sh-sm)}
.cv-card-h{display:flex;align-items:center;justify-content:space-between;gap:var(--sp4);margin-bottom:16px}
.cv-distg{display:inline-flex;gap:3px;background:var(--bg,#f4f7fa);border:1px solid var(--bd,#e5eaf0);border-radius:11px;padding:4px;margin-bottom:14px}
.cv-distg-b{background:transparent;border:none;color:var(--t2);font-size:var(--fs-label);font-weight:600;cursor:pointer;padding:6px 14px;border-radius:8px;transition:var(--tr-base);font-family:inherit}
.cv-distg-b:hover{color:var(--t1)}
.cv-distg-b.on{background:var(--surf,#fff);color:var(--p);box-shadow:0 1px 4px rgba(15,23,42,.1)}
.zp-lock{text-align:center;padding:38px 22px}
.zp-lock-ic{width:60px;height:60px;border-radius:var(--r16);background:var(--slate-bg);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.zp-lock-ttl{font-size:var(--fs-h2);font-weight:var(--fw-heavy);color:var(--t1);letter-spacing:-.3px}
.zp-lock-msg{font-size:var(--fs-body);color:var(--t2);max-width:540px;margin:9px auto 0;line-height:var(--lh-loose)}
.zp-lock-need{display:inline-flex;align-items:center;gap:7px;margin-top:18px;background:var(--p2);color:var(--pd);border:1px solid var(--p);border-radius:var(--r10);padding:9px 15px;font-size:var(--fs-sec);font-weight:var(--fw-bold)}
.zpo-cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp6);margin-bottom:8px}
.zpo-cat{background:var(--surf);border:var(--border);border-radius:var(--r16);padding:var(--sp8);cursor:pointer;transition:transform var(--tr-16),border-color var(--tr-16),box-shadow var(--tr-16)}
.zpo-cat:hover{border-color:var(--p);transform:translateY(-2px);box-shadow:0 10px 24px rgba(15,23,42,.08)}
.zpo-cat-ic{width:42px;height:42px;border-radius:var(--r12);display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.zpo-cat-name{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--t2)}
.zpo-cat-score{font-size:34px;font-weight:var(--fw-heavy);letter-spacing:-1.5px;line-height:1;margin-top:4px}
.zpo-cat-score span{font-size:var(--fs-body);color:var(--t3);font-weight:var(--fw-semi);letter-spacing:0}
.zpo-cat-sub{font-size:var(--fs-label);color:var(--t3);margin-top:5px;text-transform:capitalize}
.zpo-cat-lock{opacity:.9}
.zpo-cat-lockt{display:flex;align-items:center;gap:5px;font-size:var(--fs-label);color:var(--t3);font-weight:var(--fw-semi);margin-top:8px}

/* utilities (generadas: inline->clase) */
.zu1{flex-shrink:0}
.zu2{color:var(--danger)}
.zu3{display:none}
.zu4{color:var(--warn)}
.zu5{font-size:var(--fs-h1);font-weight:var(--fw-heavy);color:var(--t1);letter-spacing:-0.5px;line-height:1.15}
.zu6{display:flex;align-items:center;gap:var(--sp3);margin-bottom:3px}
.zu7{font-size:var(--fs-body);color:var(--t2);margin-top:2px;margin-left:36px}
.zu8{background:var(--danger)}
.zu9{font-size:var(--fs-ter);padding:4px 11px}
.zu10{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp5);flex-wrap:wrap;margin-bottom:14px}
.zu11{display:flex;align-items:flex-start;gap:var(--sp5)}
.zu12{color:var(--t1)}
.zu13{font-size:var(--fs-micro);color:var(--t3)}
.zu14{margin:0}
.zu15{margin-top:16px}
.zu16{color:var(--t3)}
.zu17{font-size:var(--fs-micro)}
.zu18{background:var(--warn)}
.zu19{color:var(--t2)}
.zu20{background:#13c1ac}
.zu21{background:#f59e0b}
.zu23{background:var(--bg);padding:2px 9px;border-radius:5px;font-weight:var(--fw-semi)}
.zu24{position:relative;height:140px}
.zu25{display:flex;gap:var(--sp2);flex-wrap:wrap;align-items:center}
.zu26{background:var(--p)}
.zu27{width:4px;min-height:44px;background:var(--p);border-radius:2px;flex-shrink:0;margin-top:2px}
.zu28{margin-top:14px}
.zu29{text-align:right}
.zu30{font-weight:var(--fw-semi)}
