*{box-sizing:border-box}
:root{
  --bg:#07101c;
  --panel:#0f1a2d;
  --panel-2:#16243b;
  --text:#ebf1ff;
  --muted:#9db0ce;
  --accent:#63a2ff;
  --ok:#32d296;
  --warn:#ffd166;
  --bad:#ff6b6b;
  --line:#263859;
  --shadow:0 18px 40px rgba(0,0,0,.28);
}
html,body{margin:0;padding:0;font-family:Segoe UI, Inter, Arial, sans-serif;background:linear-gradient(180deg,#07101c 0%, #0a1424 100%);color:var(--text)}
.hero{display:grid;grid-template-columns:minmax(0,1.2fr) 300px;gap:24px;padding:32px 40px 18px;border-bottom:1px solid rgba(255,255,255,.07);align-items:start}
.eyebrow{margin:0 0 10px;color:var(--accent);text-transform:uppercase;letter-spacing:.14em;font-size:.78rem}
.hero h1{margin:0 0 10px;font-size:2rem}
.hero p{margin:0;color:var(--muted);max-width:780px;line-height:1.55}
.hero-badge{display:flex;flex-direction:column;gap:10px;min-width:220px}
.hero-badge span{background:var(--panel);border:1px solid var(--line);padding:12px 14px;border-radius:14px;font-size:.92rem}
.container{max-width:1440px;margin:0 auto;padding:24px 24px 42px}
.panel,.card,.kpi,.mini-card{background:linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,.01));border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}
.panel{padding:18px;margin-bottom:18px}
.panel-head,.card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}
.panel-head h2,.card-head h2{margin:0 0 4px;font-size:1.08rem}.panel-head p,.muted{color:var(--muted);font-size:.92rem;margin:0}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.btn{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--text);padding:11px 14px;border-radius:14px;cursor:pointer;text-decoration:none;font-size:.92rem}
.btn.primary{background:linear-gradient(90deg,#285ef0,#3386ff);border-color:transparent}.btn:hover{filter:brightness(1.08)}
.upload-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:16px}
.dropzone{border:1.5px dashed rgba(99,162,255,.45);border-radius:22px;padding:22px;min-height:170px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:rgba(99,162,255,.05)}
.dropzone.drag{background:rgba(99,162,255,.12);border-color:rgba(99,162,255,.85)}
.feedback{margin-top:12px;color:var(--muted);line-height:1.5}.stack{display:grid;gap:16px}.mini-card{padding:16px}.mini-label{color:var(--muted);font-size:.88rem;margin-bottom:8px}.mini-card ul,.notes-list{margin:0;padding-left:18px;color:var(--muted);line-height:1.6}
.filter-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.filter-grid label{display:flex;flex-direction:column;gap:8px}.filter-grid span{font-size:.88rem;color:var(--muted)}
.filter-grid input,.filter-grid select{background:var(--panel);border:1px solid var(--line);border-radius:14px;color:var(--text);padding:11px 12px;min-height:44px}
.grid{display:grid;gap:18px;margin-bottom:18px}.kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.two{grid-template-columns:repeat(2,minmax(0,1fr))}.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.kpi{padding:16px}.kpi-label{color:var(--muted);font-size:.84rem;margin-bottom:10px}.kpi-value{font-size:1.5rem;font-weight:700;margin-bottom:8px}.kpi-foot{font-size:.84rem;color:var(--muted)}.card{padding:18px}.compact{min-height:170px}
.good{color:var(--ok)}.bad{color:var(--bad)}.warn{color:var(--warn)}
.chart svg{width:100%;height:320px;display:block}.axis-label{fill:var(--muted);font-size:12px}.legend{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:10px}.legend span{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.85rem}.legend i{width:10px;height:10px;border-radius:999px;display:inline-block}
.bars{display:flex;flex-direction:column;gap:12px}.bar-row{display:grid;grid-template-columns:220px 1fr 110px;gap:12px;align-items:center}.bar-track{height:12px;background:var(--panel);border-radius:999px;overflow:hidden;border:1px solid var(--line)}.bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),#8df6cf)}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.06);text-align:left;font-size:.92rem;white-space:nowrap}th{color:var(--muted);font-weight:600;position:sticky;top:0;background:rgba(10,20,36,.95)}
.stats-inline{display:flex;gap:12px;flex-wrap:wrap}.pill{border:1px solid var(--line);border-radius:999px;padding:8px 12px;color:var(--muted);background:var(--panel)}.health-box{display:grid;gap:10px}.health-row{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid rgba(255,255,255,.06);padding-bottom:8px}.empty{color:var(--muted);padding:20px 0}
@media (max-width:1100px){.upload-grid,.two,.three,.filter-grid,.hero{display:grid;grid-template-columns:1fr}.hero{padding:24px 20px 12px}.container{padding:18px}}
@media (max-width:720px){.bar-row{grid-template-columns:1fr}.actions{width:100%}.btn{width:100%;text-align:center}}

