
:root{
  /* MoradaUno — paleta MORADO (interno / asesores) */
  --brand-50:#F9F5FA; --brand-100:#F7EBF9; --brand-200:#E1AFE9;
  --brand-300:#CE94D1; --brand-400:#C360D2; --brand-500:#B14EB5;
  --brand-600:#832694; --brand-700:#772583; --brand-800:#671E75;
  --brand-900:#4A1655; --brand-950:#2E0E35;
  --bg-brand:#F9F5FA; --bg-brand-solid:#832694; --bg-brand-hover:#4A1655;
  --n50:#FAFAFA; --n100:#F2F2F7; --n200:#CCCCCC; --n300:#BFBFBF;
  --n400:#949494; --n500:#808080; --n600:#666666; --n800:#433E47; --n900:#171717;
  --text-primary:#171717; --text-secondary:#433E47; --text-tertiary:#808080;
  --bg:#FFFFFF; --bg2:#FAFAFA; --bg3:#F2F2F7;
  --green-50:#F5FAF5; --green-200:#CDEECD; --green-800:#1E811E;
  --red-50:#FEF2F2; --red-200:#FECACA; --red-600:#DC2626;
  --amber-50:#FFFBEB; --amber-200:#FDE68A; --amber-600:#D97706;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;
  --s6:24px;--s8:32px;--s10:40px;--s12:48px;--s16:64px;
  --rxs:4px;--rsm:6px;--rmd:8px;--rlg:10px;--rxl:12px;--r2xl:16px;--rfull:9999px;
  --sh-xs:0 1px 2px rgba(16,24,40,.05);
  --sh-sm:0 1px 3px rgba(16,24,40,.10);
  --sh-md:0 4px 8px rgba(16,24,40,.10);
  --sh-lg:0 12px 16px rgba(16,24,40,.10);
  --f:'Figtree',-apple-system,sans-serif;
}
*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--bg2);
  color:var(--text-primary);
  font-family:var(--f);
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:1180px;margin:0 auto;padding:28px 20px 80px;position:relative;}

/* Stamp / signature element */
.stamp{
  position:fixed;
  top:26px;right:-64px;
  transform:rotate(38deg);
  background:transparent;
  border:3px solid var(--amber-600);
  color:var(--amber-600);
  font-family:var(--f);
  font-weight:700;
  font-size:12px;
  letter-spacing:2px;
  padding:6px 70px;
  z-index:50;
  opacity:0.9;
  pointer-events:none;
  text-transform:uppercase;
}
@media(max-width:640px){.stamp{font-size:9px;padding:4px 48px;top:16px;right:-58px;}}

header{
  display:flex;justify-content:space-between;align-items:flex-end;
  margin-bottom:34px;padding-bottom:20px;border-bottom:1px solid var(--n200);
  flex-wrap:wrap;gap:12px;
}
.eyebrow{
  font-family:var(--f);font-size:12px;font-weight:600;letter-spacing:2px;
  color:var(--brand-600);text-transform:uppercase;margin-bottom:8px;
}
h1{
  font-family:var(--f);font-weight:700;font-size:2.25rem;margin:0;
  letter-spacing:-0.02em;color:var(--text-primary);
}
.subhead{color:var(--text-tertiary);font-size:14px;margin-top:6px;max-width:520px;line-height:1.5;}
.badge-scope{
  font-family:var(--f);font-size:11px;font-weight:500;color:var(--text-secondary);
  background:var(--bg3);border:1px solid var(--n200);padding:10px 14px;border-radius:var(--rmd);
  max-width:280px;line-height:1.5;
}

