/* ============================================================
   Jorge Javier Vázquez — sistema de diseño (La Quiniela)
   tokens y componentes calcados de las herramientas existentes
   ============================================================ */
:root{
  --bg:#f5f6f7; --panel:#ffffff; --ink:#15181c; --ink-2:#5c6570; --ink-3:#8a929c;
  --line:#e7e9ec; --line-2:#eef0f2;
  --accent:#11a06a; --accent-strong:#0c8a5a; --accent-soft:#e6f5ee; --accent-ink:#0a7a50;
  --up:#10995f; --down:#d5483a; --warn:#b5821f; --warn-soft:#fbf2e1; --warn-line:#f0e0bf;
  --blue:#3f74c7; --blue-soft:#e9f0fb; --amber:#c79233; --violet:#7b61d6; --violet-soft:#efeafb;
  --radius:14px; --radius-sm:10px;
  --shadow:0 1px 2px rgba(16,24,40,.04), 0 1px 3px rgba(16,24,40,.05);
  --shadow-lg:0 8px 28px rgba(16,24,40,.10);
  --mono:"IBM Plex Mono", ui-monospace, monospace;
  --sans:"Hanken Grotesk", system-ui, -apple-system, sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.45;}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;}
::selection{background:var(--accent-soft);}
button{font-family:var(--sans);}

/* Header (topbar) rediseñado vive en header.css. */

/* ---------------- Layout ---------------- */
.wide{max-width:1560px;margin:0 auto;padding:24px 28px 72px;}
.wide.cols{display:grid;grid-template-columns:332px minmax(0,1fr);gap:24px;align-items:start;}
.sidebar{position:sticky;top:80px;}
.stack{display:flex;flex-direction:column;gap:28px;min-width:0;}

.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);}
.panel-pad{padding:22px;}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px;flex-wrap:wrap;}
.section-title{font-size:19px;font-weight:800;letter-spacing:-.3px;line-height:1.2;}
.section-desc{font-size:13px;color:var(--ink-3);max-width:430px;}
.section-desc b{color:var(--ink-2);font-weight:600;}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--ink-3);margin-bottom:3px;}

/* sim banner */
.simbanner{display:flex;align-items:center;gap:13px;background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:var(--radius);padding:14px 18px;margin-bottom:24px;}
.simbanner .ic{width:30px;height:30px;border-radius:8px;background:#fff;border:1px solid var(--warn-line);display:grid;place-items:center;color:var(--warn);font-weight:800;flex:none;font-family:var(--mono);}
.simbanner .tx{font-size:13.5px;color:#8c6314;}
.simbanner .tx b{font-weight:700;color:#7a560f;}

/* sign pills */
.pill{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:12px;padding:3px 9px;border-radius:7px;font-family:var(--mono);}
.pill .pd{width:7px;height:7px;border-radius:50%;}
.sg-1{color:var(--accent-ink);background:var(--accent-soft);} .sg-1 .pd{background:var(--accent);}
.sg-X{color:var(--amber);background:var(--warn-soft);} .sg-X .pd{background:var(--amber);}
.sg-2{color:var(--blue);background:var(--blue-soft);} .sg-2 .pd{background:var(--blue);}

/* ---------------- Bloque 1: tabla jornada ---------------- */
.jtable-wrap{overflow-x:auto;}
table.jtable{width:100%;border-collapse:collapse;min-width:880px;}
table.jtable thead th{font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-3);padding:10px 10px;border-bottom:1px solid var(--line);text-align:center;white-space:nowrap;}
table.jtable thead th.left{text-align:left;}
table.jtable tbody td{padding:9px 10px;border-bottom:1px solid var(--line-2);font-size:13px;text-align:center;}
table.jtable tbody tr:last-child td{border-bottom:0;}
table.jtable tbody tr:hover{background:#fafbfb;}
.jpos{font-family:var(--mono);font-weight:600;color:var(--ink-3);width:30px;}
.jmatch{text-align:left;font-weight:600;white-space:nowrap;}
.jmatch .vs{color:var(--ink-3);font-weight:500;margin:0 5px;}
.sgc{position:relative;border-radius:9px;padding:7px 4px 6px;min-width:78px;}
.sgc .sgp{font-family:var(--mono);font-size:16px;font-weight:600;line-height:1;}
.sgc .sgl{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin-top:4px;}
.sgc .sgl b{font-weight:600;color:var(--ink-2);}
.sgc.rec{background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent);}
.sgc.rec .sgp{color:var(--accent-ink);}
.sgc.value{background:#fff;box-shadow:inset 0 0 0 1.5px var(--blue);}
.sgc.value .sgp{color:var(--blue);}
.valtag{position:absolute;top:-7px;left:50%;transform:translateX(-50%);font-size:8px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;background:var(--blue);color:#fff;padding:1px 6px;border-radius:5px;font-family:var(--sans);}
.ratio{font-family:var(--mono);font-size:13px;font-weight:600;padding:3px 8px;border-radius:7px;background:var(--line-2);color:var(--ink-2);display:inline-block;}
.ratio.hi{background:var(--blue-soft);color:var(--blue);}
.ratio.vhi{background:var(--blue);color:#fff;}
.recchip{font-family:var(--mono);font-weight:700;font-size:13px;}
.realchip{font-family:var(--mono);font-weight:700;font-size:13px;}
.legend-row{display:flex;gap:18px;flex-wrap:wrap;margin-top:14px;font-size:11.5px;color:var(--ink-3);}
.legend-row b{color:var(--ink-2);font-weight:600;}

/* pleno row */
tr.pleno td{background:#faf7ff;border-top:1.5px solid var(--violet-soft);}
.pleno-inner{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:2px 0;}
.pleno-tag{font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--violet);background:var(--violet-soft);padding:3px 9px;border-radius:6px;}
.goal-group{display:flex;align-items:center;gap:8px;}
.goal-group .gl{font-size:12px;font-weight:700;color:var(--ink-2);}
.goal-chips{display:flex;gap:5px;}
.gchip{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--panel);font-family:var(--mono);font-weight:600;font-size:13px;display:grid;place-items:center;color:var(--ink-2);}
.gchip.on{background:var(--violet);border-color:var(--violet);color:#fff;}

/* ---------------- Controles ---------------- */
select,input.txtin{-webkit-appearance:none;appearance:none;font-family:var(--sans);font-size:14px;font-weight:600;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 12px;transition:.15s;width:100%;}
select{padding-right:30px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' stroke='%238a929c' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 11px center;cursor:pointer;}
select:hover{border-color:#d4d8dd;}
select:focus,input.txtin:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);}
select.compact{width:auto;}
.field{padding:16px 0;border-bottom:1px solid var(--line-2);}
.field:last-of-type{border-bottom:0;}
.field-label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;}
.field-label .lab{font-size:13px;font-weight:700;color:var(--ink);}
.field-label .val{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--accent-ink);background:var(--accent-soft);padding:2px 9px;border-radius:7px;}
.hint{font-size:11.5px;color:var(--ink-3);margin-top:8px;}
.input-eur{display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;transition:.15s;}
.input-eur:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);}
.input-eur input{flex:1;border:0;outline:0;font-family:var(--mono);font-size:15px;font-weight:600;color:var(--ink);padding:10px 12px;width:100%;text-align:right;background:transparent;}
.input-eur .suf{padding:0 13px;font-family:var(--mono);font-weight:600;color:var(--ink-3);font-size:14px;border-left:1px solid var(--line-2);align-self:stretch;display:flex;align-items:center;}

.stepper{display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;width:fit-content;}
.stepper button{width:40px;height:42px;border:0;background:var(--panel);font-size:18px;color:var(--ink-2);cursor:pointer;transition:.15s;}
.stepper button:hover{background:var(--line-2);color:var(--ink);}
.stepper .num{min-width:84px;text-align:center;font-family:var(--mono);font-weight:600;font-size:15px;border-left:1px solid var(--line);border-right:1px solid var(--line);height:42px;display:grid;place-items:center;}
.cost-line{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding:10px 12px;background:var(--line-2);border-radius:var(--radius-sm);}
.cost-line .ct{font-size:12.5px;color:var(--ink-2);font-weight:600;}
.cost-line .cv{font-family:var(--mono);font-size:16px;font-weight:600;}

.btn{font-family:var(--sans);font-weight:700;font-size:14.5px;border-radius:var(--radius-sm);padding:12px 18px;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;width:100%;}
.btn:disabled{opacity:.55;cursor:not-allowed;}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 1px 3px rgba(17,160,106,.4);}
.btn-primary:hover:not(:disabled){background:var(--accent-strong);}
.btn-ghost{background:var(--panel);color:var(--ink);border-color:var(--line);}
.btn-ghost:hover:not(:disabled){background:var(--line-2);}
.btn-lg{padding:15px 18px;font-size:15.5px;}
.actions{display:flex;flex-direction:column;gap:9px;padding:18px 20px 20px;border-top:1px solid var(--line-2);}
.config-head{padding:18px 20px;border-bottom:1px solid var(--line-2);}
.config-body{padding:4px 20px 18px;}
.field-lab{font-size:12px;font-weight:700;color:var(--ink-2);margin-bottom:8px;}