/* Auth / CuentasControl.com */
.auth-body{
  min-height:100vh;
  background:
    radial-gradient(circle at 20% 10%, rgba(99,162,255,.18), transparent 28%),
    linear-gradient(180deg,#06101c 0%, #0a1424 100%);
}
.auth-shell{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
}
.auth-card{
  width:min(720px,100%);
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012));
  border:1px solid var(--line);
  border-radius:28px;
  padding:34px;
  box-shadow:var(--shadow);
}
.brand-row{
  display:flex;
  gap:16px;
  align-items:center;
  margin-bottom:24px;
}
.brand-mark{
  width:58px;
  height:58px;
  border-radius:18px;
  display:grid;
  place-items:center;
  font-weight:900;
  color:#fff;
  background:linear-gradient(135deg,#1f7f99,#285ef0);
  border:1px solid rgba(255,255,255,.18);
}
.brand-row h1{margin:0;font-size:1.55rem}
.auth-copy{color:var(--muted);line-height:1.55;margin:0 0 20px}
.auth-form{display:grid;gap:16px}
.auth-form label{display:grid;gap:8px}
.auth-form span{font-size:.9rem;color:var(--muted)}
.auth-form input{
  width:100%;
  min-height:48px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#0a1424;
  color:var(--text);
  padding:12px 14px;
}
.auth-links{text-align:center;margin-top:22px;color:var(--muted)}
.auth-links a{color:#8df6cf;font-weight:800;text-decoration:none}
.alert{
  border-radius:16px;
  padding:12px 14px;
  margin:0 0 18px;
  line-height:1.45;
  overflow-wrap:anywhere;
}
.alert.error{background:rgba(255,107,107,.16);border:1px solid rgba(255,107,107,.35);color:#ffd6d6}
.alert.success{background:rgba(50,210,150,.16);border:1px solid rgba(50,210,150,.35);color:#caffea}
.alert.info{background:rgba(99,162,255,.14);border:1px solid rgba(99,162,255,.32);color:#dbe9ff}
.hero-badge a.btn{display:block;text-align:center}

@media (max-width:760px){
  .auth-shell{padding:16px;align-items:flex-start}
  .auth-card{padding:22px;border-radius:22px}
  .brand-row{align-items:flex-start}
  .brand-mark{width:52px;height:52px}
  .brand-row h1{font-size:1.25rem}
  .hero{gap:14px}
  .hero h1{font-size:1.55rem}
  .panel-head,.card-head{display:grid}
  .filter-grid{grid-template-columns:1fr}
  .chart svg{height:260px}
  table{font-size:.85rem}
}

.hero-visual-panel{margin-top:18px;padding:16px 16px 10px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(180deg, rgba(99,162,255,.06), rgba(255,255,255,.015));box-shadow:var(--shadow)}
.hero-visual-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px;flex-wrap:wrap}
.hero-visual-title{font-size:1.05rem;font-weight:700}
.hero-visual-subtitle{color:var(--muted);font-size:.9rem;margin-top:4px}
.hero-status-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.status-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border-radius:999px;border:1px solid rgba(99,162,255,.3);background:rgba(10,20,36,.72);color:#dbe9ff;font-size:.82rem}
.status-pill::before{content:"";width:8px;height:8px;border-radius:999px;background:linear-gradient(180deg,#63a2ff,#8df6cf);box-shadow:0 0 12px rgba(99,162,255,.8)}
.jarvis-stage{position:relative;min-height:300px;border-radius:22px;overflow:hidden;border:1px solid rgba(99,162,255,.18);background:radial-gradient(circle at 50% 50%, rgba(99,162,255,.08), transparent 35%), linear-gradient(180deg, rgba(2,9,18,.9), rgba(7,16,28,.98))}
#jarvis-canvas{display:block;width:100%;height:300px}
.jarvis-stage::before,.jarvis-stage::after{content:"";position:absolute;inset:0;pointer-events:none}
.jarvis-stage::before{background:repeating-linear-gradient(180deg, rgba(99,162,255,.045), rgba(99,162,255,.045) 1px, transparent 1px, transparent 18px);mix-blend-mode:screen;opacity:.55}
.jarvis-stage::after{background:radial-gradient(circle at center, transparent 0 38%, rgba(99,162,255,.04) 39%, transparent 40%), radial-gradient(circle at center, transparent 0 52%, rgba(99,162,255,.06) 53%, transparent 54%), radial-gradient(circle at center, transparent 0 66%, rgba(99,162,255,.05) 67%, transparent 68%)}
.jarvis-overlay{position:absolute;z-index:2;min-width:150px;padding:12px 14px;border:1px solid rgba(99,162,255,.18);background:rgba(5,12,22,.62);backdrop-filter:blur(4px);border-radius:16px;box-shadow:0 12px 28px rgba(0,0,0,.22)}
.jarvis-overlay-left{left:14px;top:14px}
.jarvis-overlay-right{right:14px;bottom:14px;max-width:220px}
.overlay-kicker{color:var(--accent);font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;margin-bottom:6px}.jarvis-overlay strong{display:block}.jarvis-overlay small{color:var(--muted)}
.jarvis-tags{display:flex;flex-wrap:wrap;gap:6px}.jarvis-tags span{display:inline-flex;padding:6px 8px;border-radius:999px;background:rgba(99,162,255,.09);border:1px solid rgba(99,162,255,.18);font-size:.78rem;color:#dbe9ff}
@media (max-width:1100px){.hero{grid-template-columns:1fr}.hero-badge{order:-1}.hero-status-row{justify-content:flex-start}}
@media (max-width:760px){.hero-visual-head{display:grid}.jarvis-overlay-right{position:static;margin:10px}.jarvis-overlay-left{left:10px;top:10px}.jarvis-stage{min-height:260px}#jarvis-canvas{height:260px}}


/* Formularios internos */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 16px}
.tab{border:1px solid var(--line);background:rgba(255,255,255,.035);color:var(--text);border-radius:999px;padding:10px 13px;cursor:pointer;font-weight:700}
.tab.active{background:linear-gradient(90deg,#285ef0,#28d3c2);border-color:transparent;color:white}
.form-grid{display:grid;grid-template-columns:1fr;gap:16px}
.form-card{display:none;background:rgba(7,16,28,.42);border:1px solid var(--line);border-radius:22px;padding:16px}
.form-card.active{display:block}
.form-card h3{margin:0 0 12px;font-size:1.05rem}
.cc-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}
.cc-form label{display:flex;flex-direction:column;gap:7px}
.cc-form label span{font-size:.86rem;color:var(--muted);font-weight:700}
.cc-form input,.cc-form select,.cc-form textarea{
  width:100%;background:var(--panel);border:1px solid var(--line);border-radius:14px;color:var(--text);
  padding:11px 12px;min-height:44px;font:inherit
}
.cc-form textarea{resize:vertical}
.cc-form .span-2{grid-column:span 2}
.cc-form .span-4{grid-column:1 / -1}

.plan-cuentas-widget{
  min-height:154px;
  align-self:stretch;
  background:linear-gradient(180deg,rgba(17,31,53,.86),rgba(8,18,32,.94));
  border:1px solid rgba(99,162,255,.34);
  border-radius:18px;
  padding:11px;
  display:flex;
  flex-direction:column;
  gap:8px;
  overflow:hidden;
}
.pcw-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.pcw-head strong{font-size:.86rem;color:#fff}
.pcw-head span{font-size:.68rem;color:var(--muted);white-space:nowrap}
.pcw-search{display:grid;grid-template-columns:1fr auto;gap:7px}
.pcw-search input{min-height:36px!important;padding:8px 9px!important;border-radius:11px!important;font-size:.82rem}
.pcw-actions{display:flex;align-items:center;gap:8px}
.pcw-actions small{color:var(--muted);font-size:.68rem;line-height:1.2}
.btn.mini{min-height:34px;padding:7px 10px;font-size:.78rem}
.pcw-results{display:flex;flex-direction:column;gap:6px;max-height:146px;overflow:auto;padding-right:2px}
.pcw-result{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:7px;
  align-items:center;
  padding:7px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  background:rgba(255,255,255,.035);
}
.pcw-result div{min-width:0}
.pcw-result b{display:block;color:#fff;font-size:.82rem;line-height:1.1}
.pcw-result span{display:block;color:var(--text);font-size:.76rem;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcw-result small{display:block;color:var(--muted);font-size:.66rem;margin-top:2px}
.pcw-empty{color:var(--muted);font-size:.78rem;padding:8px;border:1px dashed rgba(255,255,255,.12);border-radius:12px}
@media(max-width:980px){
  .plan-cuentas-widget{grid-column:1 / -1}
}

.forms-lists{margin-top:16px}
.mini-table{overflow:auto;max-height:260px}
.mini-table table{width:100%;border-collapse:collapse;font-size:.82rem}
.mini-table td{border-bottom:1px solid rgba(255,255,255,.07);padding:7px 6px;white-space:nowrap}
.empty.small{padding:10px;font-size:.86rem}
.ok{color:var(--ok)} .bad{color:var(--bad)}
@media(max-width:980px){
  .cc-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cc-form .span-2{grid-column:span 2}
  .cc-form .span-4{grid-column:1 / -1}
.cc-form .span-4{grid-column:1 / -1}
}
@media(max-width:640px){
  .hero{grid-template-columns:1fr;padding:22px 16px 14px}
  .container{padding:16px 12px 34px}
  .panel{padding:14px}
  .panel-head{display:grid}
  .upload-grid{grid-template-columns:1fr}
  .filter-grid{grid-template-columns:1fr}
  .cc-form{grid-template-columns:1fr}
  .cc-form .span-2{grid-column:span 1}
  .tabs{gap:6px}
  .tab{font-size:.84rem;padding:9px 10px}
  .hero-visual-panel{margin-top:14px}
  .jarvis-stage{min-height:280px}
  .jarvis-overlay{position:static;margin:10px}
}

.public-front{max-width:1220px;margin:0 auto;padding:22px 18px 34px}
.public-nav{display:grid;grid-template-columns:auto auto 1fr auto;gap:12px;align-items:center;margin-bottom:22px}
.brand-badge{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,#285ef0,#28d3c2);display:grid;place-items:center;font-weight:900}
.public-hero{display:grid;grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);gap:26px;align-items:stretch;min-height:500px}
.public-hero h1{font-size:clamp(2.2rem,5.1vw,4.6rem);line-height:1.02;margin:0 0 16px}
.public-hero p{color:var(--muted);font-size:1.05rem;line-height:1.65}
.public-pulse{
  width:100%;height:100%;min-height:470px;align-self:stretch;
  border:1px solid var(--line);border-radius:28px;
  background:
    radial-gradient(circle at center,rgba(99,162,255,.18),rgba(7,16,28,.48) 62%),
    linear-gradient(180deg,rgba(99,162,255,.08),rgba(255,255,255,.015));
  overflow:hidden;box-shadow:inset 0 0 38px rgba(99,162,255,.07)
}
.public-pulse canvas{display:block;width:100%;height:100%}
.public-cards{margin:14px 0 18px}
.contact-card{padding:18px}
.terms-check{
  display:grid!important;grid-template-columns:auto 1fr!important;gap:10px!important;
  align-items:start!important;color:var(--muted);line-height:1.45
}
.terms-check input{width:18px!important;height:18px!important;min-height:18px!important;margin-top:2px;accent-color:var(--accent)}
.terms-check a{color:#7ee9ff;font-weight:800}
.public-footer{
  text-align:center;color:var(--muted);font-size:.92rem;line-height:1.6;
  padding:24px 12px 6px;margin-top:10px
}
@media(max-width:980px){
  .public-hero{grid-template-columns:1fr;min-height:auto}
  .public-pulse{min-height:380px;height:380px}
}
@media(max-width:800px){
  .public-front{padding:14px 12px 26px}
  .public-nav{grid-template-columns:auto 1fr auto;margin-bottom:16px}
  .public-nav span{display:none}
  .public-hero{grid-template-columns:1fr;gap:16px}
  .public-pulse{height:320px;min-height:320px;border-radius:22px}
  .public-hero h1{font-size:clamp(2rem,12vw,3.5rem)}
  .terms-check.span-2{grid-column:1/-1}
}
@media(max-width:520px){
  .public-nav{grid-template-columns:auto 1fr}
  .public-nav .btn{grid-column:1/-1;justify-self:start}
  .public-pulse{height:260px;min-height:260px}
  .contact-card .cc-form{grid-template-columns:1fr}
  .contact-card .cc-form .span-2{grid-column:1}
}


/* Ajuste front público: visual J.A.R.V.I.S. centrado y sin vacío inferior */
.public-hero{
  grid-template-columns:minmax(0,.88fr) minmax(460px,1.12fr);
  align-items:stretch;
}
.public-pulse{
  position:relative;
  display:grid;
  place-items:center;
  min-height:clamp(460px,52vw,620px);
  height:100%;
  padding:0;
}
.public-pulse canvas{
  position:absolute;
  inset:0;
  width:100%!important;
  height:100%!important;
}
@media(max-width:980px){
  .public-hero{grid-template-columns:1fr}
  .public-pulse{min-height:420px;height:420px}
}
@media(max-width:620px){
  .public-front{padding:12px 12px 28px}
  .public-nav{margin-bottom:12px}
  .public-hero{gap:14px}
  .public-hero h1{font-size:clamp(2rem,12.5vw,3.2rem)}
  .public-hero p{font-size:.98rem;line-height:1.55}
  .public-pulse{height:300px;min-height:300px;border-radius:22px}
}
@media(max-width:420px){
  .public-pulse{height:260px;min-height:260px}
}


html{scroll-behavior:smooth}
.be-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}
.be-grid span{display:flex;flex-direction:column;gap:4px;background:rgba(255,255,255,.035);border:1px solid var(--line);border-radius:14px;padding:10px;color:var(--muted);font-size:.84rem}
.be-grid strong{color:var(--text);font-size:1rem}
#advanced-kpi-grid{margin-top:-4px}
#break-even-chart svg{height:300px}
@media(max-width:760px){.be-grid{grid-template-columns:1fr}#advanced-kpi-grid{grid-template-columns:1fr}.public-hero{gap:18px}.public-pulse{min-height:330px}}


/* Actualización: perfil comercial, oportunidades y acciones */
.btn.danger{border-color:rgba(255,107,107,.45);color:#ffd6d6;background:rgba(255,107,107,.08)}
.btn.danger:hover{background:rgba(255,107,107,.16)}
.small-btn{padding:6px 10px;border-radius:10px;font-size:.78rem;white-space:nowrap}
.optional{font-style:normal;color:var(--muted);font-weight:500;font-size:.82em}
.business-panel{scroll-margin-top:24px}
.business-profile-form,.business-upload-form{margin-top:18px}
.business-profile-form{grid-template-columns:repeat(3,minmax(0,1fr))}
.business-upload-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end}
.align-end{align-self:end;justify-content:flex-end}
.business-summary{margin:14px 0;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(99,162,255,.06);color:#c9d9f4}
.nested-card{margin-top:18px;background:rgba(7,16,28,.38)}
.table-wrap .js-delete{margin:0}
@media (max-width:900px){
  .business-profile-form,.business-upload-form{grid-template-columns:1fr}
  .business-profile-form .span-2{grid-column:auto}
  .align-end{justify-content:stretch}
  .align-end .btn{width:100%}
}

/* Patch V8: listas internas alineadas + acciones */
.mini-table th{
  color:var(--muted);
  font-size:.76rem;
  text-align:left;
  border-bottom:1px solid rgba(255,255,255,.10);
  padding:7px 6px;
  white-space:nowrap;
}
.mini-table td.num,
.mini-table th.num{
  text-align:right;
  font-variant-numeric:tabular-nums;
}
.mini-actions{
  display:flex;
  gap:6px;
  align-items:center;
  justify-content:flex-end;
}
.small-btn{
  min-height:28px;
  padding:5px 8px;
  border-radius:10px;
  font-size:.76rem;
}
.btn.danger{
  border-color:rgba(248,113,113,.45);
  color:#fecaca;
  background:rgba(248,113,113,.08);
}
.mini-table-structured{margin:6px 0 10px;}


.accounting-side {
  color: #ff3b3b;
  font-style: normal;
  font-weight: 800;
  margin-left: 4px;
}


/* Cierres de periodo mensual/anual */

.period-close-scope{
  display:grid;
  grid-template-columns:minmax(220px,280px) 1fr;
  gap:12px;
  align-items:end;
  margin:12px 0 4px;
}
.period-close-scope label span{
  display:block;
  color:#aac6ff;
  font-weight:800;
  font-size:12px;
  margin-bottom:6px;
}
.period-close-scope select{
  width:100%;
  border:1px solid #2b4772;
  border-radius:12px;
  background:#101b30;
  color:var(--text);
  padding:10px 12px;
  font-weight:800;
}
.closure-scope-help{
  border:1px solid rgba(99,162,255,.22);
  border-radius:14px;
  background:rgba(10,22,39,.48);
  color:#b9cdf0;
  padding:10px 12px;
  font-size:.82rem;
  line-height:1.35;
}
@media (max-width: 900px){
  .period-close-scope{grid-template-columns:1fr}
}

.period-closure-panel{
  margin:16px 0;
  padding:16px;
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(22,36,59,.9),rgba(15,26,45,.92));
  box-shadow:var(--shadow);
}
.panel-head.compact{align-items:flex-start;margin-bottom:12px;min-height:auto}
.panel-head.compact h3{margin:0 0 4px;font-size:18px}
.panel-head.compact p{margin:0;color:var(--muted);font-size:13px}
.period-closure-visual{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:14px 0 16px;
}
.closure-step-card{
  position:relative;
  min-height:104px;
  padding:15px 16px;
  border:1px solid rgba(99,162,255,.28);
  border-radius:16px;
  background:
    linear-gradient(135deg,rgba(99,162,255,.12),rgba(50,210,150,.045) 48%,rgba(255,255,255,.018)),
    rgba(9,18,32,.54);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055);
  overflow:hidden;
}
.closure-step-card::after{
  content:"";
  position:absolute;
  inset:auto -18% -45% 42%;
  height:88px;
  border-radius:999px;
  background:radial-gradient(circle,rgba(99,162,255,.16),transparent 68%);
  pointer-events:none;
}
.closure-step-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px;
}
.closure-step-index{
  color:#67e8f9;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.12em;
}
.closure-step-chip{
  color:#bcd5ff;
  border:1px solid rgba(99,162,255,.28);
  border-radius:999px;
  padding:4px 9px;
  font-size:.72rem;
  background:rgba(13,28,50,.72);
}
.closure-step-card strong{
  display:block;
  color:var(--text);
  font-size:.98rem;
  margin-bottom:6px;
}
.closure-step-card p{
  margin:0;
  color:#b9cdf0;
  font-size:.82rem;
  line-height:1.42;
}
.period-close-grid{
  display:grid;
  grid-template-columns:minmax(170px,1fr) auto minmax(130px,.8fr) auto;
  gap:10px;
  align-items:end;
  margin:12px 0;
}
.period-close-grid label span{display:block;color:#aac6ff;font-weight:700;font-size:12px;margin-bottom:6px}
.period-close-grid input{
  width:100%;
  border:1px solid #2b4772;
  border-radius:10px;
  background:#101b30;
  color:var(--text);
  padding:10px 12px;
}
.period-closure-panel .mini-table{max-height:240px;overflow:auto}
.period-closure-panel .empty{color:var(--muted);padding:10px;border:1px dashed var(--line);border-radius:12px}
@media (max-width: 900px){
  .period-closure-visual{grid-template-columns:1fr}
  .period-close-grid{grid-template-columns:1fr}
}


/* =========================================================
   FRONT PÚBLICO - MÓDULOS ACTUALIZADOS V12
   Sustituye las tres tarjetas antiguas por módulos conectados.
========================================================= */
.cc-updated-front-section{
  margin:18px 0 22px;
}

.cc-updated-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:20px;
  margin-bottom:18px;
}

.cc-updated-head span{
  color:#79c9ff;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:12px;
}

.cc-updated-head h2{
  color:#fff;
  margin:8px 0 0;
  font-size:clamp(1.45rem,2.6vw,2rem);
  letter-spacing:-.04em;
}

.cc-updated-head p{
  color:#a9c9ff;
  max-width:430px;
  margin:0;
  line-height:1.45;
}

.cc-updated-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}

.cc-updated-card{
  min-height:198px;
  padding:24px 22px;
  border-radius:24px;
  border:1px solid rgba(88,142,220,.44);
  background:
    radial-gradient(circle at 15% 20%,rgba(39,214,255,.13),transparent 32%),
    linear-gradient(180deg,rgba(12,30,55,.96),rgba(8,20,37,.96));
  box-shadow:var(--shadow);
}

.cc-updated-icon{
  width:46px;
  height:46px;
  border-radius:15px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#2f73ff,#25d6ff);
  box-shadow:0 12px 28px rgba(37,214,255,.22);
  font-size:22px;
  margin-bottom:14px;
  color:#fff;
  font-weight:900;
}

.cc-updated-card h3{
  color:#fff;
  margin:0 0 9px;
  font-size:1.18rem;
  letter-spacing:-.03em;
}

.cc-updated-card p{
  margin:0 0 14px;
  color:#bbd7ff;
  line-height:1.45;
  font-size:.92rem;
}

.cc-updated-card div:last-child{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}

.cc-updated-card span{
  font-size:.72rem;
  font-weight:800;
  color:#def7ff;
  padding:6px 8px;
  border-radius:999px;
  border:1px solid rgba(65,222,255,.28);
  background:rgba(65,222,255,.08);
}

@media(max-width:980px){
  .cc-updated-grid{grid-template-columns:1fr 1fr}
  .cc-updated-head{display:block}
  .cc-updated-head p{margin-top:10px}
}

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


/* =========================================================
   FRONT V20 - NÚCLEO HEXAGONAL SEGURO
   Visual tipo J.O.R.V.A.N., sin canvas, sin año visible.
   Mantiene estable el layout del front y evita montar información.
========================================================= */

.cc-hex-safe{
  position:relative;
  display:block;
  min-height:470px;
  overflow:hidden;
  isolation:isolate;
  border-radius:24px;
  background:
    radial-gradient(circle at 50% 50%,rgba(37,214,255,.16),transparent 21%),
    radial-gradient(circle at 50% 50%,rgba(47,115,255,.10),transparent 42%),
    linear-gradient(135deg,#071424,#102847);
}

.cc-hex-safe::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    repeating-radial-gradient(circle at 50% 50%,rgba(99,162,255,.12) 0 1px,transparent 1px 42px),
    linear-gradient(90deg,transparent 49.85%,rgba(37,214,255,.13) 50%,transparent 50.15%),
    linear-gradient(0deg,transparent 49.85%,rgba(37,214,255,.10) 50%,transparent 50.15%);
  opacity:.85;
}

.cc-hex-stage{
  position:absolute;
  inset:36px 32px 32px;
  z-index:1;
  display:grid;
  place-items:center;
  pointer-events:none;
}

.cc-hex-core{
  position:relative;
  width:min(62vw,430px);
  aspect-ratio:1;
  display:grid;
  place-items:center;
  filter:drop-shadow(0 0 18px rgba(37,214,255,.55));
  animation:ccHexFloat 6s ease-in-out infinite;
}

.cc-hex-layer{
  position:absolute;
  inset:0;
  margin:auto;
  aspect-ratio:1;
  clip-path:polygon(50% 0%,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);
  border:2px solid rgba(37,214,255,.72);
  background:
    linear-gradient(120deg,rgba(37,214,255,.08),rgba(47,115,255,.03),rgba(37,214,255,.08));
  box-shadow:
    inset 0 0 22px rgba(37,214,255,.22),
    0 0 18px rgba(37,214,255,.28);
}

.cc-hex-layer.l1{width:100%;opacity:.55;animation:ccHexSpin 34s linear infinite}
.cc-hex-layer.l2{width:82%;opacity:.70;animation:ccHexSpinReverse 28s linear infinite}
.cc-hex-layer.l3{width:64%;opacity:.82;animation:ccHexSpin 22s linear infinite}
.cc-hex-layer.l4{width:46%;opacity:.92;animation:ccHexSpinReverse 17s linear infinite}
.cc-hex-layer.l5{width:28%;opacity:1;animation:ccHexPulse 2.5s ease-in-out infinite}

.cc-hex-center{
  position:absolute;
  width:56px;
  height:56px;
  border-radius:50%;
  background:radial-gradient(circle,#fff 0 10%,#25d6ff 11% 44%,#2f73ff 45% 72%,transparent 74%);
  box-shadow:
    0 0 18px rgba(255,255,255,.90),
    0 0 42px rgba(37,214,255,.90),
    0 0 84px rgba(47,115,255,.35);
  animation:ccHexPulse 1.9s ease-in-out infinite;
}

.cc-vector{
  position:absolute;
  left:50%;
  top:50%;
  width:46%;
  height:2px;
  transform-origin:left center;
  background:linear-gradient(90deg,rgba(37,214,255,.95),rgba(37,214,255,.35),transparent);
  box-shadow:0 0 12px rgba(37,214,255,.55);
  animation:ccVectorFlow 2.4s ease-in-out infinite;
}

.cc-vector.v1{transform:rotate(0deg)}
.cc-vector.v2{transform:rotate(60deg);animation-delay:.2s}
.cc-vector.v3{transform:rotate(120deg);animation-delay:.4s}
.cc-vector.v4{transform:rotate(180deg);animation-delay:.6s}
.cc-vector.v5{transform:rotate(240deg);animation-delay:.8s}
.cc-vector.v6{transform:rotate(300deg);animation-delay:1s}

.cc-node{
  position:absolute;
  width:13px;
  height:13px;
  border-radius:50%;
  background:#25d6ff;
  box-shadow:0 0 12px #25d6ff,0 0 24px rgba(37,214,255,.45);
  animation:ccNodePulse 2.4s ease-in-out infinite;
}

.cc-node.n1{left:49%;top:4%;background:#63a2ff}
.cc-node.n2{left:72%;top:16%;background:#25d6ff;animation-delay:.15s}
.cc-node.n3{left:88%;top:39%;background:#20e6a4;animation-delay:.30s}
.cc-node.n4{left:80%;top:66%;background:#25d6ff;animation-delay:.45s}
.cc-node.n5{left:55%;top:88%;background:#63a2ff;animation-delay:.60s}
.cc-node.n6{left:25%;top:79%;background:#25d6ff;animation-delay:.75s}
.cc-node.n7{left:8%;top:52%;background:#20e6a4;animation-delay:.90s}
.cc-node.n8{left:17%;top:25%;background:#ffcd56;animation-delay:1.05s}
.cc-node.n9{left:36%;top:21%;background:#25d6ff;animation-delay:1.20s}
.cc-node.n10{left:64%;top:31%;background:#63a2ff;animation-delay:1.35s}
.cc-node.n11{left:65%;top:61%;background:#ff705d;animation-delay:1.50s}
.cc-node.n12{left:38%;top:66%;background:#20e6a4;animation-delay:1.65s}
.cc-node.n13{left:50%;top:50%;background:#fff;animation-delay:1.80s}
.cc-node.n14{left:29%;top:43%;background:#25d6ff;animation-delay:1.95s}

.cc-hex-bg-orbit{
  position:absolute;
  border-radius:50%;
  border:1px dashed rgba(37,214,255,.24);
  box-shadow:0 0 18px rgba(37,214,255,.13);
}

.cc-hex-bg-orbit.orbit-a{
  width:min(78vw,560px);
  height:min(78vw,560px);
  animation:ccOrbitRotate 24s linear infinite;
}

.cc-hex-bg-orbit.orbit-b{
  width:min(88vw,660px);
  height:min(46vw,360px);
  transform:rotate(18deg);
  animation:ccOrbitRotateReverse 31s linear infinite;
}

.cc-hex-bg-orbit.orbit-c{
  width:min(70vw,520px);
  height:min(36vw,260px);
  transform:rotate(-34deg);
  animation:ccOrbitRotate 28s linear infinite;
}

.cc-hex-panel{
  position:absolute;
  z-index:4;
  padding:13px 15px;
  border-radius:16px;
  border:1px solid rgba(99,162,255,.36);
  background:rgba(6,17,34,.72);
  backdrop-filter:blur(8px);
  box-shadow:0 14px 32px rgba(0,0,0,.24);
}

.cc-hex-panel span{
  display:block;
  color:#25d6ff;
  font-size:.70rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  margin-bottom:7px;
  font-weight:900;
}

.cc-hex-panel strong{
  color:#ecf6ff;
  font-size:1rem;
  line-height:1.25;
}

.cc-hex-panel small{
  display:block;
  margin-top:9px;
  color:#20e6a4;
  font-size:.75rem;
  font-weight:800;
}

.cc-hex-panel p{
  margin:9px 0 0;
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:#b9d7ff;
  font-size:.78rem;
}

.cc-hex-panel p b{
  font-weight:700;
}

.cc-hex-panel p strong{
  font-size:.80rem;
  color:#20e6a4;
}

.cc-hex-panel p strong.neg{
  color:#ff705d;
}

.cc-hex-panel p strong.warn{
  color:#ffcd56;
}

.cc-hex-data{
  left:22px;
  top:22px;
  width:176px;
}

.cc-hex-data i{
  display:block;
  height:38px;
  margin-top:12px;
  border-radius:8px;
  background:
    linear-gradient(135deg,transparent 0 8%,rgba(37,214,255,.95) 8% 10%,transparent 10% 20%,rgba(37,214,255,.55) 20% 23%,transparent 23% 35%,rgba(37,214,255,.85) 35% 38%,transparent 38% 49%,rgba(37,214,255,.45) 49% 51%,transparent 51% 63%,rgba(37,214,255,.95) 63% 65%,transparent 65% 100%),
    repeating-linear-gradient(90deg,rgba(37,214,255,.18) 0 2px,transparent 2px 8px);
}

.cc-hex-flow{
  right:22px;
  top:22px;
  width:190px;
}

.cc-hex-ai{
  right:22px;
  top:194px;
  width:212px;
}

.cc-hex-layers{
  right:22px;
  bottom:84px;
  max-width:290px;
}

.cc-hex-layers strong{
  display:block;
  font-size:.88rem;
  color:#dff8ff;
}

.cc-hex-system{
  left:22px;
  bottom:92px;
  width:190px;
}

@keyframes ccHexFloat{
  0%,100%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-8px) scale(1.015)}
}

@keyframes ccHexSpin{
  from{rotate:0deg}
  to{rotate:360deg}
}

@keyframes ccHexSpinReverse{
  from{rotate:360deg}
  to{rotate:0deg}
}

@keyframes ccHexPulse{
  0%,100%{opacity:.76;filter:brightness(1)}
  50%{opacity:1;filter:brightness(1.55)}
}

@keyframes ccNodePulse{
  0%,100%{transform:scale(1);opacity:.85}
  50%{transform:scale(1.45);opacity:1}
}

@keyframes ccVectorFlow{
  0%,100%{opacity:.30;width:36%}
  50%{opacity:1;width:49%}
}

@keyframes ccOrbitRotate{
  from{rotate:0deg}
  to{rotate:360deg}
}

@keyframes ccOrbitRotateReverse{
  from{rotate:360deg}
  to{rotate:0deg}
}

@media(max-width:1050px){
  .cc-hex-safe{
    min-height:470px;
  }

  .cc-hex-core{
    width:min(72vw,380px);
  }

  .cc-hex-flow,
  .cc-hex-ai,
  .cc-hex-layers{
    display:none;
  }

  .cc-hex-data{
    left:18px;
    top:18px;
  }

  .cc-hex-system{
    left:18px;
    bottom:86px;
  }
}

@media(max-width:640px){
  .cc-hex-safe{
    min-height:360px;
  }

  .cc-hex-stage{
    inset:28px 14px;
  }

  .cc-hex-core{
    width:min(86vw,280px);
  }

  .cc-hex-data,
  .cc-hex-system{
    transform:scale(.86);
    transform-origin:left top;
  }

  .cc-hex-system{
    display:none;
  }
}


/* =========================================================
   FRONT V21 - HOLOGRAMA MÁS LIMPIO Y POBLADO
   Elimina panel de flujo, sube análisis inteligente,
   reduce cajas y da más protagonismo al holograma.
========================================================= */
.cc-hex-safe{min-height:470px;}
.cc-hex-stage{inset:28px 24px 32px;}
.cc-hex-core{width:min(66vw,470px);}
.cc-hex-layer{border-color:rgba(37,214,255,.68);}
.cc-hex-layer.l1{width:100%;opacity:.40;animation:ccHexSpin 42s linear infinite}
.cc-hex-layer.l2{width:86%;opacity:.56;animation:ccHexSpinReverse 30s linear infinite}
.cc-hex-layer.l3{width:72%;opacity:.72;animation:ccHexSpin 24s linear infinite}
.cc-hex-layer.l4{width:56%;opacity:.86;animation:ccHexSpinReverse 18s linear infinite}
.cc-hex-layer.l5{width:36%;opacity:1;animation:ccHexPulse 2.4s ease-in-out infinite}
.cc-hex-center{width:62px;height:62px;}

.cc-vector{width:50%;height:2px;opacity:.64;background:linear-gradient(90deg,rgba(37,214,255,.92),rgba(99,162,255,.35),transparent);}
.cc-vector.v1{transform:rotate(0deg);animation-delay:0s}
.cc-vector.v2{transform:rotate(30deg);animation-delay:.12s}
.cc-vector.v3{transform:rotate(60deg);animation-delay:.24s}
.cc-vector.v4{transform:rotate(90deg);animation-delay:.36s}
.cc-vector.v5{transform:rotate(120deg);animation-delay:.48s}
.cc-vector.v6{transform:rotate(150deg);animation-delay:.60s}
.cc-vector.v7{transform:rotate(180deg);animation-delay:.72s}
.cc-vector.v8{transform:rotate(210deg);animation-delay:.84s}
.cc-vector.v9{transform:rotate(240deg);animation-delay:.96s}
.cc-vector.v10{transform:rotate(270deg);animation-delay:1.08s}
.cc-vector.v11{transform:rotate(300deg);animation-delay:1.2s}
.cc-vector.v12{transform:rotate(330deg);animation-delay:1.32s}

.cc-node{width:12px;height:12px;background:#25d6ff;box-shadow:0 0 10px #25d6ff,0 0 24px rgba(37,214,255,.45);}
.cc-node.n1{left:49%;top:3%;background:#63a2ff}
.cc-node.n2{left:64%;top:8%;background:#25d6ff;animation-delay:.12s}
.cc-node.n3{left:77%;top:15%;background:#20e6a4;animation-delay:.24s}
.cc-node.n4{left:88%;top:28%;background:#63a2ff;animation-delay:.36s}
.cc-node.n5{left:92%;top:46%;background:#25d6ff;animation-delay:.48s}
.cc-node.n6{left:88%;top:64%;background:#20e6a4;animation-delay:.60s}
.cc-node.n7{left:80%;top:79%;background:#25d6ff;animation-delay:.72s}
.cc-node.n8{left:64%;top:90%;background:#63a2ff;animation-delay:.84s}
.cc-node.n9{left:48%;top:94%;background:#20e6a4;animation-delay:.96s}
.cc-node.n10{left:31%;top:89%;background:#25d6ff;animation-delay:1.08s}
.cc-node.n11{left:16%;top:79%;background:#63a2ff;animation-delay:1.20s}
.cc-node.n12{left:8%;top:63%;background:#20e6a4;animation-delay:1.32s}
.cc-node.n13{left:4%;top:46%;background:#25d6ff;animation-delay:1.44s}
.cc-node.n14{left:8%;top:27%;background:#ffcd56;animation-delay:1.56s}
.cc-node.n15{left:18%;top:15%;background:#25d6ff;animation-delay:1.68s}
.cc-node.n16{left:33%;top:8%;background:#63a2ff;animation-delay:1.80s}
.cc-node.n17{left:55%;top:16%;background:#25d6ff;animation-delay:1.92s}
.cc-node.n18{left:72%;top:32%;background:#ff705d;animation-delay:2.04s}
.cc-node.n19{left:72%;top:55%;background:#63a2ff;animation-delay:2.16s}
.cc-node.n20{left:60%;top:72%;background:#25d6ff;animation-delay:2.28s}
.cc-node.n21{left:40%;top:76%;background:#20e6a4;animation-delay:2.40s}
.cc-node.n22{left:25%;top:63%;background:#25d6ff;animation-delay:2.52s}
.cc-node.n23{left:23%;top:41%;background:#20e6a4;animation-delay:2.64s}
.cc-node.n24{left:35%;top:27%;background:#25d6ff;animation-delay:2.76s}
.cc-node.n25{left:50%;top:50%;background:#fff;animation-delay:2.88s}
.cc-node.n26{left:44%;top:36%;background:#63a2ff;animation-delay:3.0s}
.cc-node.n27{left:57%;top:42%;background:#ffcd56;animation-delay:3.12s}
.cc-node.n28{left:54%;top:61%;background:#25d6ff;animation-delay:3.24s}

.cc-hex-bg-orbit.orbit-a{width:min(84vw,610px);height:min(84vw,610px);opacity:.8;}
.cc-hex-bg-orbit.orbit-b{width:min(84vw,620px);height:min(48vw,390px);transform:rotate(24deg);opacity:.75;}
.cc-hex-bg-orbit.orbit-c{width:min(76vw,560px);height:min(40vw,300px);transform:rotate(-32deg);opacity:.68;}

.cc-hex-flow{display:none !important;}
.cc-hex-ai{right:22px;top:162px;width:178px;padding:11px 12px;}
.cc-hex-ai span{font-size:.66rem;margin-bottom:5px;}
.cc-hex-ai p{margin:7px 0 0;font-size:.74rem;gap:10px;}
.cc-hex-ai p strong{font-size:.76rem;}
.cc-hex-layers{right:22px;bottom:94px;max-width:240px;padding:11px 12px;}
.cc-hex-layers strong{font-size:.76rem;line-height:1.35;}
.cc-hex-system{left:22px;bottom:98px;width:170px;padding:11px 12px;}
.cc-hex-system strong{font-size:.84rem;}
.cc-hex-data{left:22px;top:22px;width:170px;}
.cc-hex-data strong{font-size:1.7rem;line-height:1;}
.cc-hex-data i{height:34px;margin-top:10px;}

@media(max-width:1050px){
  .cc-hex-core{width:min(76vw,380px);}
  .cc-hex-ai{right:16px;top:150px;width:164px;}
  .cc-hex-layers{max-width:210px;bottom:92px;}
}
@media(max-width:640px){
  .cc-hex-safe{min-height:360px;}
  .cc-hex-core{width:min(88vw,280px);}
  .cc-hex-ai,.cc-hex-layers{display:none;}
  .cc-hex-data{transform:scale(.88);transform-origin:left top;}
}


/* =========================================================
   FRONT V22 - HOLOGRAMA DINÁMICO CON MÁS NODOS Y ETIQUETAS
========================================================= */
.cc-hex-safe{overflow:hidden;}
.cc-hex-stage{overflow:hidden;}
.cc-hex-core{width:min(72vw,500px);z-index:1;}
.cc-node{display:none !important;}
.cc-dynamic-field{position:absolute;inset:6%;z-index:3;pointer-events:none;}
.cc-dyn-node{position:absolute;left:0;top:0;transform:translate(50%,50%);transform-origin:center center;will-change:transform,opacity;}
.cc-dyn-dot{position:absolute;left:0;top:0;width:var(--node-size,4px);height:var(--node-size,4px);border-radius:50%;background:var(--node-color,#25d6ff);box-shadow:0 0 7px var(--node-color,#25d6ff),0 0 18px color-mix(in srgb, var(--node-color,#25d6ff) 55%, transparent);}
.cc-dyn-label{position:absolute;left:calc(var(--node-size,4px) + 2px);top:-1px;font-size:6px;line-height:1;letter-spacing:.04em;white-space:nowrap;color:rgba(205,235,255,.24);text-shadow:0 0 4px rgba(37,214,255,.16);user-select:none;}
.cc-dyn-node:hover .cc-dyn-label{color:rgba(205,235,255,.82);} 
.cc-hex-ai{top:18px !important;right:18px !important;width:182px;padding:10px 12px;z-index:5;}
.cc-hex-ai span{font-size:.66rem;margin-bottom:4px;}
.cc-hex-ai p{margin:6px 0 0;font-size:.72rem;gap:10px;}
.cc-hex-ai p strong{font-size:.74rem;}
.cc-hex-layers,.cc-hex-system,.cc-hex-flow{display:none !important;}
.cc-hex-data{left:18px;top:18px;width:182px;z-index:5;}
.cc-hex-bg-orbit.orbit-a{opacity:.52;}
.cc-hex-bg-orbit.orbit-b{opacity:.38;}
.cc-hex-bg-orbit.orbit-c{opacity:.24;}
@media (max-width:980px){.cc-hex-core{width:min(84vw,380px);} .cc-hex-ai{width:168px;right:14px !important;top:14px !important;} .cc-dyn-label{font-size:5px;opacity:.18;}}
@media (max-width:640px){.cc-hex-ai{width:154px;padding:8px 10px;} .cc-hex-data{transform:scale(.86);transform-origin:left top;} .cc-dyn-label{display:none;}}


/* =========================================================
   FRONT V23 - REDUCCIÓN CUADRO DATA SCIAS / 360 NODOS
   Reduce en ~50% el tamaño visual del cuadro superior izquierdo.
========================================================= */
.cc-hex-data{
  width:91px !important;
  min-width:91px !important;
  padding:6px 7px !important;
  border-radius:11px !important;
  left:18px !important;
  top:18px !important;
}

.cc-hex-data span{
  font-size:.48rem !important;
  letter-spacing:.10em !important;
  margin-bottom:4px !important;
}

.cc-hex-data strong{
  font-size:.92rem !important;
  line-height:1.02 !important;
}

.cc-hex-data small{
  font-size:.52rem !important;
  margin-top:5px !important;
}

.cc-hex-data i{
  height:17px !important;
  margin-top:6px !important;
  border-radius:5px !important;
  background-size:auto !important;
}

/* Evita que el cuadro reducido tape nodos cercanos */
.cc-hex-data{
  background:rgba(6,17,34,.58) !important;
  backdrop-filter:blur(6px) !important;
}

/* Mantiene el análisis en la esquina derecha sin montar el holograma */
.cc-hex-ai{
  top:18px !important;
  right:18px !important;
  width:182px !important;
  padding:10px 12px !important;
}

/* En pantallas pequeñas, se reduce todavía más */
@media(max-width:640px){
  .cc-hex-data{
    width:82px !important;
    min-width:82px !important;
    padding:5px 6px !important;
    transform:none !important;
  }

  .cc-hex-data strong{
    font-size:.82rem !important;
  }

  .cc-hex-data i{
    height:14px !important;
  }
}


/* =========================================================
   FRONT V24 - HOLOGRAMA CON NODOS DINÁMICOS Y SINAPSIS
   Mantiene layout estable, cambia solo el holograma interno.
========================================================= */
.cc-hex-safe{min-height:470px;}
.cc-hex-stage{inset:20px 18px 18px;display:grid;place-items:center;overflow:hidden;}
.cc-hex-core{position:relative;width:min(72vw,520px);aspect-ratio:1;overflow:hidden;border-radius:22px;filter:drop-shadow(0 0 18px rgba(37,214,255,.18));background:radial-gradient(circle at 50% 50%, rgba(37,214,255,.09), rgba(5,15,28,.02) 58%, transparent 72%);animation:none !important;}
.cc-holo-backdrop{position:absolute;inset:0;z-index:1;border-radius:22px;background:radial-gradient(circle at 50% 50%, rgba(0,255,255,.16), transparent 20%),url('/static/img/front_hologram_hex.png') center/cover no-repeat;opacity:.92;filter:saturate(1.08) brightness(1.02);}
.cc-holo-glow{position:absolute;z-index:1;pointer-events:none;border-radius:50%;filter:blur(16px);opacity:.45;mix-blend-mode:screen;}
.cc-holo-glow.glow-a{width:46%;height:46%;left:27%;top:27%;background:radial-gradient(circle, rgba(37,214,255,.22), transparent 68%);animation:ccGlowPulse 4.6s ease-in-out infinite;}
.cc-holo-glow.glow-b{width:70%;height:14%;left:15%;top:46%;background:radial-gradient(circle, rgba(99,162,255,.10), transparent 74%);animation:ccGlowSweep 8s linear infinite;}
.cc-synapse-layer{position:absolute;inset:8% 8% 8%;z-index:2;width:84%;height:84%;overflow:visible;pointer-events:none;}
.cc-synapse-line{stroke:rgba(80,220,255,.42);stroke-width:1.1;filter:drop-shadow(0 0 5px rgba(37,214,255,.28));stroke-linecap:round;}
.cc-dynamic-field{position:absolute;inset:8% 8% 8%;z-index:3;pointer-events:none;overflow:visible;}
.cc-dyn-node{position:absolute;left:0;top:0;transform-origin:center center;will-change:left,top,transform,opacity;}
.cc-dyn-dot{position:absolute;left:0;top:0;width:var(--node-size,4px);height:var(--node-size,4px);border-radius:50%;background:var(--node-color,#25d6ff);box-shadow:0 0 6px var(--node-color,#25d6ff),0 0 14px color-mix(in srgb, var(--node-color,#25d6ff) 72%, transparent);}
.cc-dyn-label{position:absolute;left:calc(var(--node-size,4px) + 2px);top:-2px;font-size:5px;line-height:1;letter-spacing:.03em;white-space:nowrap;color:rgba(223,245,255,.18);text-shadow:0 0 4px rgba(37,214,255,.16);user-select:none;}
.cc-dyn-node:hover .cc-dyn-label{color:rgba(223,245,255,.70);}
.cc-hex-layer,.cc-vector,.cc-node,.cc-hex-bg-orbit,.cc-hex-flow,.cc-hex-system,.cc-hex-layers{display:none !important;}
.cc-hex-ai{top:18px !important;right:18px !important;width:178px !important;padding:10px 12px !important;z-index:5;}
.cc-hex-data{z-index:5;}
@keyframes ccGlowPulse{0%,100%{transform:scale(1);opacity:.36}50%{transform:scale(1.08);opacity:.58}}
@keyframes ccGlowSweep{0%{transform:translateX(-4%) scaleX(.9);opacity:.14}50%{transform:translateX(4%) scaleX(1.05);opacity:.28}100%{transform:translateX(-4%) scaleX(.9);opacity:.14}}
@media(max-width:980px){.cc-hex-core{width:min(84vw,390px);} .cc-hex-ai{width:164px !important;right:14px !important;top:14px !important;} .cc-dyn-label{display:none;}}
@media(max-width:640px){.cc-hex-safe{min-height:350px;} .cc-hex-stage{inset:16px 12px 12px;} .cc-hex-core{width:min(88vw,286px);} .cc-hex-ai{width:150px !important;padding:8px 10px !important;}}


/* =========================================================
   FRONT V25 - FONDO ÚNICO + MUNDO Y LÍNEAS EN MOVIMIENTO
   - Un solo color de fondo dentro del holograma
   - Globo/holograma animado suavemente
   - Líneas y nodos más visibles con sensación de sinapsis
========================================================= */
.cc-hex-core{
  background:#07192f !important;
  border-radius:22px;
  box-shadow:inset 0 0 0 1px rgba(57,142,255,.12), 0 18px 42px rgba(2,10,24,.34);
}

.cc-holo-backdrop{
  background:#07192f !important;
  opacity:1 !important;
  filter:none !important;
  overflow:hidden;
}

.cc-holo-backdrop::before{
  content:"";
  position:absolute;
  inset:5% 6% 8% 6%;
  background:url('/static/img/front_hologram_hex.png') center/contain no-repeat;
  opacity:.92;
  transform-origin:50% 52%;
  animation:ccWorldFloat 16s ease-in-out infinite, ccWorldSpin 46s linear infinite;
  filter:drop-shadow(0 0 16px rgba(37,214,255,.22)) drop-shadow(0 0 36px rgba(37,214,255,.12));
}

.cc-holo-backdrop::after{
  content:"";
  position:absolute;
  inset:4%;
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(37,214,255,.10), transparent 32%),
    repeating-radial-gradient(circle at center,
      rgba(80,200,255,.09) 0 1px,
      transparent 1px 34px),
    linear-gradient(0deg, transparent 49.4%, rgba(82,214,255,.10) 50%, transparent 50.6%),
    linear-gradient(90deg, transparent 49.4%, rgba(82,214,255,.10) 50%, transparent 50.6%);
  mix-blend-mode:screen;
  opacity:.72;
  animation:ccGridSpin 54s linear infinite;
}

.cc-holo-glow.glow-a{opacity:.40 !important; animation:ccGlowPulse 3.6s ease-in-out infinite;}
.cc-holo-glow.glow-b{opacity:.30 !important; animation:ccGlowSweep 6.8s linear infinite;}

.cc-synapse-line{
  stroke:rgba(93,225,255,.50) !important;
  stroke-width:1.2 !important;
  stroke-linecap:round;
  filter:drop-shadow(0 0 6px rgba(37,214,255,.26));
}

.cc-dynamic-field{inset:8% 8% 10% !important;}
.cc-dyn-dot{
  box-shadow:0 0 7px var(--node-color,#25d6ff), 0 0 18px color-mix(in srgb, var(--node-color,#25d6ff) 70%, transparent) !important;
}
.cc-dyn-label{
  color:rgba(225,245,255,.24) !important;
  text-shadow:0 0 5px rgba(37,214,255,.18);
}

/* cuadros superiores con leve transparencia sobre fondo uniforme */
.cc-hex-data,
.cc-hex-ai{
  background:rgba(6,18,35,.68) !important;
  backdrop-filter:blur(8px);
}

@keyframes ccWorldFloat{
  0%,100%{transform:translateY(0) scale(1.00);}
  25%{transform:translateY(-6px) scale(1.012);}
  50%{transform:translateY(3px) scale(1.022);}
  75%{transform:translateY(-4px) scale(1.010);}
}
@keyframes ccWorldSpin{
  0%{rotate:0deg;}
  100%{rotate:360deg;}
}
@keyframes ccGridSpin{
  0%{transform:rotate(0deg) scale(1);}
  100%{transform:rotate(-360deg) scale(1);}
}

@media (max-width:980px){
  .cc-holo-backdrop::before{inset:8% 8% 11% 8%;}
}
@media (max-width:640px){
  .cc-holo-backdrop::before{inset:10% 10% 14% 10%;}
  .cc-holo-backdrop::after{opacity:.54;}
}


/* =========================================================
   FRONT V26 - HOLOGRAMA RED NEURONAL
   Solo se cambia el holograma. El resto de la interfaz se mantiene.
========================================================= */
.cc-hex-core{
  background:
    radial-gradient(circle at 50% 50%, rgba(20,163,255,.16) 0%, rgba(7,25,47,.96) 36%, rgba(7,25,47,1) 100%) !important;
  border-radius:22px;
  overflow:hidden;
}

.cc-holo-backdrop{
  position:absolute;
  inset:0;
  z-index:1;
  border-radius:22px;
  background:
    radial-gradient(circle at 50% 50%, rgba(34,214,255,.12), transparent 18%),
    radial-gradient(circle at 50% 50%, rgba(58,115,255,.08), transparent 42%),
    linear-gradient(180deg, rgba(8,22,42,.16), rgba(8,22,42,.16));
  opacity:1 !important;
  filter:none !important;
}

/* fondo neural sin imagen externa */
.cc-holo-backdrop::before{
  content:"";
  position:absolute;
  inset:8% 8% 10% 8%;
  border-radius:50%;
  background:
    repeating-radial-gradient(circle at center,
      rgba(79,193,255,.12) 0 1px,
      transparent 1px 36px),
    linear-gradient(0deg, transparent 49.6%, rgba(104,221,255,.12) 50%, transparent 50.4%),
    linear-gradient(90deg, transparent 49.6%, rgba(104,221,255,.12) 50%, transparent 50.4%),
    radial-gradient(circle at center, rgba(42,219,255,.16), transparent 56%);
  opacity:.95;
  transform-origin:center;
  animation:ccNeuralSpin 44s linear infinite;
}

.cc-holo-backdrop::after{
  content:"";
  position:absolute;
  inset:12% 12% 14% 12%;
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(34,214,255,.20) 0, rgba(34,214,255,.08) 6%, transparent 8%),
    conic-gradient(from 0deg,
      rgba(34,214,255,.0) 0 10%,
      rgba(34,214,255,.16) 10% 12%,
      rgba(34,214,255,.0) 12% 22%,
      rgba(99,162,255,.14) 22% 24%,
      rgba(34,214,255,.0) 24% 34%,
      rgba(34,214,255,.14) 34% 36%,
      rgba(34,214,255,.0) 36% 46%,
      rgba(99,162,255,.12) 46% 48%,
      rgba(34,214,255,.0) 48% 58%,
      rgba(34,214,255,.13) 58% 60%,
      rgba(34,214,255,.0) 60% 70%,
      rgba(99,162,255,.12) 70% 72%,
      rgba(34,214,255,.0) 72% 82%,
      rgba(34,214,255,.14) 82% 84%,
      rgba(34,214,255,.0) 84% 100%);
  opacity:.55;
  animation:ccNeuralPulse 8s ease-in-out infinite, ccNeuralSpinReverse 28s linear infinite;
}

.cc-holo-glow.glow-a{
  width:54%;height:54%;left:23%;top:23%;
  background:radial-gradient(circle, rgba(34,214,255,.22), transparent 72%) !important;
  opacity:.46 !important;
  animation:ccGlowPulse 3.4s ease-in-out infinite;
}
.cc-holo-glow.glow-b{
  width:76%;height:76%;left:12%;top:12%;
  background:radial-gradient(circle, rgba(99,162,255,.09), transparent 68%) !important;
  opacity:.22 !important;
  animation:ccNeuralBreath 6.8s ease-in-out infinite;
}

.cc-synapse-layer{
  z-index:3 !important;
  inset:8% 8% 10% 8% !important;
  width:84% !important;
  height:82% !important;
}

.cc-synapse-line{
  stroke:rgba(96,228,255,.42) !important;
  stroke-width:1.15 !important;
  stroke-linecap:round;
  filter:drop-shadow(0 0 5px rgba(34,214,255,.22));
}

.cc-dynamic-field{
  position:absolute;
  inset:8% 8% 10% 8% !important;
  z-index:4 !important;
  pointer-events:none;
}

.cc-dyn-dot{
  width:var(--node-size,4px);
  height:var(--node-size,4px);
  border-radius:50%;
  background:var(--node-color,#25d6ff);
  box-shadow:
    0 0 8px var(--node-color,#25d6ff),
    0 0 18px color-mix(in srgb, var(--node-color,#25d6ff) 74%, transparent),
    0 0 30px color-mix(in srgb, var(--node-color,#25d6ff) 38%, transparent) !important;
}

.cc-dyn-label{
  color:rgba(223,245,255,.16) !important;
  text-shadow:0 0 4px rgba(34,214,255,.15);
}

@keyframes ccNeuralSpin{
  from { transform:rotate(0deg) scale(1); }
  to   { transform:rotate(360deg) scale(1); }
}
@keyframes ccNeuralSpinReverse{
  from { transform:rotate(360deg) scale(1.02); }
  to   { transform:rotate(0deg) scale(1.02); }
}
@keyframes ccNeuralPulse{
  0%,100%{ opacity:.44; transform:scale(.96); }
  50%{ opacity:.72; transform:scale(1.03); }
}
@keyframes ccNeuralBreath{
  0%,100%{ transform:scale(.96); opacity:.18; }
  50%{ transform:scale(1.03); opacity:.30; }
}

@media (max-width:980px){
  .cc-holo-backdrop::before{inset:10% 10% 12% 10%;}
  .cc-holo-backdrop::after{inset:14% 14% 16% 14%;}
}
@media (max-width:640px){
  .cc-holo-backdrop::before{inset:12% 12% 14% 12%;}
  .cc-holo-backdrop::after{inset:16% 16% 18% 16%; opacity:.44;}
}

/* =========================================================
   FRONT V27 - HOLOGRAMA NÚCLEO HEXAGONAL DINÁMICO
   Se cambia solo el holograma. El resto del front se mantiene.
========================================================= */
.cc-v27-hologram.cc-hex-safe{
  min-height: 470px;
  overflow: hidden;
}
.cc-v27-hologram .cc-hex-stage{
  inset: 20px 18px 18px;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.cc-v27-hologram .cc-hex-core{
  position: relative;
  width: min(72vw, 520px);
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 22px;
  background:
    radial-gradient(circle at 50% 50%, rgba(16, 74, 136, .38) 0%, rgba(6, 17, 34, .96) 42%, rgba(5, 14, 28, 1) 100%) !important;
  box-shadow:
    inset 0 0 0 1px rgba(86, 195, 255, .10),
    0 0 32px rgba(18, 124, 255, .12);
}
.cc-v27-hologram .cc-holo-backdrop{
  position: absolute;
  inset: 0;
  border-radius: 22px;
  z-index: 1;
  background:
    radial-gradient(circle at 50% 50%, rgba(57, 211, 255, .12), transparent 20%),
    radial-gradient(circle at 50% 50%, rgba(74, 135, 255, .08), transparent 48%),
    linear-gradient(180deg, rgba(5, 16, 31, .05), rgba(5, 16, 31, .15));
}
.cc-v27-hologram .cc-holo-backdrop::before{
  content: "";
  position: absolute;
  inset: 3%;
  border-radius: 22px;
  background:
    repeating-radial-gradient(circle at 50% 50%, rgba(80, 181, 255, .08) 0 1px, transparent 1px 32px),
    linear-gradient(0deg, transparent 49.7%, rgba(105, 220, 255, .09) 50%, transparent 50.3%),
    linear-gradient(90deg, transparent 49.7%, rgba(105, 220, 255, .09) 50%, transparent 50.3%);
  opacity: .70;
}
.cc-v27-hologram .cc-holo-backdrop::after{
  content: "";
  position: absolute;
  inset: 8%;
  border-radius: 50%;
  background:
    radial-gradient(circle at center, rgba(54, 210, 255, .16), transparent 54%),
    repeating-radial-gradient(circle at center, rgba(66, 170, 255, .10) 0 1px, transparent 1px 28px);
  opacity: .60;
  animation: ccV27SlowSpin 52s linear infinite;
}
.cc-v27-hologram .cc-holo-side-trace{
  position: absolute;
  top: 50%;
  width: 34%;
  height: 24%;
  z-index: 2;
  transform: translateY(-50%);
  opacity: .78;
  filter: drop-shadow(0 0 8px rgba(41, 216, 255, .22));
}
.cc-v27-hologram .cc-holo-side-trace.left{
  left: -4%;
  background:
    linear-gradient(180deg, transparent 48%, rgba(41, 216, 255, .26) 50%, transparent 52%),
    repeating-linear-gradient(90deg, rgba(41, 216, 255, 0) 0 13px, rgba(41,216,255,.26) 13px 15px, rgba(41,216,255,0) 15px 28px);
  clip-path: polygon(0 15%, 88% 15%, 100% 50%, 88% 85%, 0 85%);
}
.cc-v27-hologram .cc-holo-side-trace.right{
  right: -4%;
  background:
    linear-gradient(180deg, transparent 48%, rgba(41, 216, 255, .26) 50%, transparent 52%),
    repeating-linear-gradient(90deg, rgba(41, 216, 255, 0) 0 13px, rgba(41,216,255,.26) 13px 15px, rgba(41,216,255,0) 15px 28px);
  clip-path: polygon(12% 15%, 100% 15%, 100% 85%, 12% 85%, 0 50%);
}
.cc-v27-hologram .cc-hex-ring,
.cc-v27-hologram .cc-hex-radials,
.cc-v27-hologram .cc-core-glow{
  pointer-events: none;
  position: absolute;
  left: 50%;
  top: 52%;
  transform: translate(-50%, -50%);
  z-index: 2;
}
.cc-v27-hologram .cc-hex-ring{
  aspect-ratio: 1;
  clip-path: polygon(50% 0%, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%);
  border: 1px solid rgba(78, 211, 255, .35);
  box-shadow: inset 0 0 18px rgba(41, 216, 255, .10), 0 0 20px rgba(41, 216, 255, .08);
}
.cc-v27-hologram .cc-hex-ring.ring-outer{ width: 78%; animation: ccV27Pulse 7s ease-in-out infinite; }
.cc-v27-hologram .cc-hex-ring.ring-mid{ width: 58%; opacity: .92; animation: ccV27Pulse 5.4s ease-in-out infinite reverse; }
.cc-v27-hologram .cc-hex-ring.ring-inner{ width: 39%; opacity: .95; animation: ccV27Pulse 4.2s ease-in-out infinite; }
.cc-v27-hologram .cc-hex-ring.ring-core{ width: 18%; opacity: 1; animation: ccV27Pulse 2.6s ease-in-out infinite; }
.cc-v27-hologram .cc-hex-radials{
  width: 76%;
  aspect-ratio: 1;
  border-radius: 50%;
  background:
    conic-gradient(from 0deg,
      rgba(0,0,0,0) 0deg 28deg,
      rgba(90,220,255,.22) 28deg 29deg,
      rgba(0,0,0,0) 29deg 59deg,
      rgba(90,220,255,.22) 59deg 60deg,
      rgba(0,0,0,0) 60deg 90deg,
      rgba(90,220,255,.22) 90deg 91deg,
      rgba(0,0,0,0) 91deg 119deg,
      rgba(90,220,255,.22) 119deg 120deg,
      rgba(0,0,0,0) 120deg 149deg,
      rgba(90,220,255,.22) 149deg 150deg,
      rgba(0,0,0,0) 150deg 179deg,
      rgba(90,220,255,.22) 179deg 180deg,
      rgba(0,0,0,0) 180deg 209deg,
      rgba(90,220,255,.22) 209deg 210deg,
      rgba(0,0,0,0) 210deg 239deg,
      rgba(90,220,255,.22) 239deg 240deg,
      rgba(0,0,0,0) 240deg 269deg,
      rgba(90,220,255,.22) 269deg 270deg,
      rgba(0,0,0,0) 270deg 299deg,
      rgba(90,220,255,.22) 299deg 300deg,
      rgba(0,0,0,0) 300deg 329deg,
      rgba(90,220,255,.22) 329deg 330deg,
      rgba(0,0,0,0) 330deg 360deg);
  opacity: .35;
  animation: ccV27SlowSpinReverse 34s linear infinite;
}
.cc-v27-hologram .cc-core-glow{
  width: 14%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(195,245,255,1) 0%, rgba(61,220,255,.92) 18%, rgba(40,140,255,.46) 44%, rgba(14,28,63,0) 74%);
  box-shadow: 0 0 14px rgba(63, 222, 255, .68), 0 0 34px rgba(63, 222, 255, .34);
  animation: ccV27Core 3.4s ease-in-out infinite;
}
.cc-v27-hologram .cc-synapse-layer,
.cc-v27-hologram .cc-pulse-layer{
  position: absolute;
  inset: 11% 11% 13%;
  width: 78%;
  height: 76%;
  z-index: 4;
  overflow: visible;
  pointer-events: none;
}
.cc-v27-hologram .cc-synapse-line{
  stroke: rgba(101, 229, 255, .34);
  stroke-width: 1.06;
  stroke-linecap: round;
  filter: drop-shadow(0 0 4px rgba(41, 216, 255, .18));
}
.cc-v27-hologram .cc-pulse-dot{
  fill: rgba(192, 247, 255, .95);
  filter: drop-shadow(0 0 6px rgba(41, 216, 255, .72));
}
.cc-v27-hologram .cc-dynamic-field{
  position: absolute;
  inset: 11% 11% 13%;
  z-index: 5;
  pointer-events: none;
}
.cc-v27-hologram .cc-dyn-node{
  position: absolute;
  left: 0;
  top: 0;
  transform-origin: center center;
  will-change: left, top, transform, opacity;
}
.cc-v27-hologram .cc-dyn-dot{
  position: absolute;
  left: 0;
  top: 0;
  width: var(--node-size, 4px);
  height: var(--node-size, 4px);
  border-radius: 50%;
  background: var(--node-color, #29d8ff);
  box-shadow:
    0 0 8px var(--node-color, #29d8ff),
    0 0 16px color-mix(in srgb, var(--node-color, #29d8ff) 70%, transparent),
    0 0 28px color-mix(in srgb, var(--node-color, #29d8ff) 36%, transparent);
}
.cc-v27-hologram .cc-dyn-label{
  position: absolute;
  left: calc(var(--node-size, 4px) + 2px);
  top: -1px;
  font-size: 5px;
  line-height: 1;
  letter-spacing: .03em;
  white-space: nowrap;
  color: rgba(217, 245, 255, .16);
  text-shadow: 0 0 4px rgba(41, 216, 255, .14);
  user-select: none;
}
.cc-v27-hologram .cc-hex-data{
  left: 18px;
  top: 18px;
  width: 146px;
  padding: 10px 12px;
  z-index: 6;
}
.cc-v27-hologram .cc-hex-data strong{ font-size: 1.15rem; line-height: 1.05; }
.cc-v27-hologram .cc-hex-data span{ font-size: .62rem; }
.cc-v27-hologram .cc-hex-data small{ font-size: .70rem; }
.cc-v27-hologram .cc-hex-data i{ height: 26px; margin-top: 8px; }
.cc-v27-hologram .cc-hex-ai{
  top: 18px !important;
  right: 18px !important;
  width: 180px !important;
  padding: 10px 12px !important;
  z-index: 6;
}
.cc-v27-hologram .cc-hex-ai span{ font-size: .68rem; }
.cc-v27-hologram .cc-hex-ai p{ margin: 7px 0 0; font-size: .75rem; gap: 8px; }
.cc-v27-hologram .cc-hex-panel{
  background: linear-gradient(180deg, rgba(8, 18, 34, .92), rgba(8, 18, 34, .82));
  border: 1px solid rgba(80, 194, 255, .24);
  backdrop-filter: blur(6px);
}
@keyframes ccV27SlowSpin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@keyframes ccV27SlowSpinReverse {
  from { transform: translate(-50%, -50%) rotate(360deg); }
  to { transform: translate(-50%, -50%) rotate(0deg); }
}
@keyframes ccV27Pulse {
  0%, 100% { opacity: .72; transform: translate(-50%, -50%) scale(.985); }
  50% { opacity: .98; transform: translate(-50%, -50%) scale(1.018); }
}
@keyframes ccV27Core {
  0%, 100% { transform: translate(-50%, -50%) scale(.94); opacity: .88; }
  50% { transform: translate(-50%, -50%) scale(1.04); opacity: 1; }
}
@media (max-width: 980px){
  .cc-v27-hologram .cc-hex-core{ width: min(84vw, 390px); }
  .cc-v27-hologram .cc-hex-ai{ width: 160px !important; right: 14px !important; top: 14px !important; }
  .cc-v27-hologram .cc-hex-data{ transform: scale(.95); transform-origin: left top; }
  .cc-v27-hologram .cc-dyn-label{ display: none; }
}
@media (max-width: 640px){
  .cc-v27-hologram.cc-hex-safe{ min-height: 350px; }
  .cc-v27-hologram .cc-hex-stage{ inset: 16px 12px 12px; }
  .cc-v27-hologram .cc-hex-core{ width: min(88vw, 286px); }
  .cc-v27-hologram .cc-hex-ai{ width: 148px !important; padding: 8px 10px !important; }
  .cc-v27-hologram .cc-hex-data{ width: 126px; padding: 8px 10px; }
  .cc-v27-hologram .cc-holo-side-trace{ opacity: .45; }
}


/* ===== V28: holograma estático basado en la imagen de referencia 2 ===== */
.cc-v27-hologram .cc-hex-stage{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
}
.cc-v27-hologram .cc-hex-core{
  position:absolute;
  inset:0;
  overflow:hidden;
  background:
    radial-gradient(circle at center, rgba(26,56,110,.18) 0%, rgba(7,16,28,0) 52%),
    linear-gradient(180deg, rgba(7,16,28,.12), rgba(7,16,28,.12)),
    url('../img/holograma_nucleo_hexagonal_v28.png') center center / cover no-repeat;
  animation: ccHoloFloat 9s ease-in-out infinite;
}
.cc-v27-hologram .cc-holo-backdrop,
.cc-v27-hologram .cc-holo-side-trace,
.cc-v27-hologram .cc-hex-ring,
.cc-v27-hologram .cc-hex-radials,
.cc-v27-hologram .cc-core-glow,
.cc-v27-hologram .cc-synapse-layer,
.cc-v27-hologram .cc-pulse-layer,
.cc-v27-hologram .cc-dynamic-field{
  display:none !important;
}
.cc-v27-hologram::after{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at center, rgba(96,190,255,.18), transparent 34%),
    linear-gradient(180deg, rgba(5,12,22,.00) 0%, rgba(5,12,22,.08) 100%);
  mix-blend-mode:screen;
}
.cc-v27-hologram .cc-hex-data{
  width:108px;
  min-height:88px;
  top:18px;
  left:18px;
  padding:10px 12px;
}
.cc-v27-hologram .cc-hex-data strong{font-size:1.8rem; line-height:1;}
.cc-v27-hologram .cc-hex-ai{
  top:18px;
  right:18px;
  transform:none;
  max-width:180px;
  padding:14px 14px 12px;
}
.cc-v27-hologram .cc-hex-ai span{font-size:.9rem}
.cc-v27-hologram .cc-hex-ai p{margin:8px 0; font-size:.92rem}
@keyframes ccHoloFloat{
  0%,100%{transform:scale(1) translateY(0px); filter:brightness(1) saturate(1.03)}
  50%{transform:scale(1.015) translateY(-3px); filter:brightness(1.04) saturate(1.08)}
}
@media (max-width: 980px){
  .cc-v27-hologram .cc-hex-core{background-size: contain;}
}


/* =========================================================
   FRONT V29 - HOLOGRAMA FORZADO CON IMAGEN 2
   Este bloque elimina visualmente capas anteriores y usa IMG real.
========================================================= */
.cc-v29-hologram{
  position:relative!important;
  width:100%!important;
  height:100%!important;
  min-height:470px!important;
  overflow:hidden!important;
  border:1px solid rgba(99,162,255,.28)!important;
  border-radius:28px!important;
  background:#061426!important;
}
.cc-v29-hologram-img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  display:block!important;
  opacity:.96!important;
  filter:saturate(1.08) brightness(.98)!important;
  transform:scale(1.02)!important;
}
.cc-v29-hologram .cc-hex-stage,
.cc-v29-hologram .cc-hex-core,
.cc-v29-hologram .cc-holo-backdrop,
.cc-v29-hologram .cc-dynamic-field,
.cc-v29-hologram .cc-synapse-layer,
.cc-v29-hologram .cc-pulse-layer,
.cc-v29-hologram .cc-node,
.cc-v29-hologram .cc-vector{
  display:none!important;
}
.cc-v29-hologram .cc-hex-data,
.cc-v29-hologram .cc-hex-ai{
  position:absolute!important;
  z-index:5!important;
  background:rgba(6,18,35,.74)!important;
  border:1px solid rgba(80,194,255,.28)!important;
  backdrop-filter:blur(7px)!important;
}
.cc-v29-hologram .cc-hex-data{
  left:18px!important;
  top:18px!important;
  width:108px!important;
  min-height:86px!important;
  padding:9px 10px!important;
}
.cc-v29-hologram .cc-hex-data span{font-size:.56rem!important;}
.cc-v29-hologram .cc-hex-data strong{font-size:1rem!important;line-height:1.05!important;}
.cc-v29-hologram .cc-hex-data small{font-size:.60rem!important;}
.cc-v29-hologram .cc-hex-data i{height:18px!important;margin-top:6px!important;}
.cc-v29-hologram .cc-hex-ai{
  top:18px!important;
  right:18px!important;
  width:180px!important;
  padding:12px 13px!important;
}
@media(max-width:980px){
  .cc-v29-hologram{min-height:380px!important;height:380px!important;}
  .cc-v29-hologram-img{object-fit:cover!important;}
}
@media(max-width:640px){
  .cc-v29-hologram{min-height:320px!important;height:320px!important;}
  .cc-v29-hologram .cc-hex-ai{display:none!important;}
}


/* V30 | Capa animada de nodos y sinapsis sobre holograma hexagonal */
.cc-v29-hologram{isolation:isolate}
.cc-v29-hologram-img{z-index:1}
.cc-v30-neuro-canvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:2;
  pointer-events:none;
  opacity:.96;
  mix-blend-mode:screen;
}
.cc-v29-hologram .cc-hex-panel{z-index:5}
.cc-v29-hologram::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 52%, rgba(115,236,255,.18), transparent 12%),
    radial-gradient(circle at 50% 52%, rgba(47,161,255,.12), transparent 24%);
}
@media (max-width: 980px){
  .cc-v30-neuro-canvas{opacity:.9}
}


/* V31 | limpieza visual del holograma + mayor dinamismo */
.cc-v29-hologram-img{
  animation: ccV31Float 14s ease-in-out infinite;
}
@keyframes ccV31Float{
  0%,100%{transform:scale(1.02) translateY(0)}
  50%{transform:scale(1.035) translateY(-4px)}
}
.cc-v30-neuro-canvas{
  filter: saturate(1.08) brightness(1.06);
}


/* =========================================================
   V38 FIX REAL - PANEL ANÁLISIS INTELIGENTE
   Fallback visual por si el template anterior queda en caché:
   oculta CIIU/Segmentado y Alertas/2 del panel independiente.
========================================================= */
.cc-hex-ai p:nth-of-type(n+3),
.cc-v29-hologram .cc-hex-ai p:nth-of-type(n+3),
.public-pulse .cc-hex-ai p:nth-of-type(n+3){
  display:none!important;
}
.cc-hex-ai,
.cc-v29-hologram .cc-hex-ai,
.public-pulse .cc-hex-ai{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
}
.cc-v30-neuro-canvas{
  opacity:.98!important;
  mix-blend-mode:screen!important;
  filter:saturate(1.18) brightness(1.08)!important;
}
.cc-v29-hologram-img{
  animation:ccV38HoloAlive 12s ease-in-out infinite!important;
}
@keyframes ccV38HoloAlive{
  0%,100%{transform:scale(1.02) translateY(0px); filter:saturate(1.08) brightness(1)}
  50%{transform:scale(1.038) translateY(-4px); filter:saturate(1.16) brightness(1.06)}
}


/* =========================================================
   V39 | Holograma vivo real: se mueve la capa holográfica,
   no la imagen base.
========================================================= */
.cc-v29-hologram-img{
  animation:none!important;
  transform:scale(1.02)!important;
  filter:saturate(1.08) brightness(1.01)!important;
}
.cc-v30-neuro-canvas{
  opacity:1!important;
  mix-blend-mode:screen!important;
  filter:saturate(1.24) brightness(1.12)!important;
}
.cc-v29-hologram::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(80,210,255,.06), rgba(0,0,0,0) 18%, rgba(0,0,0,0) 82%, rgba(80,210,255,.06)),
    repeating-linear-gradient(
      to bottom,
      rgba(120,230,255,.045) 0px,
      rgba(120,230,255,.045) 1px,
      transparent 2px,
      transparent 9px
    );
  mix-blend-mode:screen;
  opacity:.55;
}


/* =========================================================
   V40 | Holograma neuronal vivo intenso
   Mantiene fija la imagen base y anima solo capas holográficas.
========================================================= */
.cc-v29-hologram-img{
  animation:none!important;
  transform:scale(1.02)!important;
  filter:saturate(1.10) brightness(1.02)!important;
}
.cc-v30-neuro-canvas{
  opacity:1!important;
  mix-blend-mode:screen!important;
  filter:saturate(1.38) brightness(1.20) contrast(1.04)!important;
}
.cc-v29-hologram::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 52%, rgba(110,235,255,.11), transparent 18%),
    repeating-linear-gradient(
      to bottom,
      rgba(120,230,255,.055) 0px,
      rgba(120,230,255,.055) 1px,
      transparent 2px,
      transparent 8px
    );
  mix-blend-mode:screen;
  opacity:.68;
  animation:ccV40ScanlineFlow 3.8s linear infinite;
}
.cc-v29-hologram::after{
  opacity:.95!important;
}
@keyframes ccV40ScanlineFlow{
  from{background-position:0 0, 0 0;}
  to{background-position:0 0, 0 36px;}
}


/* =========================================================
   FRONT V43 PALANTIR-INSPIRED - CuentasControl.com
   Rediseño corporativo: mantiene holograma V31 y J.O.R.V.A.N.
   No cambia rutas privadas ni lógica del dashboard o módulos.
========================================================= */
.cc-pal-front{
  max-width:1440px;
  padding:24px clamp(16px,3.2vw,46px) 38px;
  position:relative;
}
body:has(.cc-pal-front){
  background:
    radial-gradient(circle at 76% 12%, rgba(37,214,255,.14), transparent 28%),
    radial-gradient(circle at 12% 18%, rgba(40,94,240,.12), transparent 24%),
    linear-gradient(180deg,#05070c 0%,#07101c 48%,#03060b 100%);
}
.cc-pal-front::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background:
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,.028) 1px, transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(180deg,rgba(0,0,0,.72),transparent 78%);
}
.cc-pal-nav{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:22px;
  align-items:center;
  margin-bottom:34px;
  padding:10px 0 18px;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.cc-pal-brand{
  display:flex;
  gap:12px;
  align-items:center;
  color:#fff;
  text-decoration:none;
}
.cc-pal-brand strong{letter-spacing:-.02em}
.cc-pal-navlinks{
  display:flex;
  justify-content:center;
  gap:28px;
  align-items:center;
}
.cc-pal-navlinks a{
  color:#aeb8c9;
  text-decoration:none;
  font-size:.88rem;
  font-weight:700;
  letter-spacing:.02em;
}
.cc-pal-navlinks a:hover{color:#fff}
.cc-pal-login{justify-self:end}
.cc-pal-hero{
  grid-template-columns:minmax(0,.86fr) minmax(520px,1.14fr)!important;
  gap:34px!important;
  min-height:640px!important;
  align-items:stretch!important;
}
.cc-pal-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:600px;
  padding:22px 0 34px;
}
.cc-pal-copy .eyebrow{
  color:#d5e2ff;
  letter-spacing:.18em;
  font-weight:800;
  margin-bottom:18px;
}
.cc-pal-copy h1{
  max-width:760px;
  font-size:clamp(3.2rem,7.4vw,7.2rem)!important;
  line-height:.91!important;
  letter-spacing:-.075em;
  margin:0 0 26px!important;
  color:#f3f6ff;
}
.cc-pal-lead{
  max-width:660px;
  color:#aeb8c9!important;
  font-size:clamp(1.05rem,1.35vw,1.24rem)!important;
  line-height:1.65!important;
  margin:0 0 26px!important;
}
.cc-pal-actions{margin:6px 0 28px;gap:12px}
.cc-pal-actions .btn,
.cc-pal-login{
  border-radius:0!important;
  min-height:46px;
  padding:13px 18px;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.78rem;
}
.cc-pal-actions .btn.primary{
  background:#f5f8ff!important;
  color:#05070c!important;
  border-color:#f5f8ff!important;
}
.cc-pal-metrics{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  max-width:780px;
}
.cc-pal-metrics article{
  min-height:118px;
  padding:16px 15px;
  border:1px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.035);
}
.cc-pal-metrics span{
  color:#7ee9ff;
  font-weight:900;
  font-size:.76rem;
  letter-spacing:.16em;
}
.cc-pal-metrics strong{
  display:block;
  color:#fff;
  margin:12px 0 6px;
  font-size:1rem;
}
.cc-pal-metrics small{
  display:block;
  color:#8f9db4;
  line-height:1.35;
}
.cc-pal-visual-wrap{
  min-height:620px;
  border:1px solid rgba(255,255,255,.13);
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.018));
  padding:18px;
  position:relative;
  overflow:hidden;
}
.cc-pal-visual-wrap::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,transparent 0 44%,rgba(126,233,255,.10) 45%,transparent 46% 100%);
  pointer-events:none;
}
.cc-pal-visual-head{
  position:relative;
  z-index:4;
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  padding:0 0 14px;
  color:#e8f2ff;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.72rem;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.cc-pal-visual-head span{color:#8f9db4;font-weight:900}
.cc-pal-visual-head strong{font-weight:900;color:#fff}
.cc-pal-hologram.cc-v29-hologram{
  margin-top:16px;
  min-height:570px!important;
  border-radius:0!important;
  border-color:rgba(255,255,255,.15)!important;
  background:#03060b!important;
  box-shadow:inset 0 0 46px rgba(37,214,255,.12),0 24px 70px rgba(0,0,0,.28)!important;
}
.cc-pal-hologram .cc-v29-hologram-img{
  filter:saturate(1.02) contrast(1.08) brightness(.92)!important;
  opacity:.92!important;
}
.cc-pal-hologram .cc-hex-panel{
  border-radius:0!important;
  background:rgba(3,6,11,.72)!important;
  border-color:rgba(255,255,255,.18)!important;
}
.cc-pal-product-rail{
  margin:22px 0 34px;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  border-top:1px solid rgba(255,255,255,.12);
  border-bottom:1px solid rgba(255,255,255,.12);
}
.cc-pal-product-rail a{
  min-height:112px;
  padding:18px 16px;
  border-right:1px solid rgba(255,255,255,.10);
  color:#fff;
  text-decoration:none;
  background:rgba(255,255,255,.018);
  transition:background .22s ease, transform .22s ease;
}
.cc-pal-product-rail a:first-child{border-left:1px solid rgba(255,255,255,.10)}
.cc-pal-product-rail a:hover{background:rgba(126,233,255,.075);transform:translateY(-2px)}
.cc-pal-product-rail span{
  display:block;
  color:#7ee9ff;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.13em;
  font-weight:900;
  margin-bottom:12px;
}
.cc-pal-product-rail strong{
  display:block;
  font-size:1rem;
  line-height:1.25;
}
.cc-pal-front .cc-updated-front-section,
.cc-pal-front .contact-card{
  border-radius:0!important;
  border-color:rgba(255,255,255,.12)!important;
  background:rgba(255,255,255,.035)!important;
}
.cc-pal-front .cc-updated-card{
  border-radius:0!important;
  background:rgba(255,255,255,.03)!important;
  border-color:rgba(255,255,255,.11)!important;
}
.cc-pal-front .cc-updated-icon,
.cc-pal-front .brand-badge{border-radius:0!important}
.cc-pal-front .cc-form input,
.cc-pal-front .cc-form textarea,
.cc-pal-front .cc-form select{
  border-radius:0!important;
  background:#050b14!important;
}
.cc-pal-front .jarvis-auto-panel.jarvis-public-hero{
  border-radius:0!important;
  border-left:none!important;
  border-right:none!important;
  border-bottom:none!important;
  background:linear-gradient(90deg,rgba(3,6,11,.94),rgba(5,16,30,.92))!important;
}
.cc-pal-front .jarvis-auto-btn{border-radius:0!important;text-transform:uppercase;letter-spacing:.05em}
.cc-pal-front .jarvis-auto-orb{border-radius:0!important;clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%)}
@media(max-width:1180px){
  .cc-pal-hero{grid-template-columns:1fr!important;min-height:auto!important}
  .cc-pal-copy{min-height:auto;padding-top:10px}
  .cc-pal-visual-wrap{min-height:auto}
  .cc-pal-product-rail{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .cc-pal-front{padding:14px 14px 30px}
  .cc-pal-nav{grid-template-columns:1fr auto;gap:12px}
  .cc-pal-navlinks{grid-column:1/-1;justify-content:flex-start;overflow:auto;gap:18px;padding-bottom:4px}
  .cc-pal-copy h1{font-size:clamp(2.7rem,15vw,4.5rem)!important}
  .cc-pal-metrics{grid-template-columns:1fr}
  .cc-pal-visual-wrap{padding:12px}
  .cc-pal-hologram.cc-v29-hologram{min-height:420px!important}
  .cc-pal-product-rail{grid-template-columns:1fr 1fr}
  .cc-pal-product-rail a{min-height:92px}
}
@media(max-width:520px){
  .cc-pal-product-rail{grid-template-columns:1fr}
  .cc-pal-visual-head{display:grid;justify-content:start}
  .cc-pal-login{width:auto!important}
}

/* =========================================================
   FRONT V45 - IBM INSPIRED CORPORATE GRID
   Inspirado en lenguaje empresarial IBM/Carbon: grilla,
   bordes rectos, azul operacional y jerarquía tipográfica.
   Mantiene holograma, J.O.R.V.A.N. y lógica existente.
========================================================= */
.cc-ibm-front{
  max-width:1440px!important;
  margin:0 auto!important;
  padding:0!important;
  color:#f4f4f4!important;
  font-family:"IBM Plex Sans","Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
}
body:has(.cc-ibm-front){
  margin:0!important;
  background:#000!important;
  color:#f4f4f4!important;
}
.cc-ibm-front::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(180deg,rgba(255,255,255,.035) 1px,transparent 1px),
    radial-gradient(circle at 75% 22%,rgba(15,98,254,.22),transparent 34%),
    radial-gradient(circle at 15% 88%,rgba(69,137,255,.10),transparent 28%),
    #000;
  background-size:96px 96px,96px 96px,auto,auto,auto;
}
.cc-ibm-nav{
  display:grid!important;
  grid-template-columns:auto 1fr auto!important;
  align-items:center!important;
  gap:0!important;
  min-height:72px!important;
  padding:0 48px!important;
  margin:0!important;
  border-bottom:1px solid rgba(255,255,255,.18)!important;
  background:rgba(0,0,0,.86)!important;
  backdrop-filter:blur(12px)!important;
  position:sticky!important;
  top:0!important;
  z-index:30!important;
}
.cc-ibm-brand{
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  color:#f4f4f4!important;
  text-decoration:none!important;
  min-height:72px!important;
  padding-right:28px!important;
  border-right:1px solid rgba(255,255,255,.14)!important;
}
.cc-ibm-brand .brand-badge{
  width:48px!important;
  height:48px!important;
  border-radius:0!important;
  background:#0f62fe!important;
  color:#fff!important;
  display:grid!important;
  place-items:center!important;
  font-weight:900!important;
  letter-spacing:-.06em!important;
  box-shadow:none!important;
}
.cc-ibm-brand strong{font-size:1.02rem!important;letter-spacing:.01em!important}
.cc-ibm-navlinks{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:0!important;
  height:72px!important;
}
.cc-ibm-navlinks a{
  display:grid!important;
  place-items:center!important;
  min-height:72px!important;
  padding:0 22px!important;
  border-right:1px solid rgba(255,255,255,.10)!important;
  color:#c6c6c6!important;
  text-decoration:none!important;
  font-size:.92rem!important;
  font-weight:600!important;
}
.cc-ibm-navlinks a:hover{background:#262626!important;color:#fff!important}
.cc-ibm-login{
  justify-self:end!important;
  border-radius:0!important;
  min-height:48px!important;
  background:#0f62fe!important;
  color:#fff!important;
  border:1px solid #0f62fe!important;
  text-transform:none!important;
  letter-spacing:0!important;
}
.cc-ibm-login:hover{background:#0353e9!important;border-color:#0353e9!important}
.cc-ibm-hero{
  display:grid!important;
  grid-template-columns:minmax(0,.92fr) minmax(480px,1.08fr)!important;
  gap:0!important;
  align-items:stretch!important;
  min-height:680px!important;
  border-bottom:1px solid rgba(255,255,255,.18)!important;
}
.cc-ibm-copy{
  padding:72px 48px 40px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-between!important;
  min-height:680px!important;
  border-right:1px solid rgba(255,255,255,.18)!important;
  background:linear-gradient(180deg,rgba(22,22,22,.72),rgba(0,0,0,.88))!important;
}
.cc-ibm-copy .eyebrow{
  color:#78a9ff!important;
  text-transform:none!important;
  letter-spacing:.02em!important;
  font-size:1rem!important;
  font-weight:600!important;
  margin:0 0 24px!important;
}
.cc-ibm-copy h1{
  max-width:780px!important;
  margin:0 0 24px!important;
  color:#f4f4f4!important;
  font-size:clamp(3.1rem,6.4vw,6.4rem)!important;
  line-height:.96!important;
  letter-spacing:-.06em!important;
  font-weight:400!important;
}
.cc-ibm-lead{
  max-width:660px!important;
  margin:0 0 34px!important;
  color:#c6c6c6!important;
  font-size:1.2rem!important;
  line-height:1.55!important;
  letter-spacing:.01em!important;
}
.cc-ibm-actions{display:flex!important;flex-wrap:wrap!important;gap:0!important;margin:0 0 34px!important}
.cc-ibm-actions .btn{
  border-radius:0!important;
  min-height:54px!important;
  padding:0 22px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border:1px solid rgba(244,244,244,.32)!important;
  background:#000!important;
  color:#f4f4f4!important;
  text-transform:none!important;
  letter-spacing:.01em!important;
  box-shadow:none!important;
}
.cc-ibm-actions .btn.primary{background:#0f62fe!important;border-color:#0f62fe!important;color:#fff!important}
.cc-ibm-actions .btn:hover{background:#262626!important;color:#fff!important}
.cc-ibm-actions .btn.primary:hover{background:#0353e9!important;border-color:#0353e9!important}
.cc-ibm-metrics{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:0!important;
  border-top:1px solid rgba(255,255,255,.18)!important;
  border-left:1px solid rgba(255,255,255,.18)!important;
}
.cc-ibm-metrics article{
  min-height:170px!important;
  padding:22px 18px!important;
  background:rgba(22,22,22,.82)!important;
  border-right:1px solid rgba(255,255,255,.18)!important;
  border-bottom:1px solid rgba(255,255,255,.18)!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  gap:12px!important;
}
.cc-ibm-metrics span{
  color:#78a9ff!important;
  font-size:.82rem!important;
  font-weight:700!important;
  letter-spacing:.02em!important;
}
.cc-ibm-metrics strong{
  display:block!important;
  color:#f4f4f4!important;
  font-size:1.12rem!important;
  line-height:1.2!important;
  max-width:180px!important;
}
.cc-ibm-metrics small{
  display:block!important;
  color:#a8a8a8!important;
  line-height:1.45!important;
  font-size:.92rem!important;
}
.cc-ibm-visual-wrap{
  min-height:680px!important;
  padding:48px!important;
  display:flex!important;
  flex-direction:column!important;
  background:
    linear-gradient(90deg,rgba(15,98,254,.08),transparent 38%),
    linear-gradient(180deg,#161616,#000)!important;
  position:relative!important;
}
.cc-ibm-visual-head{
  display:flex!important;
  justify-content:space-between!important;
  gap:18px!important;
  align-items:center!important;
  min-height:58px!important;
  padding:0 0 18px!important;
  border-bottom:1px solid rgba(255,255,255,.18)!important;
  margin-bottom:18px!important;
  color:#f4f4f4!important;
}
.cc-ibm-visual-head span{color:#78a9ff!important;font-weight:700!important;font-size:.92rem!important}
.cc-ibm-visual-head strong{font-size:.98rem!important;font-weight:600!important;color:#f4f4f4!important}
.cc-ibm-hologram.cc-v29-hologram{flex:1!important;min-height:540px!important;border-radius:0!important;border-color:rgba(120,169,255,.38)!important;background:#000!important}
.cc-ibm-hologram .cc-hex-panel{border-radius:0!important}
.cc-ibm-product-rail{
  display:grid!important;
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
  gap:0!important;
  margin:0!important;
  border-bottom:1px solid rgba(255,255,255,.18)!important;
  background:#161616!important;
}
.cc-ibm-product-rail a{
  min-height:148px!important;
  padding:24px 18px!important;
  text-decoration:none!important;
  color:#f4f4f4!important;
  background:#161616!important;
  border-right:1px solid rgba(255,255,255,.18)!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-between!important;
  transition:background .18s ease, transform .18s ease!important;
}
.cc-ibm-product-rail a:hover{background:#262626!important;transform:none!important}
.cc-ibm-product-rail span{color:#78a9ff!important;font-size:.86rem!important;font-weight:700!important}
.cc-ibm-product-rail strong{font-size:1rem!important;line-height:1.25!important;color:#f4f4f4!important}
.cc-ibm-section{
  margin:0!important;
  padding:64px 48px!important;
  border:0!important;
  border-bottom:1px solid rgba(255,255,255,.18)!important;
  border-radius:0!important;
  background:#000!important;
}
.cc-ibm-section-head{border-bottom:1px solid rgba(255,255,255,.18)!important;padding-bottom:28px!important;margin-bottom:0!important}
.cc-ibm-section-head h2{font-weight:400!important;letter-spacing:-.04em!important;font-size:clamp(2.1rem,4.6vw,4.8rem)!important;line-height:1.02!important;color:#f4f4f4!important;max-width:900px!important}
.cc-ibm-section-head span{color:#78a9ff!important;text-transform:none!important;letter-spacing:.01em!important}
.cc-ibm-section-head p{color:#c6c6c6!important;max-width:520px!important;font-size:1.05rem!important;line-height:1.55!important}
.cc-ibm-grid{gap:0!important;border-left:1px solid rgba(255,255,255,.18)!important;border-top:1px solid rgba(255,255,255,.18)!important}
.cc-ibm-front .cc-updated-card{
  border-radius:0!important;
  border:0!important;
  border-right:1px solid rgba(255,255,255,.18)!important;
  border-bottom:1px solid rgba(255,255,255,.18)!important;
  background:#161616!important;
  min-height:300px!important;
  padding:28px!important;
  box-shadow:none!important;
}
.cc-ibm-front .cc-updated-card:hover{transform:none!important;background:#1f1f1f!important}
.cc-ibm-front .cc-updated-icon{
  border-radius:0!important;
  width:52px!important;
  height:52px!important;
  background:#0f62fe!important;
  color:#fff!important;
  font-weight:700!important;
  box-shadow:none!important;
}
.cc-ibm-front .cc-updated-card h3{color:#f4f4f4!important;font-size:1.45rem!important;line-height:1.16!important;margin-top:22px!important}
.cc-ibm-front .cc-updated-card p{color:#c6c6c6!important;line-height:1.55!important}
.cc-ibm-front .cc-updated-card div:last-child span{border-radius:0!important;background:#262626!important;border-color:#393939!important;color:#f4f4f4!important}
.cc-ibm-contact{
  margin:0!important;
  padding:48px!important;
  border-radius:0!important;
  border:0!important;
  border-bottom:1px solid rgba(255,255,255,.18)!important;
  background:#161616!important;
}
.cc-ibm-contact h2{font-size:clamp(2rem,4vw,4rem)!important;font-weight:400!important;letter-spacing:-.04em!important;margin:0 0 28px!important;color:#f4f4f4!important}
.cc-ibm-front .cc-form input,
.cc-ibm-front .cc-form textarea,
.cc-ibm-front .cc-form select{
  border-radius:0!important;
  background:#262626!important;
  border:0!important;
  border-bottom:1px solid #8d8d8d!important;
  color:#f4f4f4!important;
}
.cc-ibm-front .cc-form input:focus,
.cc-ibm-front .cc-form textarea:focus,
.cc-ibm-front .cc-form select:focus{outline:2px solid #0f62fe!important;outline-offset:0!important}
.cc-ibm-front .cc-form label span{color:#c6c6c6!important}
.cc-ibm-front .cc-form button.btn.primary{border-radius:0!important;background:#0f62fe!important;border-color:#0f62fe!important;color:#fff!important}
.cc-ibm-footer{margin:0!important;padding:34px 48px!important;text-align:left!important;color:#a8a8a8!important;background:#000!important}
.cc-ibm-front .jarvis-auto-panel.jarvis-public-hero{
  border-radius:0!important;
  border-color:rgba(120,169,255,.38)!important;
  background:linear-gradient(90deg,rgba(15,98,254,.22),rgba(0,0,0,.92))!important;
}
.cc-ibm-front .jarvis-auto-btn{border-radius:0!important;background:#0f62fe!important;border-color:#0f62fe!important;color:#fff!important}
.cc-ibm-front .jarvis-auto-btn.danger{background:#393939!important;border-color:#6f6f6f!important}
.cc-ibm-front .jarvis-auto-orb{border-radius:0!important;clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%)!important}
@media(max-width:1180px){
  .cc-ibm-hero{grid-template-columns:1fr!important;min-height:auto!important}
  .cc-ibm-copy{min-height:auto!important;border-right:0!important;border-bottom:1px solid rgba(255,255,255,.18)!important}
  .cc-ibm-visual-wrap{min-height:auto!important}
  .cc-ibm-product-rail{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:760px){
  .cc-ibm-nav{grid-template-columns:1fr auto!important;padding:0 16px!important}
  .cc-ibm-brand{border-right:0!important;padding-right:0!important}
  .cc-ibm-navlinks{grid-column:1/-1!important;overflow:auto!important;height:auto!important;border-top:1px solid rgba(255,255,255,.14)!important}
  .cc-ibm-navlinks a{min-height:48px!important;padding:0 16px!important}
  .cc-ibm-copy{padding:42px 20px 28px!important}
  .cc-ibm-copy h1{font-size:clamp(2.7rem,14vw,4.5rem)!important}
  .cc-ibm-lead{font-size:1.04rem!important}
  .cc-ibm-metrics{grid-template-columns:1fr!important}
  .cc-ibm-visual-wrap{padding:20px!important}
  .cc-ibm-visual-head{display:grid!important;justify-content:start!important}
  .cc-ibm-hologram.cc-v29-hologram{min-height:420px!important}
  .cc-ibm-product-rail{grid-template-columns:1fr!important}
  .cc-ibm-product-rail a{min-height:98px!important}
  .cc-ibm-section,.cc-ibm-contact{padding:42px 20px!important}
}

/* Dashboard layout refinement V43.1: carga financiera + accesos modulares */
.dashboard-upload-refined{
  padding:20px;
  border-radius:24px;
}
.upload-command-row{
  display:grid;
  grid-template-columns:minmax(260px,1fr) auto minmax(360px,auto);
  align-items:center;
  gap:18px;
  margin-bottom:18px;
}
.upload-command-row .upload-title-block h2{margin:0 0 5px;font-size:1.08rem}
.upload-command-row .upload-title-block p{margin:0;color:var(--muted)}
.upload-refresh-block{display:flex;justify-content:center}
.upload-file-block{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}
.upload-file-block input[type="file"]{
  max-width:310px;
  color:var(--text);
  font-size:.86rem;
}
.upload-file-block input[type="file"]::file-selector-button{
  border:1px solid rgba(99,162,255,.35);
  background:rgba(15,26,45,.95);
  color:var(--text);
  border-radius:10px;
  padding:8px 10px;
  margin-right:9px;
  cursor:pointer;
}
.refined-upload-grid{
  grid-template-columns:minmax(0,1.9fr) minmax(320px,.75fr);
  align-items:stretch;
}
.module-dropzone{
  min-height:380px;
  justify-content:flex-start;
  align-items:stretch;
  padding:20px;
  gap:16px;
  border-radius:22px;
  background:
    radial-gradient(circle at top left, rgba(99,162,255,.12), transparent 34%),
    rgba(99,162,255,.045);
}
.dropzone-intro{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  padding-bottom:12px;
  border-bottom:1px solid rgba(99,162,255,.16);
}
.dropzone-intro h3{margin:4px 0 6px;font-size:1.16rem;letter-spacing:.01em}
.drop-hint{
  min-width:190px;
  border:1px solid rgba(99,162,255,.24);
  background:rgba(7,16,28,.58);
  border-radius:16px;
  padding:12px 14px;
  text-align:right;
}
.drop-hint strong{display:block;color:#fff;font-size:.92rem}
.drop-hint span{display:block;color:var(--muted);font-size:.8rem;margin-top:3px}
.module-access-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:13px;
  width:100%;
}
.module-access-card{
  min-height:138px;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:16px;
  border-radius:18px;
  border:1px solid rgba(99,162,255,.22);
  background:linear-gradient(180deg,rgba(17,31,53,.82),rgba(8,18,32,.94));
  color:var(--text);
  text-decoration:none;
  box-shadow:0 12px 28px rgba(0,0,0,.16);
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}
.module-access-card:hover{
  transform:translateY(-2px);
  border-color:rgba(99,162,255,.62);
  background:linear-gradient(180deg,rgba(35,75,135,.65),rgba(10,23,41,.96));
  filter:none;
}
.module-access-card .module-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:rgba(99,162,255,.13);
  border:1px solid rgba(99,162,255,.22);
}
.module-access-card strong{font-size:.98rem;line-height:1.18;color:#fff}
.module-access-card small{color:var(--muted);line-height:1.42;font-size:.82rem}
.refined-info-boxes .mini-card{min-height:0}
@media (max-width:1180px){
  .upload-command-row{grid-template-columns:1fr;align-items:stretch}
  .upload-refresh-block,.upload-file-block{justify-content:flex-start}
  .refined-upload-grid{grid-template-columns:1fr}
  .module-access-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  .upload-file-block{display:grid;grid-template-columns:1fr;gap:10px}
  .upload-file-block input[type="file"]{max-width:100%}
  .dropzone-intro{display:grid}
  .drop-hint{text-align:left;min-width:0}
  .module-access-grid{grid-template-columns:1fr}
  .module-access-card{min-height:0}
}


/* =========================================================
   FRONT V51 - Inspiración visual Omarsa Ecuador
   Alcance: solo front público. Mantiene holograma V31, J.O.R.V.A.N., rutas y lógica.
   Enfoque visual: operación integrada, trazabilidad, sustentabilidad, tarjetas blancas,
   azul profundo, aqua y verde operativo.
   ========================================================= */
:root{
  --omarsa-navy:#05233f;
  --omarsa-blue:#0877be;
  --omarsa-aqua:#18c9d2;
  --omarsa-green:#49b86f;
  --omarsa-soft:#eef8fb;
  --omarsa-ink:#0b1f33;
  --omarsa-line:rgba(8,119,190,.18);
}
body:has(.cc-omarsa-front){
  background:
    radial-gradient(circle at 88% 8%, rgba(24,201,210,.20), transparent 30%),
    radial-gradient(circle at 8% 22%, rgba(73,184,111,.14), transparent 34%),
    linear-gradient(180deg,#f6fbfd 0%,#eef8fb 46%,#ffffff 100%)!important;
  color:var(--omarsa-ink)!important;
}
.cc-omarsa-front{
  max-width:1260px!important;
  padding:26px 20px 42px!important;
  color:var(--omarsa-ink)!important;
}
.cc-omarsa-front::before{display:none!important}
.cc-omarsa-nav{
  position:sticky!important;
  top:12px!important;
  z-index:20!important;
  min-height:72px!important;
  padding:10px 12px!important;
  border:1px solid rgba(8,119,190,.16)!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.88)!important;
  box-shadow:0 20px 55px rgba(5,35,63,.10)!important;
  backdrop-filter:blur(14px)!important;
}
.cc-omarsa-front .cc-ibm-brand{
  color:var(--omarsa-navy)!important;
  border-right:0!important;
  min-height:52px!important;
  padding:0 10px!important;
}
.cc-omarsa-front .brand-badge{
  border-radius:16px!important;
  color:#fff!important;
  background:linear-gradient(135deg,var(--omarsa-blue),var(--omarsa-aqua) 58%,var(--omarsa-green))!important;
  box-shadow:0 12px 28px rgba(8,119,190,.24)!important;
}
.cc-omarsa-front .cc-ibm-brand strong{color:var(--omarsa-navy)!important}
.cc-omarsa-front .cc-ibm-navlinks{
  height:auto!important;
  border-left:1px solid rgba(8,119,190,.12)!important;
  padding-left:8px!important;
}
.cc-omarsa-front .cc-ibm-navlinks a{
  min-height:44px!important;
  border-radius:999px!important;
  color:#24435d!important;
  text-transform:none!important;
  letter-spacing:.01em!important;
  padding:0 16px!important;
}
.cc-omarsa-front .cc-ibm-navlinks a:hover{
  background:rgba(8,119,190,.09)!important;
  color:var(--omarsa-blue)!important;
}
.cc-omarsa-front .cc-ibm-login{
  border-radius:999px!important;
  border:1px solid rgba(5,35,63,.16)!important;
  background:var(--omarsa-navy)!important;
  color:#fff!important;
  box-shadow:0 12px 25px rgba(5,35,63,.18)!important;
}
.cc-omarsa-front .cc-ibm-login:hover{background:var(--omarsa-blue)!important;border-color:var(--omarsa-blue)!important}
.cc-omarsa-hero{
  grid-template-columns:minmax(0,.88fr) minmax(440px,1.12fr)!important;
  gap:24px!important;
  min-height:650px!important;
  margin-top:24px!important;
  border:1px solid var(--omarsa-line)!important;
  border-radius:34px!important;
  overflow:hidden!important;
  background:
    linear-gradient(120deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.88) 45%, rgba(236,250,252,.84) 100%)!important;
  box-shadow:0 32px 90px rgba(5,35,63,.14)!important;
}
.cc-omarsa-front .cc-ibm-copy{
  min-height:650px!important;
  padding:66px 42px!important;
  border-right:1px solid rgba(8,119,190,.14)!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.88),rgba(255,255,255,.66)),
    radial-gradient(circle at 8% 12%, rgba(24,201,210,.14), transparent 30%)!important;
}
.cc-omarsa-front .cc-ibm-copy .eyebrow{
  color:var(--omarsa-blue)!important;
  background:rgba(8,119,190,.08)!important;
  border:1px solid rgba(8,119,190,.14)!important;
  border-radius:999px!important;
  display:inline-flex!important;
  width:auto!important;
  padding:9px 14px!important;
  letter-spacing:.13em!important;
}
.cc-omarsa-front .cc-ibm-copy h1{
  color:var(--omarsa-navy)!important;
  font-weight:850!important;
  letter-spacing:-.055em!important;
  font-size:clamp(2.55rem,5.3vw,5.25rem)!important;
  line-height:.96!important;
  max-width:720px!important;
}
.cc-omarsa-front .cc-ibm-lead{
  color:#33546c!important;
  font-size:1.12rem!important;
  max-width:640px!important;
  line-height:1.72!important;
}
.cc-omarsa-front .cc-ibm-actions{gap:12px!important;margin:0 0 34px!important}
.cc-omarsa-front .cc-ibm-actions .btn{
  border-radius:999px!important;
  min-height:52px!important;
  color:var(--omarsa-navy)!important;
  background:#fff!important;
  border:1px solid rgba(8,119,190,.20)!important;
  box-shadow:0 12px 26px rgba(5,35,63,.08)!important;
}
.cc-omarsa-front .cc-ibm-actions .btn.primary{
  color:#fff!important;
  border-color:transparent!important;
  background:linear-gradient(135deg,var(--omarsa-blue),var(--omarsa-aqua))!important;
}
.cc-omarsa-front .cc-ibm-actions .btn:hover{transform:translateY(-2px)!important;background:var(--omarsa-navy)!important;color:#fff!important}
.cc-omarsa-front .cc-ibm-metrics{
  gap:14px!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
.cc-omarsa-front .cc-ibm-metrics article{
  min-height:158px!important;
  border:1px solid rgba(8,119,190,.16)!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.82)!important;
  box-shadow:0 18px 45px rgba(5,35,63,.08)!important;
}
.cc-omarsa-front .cc-ibm-metrics article::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;height:5px;
  background:linear-gradient(90deg,var(--omarsa-blue),var(--omarsa-aqua),var(--omarsa-green));
}
.cc-omarsa-front .cc-ibm-metrics span{color:var(--omarsa-aqua)!important;font-weight:900!important}
.cc-omarsa-front .cc-ibm-metrics strong{color:var(--omarsa-navy)!important}
.cc-omarsa-front .cc-ibm-metrics small{color:#46657a!important}
.cc-omarsa-front .cc-ibm-visual-wrap{
  min-height:650px!important;
  padding:26px!important;
  background:
    linear-gradient(180deg,rgba(5,35,63,.96),rgba(3,18,34,.98)),
    radial-gradient(circle at 62% 35%,rgba(24,201,210,.24),transparent 38%)!important;
}
.cc-omarsa-front .cc-ibm-visual-head{
  border:1px solid rgba(24,201,210,.28)!important;
  border-radius:18px!important;
  padding:14px 16px!important;
  margin-bottom:16px!important;
  background:rgba(255,255,255,.05)!important;
}
.cc-omarsa-front .cc-ibm-visual-head span{color:#7df5ff!important;text-transform:uppercase!important;letter-spacing:.12em!important}
.cc-omarsa-front .cc-ibm-visual-head strong{color:#f4ffff!important}
.cc-omarsa-front .cc-ibm-hologram.cc-v29-hologram{
  min-height:560px!important;
  border-radius:26px!important;
  border-color:rgba(24,201,210,.35)!important;
  box-shadow:inset 0 0 55px rgba(24,201,210,.12),0 24px 80px rgba(0,0,0,.30)!important;
}
.cc-omarsa-front .cc-ibm-hologram .cc-hex-panel{border-radius:18px!important}
.cc-omarsa-product-rail{
  border:1px solid rgba(8,119,190,.14)!important;
  border-radius:30px!important;
  margin:24px 0!important;
  overflow:hidden!important;
  background:#fff!important;
  box-shadow:0 28px 80px rgba(5,35,63,.10)!important;
}
.cc-omarsa-product-rail a{
  min-height:126px!important;
  background:linear-gradient(180deg,#fff,#f7fcfd)!important;
  border-right:1px solid rgba(8,119,190,.12)!important;
}
.cc-omarsa-product-rail a::before{
  content:"";
  position:absolute;
  left:18px;top:18px;
  width:8px;height:8px;border-radius:999px;
  background:linear-gradient(135deg,var(--omarsa-aqua),var(--omarsa-green));
  box-shadow:0 0 18px rgba(24,201,210,.7);
}
.cc-omarsa-product-rail a:hover{background:#eef8fb!important;transform:translateY(-2px)!important}
.cc-omarsa-product-rail span{color:var(--omarsa-blue)!important;margin-top:16px!important}
.cc-omarsa-product-rail strong{color:var(--omarsa-navy)!important}
.cc-omarsa-section,.cc-omarsa-contact{
  border:1px solid rgba(8,119,190,.14)!important;
  border-radius:34px!important;
  background:#fff!important;
  box-shadow:0 26px 78px rgba(5,35,63,.09)!important;
}
.cc-omarsa-front .cc-ibm-section-head{border-bottom:1px solid rgba(8,119,190,.14)!important}
.cc-omarsa-front .cc-ibm-section-head h2{
  color:var(--omarsa-navy)!important;
  font-weight:820!important;
  letter-spacing:-.05em!important;
}
.cc-omarsa-front .cc-ibm-section-head span{color:var(--omarsa-green)!important;text-transform:uppercase!important;letter-spacing:.13em!important;font-weight:900!important}
.cc-omarsa-front .cc-ibm-section-head p{color:#426178!important}
.cc-omarsa-front .cc-ibm-grid{gap:18px!important;border:0!important}
.cc-omarsa-front .cc-updated-card{
  border:1px solid rgba(8,119,190,.14)!important;
  border-radius:24px!important;
  background:linear-gradient(180deg,#ffffff,#f7fcfd)!important;
  box-shadow:0 18px 44px rgba(5,35,63,.07)!important;
}
.cc-omarsa-front .cc-updated-card:hover{background:#eef8fb!important;transform:translateY(-4px)!important}
.cc-omarsa-front .cc-updated-icon{
  width:52px!important;height:52px!important;border-radius:16px!important;
  color:#fff!important;
  background:linear-gradient(135deg,var(--omarsa-blue),var(--omarsa-aqua))!important;
}
.cc-omarsa-front .cc-updated-card h3{color:var(--omarsa-navy)!important}
.cc-omarsa-front .cc-updated-card p{color:#46657a!important}
.cc-omarsa-front .cc-updated-card div:last-child span{
  border-radius:999px!important;
  background:rgba(8,119,190,.08)!important;
  border-color:rgba(8,119,190,.12)!important;
  color:var(--omarsa-blue)!important;
}
.cc-omarsa-contact h2{color:var(--omarsa-navy)!important;font-weight:820!important}
.cc-omarsa-front .cc-form input,
.cc-omarsa-front .cc-form textarea,
.cc-omarsa-front .cc-form select{
  border-radius:16px!important;
  background:#f7fcfd!important;
  border:1px solid rgba(8,119,190,.20)!important;
  color:var(--omarsa-navy)!important;
}
.cc-omarsa-front .cc-form label span{color:#426178!important}
.cc-omarsa-front .cc-form input:focus,
.cc-omarsa-front .cc-form textarea:focus,
.cc-omarsa-front .cc-form select:focus{outline:3px solid rgba(24,201,210,.28)!important;border-color:var(--omarsa-aqua)!important}
.cc-omarsa-front .cc-form button.btn.primary{
  border-radius:999px!important;
  background:linear-gradient(135deg,var(--omarsa-blue),var(--omarsa-aqua))!important;
  border-color:transparent!important;
  color:#fff!important;
}
.cc-omarsa-footer{
  border-radius:28px!important;
  margin-top:24px!important;
  text-align:center!important;
  background:var(--omarsa-navy)!important;
  color:#d8f5f7!important;
}
.cc-omarsa-front .jarvis-auto-panel.jarvis-public-hero{
  border-radius:22px!important;
  border:1px solid rgba(24,201,210,.32)!important;
  background:rgba(5,35,63,.92)!important;
}
.cc-omarsa-front .jarvis-auto-btn{border-radius:999px!important;background:linear-gradient(135deg,var(--omarsa-blue),var(--omarsa-aqua))!important;border-color:transparent!important;color:#fff!important}
.cc-omarsa-front .jarvis-auto-btn.danger{background:#173651!important;border:1px solid rgba(255,255,255,.14)!important}
.cc-omarsa-front .jarvis-auto-orb{border-radius:50%!important;clip-path:none!important}
@media(max-width:1080px){
  .cc-omarsa-hero{grid-template-columns:1fr!important;min-height:auto!important}
  .cc-omarsa-front .cc-ibm-copy{min-height:auto!important;border-right:0!important;border-bottom:1px solid rgba(8,119,190,.14)!important}
  .cc-omarsa-front .cc-ibm-visual-wrap{min-height:auto!important}
  .cc-omarsa-product-rail{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:760px){
  .cc-omarsa-front{padding:12px!important}
  .cc-omarsa-nav{border-radius:24px!important;grid-template-columns:1fr auto!important}
  .cc-omarsa-front .cc-ibm-navlinks{grid-column:1/-1!important;overflow:auto!important;border-left:0!important;border-top:1px solid rgba(8,119,190,.12)!important;padding-left:0!important}
  .cc-omarsa-front .cc-ibm-copy{padding:38px 20px!important}
  .cc-omarsa-front .cc-ibm-copy h1{font-size:clamp(2.35rem,13vw,4.3rem)!important}
  .cc-omarsa-front .cc-ibm-metrics{grid-template-columns:1fr!important}
  .cc-omarsa-product-rail{grid-template-columns:1fr!important}
  .cc-omarsa-section,.cc-omarsa-contact{padding:38px 20px!important;border-radius:26px!important}
}

/* =========================================================
   HOTFIX V52 - Eliminar línea horizontal decorativa del Front Omarsa
   Alcance quirúrgico: solo front público Omarsa.
   Motivo: retirar franja visual horizontal que cruzaba el hero.
   No modifica holograma, J.O.R.V.A.N., audio, rutas, módulos ni lógica.
   ========================================================= */
body:has(.cc-omarsa-front)::before,
body:has(.cc-omarsa-front)::after,
.cc-omarsa-front::before,
.cc-omarsa-front::after,
.cc-omarsa-hero::before,
.cc-omarsa-hero::after,
.cc-omarsa-front .cc-ibm-copy::before,
.cc-omarsa-front .cc-ibm-copy::after,
.cc-omarsa-front .cc-ibm-visual-wrap::before,
.cc-omarsa-front .cc-ibm-visual-wrap::after,
.cc-omarsa-front .cc-ibm-metrics article::after{
  content:none!important;
  display:none!important;
  background:none!important;
  border:0!important;
  box-shadow:none!important;
}

/* Conserva explícitamente las capas internas del holograma para no afectar su dinámica visual. */
.cc-omarsa-front .cc-v29-hologram::before,
.cc-omarsa-front .cc-v29-hologram::after,
.cc-omarsa-front .cc-v30-neuro-canvas,
.cc-omarsa-front .cc-hex-panel{
  display:block!important;
}


/* =========================================================
   DASHBOARD V54 - Rediseño visual inspirado en Omarsa Ecuador
   Alcance: SOLO visual en /dashboard.
   Mantiene orden, IDs, rutas, JS, BD, holograma y J.O.R.V.A.N.
========================================================= */
body.cc-omarsa-dashboard{
  --dash-navy:#06213a;
  --dash-deep:#071728;
  --dash-blue:#0077b6;
  --dash-aqua:#22d3ee;
  --dash-green:#36c275;
  --dash-panel:rgba(9,31,53,.82);
  --dash-panel-soft:rgba(16,52,82,.62);
  --dash-line:rgba(119,198,222,.28);
  --dash-text:#eef8ff;
  --dash-muted:#b8d1e4;
  --dash-shadow:0 22px 60px rgba(0,26,44,.32);
  color:var(--dash-text);
  background:
    radial-gradient(circle at 6% 4%, rgba(34,211,238,.20), transparent 30%),
    radial-gradient(circle at 96% 14%, rgba(54,194,117,.14), transparent 34%),
    linear-gradient(180deg,#eaf7f7 0,#d9f2f2 78px,#071728 79px,#061321 100%);
}
body.cc-omarsa-dashboard::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background:
    linear-gradient(90deg,rgba(255,255,255,.11) 1px,transparent 1px),
    linear-gradient(180deg,rgba(255,255,255,.075) 1px,transparent 1px);
  background-size:96px 96px;
  mask-image:linear-gradient(180deg,rgba(0,0,0,.22),rgba(0,0,0,.06) 42%,transparent 78%);
}

.cc-omarsa-dashboard .hero,
.cc-omarsa-dashboard .container{
  max-width:1480px;
  margin-left:auto;
  margin-right:auto;
}
.cc-omarsa-dashboard .hero{
  margin-top:18px;
  width:calc(100% - 36px);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,330px);
  gap:22px;
  padding:24px;
  border:1px solid rgba(119,198,222,.34);
  border-radius:30px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.025)),
    rgba(6,27,47,.88);
  box-shadow:var(--dash-shadow);
  overflow:hidden;
  position:relative;
}
.cc-omarsa-dashboard .hero::after{
  content:"";
  position:absolute;
  inset:auto 24px 0 24px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--dash-blue),var(--dash-aqua),var(--dash-green));
  opacity:.82;
}
.cc-omarsa-dashboard .eyebrow{
  color:#6ff4ff;
  letter-spacing:.18em;
  font-weight:900;
}
.cc-omarsa-dashboard .hero h1{
  font-size:clamp(2rem,3.3vw,4rem);
  line-height:.95;
  letter-spacing:-.045em;
  max-width:780px;
}
.cc-omarsa-dashboard .hero p{
  color:var(--dash-muted);
  font-size:1rem;
  max-width:880px;
}
.cc-omarsa-dashboard .hero-badge{
  padding:14px;
  border:1px solid rgba(119,198,222,.28);
  border-radius:24px;
  background:rgba(2,17,31,.62);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055);
}
.cc-omarsa-dashboard .hero-badge span{
  border-color:rgba(119,198,222,.24);
  background:rgba(255,255,255,.045);
  color:#dff8ff;
  border-radius:16px;
}
.cc-omarsa-dashboard .hero-badge span:first-child{
  color:#fff;
  font-weight:800;
  overflow-wrap:anywhere;
}

.cc-omarsa-dashboard .hero-visual-panel{
  margin-top:20px;
  padding:16px;
  border-radius:26px;
  border:1px solid rgba(119,198,222,.28);
  background:
    radial-gradient(circle at 18% 0,rgba(34,211,238,.16),transparent 36%),
    linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.018));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 18px 42px rgba(0,0,0,.20);
}
.cc-omarsa-dashboard .hero-visual-title{font-weight:900;color:#fff}
.cc-omarsa-dashboard .hero-visual-subtitle{color:#bfe6ef}
.cc-omarsa-dashboard .status-pill{
  border-color:rgba(34,211,238,.32);
  background:rgba(2,17,31,.72);
}
.cc-omarsa-dashboard .status-pill::before{
  background:linear-gradient(180deg,var(--dash-aqua),var(--dash-green));
}
.cc-omarsa-dashboard .jarvis-stage{
  min-height:335px;
  border-radius:24px;
  border-color:rgba(34,211,238,.24);
  background:
    radial-gradient(circle at 50% 50%,rgba(34,211,238,.16),transparent 36%),
    linear-gradient(180deg,rgba(3,18,32,.94),rgba(3,14,25,.98));
}
.cc-omarsa-dashboard #jarvis-canvas{height:335px}
.cc-omarsa-dashboard .jarvis-overlay{
  border-color:rgba(34,211,238,.24);
  background:rgba(2,17,31,.66);
}
.cc-omarsa-dashboard .overlay-kicker{color:#72f7ff}

.cc-omarsa-dashboard .container{
  padding:22px 22px 46px;
}
.cc-omarsa-dashboard .panel,
.cc-omarsa-dashboard .card,
.cc-omarsa-dashboard .kpi,
.cc-omarsa-dashboard .mini-card{
  border:1px solid var(--dash-line);
  border-radius:26px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.075),rgba(255,255,255,.018)),
    rgba(7,25,43,.84);
  box-shadow:var(--dash-shadow);
}
.cc-omarsa-dashboard .panel{padding:20px;margin-bottom:20px}
.cc-omarsa-dashboard .panel-head,
.cc-omarsa-dashboard .card-head{
  align-items:center;
  padding-bottom:12px;
  border-bottom:1px solid rgba(119,198,222,.16);
}
.cc-omarsa-dashboard .panel-head h2,
.cc-omarsa-dashboard .card-head h2{
  font-weight:900;
  letter-spacing:-.02em;
}
.cc-omarsa-dashboard .panel-head p,
.cc-omarsa-dashboard .muted,
.cc-omarsa-dashboard .mini-card ul,
.cc-omarsa-dashboard .notes-list{
  color:var(--dash-muted);
}
.cc-omarsa-dashboard .mini-label{
  color:#8ff4ff;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.73rem;
}

.cc-omarsa-dashboard .btn{
  border-color:rgba(119,198,222,.28);
  background:rgba(4,22,39,.72);
  color:#f4fdff;
  border-radius:999px;
  font-weight:800;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045);
}
.cc-omarsa-dashboard .btn.primary{
  background:linear-gradient(135deg,var(--dash-blue),var(--dash-aqua));
  border-color:transparent;
  color:#fff;
}
.cc-omarsa-dashboard .btn.ghost{
  background:rgba(255,255,255,.035);
}
.cc-omarsa-dashboard .btn:hover{
  filter:none;
  transform:translateY(-1px);
  border-color:rgba(34,211,238,.55);
}

/* Cargar archivo financiero y módulos */
.cc-omarsa-dashboard .dashboard-upload-refined{
  position:relative;
  overflow:hidden;
}
.cc-omarsa-dashboard .dashboard-upload-refined::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:5px;
  background:linear-gradient(90deg,var(--dash-blue),var(--dash-aqua),var(--dash-green));
  opacity:.72;
}
.cc-omarsa-dashboard .upload-command-row{
  grid-template-columns:minmax(280px,1fr) auto minmax(360px,auto);
  gap:20px;
  align-items:center;
}
.cc-omarsa-dashboard .upload-title-block h2{font-size:1.2rem;font-weight:900}
.cc-omarsa-dashboard .upload-file-block input[type="file"]::file-selector-button{
  border-radius:999px;
  border-color:rgba(34,211,238,.32);
  background:rgba(255,255,255,.07);
  color:#fff;
}
.cc-omarsa-dashboard .refined-upload-grid{
  grid-template-columns:minmax(0,2fr) minmax(310px,.7fr);
  gap:18px;
}
.cc-omarsa-dashboard .module-dropzone{
  min-height:390px;
  padding:22px;
  border:1px solid rgba(34,211,238,.26);
  background:
    radial-gradient(circle at 8% 0,rgba(34,211,238,.14),transparent 32%),
    radial-gradient(circle at 96% 18%,rgba(54,194,117,.10),transparent 32%),
    rgba(5,22,39,.62);
}
.cc-omarsa-dashboard .dropzone.drag{border-color:rgba(54,194,117,.78);background:rgba(21,78,64,.22)}
.cc-omarsa-dashboard .dropzone-intro{
  border-bottom-color:rgba(119,198,222,.18);
}
.cc-omarsa-dashboard .dropzone-intro h3{font-size:1.24rem;font-weight:900}
.cc-omarsa-dashboard .drop-hint{
  border-color:rgba(54,194,117,.28);
  background:rgba(54,194,117,.08);
}
.cc-omarsa-dashboard .module-access-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.cc-omarsa-dashboard .module-access-card{
  min-height:136px;
  border-radius:22px;
  border-color:rgba(119,198,222,.24);
  background:
    linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.018)),
    rgba(6,29,51,.86);
  box-shadow:0 16px 35px rgba(0,15,26,.20);
}
.cc-omarsa-dashboard .module-access-card::before{
  content:"";
  width:38px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--dash-aqua),var(--dash-green));
  opacity:.88;
}
.cc-omarsa-dashboard .module-access-card:hover{
  transform:translateY(-3px);
  border-color:rgba(34,211,238,.72);
  background:linear-gradient(180deg,rgba(0,119,182,.28),rgba(5,25,44,.94));
}
.cc-omarsa-dashboard .module-access-card .module-icon{
  border-radius:16px;
  background:rgba(34,211,238,.11);
  border-color:rgba(34,211,238,.25);
}
.cc-omarsa-dashboard .module-access-card small{color:#c1d7e8}
.cc-omarsa-dashboard .refined-info-boxes{
  gap:18px;
}
.cc-omarsa-dashboard .refined-info-boxes .mini-card{
  background:rgba(5,22,39,.72);
}

/* Formularios, filtros y reportes en el mismo orden, con más aire visual */
.cc-omarsa-dashboard .forms-panel,
.cc-omarsa-dashboard .filters-panel,
.cc-omarsa-dashboard .business-panel{
  position:relative;
}
.cc-omarsa-dashboard .tabs{
  padding:8px;
  border:1px solid rgba(119,198,222,.18);
  border-radius:24px;
  background:rgba(2,17,31,.42);
}
.cc-omarsa-dashboard .tab{
  border-color:rgba(119,198,222,.22);
  background:rgba(255,255,255,.045);
  color:#eaf8ff;
  border-radius:999px;
}
.cc-omarsa-dashboard .tab.active{
  background:linear-gradient(135deg,var(--dash-blue),var(--dash-aqua));
}
.cc-omarsa-dashboard .form-card{
  border-radius:24px;
  border-color:rgba(119,198,222,.20);
  background:rgba(3,19,34,.56);
}
.cc-omarsa-dashboard .cc-form input,
.cc-omarsa-dashboard .cc-form select,
.cc-omarsa-dashboard .cc-form textarea,
.cc-omarsa-dashboard .filter-grid input,
.cc-omarsa-dashboard .filter-grid select,
.cc-omarsa-dashboard .period-close-grid input,
.cc-omarsa-dashboard .period-close-scope select{
  border-color:rgba(119,198,222,.26);
  background:rgba(2,17,31,.68);
  border-radius:16px;
  color:#f5fdff;
}
.cc-omarsa-dashboard .cc-form label span,
.cc-omarsa-dashboard .filter-grid span,
.cc-omarsa-dashboard .period-close-grid label span,
.cc-omarsa-dashboard .period-close-scope label span{
  color:#b9e9f5;
  font-weight:850;
}
.cc-omarsa-dashboard .filter-grid{
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:14px;
}
.cc-omarsa-dashboard .actions{gap:10px}

/* Cierres de periodo */
.cc-omarsa-dashboard .period-closure-panel{
  border-radius:26px;
  border-color:rgba(119,198,222,.26);
  background:
    radial-gradient(circle at top left,rgba(34,211,238,.12),transparent 34%),
    rgba(7,25,43,.78);
}
.cc-omarsa-dashboard .period-close-scope{
  grid-template-columns:minmax(220px,300px) 1fr;
  align-items:stretch;
  margin:14px 0;
}
.cc-omarsa-dashboard .closure-scope-help{
  display:flex;
  align-items:center;
  border-color:rgba(54,194,117,.25);
  background:rgba(54,194,117,.075);
  color:#d6f7e6;
  border-radius:18px;
}
.cc-omarsa-dashboard .period-closure-visual{
  gap:14px;
}
.cc-omarsa-dashboard .closure-step-card{
  border-radius:22px;
  border-color:rgba(119,198,222,.24);
  background:
    linear-gradient(135deg,rgba(34,211,238,.13),rgba(54,194,117,.07)),
    rgba(5,22,39,.68);
}
.cc-omarsa-dashboard .closure-step-chip{
  border-color:rgba(34,211,238,.28);
  background:rgba(34,211,238,.07);
}
.cc-omarsa-dashboard .period-close-grid{
  grid-template-columns:minmax(180px,1fr) auto minmax(150px,.8fr) auto;
  gap:14px;
}

/* KPIs, gráficos, tablas */
.cc-omarsa-dashboard .kpis{
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:16px;
}
.cc-omarsa-dashboard .kpi{
  min-height:128px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  position:relative;
  overflow:hidden;
}
.cc-omarsa-dashboard .kpi::after{
  content:"";
  position:absolute;
  right:-34px;
  top:-34px;
  width:98px;
  height:98px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(34,211,238,.16),transparent 68%);
}
.cc-omarsa-dashboard .kpi-label{color:#b9e9f5;font-weight:800}
.cc-omarsa-dashboard .kpi-value{font-size:1.68rem;color:#fff}
.cc-omarsa-dashboard .card{padding:20px}
.cc-omarsa-dashboard .chart,
.cc-omarsa-dashboard .table-wrap,
.cc-omarsa-dashboard .bars,
.cc-omarsa-dashboard .health-box,
.cc-omarsa-dashboard .stats-inline,
.cc-omarsa-dashboard .break-even-summary{
  padding:10px;
  border:1px solid rgba(119,198,222,.12);
  border-radius:18px;
  background:rgba(2,17,31,.25);
}
.cc-omarsa-dashboard th{
  background:rgba(5,22,39,.96);
  color:#c7eff8;
}
.cc-omarsa-dashboard td,
.cc-omarsa-dashboard th{
  border-bottom-color:rgba(119,198,222,.12);
}
.cc-omarsa-dashboard .pill{
  border-color:rgba(119,198,222,.22);
  background:rgba(2,17,31,.56);
}
.cc-omarsa-dashboard .bar-track{
  border-color:rgba(119,198,222,.18);
  background:rgba(2,17,31,.60);
}
.cc-omarsa-dashboard .bar-fill{
  background:linear-gradient(90deg,var(--dash-blue),var(--dash-aqua),var(--dash-green));
}
.cc-omarsa-dashboard .empty{
  color:var(--dash-muted);
}

/* J.O.R.V.A.N. conservado, solo armonizado visualmente cuando se inyecta en dashboard */
.cc-omarsa-dashboard .jarvis-auto-panel{
  border-color:rgba(34,211,238,.24)!important;
  background:rgba(4,22,39,.88)!important;
  box-shadow:0 18px 42px rgba(0,20,34,.32)!important;
}
.cc-omarsa-dashboard .jarvis-auto-btn{
  border-radius:999px!important;
}
.cc-omarsa-dashboard .jarvis-auto-btn.primary{
  background:linear-gradient(135deg,var(--dash-blue),var(--dash-aqua))!important;
  border-color:transparent!important;
}

@media (max-width:1180px){
  .cc-omarsa-dashboard .hero{grid-template-columns:1fr;width:calc(100% - 24px);padding:20px}
  .cc-omarsa-dashboard .hero-badge{order:-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .cc-omarsa-dashboard .upload-command-row,
  .cc-omarsa-dashboard .refined-upload-grid{grid-template-columns:1fr}
  .cc-omarsa-dashboard .module-access-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cc-omarsa-dashboard .filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:760px){
  .cc-omarsa-dashboard .hero{margin-top:10px;border-radius:24px}
  .cc-omarsa-dashboard .hero-badge{grid-template-columns:1fr}
  .cc-omarsa-dashboard .container{padding:14px 12px 34px}
  .cc-omarsa-dashboard .panel,.cc-omarsa-dashboard .card{padding:15px;border-radius:22px}
  .cc-omarsa-dashboard .panel-head,.cc-omarsa-dashboard .card-head{display:grid;align-items:start}
  .cc-omarsa-dashboard .module-access-grid,
  .cc-omarsa-dashboard .filter-grid,
  .cc-omarsa-dashboard .period-close-scope,
  .cc-omarsa-dashboard .period-close-grid{grid-template-columns:1fr}
  .cc-omarsa-dashboard .hero h1{font-size:2.1rem}
  .cc-omarsa-dashboard .jarvis-stage{min-height:280px}
  .cc-omarsa-dashboard #jarvis-canvas{height:280px}
}

/* Dashboard V55: navegación por secciones para reducir ruido visual sin alterar IDs, cálculos ni procesos */
.cc-omarsa-dashboard .dashboard-shell{
  display:grid;
  grid-template-columns:minmax(250px,300px) minmax(0,1fr);
  gap:20px;
  align-items:start;
}
.cc-omarsa-dashboard .dashboard-nav-shell{
  position:sticky;
  top:18px;
  z-index:12;
}
.cc-omarsa-dashboard .dashboard-nav-card{
  padding:16px;
  border:1px solid rgba(119,198,222,.28);
  border-radius:28px;
  background:
    radial-gradient(circle at 20% 0,rgba(34,211,238,.13),transparent 34%),
    linear-gradient(135deg,rgba(255,255,255,.075),rgba(255,255,255,.018)),
    rgba(7,25,43,.88);
  box-shadow:var(--dash-shadow);
}
.cc-omarsa-dashboard .dashboard-nav-kicker{
  color:#8ff4ff;
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:950;
  margin-bottom:8px;
}
.cc-omarsa-dashboard .dashboard-nav-card h2{
  margin:0 0 6px;
  font-size:1.04rem;
  letter-spacing:-.02em;
}
.cc-omarsa-dashboard .dashboard-nav-card p{
  margin:0 0 14px;
  color:var(--dash-muted);
  font-size:.84rem;
  line-height:1.45;
}
.cc-omarsa-dashboard .dashboard-side-nav{
  display:grid;
  gap:9px;
}
.cc-omarsa-dashboard .dashboard-nav-btn{
  appearance:none;
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  grid-template-areas:
    "num title"
    "num copy";
  gap:2px 10px;
  width:100%;
  min-height:72px;
  padding:12px;
  border-radius:20px;
  border:1px solid rgba(119,198,222,.20);
  background:rgba(2,17,31,.48);
  color:#effcff;
  text-align:left;
  cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}
.cc-omarsa-dashboard .dashboard-nav-btn span{
  grid-area:num;
  display:grid;
  place-items:center;
  align-self:stretch;
  border-radius:15px;
  color:#7ef8ff;
  background:rgba(34,211,238,.08);
  border:1px solid rgba(34,211,238,.16);
  font-weight:950;
  font-size:.76rem;
}
.cc-omarsa-dashboard .dashboard-nav-btn strong{
  grid-area:title;
  font-size:.9rem;
  line-height:1.15;
}
.cc-omarsa-dashboard .dashboard-nav-btn small{
  grid-area:copy;
  color:#b9d7e2;
  line-height:1.3;
  font-size:.74rem;
}
.cc-omarsa-dashboard .dashboard-nav-btn:hover,
.cc-omarsa-dashboard .dashboard-nav-btn:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(34,211,238,.56);
  outline:none;
}
.cc-omarsa-dashboard .dashboard-nav-btn.active{
  border-color:rgba(54,194,117,.62);
  background:
    linear-gradient(135deg,rgba(0,119,182,.34),rgba(54,194,117,.16)),
    rgba(4,22,39,.82);
}
.cc-omarsa-dashboard .dashboard-nav-btn.active span{
  color:#03121c;
  background:linear-gradient(135deg,var(--dash-aqua),var(--dash-green));
  border-color:transparent;
}
.cc-omarsa-dashboard .dashboard-view-stack{
  min-width:0;
}
.cc-omarsa-dashboard .dashboard-view{
  display:none;
  animation:ccDashboardFade .22s ease both;
}
.cc-omarsa-dashboard .dashboard-view.active{
  display:block;
}
.cc-omarsa-dashboard .dashboard-view[hidden]{
  display:none!important;
}
@keyframes ccDashboardFade{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:translateY(0)}
}
.cc-omarsa-dashboard .dashboard-view > .panel:last-child,
.cc-omarsa-dashboard .dashboard-view > .grid:last-child,
.cc-omarsa-dashboard .dashboard-view > .card:last-child{
  margin-bottom:0;
}
@media (max-width:1180px){
  .cc-omarsa-dashboard .dashboard-shell{grid-template-columns:1fr}
  .cc-omarsa-dashboard .dashboard-nav-shell{position:static}
  .cc-omarsa-dashboard .dashboard-side-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .cc-omarsa-dashboard .dashboard-side-nav{grid-template-columns:1fr}
  .cc-omarsa-dashboard .dashboard-nav-btn{min-height:66px}
}


/* =========================================================
   DASHBOARD V56 - CORRECCIÓN QUIRÚRGICA DE DISTRIBUCIÓN
   Objetivo: eliminar angostamiento visual de las secciones,
   usar todo el ancho disponible y mantener intactos IDs, rutas,
   APIs, cálculos y JavaScript operativo estabilizado.
========================================================= */
.cc-omarsa-dashboard .dashboard-shell{
  width:calc(100% - 36px)!important;
  max-width:1480px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:18px!important;
  align-items:start!important;
}
.cc-omarsa-dashboard .dashboard-nav-shell{
  position:static!important;
  top:auto!important;
  width:100%!important;
  max-width:none!important;
  z-index:5!important;
}
.cc-omarsa-dashboard .dashboard-nav-card{
  width:100%!important;
  max-width:none!important;
  padding:16px!important;
}
.cc-omarsa-dashboard .dashboard-side-nav{
  display:grid!important;
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
  gap:10px!important;
  align-items:stretch!important;
}
.cc-omarsa-dashboard .dashboard-nav-btn{
  min-height:104px!important;
  height:100%!important;
  grid-template-columns:1fr!important;
  grid-template-areas:"num" "title" "copy"!important;
  gap:8px!important;
  padding:12px!important;
  align-content:start!important;
}
.cc-omarsa-dashboard .dashboard-nav-btn span{
  width:34px!important;
  min-height:30px!important;
  align-self:start!important;
}
.cc-omarsa-dashboard .dashboard-nav-btn strong{
  font-size:.84rem!important;
  line-height:1.18!important;
}
.cc-omarsa-dashboard .dashboard-nav-btn small{
  font-size:.69rem!important;
  line-height:1.25!important;
}
.cc-omarsa-dashboard .dashboard-view-stack{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}
.cc-omarsa-dashboard .dashboard-view.active{
  display:block!important;
  width:100%!important;
  max-width:none!important;
}
.cc-omarsa-dashboard .dashboard-view > .panel,
.cc-omarsa-dashboard .dashboard-view > .grid,
.cc-omarsa-dashboard .dashboard-view > .card{
  width:100%!important;
  max-width:none!important;
}

/* Carga y módulos: evita montajes y aprovecha el cuadrante completo. */
.cc-omarsa-dashboard .dashboard-upload-refined{
  overflow:visible!important;
}
.cc-omarsa-dashboard .upload-command-row{
  display:grid!important;
  grid-template-columns:minmax(260px,1fr) auto minmax(320px,auto)!important;
  gap:18px!important;
  align-items:center!important;
}
.cc-omarsa-dashboard .refined-upload-grid{
  display:grid!important;
  grid-template-columns:minmax(0,2fr) minmax(300px,.72fr)!important;
  gap:18px!important;
  align-items:stretch!important;
}
.cc-omarsa-dashboard .module-dropzone{
  min-height:0!important;
  height:auto!important;
  padding:20px!important;
}
.cc-omarsa-dashboard .dropzone-intro{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(180px,auto)!important;
  gap:16px!important;
  align-items:start!important;
  margin-bottom:16px!important;
  padding-bottom:16px!important;
}
.cc-omarsa-dashboard .module-access-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:14px!important;
}
.cc-omarsa-dashboard .module-access-card{
  min-width:0!important;
  overflow:hidden!important;
}
.cc-omarsa-dashboard .refined-info-boxes{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:14px!important;
  min-width:0!important;
}
.cc-omarsa-dashboard .refined-info-boxes .mini-card{
  min-height:0!important;
  overflow:visible!important;
}
.cc-omarsa-dashboard .refined-info-boxes ul{
  margin:8px 0 0!important;
  padding-left:18px!important;
  line-height:1.48!important;
}

/* Tablas, formularios y gráficos: fuerzan ancho completo dentro de cada pestaña. */
.cc-omarsa-dashboard .form-grid,
.cc-omarsa-dashboard .kpi-grid,
.cc-omarsa-dashboard .charts-grid,
.cc-omarsa-dashboard .tables-grid,
.cc-omarsa-dashboard .report-grid,
.cc-omarsa-dashboard .two,
.cc-omarsa-dashboard .three{
  width:100%!important;
  max-width:none!important;
}
.cc-omarsa-dashboard table{
  min-width:100%!important;
}
.cc-omarsa-dashboard .table-wrap,
.cc-omarsa-dashboard .scroll-table{
  width:100%!important;
  max-width:100%!important;
  overflow:auto!important;
}

/* Compatibilidad para tarjetas de cliente/partición si existen en el HTML vigente del hosting. */
.cc-omarsa-dashboard .client-partition-card,
.cc-omarsa-dashboard .partition-card,
.cc-omarsa-dashboard [class*="partition"],
.cc-omarsa-dashboard [class*="cliente"]{
  max-width:100%!important;
}

@media (max-width:1280px){
  .cc-omarsa-dashboard .dashboard-side-nav{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .cc-omarsa-dashboard .dashboard-nav-btn{min-height:94px!important}
  .cc-omarsa-dashboard .refined-upload-grid{grid-template-columns:1fr!important}
}
@media (max-width:920px){
  .cc-omarsa-dashboard .dashboard-shell{width:calc(100% - 24px)!important;padding-left:0!important;padding-right:0!important}
  .cc-omarsa-dashboard .dashboard-side-nav{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .cc-omarsa-dashboard .upload-command-row{grid-template-columns:1fr!important}
  .cc-omarsa-dashboard .upload-refresh-block,
  .cc-omarsa-dashboard .upload-file-block{justify-self:stretch!important}
  .cc-omarsa-dashboard .upload-file-block .btn,
  .cc-omarsa-dashboard .upload-refresh-block .btn{width:100%!important;text-align:center!important;justify-content:center!important}
  .cc-omarsa-dashboard .dropzone-intro{grid-template-columns:1fr!important}
  .cc-omarsa-dashboard .module-access-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (max-width:620px){
  .cc-omarsa-dashboard .dashboard-side-nav,
  .cc-omarsa-dashboard .module-access-grid{grid-template-columns:1fr!important}
}


/* =========================================================
   FRONT RESPONSIVE V63 - Adaptación fluida para pantallas grandes
   Alcance quirúrgico: SOLO front público CuentasControl / Omarsa.
   No modifica HTML, rutas, JS, holograma, audio, J.O.R.V.A.N. ni procesos.
   Motivo: evitar que el front quede fijo/reducido en monitores grandes.
   ========================================================= */
body:has(.cc-omarsa-front){
  overflow-x:hidden!important;
}
.cc-omarsa-front{
  width:min(calc(100% - clamp(24px,4.4vw,112px)), 1840px)!important;
  max-width:1840px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding:clamp(14px,1.8vw,30px) 0 clamp(34px,3vw,56px)!important;
}
.cc-omarsa-front .cc-omarsa-nav,
.cc-omarsa-front .cc-omarsa-hero,
.cc-omarsa-front .cc-omarsa-product-rail,
.cc-omarsa-front .cc-omarsa-section,
.cc-omarsa-front .cc-omarsa-contact,
.cc-omarsa-front .cc-omarsa-footer,
.cc-omarsa-front .jarvis-auto-panel.jarvis-public-hero{
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
}
.cc-omarsa-front .cc-omarsa-nav{
  padding:10px clamp(12px,1.25vw,24px)!important;
}
.cc-omarsa-front .cc-omarsa-hero{
  grid-template-columns:minmax(430px,.84fr) minmax(560px,1.16fr)!important;
  gap:clamp(22px,2.2vw,42px)!important;
  min-height:clamp(650px,50vw,820px)!important;
}
.cc-omarsa-front .cc-ibm-copy{
  min-height:inherit!important;
  padding:clamp(48px,4.6vw,86px) clamp(34px,3.4vw,70px)!important;
}
.cc-omarsa-front .cc-ibm-copy h1{
  max-width:min(760px,100%)!important;
  font-size:clamp(3.15rem,5.1vw,6.4rem)!important;
}
.cc-omarsa-front .cc-ibm-lead{
  max-width:min(720px,100%)!important;
}
.cc-omarsa-front .cc-ibm-visual-wrap{
  min-height:inherit!important;
  padding:clamp(22px,2.1vw,42px)!important;
}
.cc-omarsa-front .cc-ibm-hologram.cc-v29-hologram{
  min-height:clamp(560px,42vw,720px)!important;
}
.cc-omarsa-front .cc-ibm-metrics{
  grid-template-columns:repeat(3,minmax(180px,1fr))!important;
}
.cc-omarsa-front .cc-omarsa-product-rail{
  grid-template-columns:repeat(7,minmax(120px,1fr))!important;
}
.cc-omarsa-front .cc-omarsa-section,
.cc-omarsa-front .cc-omarsa-contact{
  padding:clamp(42px,4.2vw,78px) clamp(28px,3.4vw,68px)!important;
}
.cc-omarsa-front .cc-ibm-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
@media (min-width:1800px){
  .cc-omarsa-front{
    width:min(calc(100% - 128px), 1960px)!important;
    max-width:1960px!important;
  }
  .cc-omarsa-front .cc-omarsa-hero{
    grid-template-columns:minmax(520px,.8fr) minmax(760px,1.2fr)!important;
  }
  .cc-omarsa-front .cc-ibm-hologram.cc-v29-hologram{
    min-height:760px!important;
  }
}
@media (max-width:1320px){
  .cc-omarsa-front{
    width:min(calc(100% - 32px), 1260px)!important;
    max-width:1260px!important;
    padding:18px 0 42px!important;
  }
  .cc-omarsa-front .cc-omarsa-hero{
    grid-template-columns:minmax(0,.88fr) minmax(440px,1.12fr)!important;
    min-height:650px!important;
  }
  .cc-omarsa-front .cc-ibm-copy h1{
    font-size:clamp(2.55rem,5.3vw,5.25rem)!important;
  }
  .cc-omarsa-front .cc-ibm-hologram.cc-v29-hologram{
    min-height:560px!important;
  }
}
@media (max-width:1080px){
  .cc-omarsa-front{
    width:calc(100% - 24px)!important;
    max-width:none!important;
    padding:12px 0 34px!important;
  }
  .cc-omarsa-front .cc-omarsa-hero{
    grid-template-columns:1fr!important;
    min-height:auto!important;
  }
  .cc-omarsa-front .cc-ibm-copy,
  .cc-omarsa-front .cc-ibm-visual-wrap{
    min-height:auto!important;
  }
  .cc-omarsa-front .cc-omarsa-product-rail{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .cc-omarsa-front .cc-ibm-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media (max-width:760px){
  .cc-omarsa-front{
    width:calc(100% - 16px)!important;
  }
  .cc-omarsa-front .cc-omarsa-nav{
    padding:10px!important;
  }
  .cc-omarsa-front .cc-ibm-copy{
    padding:38px 20px!important;
  }
  .cc-omarsa-front .cc-ibm-visual-wrap{
    padding:18px!important;
  }
  .cc-omarsa-front .cc-ibm-hologram.cc-v29-hologram{
    min-height:420px!important;
  }
  .cc-omarsa-front .cc-ibm-metrics,
  .cc-omarsa-front .cc-omarsa-product-rail,
  .cc-omarsa-front .cc-ibm-grid{
    grid-template-columns:1fr!important;
  }
}