/* Slack-like command panel */
.slack-panel{
  background:var(--bg);border:1px solid var(--n200);border-radius:var(--r2xl);
  padding:20px;margin-bottom:24px;box-shadow:var(--sh-sm);
}
.slack-header{display:flex;align-items:center;gap:8px;margin-bottom:14px;color:var(--text-tertiary);font-size:13px;font-family:var(--f);font-weight:500;}
.slack-dot{width:8px;height:8px;border-radius:50%;background:var(--green-800);}
.cmd-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.cmd-tag{
  font-family:var(--f);background:var(--bg-brand-solid);color:#fff;
  padding:8px 12px;border-radius:var(--rmd);font-size:13px;font-weight:600;white-space:nowrap;
}
input#searchInput{
  flex:1;min-width:180px;background:var(--bg);border:1px solid var(--n200);color:var(--text-primary);
  padding:10px 14px;border-radius:var(--rmd);font-size:14px;font-family:var(--f);
}
input#searchInput:focus{outline:2px solid var(--brand-500);outline-offset:1px;}
select.period-select{
  background:var(--bg);border:1px solid var(--n200);color:var(--text-primary);
  padding:9px 12px;border-radius:var(--rmd);font-size:13px;font-family:var(--f);font-weight:500;cursor:pointer;
}
button.primary{
  background:var(--bg-brand-solid);color:#fff;border:none;padding:10px 18px;border-radius:var(--rxl);
  font-weight:600;font-size:13px;cursor:pointer;font-family:var(--f);
}
button.primary:hover{background:var(--bg-brand-hover);}
.suggestions{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px;}
.chip{
  font-family:var(--f);font-size:12px;font-weight:500;color:var(--text-secondary);
  background:var(--bg3);border:1px solid var(--n200);padding:5px 12px;border-radius:var(--rfull);cursor:pointer;
}
.chip:hover{border-color:var(--brand-600);color:var(--brand-700);}

#emptyState{color:var(--text-tertiary);font-size:13px;padding:10px 2px;font-style:italic;}

/* Result card */
#resultZone{display:none;}
.broker-card{
  background:var(--bg);border:1px solid var(--n200);border-radius:var(--r2xl);
  padding:24px;margin-bottom:20px;box-shadow:var(--sh-sm);
}
.broker-top{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:10px;}
.broker-name{font-family:var(--f);font-size:1.5rem;font-weight:700;color:var(--text-primary);}
.broker-meta{color:var(--text-tertiary);font-size:13px;font-family:var(--f);margin-top:4px;}
.alias-note{
  font-size:12px;color:var(--text-secondary);margin-top:8px;font-family:var(--f);line-height:1.6;
}
.period-row{display:flex;gap:10px;align-items:center;margin-top:16px;flex-wrap:wrap;}
.period-row label{font-size:12px;color:var(--text-tertiary);font-weight:500;}
.kpi-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-top:16px;}
@media(max-width:900px){.kpi-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:520px){.kpi-grid{grid-template-columns:repeat(2,1fr);}}
.kpi{background:var(--bg3);border-radius:var(--rlg);padding:14px;}
.kpi .label{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:1px;font-family:var(--f);font-weight:600;}
.kpi .value{font-family:var(--f);font-size:1.375rem;margin-top:4px;font-weight:700;color:var(--text-primary);}
.kpi .value.mint{color:var(--green-800);}
.kpi .value.gold{color:var(--amber-600);}

.action-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;}
.action-btn{
  background:var(--bg3);border:1px solid var(--n200);color:var(--text-primary);
  padding:10px 16px;border-radius:var(--rxl);font-size:13px;font-weight:600;cursor:pointer;
  font-family:var(--f);
}
.action-btn.active{background:var(--bg-brand-solid);border-color:var(--bg-brand-solid);color:#fff;}
.action-btn:hover{border-color:var(--brand-600);}

.panel{
  background:var(--bg);border:1px solid var(--n200);border-radius:var(--r2xl);
  padding:24px;margin-bottom:20px;display:none;box-shadow:var(--sh-sm);
}
.panel.show{display:block;}
.panel h3{font-family:var(--f);font-weight:700;font-size:1.125rem;margin:0 0 14px;color:var(--text-primary);}

/* Dashboard bars */
.bars{display:flex;align-items:flex-end;gap:8px;height:140px;margin:20px 0 10px;}
.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;}
.bar-count{font-size:11px;font-weight:700;color:var(--brand-700);margin-bottom:3px;font-family:var(--f);}
.bar{width:100%;background:linear-gradient(180deg,var(--brand-500),var(--brand-700));border-radius:var(--rxs) var(--rxs) 0 0;min-height:4px;}
.bar-label{font-size:10px;color:var(--text-tertiary);margin-top:6px;font-family:var(--f);font-weight:500;}

