/* Banco G&T Continental · Estudios — capa de marca sobre NexLink (tema Kölbi recoloreado) */
:root,[data-bs-theme=light]{
  --tc-magenta:#0058A3;--tc-magenta-dark:#004A89;--tc-purple:#10284A;--tc-purple-dark:#0B1D37;--tc-lilac:#4C8BE0;--tc-gold:#F5B53A;--tc-bg:#F2F2F2;
  --bs-primary:#0058A3;--bs-primary-rgb:0,88,163;--bs-primary-text-emphasis:#16407A;--bs-primary-bg-subtle:#E6EEF9;--bs-primary-border-subtle:#B9D0F0;
  --bs-secondary:#10284A;--bs-secondary-rgb:16,40,74;
  --bs-link-color:#10284A;--bs-link-hover-color:#0B1D37;--bs-link-color-rgb:16,40,74;
  --bs-body-bg:#fff;--app-body-bg:#F2F2F2
}
body{background:var(--tc-bg)}
.btn-primary{--bs-btn-bg:#0058A3;--bs-btn-border-color:#0058A3;--bs-btn-hover-bg:#004A89;--bs-btn-hover-border-color:#004A89;--bs-btn-active-bg:#16407A;--bs-btn-active-border-color:#16407A;--bs-btn-disabled-bg:#9DBBE8;--bs-btn-disabled-border-color:#9DBBE8}
.btn-outline-primary{--bs-btn-color:#0058A3;--bs-btn-border-color:#0058A3;--bs-btn-hover-bg:#0058A3;--bs-btn-hover-border-color:#0058A3;--bs-btn-active-bg:#004A89;--bs-btn-active-border-color:#004A89}
.btn-secondary{--bs-btn-bg:#10284A;--bs-btn-border-color:#10284A;--bs-btn-hover-bg:#0B1D37;--bs-btn-hover-border-color:#0B1D37}
.btn-subtle-primary{background:#E6EEF9;color:#004A89;border:0}.btn-subtle-primary:hover{background:#0058A3;color:#fff}
.form-control:focus,.form-select:focus{border-color:#4C8BE0;box-shadow:0 0 0 .2rem rgba(16,40,74,.15)}
.form-check-input:checked{background-color:#10284A;border-color:#10284A}
.text-purple{color:var(--tc-purple)!important}.text-magenta{color:var(--tc-magenta)!important}

/* ---------- login */
.auth-cover{background:linear-gradient(145deg,#00305e 0%,#0058a3 62%,#1b73c4 100%)!important;position:relative;overflow:hidden}
.auth-cover::after{content:"";position:absolute;right:-120px;bottom:-120px;width:380px;height:380px;border-radius:50%;background:#0058A3;opacity:.9}
.auth-cover::before{content:"";position:absolute;left:-80px;top:-80px;width:220px;height:220px;border-radius:50%;background:#4C8BE0;opacity:.35}
.auth-cover .auth-content{color:#fff;position:relative;z-index:1}.auth-cover .auth-content h1{color:#fff!important}.auth-cover .auth-content p{color:rgba(255,255,255,.85)!important}
.auth-cover .cover-img{max-height:48vh;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(0 18px 30px rgba(0,0,0,.25))}
.auth-brand{height:44px;width:auto}.auth-gold{color:var(--tc-gold)}

/* ---------- layout con barra lateral propia */
.tc-sidebar{width:260px;position:fixed;top:0;bottom:0;left:0;z-index:1020;background:#fff;border-right:1px solid var(--bs-border-color);display:flex;flex-direction:column;box-shadow:0 30px 30px 10px rgba(0,0,0,.02)}
.tc-sidebar .tc-brand{height:var(--app-header-height,70px);display:flex;align-items:center;padding:0 22px;border-bottom:1px solid var(--bs-border-color)}
.tc-sidebar .tc-brand img{height:26px;width:auto}
.tc-sidebar nav{flex:1;overflow-y:auto;padding:14px 12px}
.tc-sidebar .menu-heading{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--bs-secondary-color);padding:10px 12px 6px}
.tc-nav-link{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;text-align:left;padding:10px 12px;border-radius:10px;color:var(--bs-body-color);font-weight:500;transition:background .2s,color .2s,transform .2s}
.tc-nav-link i{font-size:17px;width:20px;color:var(--tc-purple);transition:color .2s}
.tc-nav-link small{display:block;font-size:11px;font-weight:400;opacity:.7;line-height:1.2}
.tc-nav-link:hover{background:#F2F5FA;transform:translateX(2px)}
.tc-nav-link.active{background:linear-gradient(90deg,#0058A3,#004A89);color:#fff;box-shadow:0 8px 18px rgba(0,88,163,.28)}
.tc-nav-link.active i,.tc-nav-link.active small{color:#fff;opacity:1}
.tc-sidebar .tc-side-foot{padding:14px 18px;border-top:1px solid var(--bs-border-color);font-size:11px;color:var(--bs-secondary-color);display:flex;align-items:center;gap:8px}
.tc-sidebar .tc-side-foot img{height:20px}
.app-header{left:260px!important;right:0!important;width:auto!important;max-width:calc(100vw - 260px)}.app-wrapper,.footer-wrapper{margin-left:260px!important}
.app-header .app-header-inner{padding-left:24px}
.tc-header-title{font-weight:600}.tc-header-title span{color:var(--bs-secondary-color);font-weight:400}
@media(max-width:1199.98px){
  .tc-sidebar{position:static;width:auto;flex-direction:column;margin-top:var(--app-header-height,70px);border-right:0;border-bottom:1px solid var(--bs-border-color)}
  .tc-sidebar .tc-brand,.tc-sidebar .menu-heading,.tc-sidebar .tc-side-foot{display:none}
  .tc-sidebar nav{display:flex;gap:6px;overflow-x:auto;padding:10px 12px}
  .tc-nav-link{white-space:nowrap;width:auto}.tc-nav-link small{display:none}
  .app-header{left:0!important;max-width:100vw}.app-wrapper,.footer-wrapper{margin-left:0!important;margin-top:0!important}
}

/* ---------- barra de filtros */
.tc-filters{background:#fff;border-radius:14px;padding:14px 16px;box-shadow:0 4px 18px rgba(16,40,74,.06);border:1px solid #eee}
.tc-filters label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--bs-secondary-color);margin-bottom:4px;display:block}
.tc-filters .form-select,.tc-filters .form-control{font-size:13px;padding-top:.35rem;padding-bottom:.35rem;min-width:120px}
.tc-seg{display:inline-flex;background:#F2F5FA;border-radius:10px;padding:3px;gap:2px}
.tc-seg button{border:0;background:transparent;padding:.32rem .75rem;border-radius:8px;font-size:13px;color:#0B1D37;font-weight:500;transition:all .2s}
.tc-seg button.active{background:#fff;color:#0058A3;box-shadow:0 2px 8px rgba(16,40,74,.18)}
.tc-chip{border:1px solid var(--bs-border-color);background:#fff;border-radius:999px;padding:.2rem .7rem;font-size:12.5px;display:inline-flex;align-items:center;gap:6px;transition:all .2s;cursor:pointer}
.tc-chip i{width:10px;height:10px;border-radius:50%;display:inline-block}
.tc-chip.off{opacity:.45;background:#fafafa}
.tc-chip:hover{border-color:#4C8BE0}

/* ---------- tarjetas */
.tc-card{border:0;border-radius:16px;box-shadow:0 4px 22px rgba(16,40,74,.07);animation:tcFadeUp .55s ease both}
.tc-card .card-header{background:transparent}
.tc-card h6{font-weight:600}
.tc-sub{font-size:12px;color:var(--bs-secondary-color)}
.tc-kpi{border-radius:16px;padding:16px 18px;background:#fff;box-shadow:0 4px 22px rgba(16,40,74,.07);position:relative;overflow:hidden;height:100%;animation:tcFadeUp .5s ease both;transition:transform .25s,box-shadow .25s}
.tc-kpi:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(16,40,74,.14)}
.tc-kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--kpi-color,#10284A)}
.tc-kpi .kpi-name{font-size:13px;font-weight:600;color:#444}
.tc-kpi .kpi-value{font-size:2rem;font-weight:700;line-height:1.1;color:var(--kpi-color,#10284A)}
.tc-kpi .kpi-delta{font-size:12px;font-weight:600;border-radius:999px;padding:.1rem .5rem}
.tc-kpi .kpi-delta.up{background:#e8f7ee;color:#1d8a4a}.tc-kpi .kpi-delta.down{background:#E6EEF9;color:#004A89}.tc-kpi .kpi-delta.eq{background:#f1f1f1;color:#666}
.tc-kpi .kpi-bar{display:flex;height:7px;border-radius:99px;overflow:hidden;margin-top:10px;background:#eee}
.tc-kpi .kpi-bar span{display:block;height:100%}
.tc-kpi .kpi-foot{font-size:11px;color:var(--bs-secondary-color);margin-top:6px;display:flex;justify-content:space-between}
.tc-kpi.featured{background:linear-gradient(135deg,#0058A3 0%,#10284A 100%);color:#fff}
.tc-kpi.featured::before{display:none}
.tc-kpi.featured .kpi-name,.tc-kpi.featured .kpi-value,.tc-kpi.featured .kpi-foot{color:#fff}
.tc-kpi.featured .kpi-bar{background:rgba(255,255,255,.25)}
.tc-rel{font-size:2.4rem;font-weight:700}
.tc-badge-base{font-size:11px;background:#F2F5FA;color:#0B1D37;border-radius:999px;padding:.15rem .55rem;font-weight:600}
.tc-warn{font-size:11px;color:#9a6a00;background:#fff4dc;border-radius:8px;padding:.25rem .55rem;display:inline-block}
.tc-empty{min-height:220px;display:grid;place-items:center;color:var(--bs-secondary-color);font-size:14px}
.tc-chart{min-height:300px}
.tc-hbar-row{display:grid;grid-template-columns:minmax(120px,1.4fr) 3fr 52px;gap:10px;align-items:center;padding:5px 0;font-size:13px}
.tc-hbar-row .track{height:12px;background:#F2F5FA;border-radius:99px;overflow:hidden}
.tc-hbar-row .fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#10284A,#0058A3);width:0;transition:width .8s cubic-bezier(.2,.8,.2,1)}
.tc-hbar-row b{text-align:right;color:#0B1D37}
.tc-hbar-row span{line-height:1.2}

/* ---------- mapa */
.cr-map{min-height:280px;display:grid;place-items:center;color:var(--bs-secondary-color);position:relative}
.cr-map svg{display:block;width:100%;height:auto;max-height:340px}
.cr-province{stroke:#fff;stroke-width:1.2;vector-effect:non-scaling-stroke;transition:filter .2s,opacity .2s;cursor:pointer}
.cr-province:hover{filter:brightness(.85);stroke:#0B1D37;stroke-width:2}
.cr-label{font-size:10px;font-weight:700;fill:#fff;pointer-events:none;paint-order:stroke;stroke:rgba(0,0,0,.35);stroke-width:2px}
.map-legend{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--bs-secondary-color)}
.map-legend .grad{flex:1;height:8px;border-radius:99px;background:linear-gradient(90deg,#E6EEF9,#4C8BE0,#10284A,#0058A3)}
.map-tip{position:absolute;pointer-events:none;background:#10284A;color:#fff;font-size:12px;padding:6px 10px;border-radius:8px;box-shadow:0 6px 16px rgba(0,0,0,.2);white-space:nowrap;transform:translate(-50%,-120%)}

/* ---------- varios */
.page-title{font-weight:700;color:#10284A}.page-title small{font-weight:400;font-size:14px;color:var(--bs-secondary-color)}
.tc-loading{position:relative}.tc-loading::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.55);border-radius:16px;backdrop-filter:blur(1px)}
.site-credit{display:flex;align-items:center;justify-content:center;gap:10px;font-size:12px;color:var(--bs-secondary-color);padding:24px 0 8px}.site-credit img{height:22px}
.footer-wrapper ul{display:none!important}
@keyframes tcFadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){.tc-card,.tc-kpi{animation:none}.tc-hbar-row .fill{transition:none}}

/* ================= v2: resumen, análisis y exportación ================= */
.tc-hero{position:relative;overflow:hidden;border-radius:20px;padding:28px 30px;color:#fff;background:linear-gradient(120deg,#0058A3 0%,#004A89 45%,#10284A 100%);box-shadow:0 14px 36px rgba(16,40,74,.25);animation:tcFadeUp .6s ease both}
.tc-hero::after{content:"";position:absolute;right:-70px;top:-90px;width:300px;height:300px;border-radius:50%;background:rgba(255,255,255,.08)}
.tc-hero::before{content:"";position:absolute;right:120px;bottom:-120px;width:240px;height:240px;border-radius:50%;background:rgba(245,181,58,.18)}
.tc-hero img{height:30px}.tc-hero h2{color:#fff;font-weight:700;margin:14px 0 4px}.tc-hero p{color:rgba(255,255,255,.85);margin:0}
.tc-hero .hero-badge{display:inline-flex;gap:6px;align-items:center;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:.25rem .75rem;font-size:12px;font-weight:600}
.tc-svc{border-radius:18px;background:#fff;box-shadow:0 4px 22px rgba(16,40,74,.08);padding:20px;height:100%;animation:tcFadeUp .55s ease both}
.tc-svc .svc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.tc-svc .svc-name{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#10284A}
.tc-svc .svc-nps{font-size:3.4rem;font-weight:800;line-height:1;color:#0058A3}
.tc-svc .svc-meta{font-size:12px;color:var(--bs-secondary-color)}
.tc-svc .svc-stat{background:#F5F8FC;border-radius:12px;padding:10px 12px;height:100%}
.tc-svc .svc-stat b{display:block;font-size:1.25rem;color:#10284A}.tc-svc .svc-stat span{font-size:11px;color:var(--bs-secondary-color)}
.tc-rank-row{display:grid;grid-template-columns:92px 1fr 40px;gap:8px;align-items:center;font-size:12.5px;padding:3px 0}
.tc-rank-row .bar{height:9px;border-radius:99px;background:#EDF1F7;overflow:hidden}.tc-rank-row .bar i{display:block;height:100%;border-radius:99px;transition:width .8s cubic-bezier(.2,.8,.2,1)}
.tc-rank-row.me{font-weight:700}
.tc-insight{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:#F5F8FC;margin-bottom:8px;font-size:13.5px;animation:tcFadeUp .5s ease both}
.tc-insight i{font-size:16px;margin-top:2px}.tc-insight.good i{color:#1d8a4a}.tc-insight.bad i{color:#0058A3}.tc-insight.neutral i{color:#10284A}
.sig{font-size:10.5px;font-weight:700;border-radius:999px;padding:.08rem .45rem;margin-left:4px;white-space:nowrap}
.sig.up{background:#e8f7ee;color:#1d8a4a}.sig.down{background:#E6EEF9;color:#004A89}
.tc-kpi.featured .sig.up,.tc-kpi.featured .sig.down{background:rgba(255,255,255,.22);color:#fff}
.tc-kpi .kpi-rank{font-size:11px;font-weight:600;opacity:.8}
.tc-spark{height:38px;margin:4px -6px -6px}
/* mapa de calor */
.tc-heat{width:100%;border-collapse:separate;border-spacing:3px;font-size:12.5px}
.tc-heat th{font-weight:600;color:var(--bs-secondary-color);text-align:center;padding:4px;font-size:11.5px;white-space:nowrap}
.tc-heat th.prov-h{text-align:left;color:#10284A;min-width:118px;padding:4px 10px 4px 6px!important;overflow:visible;white-space:nowrap}
.tc-heat td{text-align:center;border-radius:8px;padding:8px 4px;font-weight:700;color:#fff;min-width:54px;transition:transform .15s}
.tc-heat td:hover{transform:scale(1.06)}
.tc-heat td.empty{background:#f4f1f5;color:#bbb;font-weight:400}
.tc-heat td small{display:block;font-size:9.5px;font-weight:500;opacity:.85}
.tc-heat tr.me th.prov-h{color:#0058A3}
/* drivers */
.tc-drv-group{margin-bottom:14px}.tc-drv-group h6{font-size:12.5px;margin-bottom:6px;color:#0B1D37}
.tc-drv-row{display:grid;grid-template-columns:minmax(150px,1.2fr) 3fr 64px;gap:10px;align-items:center;font-size:12.5px;padding:3px 0}
.tc-drv-track{position:relative;height:16px;background:#F2F5FA;border-radius:6px}
.tc-drv-track::after{content:"";position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:#9AA6B4}
.tc-drv-bar{position:absolute;top:2px;bottom:2px;border-radius:4px;transition:all .8s cubic-bezier(.2,.8,.2,1)}
.tc-drv-row b{text-align:right}
.tc-drv-total{font-size:12px;color:var(--bs-secondary-color)}
/* matriz de atributos */
.tc-matrix{width:100%;border-collapse:separate;border-spacing:3px;font-size:12.5px}
.tc-matrix th{font-size:11.5px;color:var(--bs-secondary-color);font-weight:600;text-align:center;padding:4px}
.tc-matrix th.attr{text-align:left;color:#10284A;font-weight:600;min-width:190px}
.tc-matrix td{text-align:center;border-radius:7px;padding:7px 4px;font-weight:600}
.tc-matrix td.best{outline:2px solid #F5B53A;outline-offset:-2px}
.tc-matrix th.me{color:#0058A3}
.tc-legend-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:middle}
/* satisfacción de canales */
.tc-chan{border-radius:14px;background:#F5F8FC;padding:12px 14px;height:100%}
.tc-chan .v{font-size:1.8rem;font-weight:800;color:#10284A;line-height:1.1}.tc-chan .v small{font-size:.9rem;color:var(--bs-secondary-color);font-weight:500}
.tc-chan .n{font-size:11px;color:var(--bs-secondary-color)}
.tc-stars{color:#F5B53A;letter-spacing:1px;font-size:13px}
/* utilidades */
.tc-card .card-tools{display:flex;gap:6px;align-items:center}
.tc-icon-btn{border:0;background:#F2F5FA;color:#0B1D37;border-radius:8px;width:30px;height:30px;display:inline-grid;place-items:center;transition:all .2s}
.tc-icon-btn:hover{background:#0058A3;color:#fff}
.tc-skel{border-radius:16px;background:linear-gradient(90deg,#EDF1F7 25%,#F7F9FC 50%,#EDF1F7 75%);background-size:200% 100%;animation:tcShimmer 1.2s infinite;min-height:140px}
@keyframes tcShimmer{from{background-position:200% 0}to{background-position:-200% 0}}
.tc-note{font-size:11.5px;color:var(--bs-secondary-color)}
.tc-def dt{color:#0B1D37;font-size:13px}.tc-def dd{font-size:13px;color:#444;margin-bottom:10px}
.tc-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#0B1D37;cursor:pointer}
@media print{
  .tc-sidebar,.app-header,.tc-filters,.footer-wrapper,#print-btn,.apexcharts-toolbar,.tc-icon-btn,.site-credit{display:none!important}
  .app-wrapper{margin:0!important;padding:0!important}body{background:#fff!important}
  .tc-card,.tc-kpi,.tc-svc,.tc-hero{box-shadow:none!important;break-inside:avoid;animation:none!important}
  .tc-hero{-webkit-print-color-adjust:exact;print-color-adjust:exact}.tc-heat td,.tc-matrix td,.tc-kpi.featured{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
/* v2.1: sin recortes */
.app-header .app-header-inner{min-width:0}
.app-header-start{min-width:0;overflow:hidden}.app-header-start .tc-header-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.app-header-end{flex-shrink:0;flex-wrap:nowrap}
@media(max-width:1500px){#data-stamp{display:none!important}}
@media(max-width:1280px){#session-email{display:none}}
.tc-heat th.prov-h,.tc-matrix th.attr{position:sticky;left:0;z-index:2;background:#fff;padding-left:10px!important;padding-right:12px!important}
.tc-heat,.tc-matrix{min-width:max-content}
.table-responsive{padding-bottom:4px}
.card,.tc-card{overflow:visible}
.tc-card .card-body{min-width:0}
@media(max-width:1199.98px){.tc-sidebar nav .tc-nav-link{flex:0 0 auto;overflow:visible}.tc-sidebar nav{scrollbar-width:thin}}
.hero-badge{white-space:nowrap}
@media(max-width:575.98px){.tc-svc .svc-head{flex-direction:column}.tc-svc .svc-nps{font-size:2.8rem}.app-header-end .btn{padding:.25rem .5rem;font-size:12px}.tc-hero{padding:20px}.tc-hero h2{font-size:1.35rem}}
.tc-card .card-tools{flex-wrap:wrap;max-width:100%;justify-content:flex-end}
.tc-card .card-header>div:first-child{min-width:0;flex:1 1 220px}
.tc-seg{flex-wrap:wrap;max-width:100%}

/* ================= v3: estilo sobrio (acento magenta, sin degradados) ================= */
body{background:#f6f6f7}
.tc-card,.tc-kpi,.tc-svc,.tc-filters{box-shadow:0 1px 2px rgba(16,24,40,.05)!important;border:1px solid #ececef!important;border-radius:12px}
.tc-kpi:hover{transform:none;box-shadow:0 1px 3px rgba(16,24,40,.08)!important}
.tc-kpi::before{width:3px}
.tc-kpi .kpi-value{color:#1f2430}
.tc-kpi.featured{background:#fff;color:inherit}
.tc-kpi.featured::before{display:block;background:#0058A3}
.tc-kpi.featured .kpi-name{color:#0058A3}.tc-kpi.featured .kpi-value{color:#0058A3}.tc-kpi.featured .kpi-foot{color:var(--bs-secondary-color)}
.tc-kpi.featured .kpi-bar{background:#eee}
.tc-kpi.featured .sig.up{background:#e8f7ee;color:#1d8a4a}.tc-kpi.featured .sig.down{background:#E6EEF9;color:#004A89}
.tc-hero{background:#fff!important;color:#1f2430;border:1px solid #ececef;border-left:4px solid #0058A3;box-shadow:none;border-radius:12px;padding:22px 26px}
.tc-hero::before,.tc-hero::after{display:none}
.tc-hero h2{color:#1f2430;font-size:1.45rem}.tc-hero p{color:#667085}
.tc-hero .hero-badge{background:#f4f4f6;border:1px solid #e4e4e8;color:#344054}
.tc-hero img{height:26px}
.tc-svc .svc-nps{color:#1f2430}.tc-svc .svc-name{color:#0058A3}
.tc-svc .svc-stat{background:#f8f8fa}
.tc-svc .hero-badge{background:#f4f4f6!important;color:#344054!important}
.tc-nav-link.active{background:#E6EEF9;color:#004A89;box-shadow:none;font-weight:600}
.tc-nav-link.active i,.tc-nav-link.active small{color:#004A89;opacity:.85}
.tc-nav-link:hover{background:#f6f6f8;transform:none}
.tc-nav-link i{color:#667085}
.tc-seg{background:#f2f2f4}.tc-seg button{color:#344054}.tc-seg button.active{color:#004A89;box-shadow:0 1px 2px rgba(16,24,40,.1)}
.tc-hbar-row .track{background:#f1f1f3}.tc-hbar-row .fill{background:#10284A}.tc-hbar-row b{color:#344054}
.tc-badge-base{background:#f2f2f4;color:#475467}
.tc-insight{background:#f8f8fa;border:1px solid #f0f0f2}
.tc-chan{background:#f8f8fa}.tc-chan .v{color:#1f2430}
.tc-icon-btn{background:#f2f2f4;color:#475467}.tc-icon-btn:hover{background:#e4e4e8;color:#1f2430}
.tc-drv-track{background:#f1f1f3}
.page-title{color:#1f2430}
.tc-rank-row .bar{background:#f1f1f3}
.tc-chip{border-color:#e4e4e8}
.btn-subtle-primary{background:#f4f4f6;color:#344054}.btn-subtle-primary:hover{background:#e9e9ed;color:#1f2430}
.tc-card,.tc-kpi,.tc-svc,.tc-hero,.tc-insight{animation-duration:.3s}
/* modo PDF (pestaña nueva) */
body.print-mode .tc-sidebar,body.print-mode .app-header,body.print-mode .tc-filters,body.print-mode .footer-wrapper,body.print-mode .apexcharts-toolbar,body.print-mode .tc-icon-btn,body.print-mode .tc-toggle,body.print-mode #focus-sel,body.print-mode #metric-seg,body.print-mode #mx-seg,body.print-mode #attr-sel,body.print-mode #ch-sel{display:none!important}
body.print-mode .app-wrapper{margin:0!important;padding-top:16px!important}
body.print-mode{background:#fff}
@media print{#metric-seg,#mx-seg,.tc-toggle,#focus-sel,#attr-sel,#ch-sel{display:none!important}.tc-card,.tc-kpi,.tc-svc{border:1px solid #e4e4e8!important}}
/* v3.1: columna de nombres ajustada, sin superposición */
.tc-heat th.prov-h,.tc-matrix th.attr{position:static!important;background:transparent!important;width:1%;white-space:nowrap;vertical-align:middle;padding:4px 14px 4px 4px!important;min-width:0}
.tc-matrix th.attr{white-space:normal;min-width:180px;max-width:260px}
.tc-heat,.tc-matrix{min-width:0;width:100%}
.tc-heat td{vertical-align:middle}

/* ================= Banco G&T Continental · capa propia ================= */
:root{--gt-navy:#10284A;--gt-blue:#0058A3;--gt-light:#4C8BE0;--gt-gold:#F5B53A;--gt-gold-dark:#B9821A;--gt-text:#45546A;--gt-text2:#65738A;--gt-bg:#F2F5FA}
.tc-nav-link.active{background:#E6EEF9;color:#10284A}.tc-nav-link.active i,.tc-nav-link.active small{color:#0058A3}
.tc-sidebar .tc-brand img{height:34px}
.gt-study{display:flex;align-items:center;gap:10px;padding:12px 14px;margin:4px 12px 10px;border-radius:12px;background:linear-gradient(135deg,#10284A,#1F3F73);color:#fff}
.gt-study i{font-size:18px;color:#F5B53A}.gt-study b{display:block;font-size:13px;line-height:1.2}.gt-study small{font-size:11px;opacity:.8}
.gt-kpi{position:relative;border-radius:14px;padding:16px 18px;background:#fff;border:1px solid #ececef;box-shadow:0 1px 2px rgba(16,24,40,.05);height:100%;animation:tcFadeUp .4s ease both}
.gt-kpi::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:4px;border-radius:4px;background:var(--kpi-color,#0058A3)}
.gt-kpi .k-name{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#65738A}
.gt-kpi .k-value{font-size:2.3rem;font-weight:800;line-height:1.05;color:#10284A;margin-top:6px}
.gt-kpi .k-value small{font-size:1rem;font-weight:600;color:#65738A;margin-left:6px}
.gt-kpi .k-bar{height:7px;border-radius:99px;background:#EDF1F7;overflow:hidden;margin-top:12px}.gt-kpi .k-bar span{display:block;height:100%;border-radius:99px;background:var(--kpi-color,#0058A3);width:0;transition:width .9s cubic-bezier(.2,.8,.2,1)}
.gt-kpi .k-foot{font-size:11.5px;color:#65738A;margin-top:8px;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.gt-kpi.gold{--kpi-color:#F5B53A}
.gt-state{display:inline-block;padding:.25rem .7rem;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:#0058A3}
.gt-state.Delicado{background:#BF1717}.gt-state.Enfermo{background:#B9821A}.gt-state.Estable{background:#0058A3}.gt-state.Saludable{background:#1E9E5A}
.gt-delta{font-size:12px;font-weight:700;border-radius:999px;padding:.1rem .5rem;background:#f1f1f1;color:#666}.gt-delta.up{background:#e8f7ee;color:#1d8a4a}.gt-delta.down{background:#fde6e6;color:#BF1717}
.gt-funnel{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:stretch}
.gt-step{position:relative;border-radius:14px;padding:16px;background:#F2F5FA;text-align:center;border:1px solid #E6EAF0}
.gt-step .s-val{font-size:2.1rem;font-weight:800;color:#10284A;line-height:1}.gt-step .s-name{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#65738A;margin-top:6px}
.gt-step .s-n{font-size:11px;color:#65738A;margin-top:4px}.gt-step .s-prev{font-size:12px;color:#65738A;margin-top:6px}
.gt-step.gyt{background:#E6EEF9;border-color:#B9D0F0}.gt-step.gyt .s-val{color:#0058A3}
.gt-conv{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;color:#65738A;margin-top:10px}.gt-conv b{color:#10284A}
.gt-table{width:100%;border-collapse:separate;border-spacing:0 4px;font-size:13px}
.gt-table th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#65738A;font-weight:700;padding:6px 10px;text-align:center;white-space:nowrap}
.gt-table th:first-child,.gt-table td:first-child{text-align:left}
.gt-table td{padding:9px 10px;background:#fff;text-align:center;border-top:1px solid #EDF1F7;border-bottom:1px solid #EDF1F7}
.gt-table td:first-child{border-left:1px solid #EDF1F7;border-radius:10px 0 0 10px;font-weight:600;color:#10284A}.gt-table td:last-child{border-right:1px solid #EDF1F7;border-radius:0 10px 10px 0}
.gt-table tr.gyt td{background:#FFF8E6;font-weight:700;color:#10284A}.gt-table tr.gyt td:first-child::before{content:"●";color:#F5B53A;margin-right:6px}
.gt-table td.hi{color:#0058A3;font-weight:800;background:#EEF4FC}
.gt-cell{display:inline-flex;flex-direction:column;align-items:center;gap:4px;min-width:64px}.gt-cell .bar{width:100%;height:5px;border-radius:99px;background:#EDF1F7;overflow:hidden}.gt-cell .bar i{display:block;height:100%;background:#0058A3;border-radius:99px}
.gt-cell small{font-size:10.5px;color:#65738A}
.gt-halo{display:grid;grid-template-columns:minmax(200px,1.5fr) 70px 90px 70px 70px 2fr;gap:10px;align-items:center;font-size:12.5px;padding:6px 0;border-bottom:1px solid #F0F2F6}
.gt-halo:last-child{border-bottom:0}.gt-halo .h-name{color:#10284A;font-weight:600;line-height:1.25}.gt-halo .h-v{text-align:center;font-weight:700}
.gt-halo .h-bar{position:relative;height:16px;background:#F2F5FA;border-radius:6px}.gt-halo .h-bar::after{content:"";position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:#9AA6B4}
.gt-halo .h-bar i{position:absolute;top:2px;bottom:2px;border-radius:4px;background:#1E9E5A;transition:all .8s cubic-bezier(.2,.8,.2,1)}.gt-halo .h-bar i.neg{background:#BF1717}
.gt-halo .h-bar b{position:absolute;top:-1px;font-size:11px;font-weight:800}
.gt-head-row{display:grid;grid-template-columns:minmax(200px,1.5fr) 70px 90px 70px 70px 2fr;gap:10px;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:#65738A;font-weight:700;padding:4px 0 8px;border-bottom:1px solid #E6EAF0}
.gt-head-row span{text-align:center}.gt-head-row span:first-child{text-align:left}
.gt-imp{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:11px;font-weight:700}.gt-imp.Alta{background:#e8f7ee;color:#1d8a4a}.gt-imp.Moderada{background:#FFF3D6;color:#9a6a00}.gt-imp.Baja{background:#fde6e6;color:#BF1717}
.gt-note{font-size:12px;color:#65738A;line-height:1.45}
.gt-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid #E6EAF0;border-radius:999px;padding:.2rem .7rem;font-size:12px;background:#fff;cursor:pointer;transition:all .2s}.gt-pill.active{background:#10284A;color:#fff;border-color:#10284A}
.gt-stack{display:flex;height:26px;border-radius:8px;overflow:hidden;background:#EDF1F7}.gt-stack span{display:block;height:100%;color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;white-space:nowrap;overflow:hidden;transition:width .7s ease}
.gt-legend{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:11.5px;color:#65738A;margin-top:8px}.gt-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:middle}
.tc-hbar-row .fill{background:#0058A3}.tc-hbar-row b{color:#10284A}
.tc-sidebar .tc-side-foot img{height:22px}
.auth-cover{background:linear-gradient(145deg,#00305e 0%,#0058a3 62%,#1b73c4 100%)!important}.auth-cover::after{background:#1b73c4;opacity:.9}.auth-cover::before{background:#F5B53A;opacity:.22}
.tc-hero{border-left-color:#F5B53A}
.tc-kpi.featured::before,.tc-kpi::before{background:#0058A3}
.gt-wave{font-size:12px;color:#65738A}.gt-wave b{color:#10284A}
@media(max-width:991.98px){.gt-funnel{grid-template-columns:1fr}.gt-halo,.gt-head-row{grid-template-columns:1fr 60px 80px 60px 60px}.gt-halo .h-bar,.gt-head-row span:last-child{display:none}}

/* columnas apiladas que rellenan la altura de la fila (simetría) */
.gt-stack-col{display:flex;flex-direction:column;gap:16px;height:calc(100% - 16px)}.gt-stack-col>div{flex:1 1 0;min-height:0;display:flex}.gt-stack-col>.gt-fixed{flex:0 0 auto}.gt-stack-col .card,.gt-stack-col .gt-kpi{margin-bottom:0!important;height:auto!important;width:100%;flex:1 1 auto}.gt-stack-col .card .card-body{display:flex;flex-direction:column;justify-content:center}
.tc-card:has(> .card-body > .st:only-child) > .card-body{display:flex;flex-direction:column;justify-content:center}