/* ---------------- Bloque 2: Motor EV ---------------- */
.ev-hero{display:flex;align-items:flex-start;gap:26px;flex-wrap:wrap;padding-bottom:22px;border-bottom:1px solid var(--line-2);margin-bottom:20px;}
.ev-bignum{font-family:var(--mono);font-size:52px;font-weight:600;letter-spacing:-2px;line-height:.95;color:var(--accent-ink);}
.ev-bignum.idle{color:var(--ink-3);}
.ev-sub{font-size:14px;color:var(--ink-2);margin-top:8px;max-width:360px;}
.ev-sub b{color:var(--ink);font-weight:700;}
.ev-of{font-family:var(--mono);font-size:13px;color:var(--ink-3);margin-top:6px;}
.ev-of b{color:var(--ink-2);font-weight:600;}
.ev-meter{flex:1;min-width:220px;}
.ev-meter .mlab{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-3);margin-bottom:7px;font-weight:600;}
.ev-bar{height:10px;border-radius:6px;background:var(--line-2);overflow:hidden;}
.ev-bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--accent),var(--accent-strong));transition:width .6s cubic-bezier(.4,0,.2,1);}
.ev-meter .mfoot{font-size:11.5px;color:var(--ink-3);margin-top:8px;}
.ev-meter .mfoot b{color:var(--accent-ink);font-weight:700;}

.cmb-table-wrap{overflow:auto;max-height:560px;border:1px solid var(--line-2);border-radius:12px;}
table.cmb{width:100%;border-collapse:collapse;min-width:780px;font-size:13.5px;}
table.cmb thead th{text-align:right;font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-3);padding:11px 12px;border-bottom:1px solid var(--line);white-space:nowrap;position:sticky;top:0;background:var(--panel);z-index:1;}
table.cmb thead th.left{text-align:left;}
table.cmb thead th.sortable{cursor:pointer;user-select:none;}
table.cmb thead th.sortable:hover{color:var(--ink);}
table.cmb thead th .ar{opacity:0;margin-left:5px;font-size:10px;}
table.cmb thead th.sorted{color:var(--ink);}
table.cmb thead th.sorted .ar{opacity:1;color:var(--accent);}
table.cmb td.chk{text-align:center;width:42px;}
table.cmb input[type=checkbox]{width:17px;height:17px;accent-color:var(--accent);cursor:pointer;vertical-align:middle;}
table.cmb input[type=checkbox]:disabled{cursor:not-allowed;opacity:.35;}
table.cmb tbody td{padding:10px 12px;border-bottom:1px solid var(--line-2);text-align:right;font-family:var(--mono);font-size:13px;white-space:nowrap;}
table.cmb tbody td.left{text-align:left;font-family:var(--sans);}
table.cmb tbody tr:last-child td{border-bottom:0;}
table.cmb tbody tr{transition:.12s;}
table.cmb tbody tr:hover{background:#fafbfb;}
table.cmb tbody tr.checked{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent);}
table.cmb tbody tr.checked:hover{background:#dcefe4;}
.rk{font-family:var(--mono);color:var(--ink-3);font-weight:600;width:34px;}
.combo-signs{display:inline-flex;gap:2px;flex-wrap:nowrap;}
.cs{width:21px;height:24px;border-radius:5px;display:grid;place-items:center;font-family:var(--mono);font-weight:600;font-size:12px;}
.cs.c1{color:var(--accent-ink);background:var(--accent-soft);}
.cs.cX{color:var(--amber);background:var(--warn-soft);}
.cs.c2{color:var(--blue);background:var(--blue-soft);}
.ev-pos{color:var(--accent-ink);font-weight:600;}
.takebtn{font-family:var(--sans);font-size:12px;font-weight:700;border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:5px 11px;border-radius:8px;cursor:pointer;transition:.15s;}
.takebtn:hover{background:var(--accent);color:#fff;border-color:var(--accent);}
.budget-row{font-size:9.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--accent-ink);background:#fff;border:1px solid #cdebdd;padding:1px 6px;border-radius:5px;margin-left:8px;}

.metrics{display:grid;gap:16px;grid-template-columns:repeat(4,1fr);}
.metric{padding:18px;}
.metric .m-lab{font-size:12.5px;font-weight:600;color:var(--ink-2);}
.metric .m-val{font-family:var(--mono);font-size:28px;font-weight:600;letter-spacing:-1px;margin-top:8px;line-height:1;}
.metric .m-sub{font-size:12px;color:var(--ink-3);margin-top:8px;}
.metric.accent .m-val{color:var(--accent-ink);}

/* ---------------- Bloque 3: Boleto ---------------- */
.bol-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;align-items:start;}
.boleto{display:flex;flex-direction:column;gap:7px;}
.brow{display:grid;grid-template-columns:26px 1fr auto auto;align-items:center;gap:12px;padding:9px 13px;border:1px solid var(--line-2);border-radius:9px;}
.brow.hit{background:var(--accent-soft);border-color:#cdebdd;}
.brow.miss{background:#fbf0ef;border-color:#f1d9d6;}
.brow .bp{font-family:var(--mono);font-size:12px;color:var(--ink-3);}
.brow .bm{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.brow .bm .vs{color:var(--ink-3);font-weight:500;margin:0 4px;}
.brow .bsign{justify-self:end;}
.brow .breal{justify-self:end;display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;min-width:62px;justify-content:flex-end;}
.breal .ok{color:var(--up);font-weight:700;}
.breal .no{color:var(--down);font-weight:700;}
.brow.is-pleno{grid-template-columns:26px 1fr auto;background:#faf7ff;border-color:var(--violet-soft);}
.bhead{display:grid;grid-template-columns:26px 1fr auto auto;gap:12px;padding:0 13px 4px;font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-3);}
.bhead span:nth-child(3),.bhead span:nth-child(4){justify-self:end;}

.stat-card{background:#fafbfc;border:1px solid var(--line-2);border-radius:12px;padding:6px 18px;}
.stat-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--line-2);}
.stat-row:last-child{border-bottom:0;}
.stat-row .l{font-size:13px;color:var(--ink-2);font-weight:600;}
.stat-row .l small{display:block;font-size:11px;color:var(--ink-3);font-weight:500;margin-top:2px;}
.stat-row .v{font-family:var(--mono);font-size:19px;font-weight:600;text-align:right;white-space:nowrap;}
.stat-row .v.pos{color:var(--accent-ink);}
.stat-row .v.neg{color:var(--down);}

.resultbox{border-radius:12px;padding:18px 20px;margin-bottom:20px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.resultbox.win{background:var(--accent-soft);border:1px solid #cdebdd;}
.resultbox.lose{background:var(--warn-soft);border:1px solid var(--warn-line);}
.resultbox .rb-num{font-family:var(--mono);font-size:42px;font-weight:600;letter-spacing:-1px;line-height:1;}
.resultbox.win .rb-num{color:var(--accent-ink);}
.resultbox.lose .rb-num{color:#8c6314;}
.resultbox .rb-txt{font-size:14px;font-weight:600;}
.resultbox .rb-txt small{display:block;font-weight:500;color:var(--ink-2);font-size:12.5px;margin-top:3px;}
.resultbox .rb-cat{margin-left:auto;text-align:right;}
.resultbox .rb-cat .c1{font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-3);}
.resultbox .rb-cat .c2{font-family:var(--mono);font-size:22px;font-weight:600;margin-top:2px;}

.cat-table{width:100%;border-collapse:collapse;font-size:13px;}
.cat-table th{font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-3);text-align:right;padding:7px 8px;}
.cat-table th.left{text-align:left;}
.cat-table td{padding:8px 8px;border-top:1px solid var(--line-2);text-align:right;font-family:var(--mono);font-size:12.5px;}
.cat-table td.left{text-align:left;font-family:var(--sans);font-weight:600;}
.cat-k{display:inline-flex;align-items:center;gap:7px;}
.cat-dot{width:8px;height:8px;border-radius:3px;}

.placeholder{border:1.5px dashed var(--line);border-radius:12px;padding:46px 24px;text-align:center;color:var(--ink-3);font-size:13.5px;}
.placeholder b{color:var(--ink-2);}
.footnote{font-size:11.5px;color:var(--ink-3);text-align:center;padding:6px 0 0;}
.footnote b{color:var(--ink-2);}
.portfolio-note{display:flex;align-items:center;gap:12px;background:var(--accent-soft);border:1px solid #cdebdd;border-radius:11px;padding:12px 15px;font-size:13px;color:var(--accent-ink);margin-top:4px;}
.portfolio-note b{font-weight:700;}

/* ---------------- Bloque 3: cartera (matriz de boletos) ---------------- */
.cartera-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px;}
.cartera-summary.sim{grid-template-columns:repeat(4,1fr);}

.matrix-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);}
table.matrix{border-collapse:separate;border-spacing:0;width:100%;}
.matrix th,.matrix td{padding:7px 6px;border-bottom:1px solid var(--line-2);}
.matrix tbody tr:last-child td{border-bottom:0;}
.matrix tbody tr:hover td{background:#fafbfb;}
.matrix tbody tr:hover td.mname{background:#f4f6f7;}

.matrix thead th{position:sticky;top:0;z-index:1;background:var(--panel);border-bottom:1px solid var(--line);vertical-align:bottom;}
.matrix .mname{position:sticky;left:0;z-index:2;background:var(--panel);text-align:left;white-space:nowrap;font-weight:600;font-size:13px;color:var(--ink);padding-left:16px;min-width:198px;border-right:1px solid var(--line);}
.matrix thead th.mname{z-index:3;vertical-align:bottom;}
.matrix .mname .mh-lab{font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-3);}
.matrix .mname .vs{color:var(--ink-3);font-weight:500;margin:0 5px;}
.matrix .mname .mp{font-family:var(--mono);color:var(--ink-3);font-weight:600;margin-right:9px;}

.matrix .colhead{text-align:center;min-width:56px;padding:9px 6px;}
.matrix .colhead .ch-n{font-size:9.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-3);}
.matrix .colhead .ch-ev{font-family:var(--mono);font-size:13.5px;font-weight:600;color:var(--accent-ink);margin-top:3px;}
.matrix .colhead.best{background:var(--accent-soft);border-radius:9px 9px 0 0;}
.matrix .colhead .ch-badge{margin-top:6px;display:flex;flex-direction:column;align-items:center;gap:3px;}
.matrix .colhead .ch-acc{font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--ink);}
.matrix .colhead .ch-cobra{font-size:8.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:2px 6px;border-radius:5px;}
.matrix .colhead .ch-cobra.yes{color:var(--accent-ink);background:var(--accent-soft);}
.matrix .colhead .ch-cobra.no{color:var(--ink-3);background:var(--line-2);}

.matrix td.mcell{text-align:center;}
.msign{display:inline-grid;place-items:center;width:32px;height:30px;border-radius:7px;font-family:var(--mono);font-weight:600;font-size:14px;margin:0 auto;}
.msign.c1{color:var(--accent-ink);background:var(--accent-soft);}
.msign.cX{color:var(--amber);background:var(--warn-soft);}
.msign.c2{color:var(--blue);background:var(--blue-soft);}
.matrix td.mcell.colbest{background:#f1faf5;}
.matrix td.mcell.dim .msign{opacity:.32;}
.matrix td.mcell.ok .msign{box-shadow:inset 0 0 0 2px var(--accent);}

.matrix .realhead,.matrix td.realcell{background:#faf7ff;border-left:1px solid var(--line);text-align:center;min-width:74px;}
.matrix .realhead{font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--violet);line-height:1.25;}
.matrix td.realcell .msign{box-shadow:inset 0 0 0 1.5px rgba(123,97,214,.35);}
.matrix-pleno{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:13px 16px;font-size:12.5px;color:var(--ink-2);border-top:1px solid var(--line);background:#faf7ff;}
.matrix-pleno .pleno-tag{font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--violet);background:var(--violet-soft);padding:3px 9px;border-radius:6px;}
.matrix-pleno b{color:var(--ink);font-weight:700;}

/* range slider (criterio de ordenación) */
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:5px;border-radius:5px;background:linear-gradient(to right,var(--accent) 0%,var(--accent) var(--p,50%),var(--line) var(--p,50%),var(--line) 100%);cursor:pointer;margin:10px 0 4px;}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 1px 4px rgba(16,24,40,.2);cursor:pointer;}
input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 1px 4px rgba(16,24,40,.2);cursor:pointer;}
.range-ends{display:flex;justify-content:space-between;font-size:11px;font-weight:600;color:var(--ink-3);}
.range-ends b{color:var(--accent-ink);font-weight:700;}