table{width:100%;border-collapse:collapse;margin-top:12px;font-size:13px;}
th{text-align:left;color:var(--text-tertiary);font-family:var(--f);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;padding:8px 10px;border-bottom:1px solid var(--n200);}
td{padding:9px 10px;border-bottom:1px solid var(--n200);}
tr.anom td{color:var(--red-600);}
.tag{font-size:10px;padding:2px 8px;border-radius:var(--rfull);font-family:var(--f);font-weight:600;}
.tag.ok{background:var(--green-50);color:var(--green-800);border:1px solid var(--green-200);}
.tag.pend{background:var(--amber-50);color:var(--amber-600);border:1px solid var(--amber-200);}
.tag.anom{background:var(--red-50);color:var(--red-600);border:1px solid var(--red-200);}

.ia-box{
  background:var(--bg3);border-left:3px solid var(--brand-600);border-radius:0 var(--rlg) var(--rlg) 0;
  padding:16px;font-size:14px;line-height:1.6;margin-top:8px;color:var(--text-primary);
}
.ia-loading{color:var(--text-tertiary);font-style:italic;font-size:13px;}

.pdf-view{background:#fff;color:var(--text-primary);border-radius:var(--rlg);padding:32px;font-family:var(--f);border:1px solid var(--n200);}
.pdf-view h2{font-family:var(--f);font-weight:700;color:var(--brand-800);}
.pdf-logo{font-family:var(--f);font-weight:800;color:var(--brand-600);font-size:20px;}
.pdf-view table th{color:var(--text-tertiary);}
.pdf-view table td{color:var(--text-primary);border-color:var(--n200);}
.print-btn{margin-top:16px;background:var(--bg-brand-solid);color:#fff;border:none;padding:10px 18px;border-radius:var(--rxl);font-weight:600;cursor:pointer;font-family:var(--f);}

.compare-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(120px, 1fr));gap:16px;margin-top:14px;}
.compare-col{background:var(--bg3);border-radius:var(--rlg);padding:16px;}
.compare-col h4{font-family:var(--f);color:var(--text-tertiary);font-size:12px;font-weight:600;margin:0 0 10px;letter-spacing:1px;}
.delta{font-family:var(--f);font-size:15px;font-weight:600;margin-top:10px;}
.delta.up{color:var(--green-800);}
.delta.down{color:var(--red-600);}

.anom-panel{margin-top:6px;}
.anom-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--n200);font-size:13px;}
.anom-item:last-child{border-bottom:none;}
.anom-icon{color:var(--red-600);font-weight:700;}

.line-chart-wrap{margin-top:24px;}
.line-chart-wrap h4{font-family:var(--f);font-size:13px;font-weight:600;color:var(--text-secondary);margin:0 0 10px;}

.disambig-wrap{margin-top:12px;border:1px solid var(--n200);border-radius:var(--r2xl);padding:16px;background:var(--bg3);}
.disambig-wrap h4{font-family:var(--f);font-size:14px;font-weight:600;margin:0 0 10px;color:var(--text-primary);}
.disambig-card{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  background:var(--bg);border:1px solid var(--n200);border-radius:var(--rlg);
  padding:12px 14px;margin-bottom:8px;cursor:pointer;
}
.disambig-card:hover{border-color:var(--brand-500);box-shadow:var(--sh-sm);}
.disambig-card .name{font-weight:600;font-size:14px;color:var(--text-primary);}
.disambig-card .meta{font-size:12px;color:var(--text-tertiary);margin-top:2px;}
.disambig-card .amount{font-weight:700;font-size:14px;color:var(--brand-700);white-space:nowrap;}
.disambig-more{font-size:12px;color:var(--text-tertiary);margin-top:8px;font-style:italic;}