/* selección de cartera */
.sel-counter{padding:14px 0 4px;}
.sel-counter .sc-line{font-size:13px;color:var(--ink-2);font-weight:600;}
.sel-counter .sc-line b{font-family:var(--mono);color:var(--ink);}
.sel-counter .sc-bar{height:8px;border-radius:5px;background:var(--line-2);overflow:hidden;margin:9px 0 7px;}
.sel-counter .sc-bar i{display:block;height:100%;border-radius:5px;background:var(--accent);transition:width .25s ease;}
.sel-counter .sc-sub{font-family:var(--mono);font-size:12px;color:var(--ink-3);font-weight:600;}
.sel-counter .sc-sub.full{color:var(--accent-ink);}
.sel-counter .sc-sub.over{color:var(--down);}

/* ---------------- Bloque 3 (extra): resumen por partido ---------------- */
.psum{display:flex;flex-direction:column;gap:8px;}
.psum-row{display:grid;grid-template-columns:28px minmax(150px,1fr) 132px 78px minmax(150px,250px);align-items:center;gap:16px;padding:11px 14px;border:1px solid var(--line-2);border-radius:10px;}
.psum-row:hover{background:#fafbfb;}
.psum-row.pleno{background:#faf7ff;border-color:var(--violet-soft);}
.psum-row .pp{font-family:var(--mono);font-size:12px;color:var(--ink-3);font-weight:600;}
.psum-row .pname{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.psum-row .pname .vs{color:var(--ink-3);font-weight:500;margin:0 5px;}
.psum-counts{display:flex;gap:10px;font-family:var(--mono);font-size:13px;font-weight:600;}
.psc.c1{color:var(--accent-ink);} .psc.cX{color:var(--amber);} .psc.c2{color:var(--blue);}
.pbadge{font-size:9.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:3px 8px;border-radius:6px;justify-self:start;}
.pbadge.simple{color:var(--ink-3);background:var(--line-2);}
.pbadge.doble{color:var(--blue);background:var(--blue-soft);}
.pbadge.triple{color:var(--violet);background:var(--violet-soft);}
.psum-bar{display:flex;height:11px;border-radius:6px;overflow:hidden;background:var(--line-2);}
.psum-bar i{height:100%;}
.psum-bar i.c1{background:var(--accent);} .psum-bar i.cX{background:var(--amber);} .psum-bar i.c2{background:var(--blue);}
.psum-head{display:grid;grid-template-columns:28px minmax(150px,1fr) 132px 78px minmax(150px,250px);gap:16px;padding:0 14px 4px;font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-3);}
@media (max-width:760px){
  .psum-row,.psum-head{grid-template-columns:24px 1fr auto;}
  .psum-row .pbadge,.psum-row .psum-bar,.psum-head span:nth-child(4),.psum-head span:nth-child(5){display:none;}
}

/* fade transition (transform-only; opacity stays visible for reliable capture/print) */
.screen{animation:fade .3s ease both;}
@keyframes fade{from{transform:translateY(7px);}to{transform:none;}}
@media (prefers-reduced-motion:reduce){.screen{animation:none;}}

@media (max-width:1180px){
  .metrics{grid-template-columns:repeat(2,1fr);}
  .bol-grid{grid-template-columns:1fr;}
  .cartera-summary,.cartera-summary.sim{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:980px){
  .wide.cols{grid-template-columns:1fr;}
  .sidebar{position:static;}
}

/* ============================================================
   Bloque 4 · Backtesting  +  Bloque 5 · Historial
   ============================================================ */

/* controles compartidos: switch / radio / segmentado */
.switch{position:relative;width:42px;height:24px;flex:none;border-radius:999px;background:var(--line);border:0;cursor:pointer;transition:.18s;padding:0;}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(16,24,40,.25);transition:transform .18s;}
.switch.on{background:var(--accent);}
.switch.on::after{transform:translateX(18px);}
.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line-2);}
.toggle-row:last-child{border-bottom:0;}
.toggle-row .tl{font-size:13px;font-weight:700;color:var(--ink);}
.toggle-row .tl small{display:block;font-size:11px;color:var(--ink-3);font-weight:500;margin-top:2px;line-height:1.3;}

.radiolist{display:flex;flex-direction:column;gap:7px;}
.radio-opt{display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;transition:.14s;background:var(--panel);text-align:left;font-family:var(--sans);width:100%;}
.radio-opt:hover{border-color:#d4d8dd;background:#fafbfb;}
.radio-opt.on{border-color:var(--accent);background:var(--accent-soft);}
.radio-opt .rd{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);flex:none;transition:.14s;position:relative;}
.radio-opt.on .rd{border-color:var(--accent);}
.radio-opt.on .rd::after{content:"";position:absolute;inset:2px;border-radius:50%;background:var(--accent);}
.radio-opt .rl{font-size:13px;font-weight:600;color:var(--ink);}
.radio-opt.on .rl{color:var(--accent-ink);}
.radio-opt .rl small{display:block;font-weight:500;color:var(--ink-3);font-size:11px;margin-top:1px;}

.segctl{display:inline-flex;background:var(--line-2);padding:3px;border-radius:10px;gap:2px;}
.segctl button{border:0;background:transparent;font-family:var(--sans);font-weight:700;font-size:13px;color:var(--ink-2);padding:7px 14px;border-radius:8px;cursor:pointer;transition:.15s;white-space:nowrap;}
.segctl button:hover{color:var(--ink);}
.segctl button.on{background:var(--panel);color:var(--ink);box-shadow:var(--shadow);}

/* parámetros: variación sin recalcular */
.recalc-flag{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--warn);background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:8px;padding:8px 11px;margin-bottom:9px;font-weight:600;}
.recalc-flag .fd{width:7px;height:7px;border-radius:50%;background:var(--warn);flex:none;}

/* métricas con signo */
.num-pos{color:var(--accent-ink);} .num-neg{color:var(--down);} .num-zero{color:var(--ink-3);}
.metric .m-val.num-neg{color:var(--down);}
.metric .m-trend{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;margin-top:9px;padding:2px 8px;border-radius:6px;font-family:var(--mono);}
.metric .m-trend.up{color:var(--accent-ink);background:var(--accent-soft);}
.metric .m-trend.down{color:var(--down);background:#fbf0ef;}

/* gráfico P&L */
.chart-panel .chart-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px;}
.plchart{width:100%;}
.plchart svg{display:block;width:100%;height:auto;overflow:visible;}
.pl-grid{stroke:var(--line-2);stroke-width:1;}
.pl-zero{stroke:#cdd2d8;stroke-width:1.4;stroke-dasharray:5 4;}
.pl-seasondiv{stroke:var(--line-2);stroke-width:1;}
.pl-line{fill:none;stroke-width:2.6;stroke-linejoin:round;stroke-linecap:round;}
.pl-line.primary{stroke:var(--accent);}
.pl-line.alt{stroke:var(--blue);}
.pl-area{stroke:none;}
.pl-axis{font-family:var(--mono);font-size:10.5px;fill:var(--ink-3);}
.pl-axislab{font-size:10px;fill:var(--ink-3);font-weight:700;letter-spacing:.4px;text-transform:uppercase;}
.pl-seasonlab{font-family:var(--mono);font-size:10.5px;fill:var(--ink-3);font-weight:600;}
.pl-dot{fill:var(--panel);stroke-width:2.4;}
.chart-legend{display:flex;gap:20px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2);font-weight:600;}
.chart-legend .lg{display:flex;align-items:center;gap:8px;}
.chart-legend .sw{width:18px;height:3px;border-radius:2px;}

/* tabla genérica de datos (temporadas, partidos, desglose) */
table.dtable{width:100%;border-collapse:collapse;}
table.dtable thead th{font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-3);padding:11px 12px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;}
table.dtable thead th.left{text-align:left;}
table.dtable tbody td{padding:13px 12px;border-bottom:1px solid var(--line-2);font-size:13.5px;text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);}
table.dtable tbody td.left{text-align:left;font-family:var(--sans);font-weight:700;}
table.dtable tbody tr:last-child td{border-bottom:0;}
table.dtable tbody tr:hover td{background:#fafbfb;}
table.dtable tfoot td{padding:13px 12px;border-top:1.5px solid var(--line);font-family:var(--mono);text-align:right;font-weight:700;font-size:13.5px;color:var(--ink);}
table.dtable tfoot td.left{text-align:left;font-family:var(--sans);}
table.dtable .sub{font-family:var(--sans);font-size:11px;color:var(--ink-3);font-weight:500;}

/* estado de temporada */
.tag{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:3px 9px;border-radius:6px;font-family:var(--sans);}
.tag .tdot{width:6px;height:6px;border-radius:50%;background:currentColor;}
.tag.done{color:var(--ink-2);background:var(--line-2);}
.tag.live{color:var(--accent-ink);background:var(--accent-soft);}

/* ---- Historial: cabecera de filtros ---- */
.hist-bar{display:flex;align-items:flex-end;gap:22px;flex-wrap:wrap;padding:18px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:22px;}
.hist-field{display:flex;flex-direction:column;gap:7px;}
.hist-field .hf-lab{font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-3);}
.hist-field select{min-width:150px;}
.hist-spacer{margin-left:auto;}
.hist-count{font-size:12.5px;color:var(--ink-3);font-weight:600;font-family:var(--mono);align-self:flex-end;padding-bottom:9px;}
.hist-count b{color:var(--ink);}

/* ---- Historial: lista de jornadas ---- */
.jlist-head{display:grid;grid-template-columns:6px 184px repeat(4,minmax(0,1fr)) 34px;align-items:center;gap:16px;padding:0 18px 8px 0;font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-3);}
.jlist-head span:nth-child(n+4){text-align:right;}
.jlist{display:flex;flex-direction:column;gap:9px;}
.jcard{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);overflow:hidden;transition:box-shadow .15s;}
.jcard.open{box-shadow:var(--shadow-lg);}
.jhead{display:grid;grid-template-columns:6px 184px repeat(4,minmax(0,1fr)) 34px;align-items:center;gap:16px;padding:13px 18px 13px 0;cursor:pointer;background:none;border:0;width:100%;font-family:var(--sans);text-align:left;}
.jhead:hover{background:#fafbfb;}
.jbar{width:6px;height:44px;border-radius:0 4px 4px 0;}
.jbar.pos{background:var(--accent);} .jbar.neg{background:var(--down);} .jbar.flat{background:var(--line);}
.jid{display:flex;flex-direction:column;gap:2px;min-width:0;}
.jid .jt{display:block;font-weight:700;font-size:14px;}
.jid .jt .js{color:var(--ink-3);font-weight:600;}
.jid .jd{display:block;font-family:var(--mono);font-size:11.5px;color:var(--ink-3);margin-top:2px;}
.jmetric{display:flex;flex-direction:column;gap:3px;align-items:flex-end;}
.jmetric .ml{display:none;font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--ink-3);}
.jmetric .mv{font-family:var(--mono);font-size:14.5px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;}
.jmetric .mv.muted{color:var(--ink-3);}
.jchev{justify-self:center;color:var(--ink-3);transition:transform .2s,color .2s;display:grid;place-items:center;}
.jcard.open .jchev{transform:rotate(180deg);color:var(--accent-ink);}