.ranking-toggle{
  display:flex;align-items:center;gap:8px;margin-top:14px;font-size:12px;
  color:var(--text-tertiary);font-family:var(--f);cursor:pointer;user-select:none;
}
.ranking-toggle input{cursor:pointer;}
.rank-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--n200);font-size:13px;}
.rank-row:last-child{border-bottom:none;}
.rank-row.me{background:var(--brand-50);border-radius:var(--rmd);padding:8px 10px;font-weight:700;}
.rank-num{width:28px;color:var(--text-tertiary);font-weight:600;font-family:var(--f);}
.rank-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rank-bar-wrap{flex:2;background:var(--bg3);border-radius:var(--rfull);height:8px;overflow:hidden;}
.rank-bar-fill{height:100%;background:linear-gradient(90deg,var(--brand-500),var(--brand-700));}
.rank-amount{width:110px;text-align:right;font-weight:600;}
.suggestion-item{display:flex;gap:8px;padding:8px 0;font-size:13px;line-height:1.5;}
.suggestion-icon{color:var(--brand-600);}

.auth-gate{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg,var(--brand-800),var(--brand-600));padding:20px;
}
.auth-card{
  background:#fff;border-radius:var(--r2xl);padding:40px 32px;max-width:380px;width:100%;
  text-align:center;box-shadow:var(--sh-lg);
}
.auth-card .mark{font-family:var(--f);font-weight:800;font-size:28px;color:var(--brand-600);margin-bottom:6px;}
.auth-card h2{font-family:var(--f);font-weight:700;font-size:20px;margin:6px 0 4px;color:var(--text-primary);}
.auth-card p{font-size:13px;color:var(--text-tertiary);line-height:1.5;margin:0 0 20px;}
.auth-card input{
  width:100%;padding:12px 14px;border:1px solid var(--n200);border-radius:var(--rmd);
  font-family:var(--f);font-size:14px;margin-bottom:10px;box-sizing:border-box;
}
.auth-card button{
  width:100%;padding:12px;border:none;border-radius:var(--rxl);background:var(--bg-brand-solid);
  color:#fff;font-family:var(--f);font-weight:700;font-size:14px;cursor:pointer;
}
.auth-card button:hover{background:var(--bg-brand-hover);}
.auth-error{color:var(--red-600);font-size:12px;margin-top:10px;display:none;}
.auth-note{font-size:11px;color:var(--n400);margin-top:18px;line-height:1.5;}

.exclusive-banner{
  background:var(--brand-900);color:#fff;font-family:var(--f);font-size:12px;font-weight:500;
  padding:10px 18px;text-align:center;line-height:1.5;
}
.exclusive-banner strong{font-weight:700;}

@media print{
  @page{ margin: 0; }
  body{ margin: 1.2cm; }
  body *{visibility:hidden;}
  body.print-pdf #printArea, body.print-pdf #printArea *{visibility:visible;}
  body.print-pdf #printArea{position:absolute;top:0;left:0;width:100%;}

  body.print-dashboard #printDashboardArea, body.print-dashboard #printDashboardArea *{visibility:visible;}
  body.print-dashboard #printDashboardArea{position:absolute;top:0;left:0;width:100%;}

  body.print-pendientes #printPendientesArea, body.print-pendientes #printPendientesArea *{visibility:visible;}
  body.print-pendientes #printPendientesArea{position:absolute;top:0;left:0;width:100%;}

  body.print-nosepaga #printNoSePagaArea, body.print-nosepaga #printNoSePagaArea *{visibility:visible;}
  body.print-nosepaga #printNoSePagaArea{position:absolute;top:0;left:0;width:100%;}

  .no-print{display:none !important;}
}
.confidential-note{font-size:11px;color:var(--text-tertiary);margin-top:10px;}