/* ---- Historial: detalle expandible ---- */
.jbody{border-top:1px solid var(--line-2);padding:20px;background:#fcfcfd;}
.det-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:24px;align-items:start;}
.det-sec{min-width:0;}
.det-h{font-size:12px;font-weight:700;letter-spacing:.3px;color:var(--ink-2);margin-bottom:11px;display:flex;align-items:center;justify-content:space-between;gap:8px;}
.det-h .dn{font-family:var(--mono);font-size:11px;color:var(--ink-3);font-weight:600;text-transform:none;letter-spacing:0;}
.det-card{background:var(--panel);border:1px solid var(--line-2);border-radius:12px;overflow:hidden;}
.det-card .det-pad{padding:4px 16px;}
.colrow{display:grid;grid-template-columns:62px 1fr auto auto;align-items:center;gap:14px;padding:9px 13px;border:1px solid var(--line-2);border-radius:9px;background:var(--panel);margin-bottom:7px;}
.colrow:last-child{margin-bottom:0;}
.colrow.win{background:var(--accent-soft);border-color:#cdebdd;}
.colrow .cn{font-size:12px;font-weight:700;color:var(--ink-2);font-family:var(--mono);}
.colrow .cn small{display:block;color:var(--ink-3);font-weight:500;font-size:10.5px;margin-top:1px;}
.cstrip{display:flex;gap:3px;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;}
.cstrip .cc{min-width:22px;height:27px;padding:0 2px;border-radius:5px;display:grid;place-items:center;font-family:var(--mono);font-weight:600;font-size:12px;flex:none;}
.cc.c1{color:var(--accent-ink);background:var(--accent-soft);}
.cc.cX{color:var(--amber);background:var(--warn-soft);}
.cc.c2{color:var(--blue);background:var(--blue-soft);}
.cc.multi{color:var(--ink-2);background:var(--line-2);font-size:9.5px;letter-spacing:-.3px;}
.cc.hit{box-shadow:inset 0 0 0 2px var(--accent);}
.cc.miss{opacity:.38;}
.colrow .cacc{font-family:var(--mono);font-weight:600;font-size:13.5px;text-align:right;}
.colrow .ccat{font-size:9.5px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;padding:3px 8px;border-radius:6px;white-space:nowrap;}
.ccat.win{color:var(--accent-ink);background:#fff;border:1px solid #cdebdd;}
.ccat.none{color:var(--ink-3);background:var(--line-2);}
.det-note{display:flex;align-items:center;gap:11px;background:var(--line-2);border-radius:10px;padding:13px 16px;font-size:13px;color:var(--ink-2);}
.det-note b{color:var(--ink);font-weight:700;}
.realstrip-row{display:grid;grid-template-columns:62px 1fr auto auto;align-items:center;gap:14px;padding:7px 13px 11px;margin-bottom:9px;border-bottom:1px dashed var(--line);}
.realstrip-row .cn{color:var(--violet);}
.realstrip-row .cc{box-shadow:inset 0 0 0 1.5px rgba(123,97,214,.4);}

@media (max-width:1100px){
  .det-grid{grid-template-columns:1fr;}
}
@media (max-width:860px){
  .jlist-head{display:none;}
  .jhead{grid-template-columns:6px 1fr auto 34px;row-gap:10px;}
  .jmetric .ml{display:block;}
  .jhead .jmetric:nth-child(4),.jhead .jmetric:nth-child(5){display:none;}
}

/* ========== Pantalla 6 · Seguimiento en vivo ========== */
@keyframes segLivePulse{0%,100%{box-shadow:0 0 0 0 rgba(54,211,153,.55);}50%{box-shadow:0 0 0 5px rgba(54,211,153,0);}}
@keyframes segRedPulse{0%,100%{box-shadow:0 0 0 0 rgba(213,72,58,.5);}50%{box-shadow:0 0 0 5px rgba(213,72,58,0);}}
@keyframes segTension{0%,100%{box-shadow:0 0 0 1px var(--down), 0 6px 22px rgba(213,72,58,.10);}50%{box-shadow:0 0 0 1px var(--down), 0 6px 26px rgba(213,72,58,.26);}}
@keyframes segSpin{to{transform:rotate(360deg);}}
@keyframes segHeroIn{from{transform:translateY(10px);}to{transform:none;}}

.seg-hero{position:relative;overflow:hidden;border-radius:18px;padding:28px 30px 26px;
  background:radial-gradient(120% 140% at 88% -10%, #243042 0%, #181c22 46%, #131619 100%);
  color:#fff;box-shadow:0 18px 48px rgba(16,24,40,.30), inset 0 0 0 1px rgba(255,255,255,.05);
  animation:segHeroIn .4s ease both;}
.seg-hero-glow{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 80% at 14% 120%, rgba(17,160,106,.20), transparent 60%);}
.seg-hero-top{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.seg-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:#9aa6b2;}
.seg-live-pip{width:8px;height:8px;border-radius:50%;background:#36d399;box-shadow:0 0 0 0 rgba(54,211,153,.6);animation:segLivePulse 1.4s ease-in-out infinite;}
.seg-title{font-size:38px;font-weight:800;letter-spacing:-1.2px;line-height:1.02;margin:11px 0 9px;
  background:linear-gradient(180deg,#fff,#cfd6dd);-webkit-background-clip:text;background-clip:text;color:transparent;}
.seg-sub{font-size:14.5px;color:#aeb7c0;max-width:520px;line-height:1.5;}
.seg-sub b{color:#fff;font-weight:700;}
.seg-hero-id{min-width:0;}
.seg-updated{display:flex;align-items:center;gap:11px;flex:none;}
.seg-updated .su-txt{display:flex;flex-direction:column;align-items:flex-end;gap:1px;}
.seg-updated .su-lab{font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#7e8995;white-space:nowrap;}
.seg-updated .su-time{font-family:var(--mono);font-size:14px;font-weight:600;color:#e7ebef;white-space:nowrap;}
.su-refresh{width:38px;height:38px;border-radius:11px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);
  color:#cfd6dd;cursor:pointer;display:grid;place-items:center;transition:.15s;}
.su-refresh:hover{background:rgba(255,255,255,.12);color:#fff;}
.su-refresh.spin svg{animation:segSpin .65s cubic-bezier(.4,0,.2,1);}

.seg-stats{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:24px 0 22px;}
.seg-stat{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);border-radius:13px;padding:15px 16px;}
.seg-stat.hero{background:rgba(54,211,153,.08);border-color:rgba(54,211,153,.22);}
.seg-stat .sl{font-size:11.5px;font-weight:600;color:#94a0ac;}
.seg-stat .sv{font-family:var(--mono);font-size:29px;font-weight:600;letter-spacing:-1px;line-height:1;margin-top:10px;color:#f1f4f6;}
.seg-stat .sv .sof{font-size:16px;color:#7e8995;}
.seg-stat .sv.pos{color:#36d399;} .seg-stat .sv.neg{color:#ff6b5e;} .seg-stat .sv.gold{color:#ffd166;font-size:31px;}
.seg-stat .sx{font-size:11px;color:#7e8995;margin-top:8px;}

.seg-progress{position:relative;}
.seg-prog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12.5px;color:#aeb7c0;margin-bottom:9px;flex-wrap:wrap;}
.seg-prog-head b{color:#fff;font-weight:700;}
.seg-prog-head .mono{font-family:var(--mono);color:#e7ebef;font-weight:600;}
.seg-prog-bar{display:flex;gap:4px;height:11px;}
.seg-prog-bar .pseg{flex:1;border-radius:3px;background:rgba(255,255,255,.10);}
.seg-prog-bar .pseg.fin{background:#11a06a;}
.seg-prog-bar .pseg.vivo{background:#36d399;animation:segLivePulse 1.4s ease-in-out infinite;}

.lm-list{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;}
.lm{background:var(--panel);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);padding:14px 15px 15px;display:flex;flex-direction:column;gap:11px;transition:.18s;}
.lm.vivo{border-color:#cdebdd;box-shadow:0 0 0 1px #cdebdd, var(--shadow);}
.lm.pend{opacity:.92;}
.lm.tension{border-color:var(--down);background:#fdf4f3;animation:segTension 2s ease-in-out infinite;}
.lm-main{display:flex;align-items:center;gap:12px;}
.lm-pos{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--ink-3);width:20px;flex:none;}
.lm-teams{display:flex;align-items:center;gap:10px;min-width:0;flex:1;}
.lm-teams .lm-tn{font-size:14.5px;font-weight:700;color:var(--ink);white-space:nowrap;}
.lm-teams .lm-vs{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--ink-2);padding:1px 9px;background:var(--line-2);border-radius:7px;flex:none;white-space:nowrap;}
.lm.fin .lm-teams .lm-vs,.lm.vivo .lm-teams .lm-vs{color:var(--ink);background:#eef1f3;}
.lm-state{flex:none;}
.lm-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.3px;padding:4px 9px;border-radius:7px;font-family:var(--mono);}
.lm-badge.live{color:var(--accent-ink);background:var(--accent-soft);}
.lm-badge.fin{color:var(--ink-2);background:var(--line-2);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-family:var(--sans);}
.lm-badge.pend{color:var(--ink-3);background:var(--line-2);}
.lb-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:segLivePulse 1.3s ease-in-out infinite;}

.lm-warn{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:var(--down);background:#fbe9e7;border:1px solid #f3d4d0;border-radius:8px;padding:5px 10px;align-self:flex-start;}

.lm-signs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.lm-sign{position:relative;border-radius:10px;padding:9px 8px 8px;background:#fafbfb;border:1px solid var(--line-2);text-align:left;}
.lm-sign .ls-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:6px;min-height:18px;}
.lm-sign .ls-s{font-family:var(--mono);font-weight:700;font-size:14px;width:21px;height:21px;border-radius:6px;display:grid;place-items:center;}
.lm-sign.c1 .ls-s{color:var(--accent-ink);background:var(--accent-soft);}
.lm-sign.cX .ls-s{color:var(--amber);background:var(--warn-soft);}
.lm-sign.c2 .ls-s{color:var(--blue);background:var(--blue-soft);}
.lm-sign .ls-b{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--ink);}
.lm-sign .ls-b span{font-family:var(--sans);font-size:10.5px;font-weight:500;color:var(--ink-3);}
.lm-sign .ls-v{font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--accent-ink);margin-top:3px;}
.lm-sign .ls-v.zero{color:var(--down);}
.lm-sign.good{background:var(--accent-soft);border-color:#bfe6d3;box-shadow:inset 0 0 0 1.5px var(--accent);}
.lm-sign.bad{background:#fbe9e7;border-color:#f0cdc8;box-shadow:inset 0 0 0 1.5px var(--down);animation:segRedPulse 1.5s ease-in-out infinite;}
.lm-sign.dim{opacity:.46;}
.ls-flag{display:inline-flex;align-items:center;gap:5px;font-size:9.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:2px 7px;border-radius:6px;}
.ls-flag.live{color:var(--accent-ink);background:#fff;}
.ls-flag.done{color:var(--accent-ink);background:#fff;width:18px;height:18px;justify-content:center;padding:0;border-radius:50%;font-size:11px;}
.lm-sign.bad .ls-flag.live,.lm-sign.bad .ls-flag.done{color:var(--down);}

.cl-head{display:grid;grid-template-columns:minmax(0,2.2fr) 78px 118px 210px minmax(110px,.85fr);gap:14px;align-items:center;padding:0 14px 10px;font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-3);}
.cl-head .r,.cl-row .r{text-align:right;}
.cat-ladder{display:flex;flex-direction:column;gap:8px;}
.cl-row{display:grid;grid-template-columns:minmax(0,2.2fr) 78px 118px 210px minmax(110px,.85fr);gap:14px;align-items:center;padding:12px 14px;border:1px solid var(--line-2);border-radius:11px;transition:.15s;}
.cl-row:hover{background:#fafbfb;}
.cl-row.slim{background:var(--warn-soft);border-color:var(--warn-line);}
.cl-row.gone{opacity:.5;}
.cl-cat{display:flex;align-items:center;gap:12px;min-width:0;}
.cl-num{font-family:var(--mono);font-weight:700;font-size:17px;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--ink);color:#fff;flex:none;}
.cl-row.slim .cl-num{background:var(--warn);}
.cl-label{font-size:14px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cl-req{font-size:13px;font-weight:600;color:var(--ink-2);}
.cl-count{font-size:15px;color:var(--ink);}
.cl-count b{font-family:var(--mono);font-weight:600;}
.cl-count .cl-of{font-family:var(--mono);font-size:12px;color:var(--ink-3);}
.cl-prize{font-size:14px;font-weight:600;color:var(--accent-ink);}
.cl-bar-wrap{min-width:0;}
.cl-bar{height:10px;border-radius:6px;background:var(--line-2);overflow:hidden;}
.cl-bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--accent),var(--accent-strong));transition:width .7s cubic-bezier(.4,0,.2,1);}
.cl-row.slim .cl-bar i{background:linear-gradient(90deg,var(--amber),#a9781f);}

.seg-econ{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.econ-card{position:relative;overflow:hidden;}
.econ-card .m-val{font-size:27px;}
.econ-card.pos{box-shadow:inset 4px 0 0 var(--accent), var(--shadow);}
.econ-card.neg{box-shadow:inset 4px 0 0 var(--down), var(--shadow);}
.econ-card.gold{box-shadow:inset 4px 0 0 var(--amber), var(--shadow);}
.econ-card.gold .m-val{color:#a9781f;}
.num-pos{color:var(--accent-ink);} .num-neg{color:var(--down);} .num-zero{color:var(--ink-3);}

@media (max-width:1100px){
  .seg-stats{grid-template-columns:repeat(2,1fr);}
  .seg-econ{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:760px){
  .lm-list{grid-template-columns:1fr;}
  .seg-title{font-size:30px;}
  .cl-head{display:none;}
  .cl-row{grid-template-columns:1fr auto;row-gap:11px;padding:13px;}
  .cl-cat{order:1;}
  .cl-req{order:2;justify-self:end;font-family:var(--mono);}
  .cl-req::before{content:"≥ ";color:var(--ink-3);}
  .cl-count{order:3;grid-column:1;}
  .cl-count::before{content:"Aún pueden · ";font-family:var(--sans);font-size:11px;color:var(--ink-3);font-weight:600;}
  .cl-prize{order:4;grid-column:2;justify-self:end;}
  .cl-bar-wrap{order:5;grid-column:1 / -1;}
}
@media (max-width:560px){
  .seg-hero{padding:22px 18px 20px;}
  .seg-stats{grid-template-columns:1fr 1fr;gap:10px;}
  .seg-econ{grid-template-columns:1fr;}
  .seg-hero-top{flex-wrap:nowrap;}
  .lm-teams{flex-wrap:wrap;gap:6px;}
}

/* ----- Pantalla 6 · Pleno al 15 (barra + premio cat-15 con signos) ----- */
.cl-prize{display:flex;flex-direction:column;align-items:flex-end;gap:2px;}
.cl-prize-sub{font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.1px;color:var(--violet);white-space:nowrap;}

.seg-pleno-bar{display:flex;align-items:center;gap:11px;flex-wrap:wrap;padding:11px 14px;margin-bottom:14px;
  background:#faf7ff;border:1px solid var(--violet-soft);border-radius:11px;font-size:13px;color:var(--ink-2);}
.seg-pleno-bar .spb-match{font-weight:600;color:var(--ink);}
.seg-pleno-bar .spb-match b{font-family:var(--mono);color:var(--violet);font-weight:700;}
.seg-pleno-bar .spb-dash{color:var(--ink-3);margin:0 8px;}
.spb-stat{margin-left:auto;font-size:11.5px;font-weight:800;letter-spacing:.2px;padding:4px 12px;border-radius:999px;white-space:nowrap;}
.spb-stat.go{color:var(--accent-ink);background:var(--accent-soft);}
.spb-stat.maybe{color:var(--warn);background:var(--warn-soft);}
.spb-stat.no{color:var(--down);background:#fbe9e7;}

/* Icono "En vivo" del menú · dot verde pulsante (sustituye al play) */
.ic-live circle{transform-origin:50% 50%;animation:liveDotPulse 1.4s ease-in-out infinite;}
@keyframes liveDotPulse{0%,100%{opacity:1;}50%{opacity:.55;}}

/* ============================================================
   Pantalla Motor EV — rediseño en 3 bloques (2026-06-12)
   Sidebar reorganizado + Bloque 1 (resumen) + Bloque 2 (cartera)
   + Bloque 3 (tabla colapsable). Variables reutilizan tokens del :root.
   ============================================================ */

/* ancho de trabajo: sidebar algo más ancho para el configurador */
.wide.cols.motor2{grid-template-columns:360px minmax(0,1fr);}
.motor2 .sidebar .panel + .panel{margin-top:18px;}

/* sub-encabezado de grupo dentro del sidebar */
.grp-head{display:flex;align-items:center;gap:9px;padding:15px 20px 4px;}
.grp-head .gh-ic{width:24px;height:24px;border-radius:7px;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;font-family:var(--mono);font-weight:700;font-size:12px;flex:none;}
.grp-head .gh-tx{font-size:13px;font-weight:800;letter-spacing:-.2px;color:var(--ink);}
.grp-head .gh-sub{font-size:11px;color:var(--ink-3);font-weight:500;}

/* recaudación con override */
.input-eur.has-override{border-color:var(--warn);box-shadow:0 0 0 3px var(--warn-soft);}
.input-eur .ph-origin{padding:0 12px;font-family:var(--mono);font-size:12px;color:var(--ink-3);font-weight:600;align-self:stretch;display:flex;align-items:center;white-space:nowrap;}
.ovr-badge{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--warn);background:var(--warn-soft);border:1px solid var(--warn-line);padding:3px 8px;border-radius:6px;font-family:var(--sans);}
.ovr-badge .d{width:6px;height:6px;border-radius:50%;background:var(--warn);}
.ovr-clear{font-family:var(--sans);font-size:11.5px;font-weight:700;color:var(--ink-2);background:none;border:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px;padding:0;}
.ovr-clear:hover{color:var(--down);}
.rec-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px;}

/* fuentes de probabilidad */
.radio-opt.disabled{opacity:.5;cursor:not-allowed;background:var(--line-2);border-color:var(--line-2);}
.radio-opt.disabled:hover{border-color:var(--line-2);background:var(--line-2);}
.radio-opt .nodata{font-size:9.5px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:var(--ink-3);background:var(--panel);border:1px solid var(--line);padding:2px 7px;border-radius:5px;margin-left:auto;flex:none;}

/* fijos · módulo informativo */
.fijos-box{display:flex;flex-direction:column;gap:10px;padding:13px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fafbfb;}
.fijos-top{display:flex;align-items:center;gap:10px;}
.fijos-chip{font-family:var(--mono);font-weight:700;font-size:13px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:3px 9px;}
.fijos-chip b{color:var(--accent-ink);}
.fijos-tx{font-size:11.5px;color:var(--ink-2);line-height:1.35;}
.fijos-tx b{color:var(--ink);font-weight:700;}
.fijos-space{display:flex;align-items:baseline;gap:8px;font-family:var(--mono);font-size:12px;color:var(--ink-3);}
.fijos-space b{font-size:14px;color:var(--ink);font-weight:600;}

/* ETA del botón */
.eta-line{display:flex;align-items:center;justify-content:center;gap:8px;font-family:var(--mono);font-size:12px;color:var(--ink-3);font-weight:600;margin-top:2px;text-align:center;flex-wrap:wrap;}
.eta-line .dot{width:5px;height:5px;border-radius:50%;background:var(--ink-3);}
.eta-line b{color:var(--accent-ink);}

/* ============================================================
   BLOQUE 1 · Resumen del motor
   ============================================================ */
.motor-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--panel);box-shadow:var(--shadow);}
.mk{padding:18px 20px;border-right:1px solid var(--line-2);}
.mk:last-child{border-right:0;}
.mk .mk-lab{font-size:12px;font-weight:600;color:var(--ink-2);}
.mk .mk-val{font-family:var(--mono);font-size:30px;font-weight:600;letter-spacing:-1px;line-height:1;margin-top:9px;}
.mk .mk-val.accent{color:var(--accent-ink);}
.mk .mk-sub{font-size:11px;color:var(--ink-3);margin-top:8px;line-height:1.35;}
.mk .mk-sub b{color:var(--ink-2);font-weight:600;}
.mk.rec-mk .mk-origin{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--ink-2);background:var(--line-2);padding:2px 8px;border-radius:5px;margin-top:8px;}
.mk.rec-mk .mk-origin.ovr{color:var(--warn);background:var(--warn-soft);}
.metodo-note{font-size:11.5px;color:var(--ink-3);line-height:1.5;margin-top:14px;padding-left:14px;border-left:2px solid var(--line);}
.metodo-note b{color:var(--ink-2);font-weight:600;}
.pools-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:0;}
.pools-row .pl-lab{font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-3);margin-right:4px;}
.pool-chip{font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--ink-2);background:var(--line-2);padding:3px 9px;border-radius:6px;}
.pool-chip b{color:var(--ink);}

/* estado: sin ejecutar */
.motor-idle{display:flex;align-items:center;gap:22px;padding:30px 26px;flex-wrap:wrap;}
.motor-idle .mi-ic{width:60px;height:60px;border-radius:16px;background:var(--accent-soft);display:grid;place-items:center;font-size:30px;flex:none;}
.motor-idle .mi-tx{flex:1;min-width:240px;}
.motor-idle .mi-h{font-size:18px;font-weight:800;letter-spacing:-.3px;}
.motor-idle .mi-p{font-size:13.5px;color:var(--ink-2);margin-top:5px;max-width:520px;}
.motor-idle .mi-p b{color:var(--ink);font-weight:700;}

/* estado: calculando (corto y largo) */
.motor-calc{padding:24px 26px;}
.calc-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.calc-spin{width:42px;height:42px;border-radius:50%;border:3px solid var(--accent-soft);border-top-color:var(--accent);animation:calcSpin .8s linear infinite;flex:none;}
@keyframes calcSpin{to{transform:rotate(360deg);}}
.calc-head{flex:1;min-width:200px;}
.calc-head .ch-k{font-size:11px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--accent-ink);}
.calc-head .ch-t{font-size:17px;font-weight:800;letter-spacing:-.3px;margin-top:3px;}
.calc-head .ch-q{font-size:13px;color:var(--ink-2);margin-top:4px;min-height:18px;transition:opacity .3s;}
.calc-eta{text-align:right;font-family:var(--mono);}
.calc-eta .ce-big{font-size:26px;font-weight:600;letter-spacing:-1px;color:var(--ink);line-height:1;}
.calc-eta .ce-lab{font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-3);margin-top:5px;}
.calc-bar{height:10px;border-radius:6px;background:var(--line-2);overflow:hidden;margin-top:18px;position:relative;}
.calc-bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--accent),var(--accent-strong));transition:width .3s linear;}
.calc-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:11px;font-family:var(--mono);font-size:11.5px;color:var(--ink-3);font-weight:600;}
.calc-foot b{color:var(--ink-2);}
.calc-corto{display:flex;align-items:center;gap:14px;padding:18px 24px;}
.calc-corto .cc-spin{width:26px;height:26px;border-radius:50%;border:2.5px solid var(--accent-soft);border-top-color:var(--accent);animation:calcSpin .7s linear infinite;flex:none;}
.calc-corto .cc-tx{font-size:13.5px;color:var(--ink-2);}
.calc-corto .cc-tx b{color:var(--ink);font-weight:700;}
.calc-corto .cc-eta{margin-left:auto;font-family:var(--mono);font-size:13px;font-weight:600;color:var(--accent-ink);white-space:nowrap;}

/* ============================================================
   BLOQUE 2 · Selección de cartera — configurador
   ============================================================ */
.sel-block{position:relative;}
.sel-maxchip{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--accent-ink);background:var(--accent-soft);padding:4px 11px;border-radius:7px;white-space:nowrap;}
.sel-maxchip.dirty{color:var(--ink-3);background:var(--line-2);text-decoration:line-through;text-decoration-color:var(--ink-3);}
.config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line-2);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.cfg{background:var(--panel);padding:18px 20px;}
.cfg.full{grid-column:1 / -1;}
.cfg-lab{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-3);margin-bottom:13px;}
.cfg-lab .n{width:18px;height:18px;border-radius:5px;background:var(--ink);color:#fff;display:grid;place-items:center;font-family:var(--mono);font-size:10px;font-weight:700;}
.cfg-lab .lab-sub{font-weight:600;letter-spacing:0;text-transform:none;color:var(--ink-3);}

/* presupuesto */
.kbudget{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.kbudget .kb-cost{font-size:12.5px;color:var(--ink-2);}
.kbudget .kb-cost b{font-family:var(--mono);font-size:15px;color:var(--ink);font-weight:600;}
.kbudget .kb-cost small{display:block;font-size:11px;color:var(--ink-3);margin-top:2px;}

/* estrategia · tarjetas radio compactas en grid */
.strat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
.strat-card{display:flex;align-items:flex-start;gap:10px;padding:12px 13px;border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;transition:.14s;background:var(--panel);text-align:left;width:100%;font-family:var(--sans);}
.strat-card:hover{border-color:#d4d8dd;background:#fafbfb;}
.strat-card.on{border-color:var(--accent);background:var(--accent-soft);}
.strat-card .rd{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);flex:none;margin-top:1px;position:relative;}
.strat-card.on .rd{border-color:var(--accent);}
.strat-card.on .rd::after{content:"";position:absolute;inset:2px;border-radius:50%;background:var(--accent);}
.strat-card .sc-tx{display:flex;flex-direction:column;}
.strat-card .sc-tx .sc-t{font-size:13px;font-weight:700;color:var(--ink);}
.strat-card.on .sc-tx .sc-t{color:var(--accent-ink);}
.strat-card .sc-tx .sc-d{font-size:11px;color:var(--ink-3);margin-top:2px;line-height:1.3;}
.strat-card .sc-tag{font-size:9px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-3);background:var(--line-2);padding:2px 6px;border-radius:5px;margin-top:6px;display:inline-block;align-self:flex-start;}

/* filtros de candidatas · filas con switch */
.filt-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line-2);}
.filt-row:first-of-type{padding-top:0;}
.filt-row:last-child{border-bottom:0;padding-bottom:0;}
.filt-row .fr-tx{min-width:0;}
.filt-row .fr-t{font-size:13px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:8px;}
.filt-row .fr-d{font-size:11px;color:var(--ink-3);margin-top:3px;line-height:1.35;max-width:330px;}
.filt-row .fr-d b{color:var(--ink-2);font-weight:600;}
.filt-ctl{display:flex;align-items:center;gap:8px;flex:none;}
.filt-ctl.off{opacity:.4;}
.mini-eur{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden;height:34px;background:var(--panel);}
.mini-eur input{width:64px;border:0;outline:0;font-family:var(--mono);font-size:13px;font-weight:600;text-align:right;padding:0 8px;background:transparent;color:var(--ink);}
.mini-eur .ms{padding:0 9px;font-family:var(--mono);font-size:12px;color:var(--ink-3);border-left:1px solid var(--line-2);align-self:stretch;display:flex;align-items:center;}
.mini-eur .mp{padding:0 8px;font-family:var(--mono);font-size:12px;color:var(--ink-3);border-right:1px solid var(--line-2);align-self:stretch;display:flex;align-items:center;}
.range-pair{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;color:var(--ink-3);}
.mini-num{width:46px;height:34px;border:1px solid var(--line);border-radius:8px;font-family:var(--mono);font-size:13px;font-weight:600;text-align:center;color:var(--ink);background:var(--panel);outline:none;}
.mini-num:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);}

/* switch on/off */
.switch{width:36px;height:20px;border:1px solid var(--line);border-radius:999px;background:#e7eaee;position:relative;cursor:pointer;padding:0;transition:background .12s,border-color .12s;}
.switch::after{content:"";position:absolute;top:1px;left:1px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.15);transition:left .12s;}
.switch.on{background:var(--accent);border-color:var(--accent);}
.switch.on::after{left:17px;}

/* avanzado plegable */
.adv{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--panel);}
.adv-head{display:flex;align-items:center;gap:11px;padding:14px 18px;cursor:pointer;background:var(--panel);border:0;width:100%;font-family:var(--sans);text-align:left;}
.adv-head:hover{background:#fafbfb;}
.adv-head .ah-ic{width:26px;height:26px;border-radius:7px;background:var(--line-2);color:var(--ink-2);display:grid;place-items:center;font-size:14px;flex:none;}
.adv-head .ah-t{font-size:13.5px;font-weight:700;color:var(--ink);}
.adv-head .ah-s{font-size:11.5px;color:var(--ink-3);margin-top:1px;}
.adv-head .ah-chev{margin-left:auto;color:var(--ink-3);transition:transform .2s;}
.adv.open .ah-chev{transform:rotate(180deg);}
.adv-body{padding:4px 18px 18px;border-top:1px solid var(--line-2);display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
.adv-body .field{padding:14px 0 0;border-bottom:0;}
.chips-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px;}
.dchip{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--ink-2);background:var(--panel);border:1px solid var(--line);padding:5px 11px;border-radius:8px;cursor:pointer;transition:.14s;}
.dchip:hover{border-color:#d4d8dd;}
.dchip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink);}

/* botón generar + ETA dentro del configurador */
.gen-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 20px;background:var(--accent-soft);border:1px solid #cdebdd;border-radius:var(--radius);margin-top:16px;}
.gen-bar .gb-tx{flex:1;min-width:200px;font-size:12.5px;color:var(--accent-ink);}
.gen-bar .gb-tx b{font-weight:700;}
.gen-bar .btn{width:auto;flex:none;min-width:200px;}

/* ============================================================
   BLOQUE 2 · Resultado de la cartera
   ============================================================ */
.cartera-result{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);overflow:hidden;}
.cr-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 22px;border-bottom:1px solid var(--line-2);}
.cr-title{font-size:18px;font-weight:800;letter-spacing:-.3px;}
.cr-title .mono{color:var(--accent-ink);font-family:var(--mono);}
.cr-echo{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;color:var(--ink-3);font-weight:600;}
.cr-echo .e-pill{background:var(--line-2);padding:3px 9px;border-radius:6px;color:var(--ink-2);}
.cr-echo .e-pill b{color:var(--ink);}

/* hero adaptativo por estrategia */
.adapt-hero{display:flex;align-items:center;gap:26px;flex-wrap:wrap;padding:22px;background:linear-gradient(180deg,#fafdfb,var(--panel));border-bottom:1px solid var(--line-2);}
.adapt-main{min-width:240px;}
.adapt-main .ah-k{font-size:11px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--ink-3);}
.adapt-main .ah-big{font-family:var(--mono);font-size:48px;font-weight:600;letter-spacing:-2px;line-height:.95;color:var(--accent-ink);margin-top:8px;}
.adapt-main .ah-sub{font-size:13px;color:var(--ink-2);margin-top:8px;}
.adapt-main .ah-sub b{color:var(--ink);font-weight:700;}
.adapt-mini{display:flex;gap:26px;flex-wrap:wrap;flex:1;justify-content:flex-end;}
.adapt-mini .am{min-width:120px;}
.adapt-mini .am-lab{font-size:11.5px;color:var(--ink-2);font-weight:600;}
.adapt-mini .am-val{font-family:var(--mono);font-size:24px;font-weight:600;letter-spacing:-1px;margin-top:6px;color:var(--ink);}
.adapt-mini .am-val.accent{color:var(--accent-ink);}
.adapt-mini .am-sub{font-size:11px;color:var(--ink-3);margin-top:5px;}

/* embudo vertical de candidatas */
.funnel{padding:20px 22px;}
.funnel-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;}
.funnel-h .fh-t{font-size:13px;font-weight:800;letter-spacing:-.2px;}
.funnel-h .fh-s{font-size:11.5px;color:var(--ink-3);}
.funnel-list{display:flex;flex-direction:column;}
.fn-stage{display:grid;grid-template-columns:220px 1fr 150px;align-items:center;gap:16px;padding:9px 0;position:relative;}
.fn-name{min-width:0;}
.fn-name .fn-t{font-size:13px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:8px;}
.fn-name .fn-d{font-size:11px;color:var(--ink-3);margin-top:2px;}
.fn-name .fn-num{width:20px;height:20px;border-radius:6px;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;font-family:var(--mono);font-size:10px;font-weight:700;flex:none;}
.fn-track{height:26px;border-radius:7px;background:var(--line-2);overflow:hidden;position:relative;}
.fn-track i{display:block;height:100%;border-radius:7px;background:linear-gradient(90deg,var(--accent),var(--accent-strong));transition:width .5s cubic-bezier(.4,0,.2,1);}
.fn-track.base i{background:linear-gradient(90deg,#cfd5da,#b9c0c7);}
.fn-vals{text-align:right;font-family:var(--mono);}
.fn-vals .fv-count{font-size:16px;font-weight:600;color:var(--ink);}
.fn-vals .fv-delta{font-size:11px;color:var(--down);font-weight:600;margin-top:2px;}
.fn-vals .fv-delta.zero{color:var(--ink-3);}
.fn-stage.off{opacity:.42;}
.fn-stage.off .fn-t{text-decoration:line-through;text-decoration-color:var(--ink-3);}
.fn-stage.off .fn-track i{background:var(--line);}
.fn-off-tag{font-size:9px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-3);background:var(--line-2);padding:2px 7px;border-radius:5px;}
.fn-final{display:grid;grid-template-columns:220px 1fr 150px;align-items:center;gap:16px;margin-top:8px;padding-top:14px;border-top:1.5px dashed var(--line);}
.fn-final .ff-t{font-size:13px;font-weight:800;color:var(--ink);}
.fn-final .ff-t small{display:block;font-size:11px;color:var(--ink-3);font-weight:500;margin-top:2px;}
.fn-final .ff-mid{font-size:11.5px;color:var(--accent-ink);font-weight:700;text-align:center;}
.fn-final .ff-num{text-align:right;font-family:var(--mono);font-size:22px;font-weight:600;color:var(--accent-ink);letter-spacing:-1px;}
.favs-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:13px;border-top:1px solid var(--line-2);font-size:11.5px;color:var(--ink-3);}
.favs-line .fl-lab{font-weight:700;letter-spacing:.3px;text-transform:uppercase;font-size:10px;}
.fav-chip{font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--ink-2);background:var(--line-2);padding:2px 8px;border-radius:6px;}
.fav-chip b{color:var(--ink);}

/* diff vs anterior */
.diff-strip{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:13px 22px;background:#faf7ff;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);}
.diff-strip .ds-ic{width:30px;height:30px;border-radius:8px;background:var(--violet-soft);color:var(--violet);display:grid;place-items:center;font-size:15px;flex:none;}
.diff-strip .ds-tx{font-size:13px;color:var(--ink-2);}
.diff-strip .ds-tx b{color:var(--ink);font-weight:700;}
.diff-strip .ds-new{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--violet);background:var(--panel);border:1px solid var(--violet-soft);padding:3px 9px;border-radius:6px;margin-left:auto;}

/* tabla de columnas de la cartera */
.cols-table-wrap{overflow:auto;}
table.cols{width:100%;border-collapse:collapse;min-width:760px;}
table.cols thead th{text-align:right;font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-3);padding:11px 14px;border-bottom:1px solid var(--line);white-space:nowrap;}
table.cols thead th.left{text-align:left;}
table.cols tbody td{padding:9px 14px;border-bottom:1px solid var(--line-2);text-align:right;font-family:var(--mono);font-size:13px;white-space:nowrap;}
table.cols tbody td.left{text-align:left;}
table.cols tbody tr:last-child td{border-bottom:0;}
table.cols tbody tr.nueva{background:#faf7ff;box-shadow:inset 3px 0 0 var(--violet);}
table.cols tbody tr:hover td{background:#fafbfb;}
table.cols tbody tr.nueva:hover td{background:#f5f0fd;}
.col-rk{font-family:var(--mono);color:var(--ink-3);font-weight:600;width:30px;}
.col-ev{color:var(--accent-ink);font-weight:600;}
.col-ap{color:var(--ink-2);}
.nueva-tag{font-size:8.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--violet);background:var(--violet-soft);padding:1px 6px;border-radius:5px;margin-left:8px;}
.cs.fijo{box-shadow:inset 0 0 0 2px var(--ink);position:relative;}
.cs.fijo::after{content:"";position:absolute;top:-2px;right:-2px;width:6px;height:6px;border-radius:50%;background:var(--ink);}
.cr-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 22px;border-top:1px solid var(--line-2);font-family:var(--mono);font-size:11.5px;color:var(--ink-3);font-weight:600;}
.cr-foot b{color:var(--ink-2);}
.cr-foot .btn{width:auto;font-family:var(--sans);}

/* fijos legend */
.fijo-legend{display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);font-size:11px;color:var(--ink-3);}
.fijo-legend .fl-cs{width:18px;height:20px;border-radius:5px;display:grid;place-items:center;font-family:var(--mono);font-weight:600;font-size:11px;box-shadow:inset 0 0 0 2px var(--ink);color:var(--ink);background:#fff;}

/* estados del selector · insuficientes / error / generando */
.sel-warn{display:flex;align-items:center;gap:18px;padding:22px;background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:var(--radius);flex-wrap:wrap;}
.sel-warn .sw-ic{width:48px;height:48px;border-radius:13px;background:#fff;border:1px solid var(--warn-line);display:grid;place-items:center;font-size:24px;color:var(--warn);flex:none;}
.sel-warn .sw-tx{flex:1;min-width:240px;}
.sel-warn .sw-h{font-size:16px;font-weight:800;color:#8c6314;}
.sel-warn .sw-p{font-size:13px;color:#8c6314;margin-top:5px;max-width:520px;line-height:1.45;}
.sel-warn .sw-p b{color:#6f4f0c;font-weight:700;}
.sel-err{background:#fbf0ef;border-color:#f1d9d6;}
.sel-err .sw-ic{border-color:#f1d9d6;color:var(--down);}
.sel-err .sw-h,.sel-err .sw-p{color:var(--down);}
.sel-err .sw-p b{color:#a4362b;}
.sel-gen{display:flex;align-items:center;gap:16px;padding:22px;}
.sel-gen .sg-spin{width:32px;height:32px;border-radius:50%;border:3px solid var(--accent-soft);border-top-color:var(--accent);animation:calcSpin .7s linear infinite;flex:none;}
.sel-gen .sg-tx{font-size:14px;color:var(--ink-2);}
.sel-gen .sg-tx b{color:var(--ink);font-weight:700;}

/* ============================================================
   BLOQUE 3 · Tabla de exploración colapsable
   ============================================================ */
.explore{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);overflow:hidden;}
.explore-head{display:flex;align-items:center;gap:14px;padding:16px 22px;cursor:pointer;background:var(--panel);border:0;width:100%;font-family:var(--sans);text-align:left;}
.explore-head:hover{background:#fafbfb;}
.explore-head .eh-ic{width:34px;height:34px;border-radius:9px;background:var(--line-2);color:var(--ink-2);display:grid;place-items:center;flex:none;transition:.2s;font-size:15px;}
.explore.open .explore-head .eh-ic{background:var(--accent-soft);color:var(--accent-ink);}
.explore-head .eh-t{font-size:15px;font-weight:800;letter-spacing:-.2px;}
.explore-head .eh-s{font-size:12px;color:var(--ink-3);margin-top:2px;}
.explore-head .eh-s b{color:var(--ink-2);font-weight:600;}
.explore-head .eh-chev{margin-left:auto;color:var(--ink-3);transition:transform .2s;}
.explore.open .eh-chev{transform:rotate(180deg);}
.explore-body{border-top:1px solid var(--line-2);}
.view-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 22px;background:#fcfcfd;border-bottom:1px solid var(--line-2);}
.vf-note{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;color:var(--ink-2);background:var(--line-2);padding:5px 11px;border-radius:7px;}
.vf-note .d{width:6px;height:6px;border-radius:50%;background:var(--ink-3);}
.vf-field{display:flex;align-items:center;gap:6px;}
.vf-field .vl{font-size:11px;font-weight:700;color:var(--ink-3);}
.vf-in{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden;height:32px;background:var(--panel);}
.vf-in input{width:84px;border:0;outline:0;font-family:var(--mono);font-size:12px;font-weight:600;padding:0 8px;text-align:right;background:transparent;color:var(--ink);}
.vf-in .suf{padding:0 8px;font-family:var(--mono);font-size:11.5px;color:var(--ink-3);border-left:1px solid var(--line-2);align-self:stretch;display:flex;align-items:center;}
.vf-clear{margin-left:auto;font-family:var(--sans);font-size:12px;font-weight:700;color:var(--ink-2);background:none;border:0;cursor:pointer;}
.vf-clear:hover{color:var(--down);}

@media (max-width:1180px){
  .motor-kpis{grid-template-columns:repeat(2,1fr);}
  .mk:nth-child(2){border-right:0;}
  .config-grid{grid-template-columns:1fr;}
  .adv-body{grid-template-columns:1fr;}
  .fn-stage,.fn-final{grid-template-columns:160px 1fr 110px;}
}
@media (max-width:980px){
  .wide.cols.motor2{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .fn-stage,.fn-final{grid-template-columns:1fr;gap:6px;}
  .fn-vals{text-align:left;}
}
