*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
:root{--y:#FFC400;--yl:#FFF8E1;--k:#0a0a0a;--w:#fff;--g0:#fafafa;--g1:#f4f4f5;--g2:#e7e7ea;--g4:#9a9aa1;--g6:#55555c;--d:'Playfair Display',serif;--b:'Inter',sans-serif;
  --c1:#2a78d6;--c2:#eb6834;--c3:#1baf7a;--c4:#eda100;--ok:#166534;--warn:#9a5b00;--bad:#991b1b;
  --b1:#0a0a0a;--b1t:#fff;--b2:#ffc400;--b2t:#0a0a0a;--b3:#5b6b7a;--b3t:#fff;--b1s:#f2f2f2;--b2s:#fff8db;
  --r:22px;--sh:0 1px 2px rgba(16,16,24,.04),0 8px 24px rgba(16,16,24,.05)}
body{font-family:var(--b);background:var(--w);color:var(--k);min-height:100vh;font-size:15px;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit}
.top{display:flex;justify-content:space-between;align-items:center;padding:.9rem 1.25rem;border-bottom:1px solid var(--g2);max-width:1280px;margin:0 auto;gap:1rem}
.top-l{display:flex;align-items:center;gap:.8rem;min-width:0}
.brand-logo{height:34px;width:auto;max-width:160px;object-fit:contain;display:block}
#brand-top:not(:empty)+.logo{display:none}
.logo{font-family:var(--d);font-size:1.1rem;color:var(--k);text-decoration:none;white-space:nowrap}
.logo span{color:#e6b000}
.top-r{display:flex;align-items:center;gap:.9rem;min-width:0}
.ev-name{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:32vw}
.langs{display:inline-flex;border:1px solid var(--g2);border-radius:999px;padding:2px}
.langs button{border:none;background:none;font-size:.72rem;font-weight:700;letter-spacing:.06em;padding:.35rem .6rem;border-radius:999px;cursor:pointer;color:var(--g6);min-height:30px}
.langs button.on{background:var(--b1);color:var(--b1t)}
.lnk{background:none;border:none;text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-weight:500;color:var(--g6);min-height:40px;padding:0 .2rem}
.pill{font:600 .9rem var(--b);border-radius:999px;padding:.65rem 1.3rem;border:1.5px solid var(--k);cursor:pointer;background:transparent;color:var(--k);text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;min-height:44px;white-space:nowrap;transition:transform .15s,box-shadow .15s}
.pill:hover{transform:translateY(-1px)}
.pill.fill{background:var(--b1);color:var(--b1t);border-color:var(--b1)}
.pill.sm{font-size:.8rem;padding:.4rem .9rem;min-height:36px}
.pill:disabled{opacity:.35;cursor:not-allowed}
.eyebrow{font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--g6);margin-bottom:.5rem}
h1{font-family:var(--d);font-size:clamp(2rem,4.5vw,3.2rem);line-height:1.06}
h2{font-family:var(--d);font-size:clamp(1.45rem,2.5vw,1.95rem);line-height:1.15}
h3{font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--g6);margin-bottom:.9rem}
.lead{color:var(--g6);line-height:1.6;margin-top:.9rem;font-size:1.05rem}
.muted{color:var(--g6);font-size:.88rem;line-height:1.5}
.note{margin-top:.9rem;font-size:.8rem}
/* acceso */
.gate{max-width:640px;margin:0 auto;padding:4.5rem 1.25rem}
.code-row{display:flex;gap:1rem;margin-top:2rem;align-items:center}
.code-row input{flex:1;min-width:0;font:500 1.1rem var(--b);padding:.7rem 0;border:none;border-bottom:1.5px solid var(--k);outline:none;letter-spacing:.06em;text-transform:uppercase;border-radius:0;background:transparent}
.msg{min-height:1.4em;margin-top:.6rem;font-size:.88rem;color:var(--bad)}
.or{margin-top:1.2rem;color:var(--g6);font-size:.9rem}
.or a{color:var(--k);font-weight:500}
/* app */
#app{max-width:1280px;margin:0 auto;padding:1rem 1.25rem 3rem}
.tabs{display:flex;gap:4px;background:var(--g1);border-radius:999px;padding:4px;width:max-content;max-width:100%;overflow-x:auto;scrollbar-width:none}
.tabs button{border:none;background:none;padding:.6rem 1.15rem;border-radius:999px;cursor:pointer;font-weight:600;font-size:.88rem;color:var(--g6);min-height:40px;white-space:nowrap}
.tabs button.on{background:#fff;color:var(--k);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.modebar{margin-top:.8rem;background:var(--yl);border-radius:14px;padding:.7rem 1rem;font-size:.88rem;line-height:1.45}
.pane{padding-top:1.6rem}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.4rem}
.head-l{display:flex;align-items:center;gap:1rem;min-width:0}
.head-logo{height:56px;width:auto;max-width:140px;object-fit:contain;border-radius:10px}
.acts{display:flex;gap:.5rem;flex-wrap:wrap}
.card{background:var(--g1);border-radius:var(--r);padding:1.4rem 1.5rem;min-width:0}
.card.w{background:#fff;border:1px solid var(--g2);box-shadow:var(--sh)}
.card.k{background:var(--b1);color:var(--b1t)}
.card.k h3{color:var(--b2)}
.card.alert{background:#fff7e8}
.grid{display:grid;gap:12px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.span2{grid-column:span 2}
.sec{margin:2.6rem 0 1rem;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.sec h2{margin:0}
/* tarjetas de número */
.kpi{background:#fff;border:1px solid var(--g2);border-radius:18px;padding:1.05rem 1.2rem;box-shadow:var(--sh);display:flex;flex-direction:column;gap:.2rem;position:relative;overflow:hidden}
.kpi .kl{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--g6)}
.kpi b{font-family:var(--d);font-size:2.15rem;line-height:1.1;font-variant-numeric:tabular-nums}
.kpi small{font-size:.76rem;color:var(--g6)}
.kpi.acc{background:var(--b1);color:var(--b1t);border-color:var(--b1)}
.kpi.acc .kl,.kpi.acc small{color:inherit;opacity:.75}
/* barras modernas */
.bars{display:flex;flex-direction:column;gap:11px}
.bar{display:grid;grid-template-columns:minmax(80px,32%) 1fr auto;gap:.75rem;align-items:center;font-size:.86rem}
.bar.rnk{grid-template-columns:auto minmax(80px,32%) 1fr auto}
.bar .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.bar .t{height:10px;background:var(--g1);border-radius:999px;position:relative}
.bar .f{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:var(--b1);min-width:6px;transition:width .5s ease}
.bar.hl .f{background:var(--b2)}
.bar.hl .n{font-weight:700}
.bar .mk{position:absolute;top:-5px;bottom:-5px;width:2px;background:var(--k);border-radius:2px;opacity:.55}
.bar .v{font-weight:700;font-variant-numeric:tabular-nums;min-width:3.2em;text-align:right}
.rk{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--g1);font-size:.75rem;font-weight:700;color:var(--g6)}
.rk.r3{background:var(--b3);color:var(--b3t)}
.rk.r1{background:var(--b2);color:var(--b2t)}
.legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:.8rem;color:var(--g6);margin-bottom:.9rem}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:.35rem;vertical-align:-1px}
.scale{display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;color:var(--g6)}
.scale i{display:block;width:90px;height:8px;border-radius:999px}
/* matriz de fortalezas */
.matrix{display:grid;gap:4px;overflow-x:auto;font-size:.82rem;align-items:stretch}
.matrix .mh{font-size:.68rem;font-weight:700;letter-spacing:.04em;color:var(--g6);text-transform:uppercase;padding:.2rem .3rem .5rem;line-height:1.2;display:flex;align-items:flex-end;justify-content:center;text-align:center;overflow:hidden;text-overflow:ellipsis}
.matrix .mh.tot{color:var(--k)}
.matrix .mn{font-weight:600;padding:.55rem .4rem .55rem 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center}
.matrix .mc{border-radius:10px;display:grid;place-items:center;font-weight:700;font-variant-numeric:tabular-nums;min-height:38px;transition:transform .15s}
.matrix .mc:hover{transform:scale(1.06)}
.matrix .mc.tot{background:var(--b2s);color:var(--k);border:1.5px solid var(--b2)}
/* dona */
.donut{width:132px;height:132px;border-radius:50%;display:grid;place-items:center;flex:0 0 132px}
.donut>div{width:96px;height:96px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.donut b{font-family:var(--d);font-size:1.45rem;line-height:1.1}
.donut small{font-size:.68rem;color:var(--g6);text-transform:uppercase;letter-spacing:.08em}
.budget,.ring-row{display:flex;gap:1.6rem;align-items:center;flex-wrap:wrap}
/* tablas modernas */
.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:.88rem}
.tbl th{text-align:left;font-weight:700;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--g6);padding:.6rem .7rem;background:var(--g0);border-bottom:1px solid var(--g2)}
.tbl th:first-child{border-top-left-radius:12px}.tbl th:last-child{border-top-right-radius:12px}
.tbl th.r{text-align:right}
.tbl td{padding:.7rem .7rem;border-bottom:1px solid var(--g1);vertical-align:middle}
.tbl tbody tr{transition:background .15s}
.tbl tbody tr:hover td{background:var(--g0)}
.tbl td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}
.tbl tr.win td{background:var(--b2s)}
.tbl tr:last-child td{border-bottom:none}
.tag{display:inline-block;font-size:.72rem;font-weight:600;padding:.18rem .6rem;border-radius:999px;background:var(--g1);color:var(--g6);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.tag.ok{background:#e7f5ec;color:var(--ok)}.tag.warn{background:#fff3dc;color:var(--warn)}.tag.bad{background:#fde8e8;color:var(--bad)}
.tag.k{background:var(--b1);color:var(--b1t)}
.scroll{overflow-x:auto}
.goal-t{font-weight:600;line-height:1.4;font-size:1.02rem}
.goal-m{margin:.8rem 0 .4rem;font-weight:700;font-size:1.05rem}
.goal-m span{display:block;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--g6);font-weight:700}
.tl{list-style:none;display:flex;flex-direction:column;gap:0}
.tl li{display:grid;grid-template-columns:92px 1fr;gap:.9rem;padding:.6rem 0;border-left:2px solid var(--g2);padding-left:1rem;position:relative}
.tl li::before{content:"";position:absolute;left:-6px;top:.85rem;width:10px;height:10px;border-radius:50%;background:var(--b1)}
.tl li b{font-size:.85rem;white-space:nowrap}
.tl li small{display:block;color:var(--g6);font-size:.78rem;margin-top:.15rem}
.spons{margin-top:2.4rem;display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;align-items:center;justify-content:center;padding:1.2rem;border-top:1px solid var(--g2);border-bottom:1px solid var(--g2)}
.spons span{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--g6);flex-basis:100%;text-align:center}
.spons b{font-size:1rem;font-weight:600;color:var(--k)}
.quote{line-height:1.5;margin-bottom:.5rem}
.order{padding-left:1.3rem;line-height:1.9}
.powered{margin-top:3rem;text-align:center;font-size:.72rem;color:var(--g4)}
/* formularios */
.form{display:grid;gap:1rem}
.form label,.fl{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;font-weight:600;color:var(--g6)}
.form input,.form select,.form textarea,.in{font:1rem var(--b);padding:.5rem 0;border:none;border-bottom:1.5px solid var(--k);background:transparent;outline:none;border-radius:0;color:var(--k);width:100%;min-width:0}
.form textarea{resize:vertical}
.in.sm{font-size:.9rem;padding:.35rem 0}
.colr{display:flex;align-items:center;gap:.6rem}
.colr input[type=color]{width:46px;height:40px;border:1px solid var(--g2);border-radius:12px;padding:3px;background:#fff;cursor:pointer}
.colr code{font-size:.8rem;color:var(--k)}
.logo-up{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;padding:.4rem 0}
.logo-up img{height:48px;max-width:160px;object-fit:contain;background:var(--g1);border-radius:10px;padding:4px}
.preview{display:flex;flex-direction:column;gap:.5rem}
.pv{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;padding:.8rem;border-radius:14px;background:var(--g1)}
.pv span{font-weight:600;font-size:.8rem;padding:.45rem .9rem;border-radius:999px}
.pv-b1{background:var(--b1);color:var(--b1t)}.pv-b2{background:var(--b2);color:var(--b2t)}.pv-b3{background:var(--b3);color:var(--b3t)}
.pv img{height:32px;max-width:120px;object-fit:contain}
.row{display:flex;gap:.6rem;align-items:center}
.list{display:flex;flex-direction:column;gap:8px}
.item{background:#fff;border:1px solid var(--g2);border-radius:14px;padding:.8rem .9rem;display:grid;gap:.6rem}
.item .row>*{flex:1}
.x{border:none;background:none;width:36px;height:36px;border-radius:50%;cursor:pointer;color:var(--g4);font-size:1.2rem;flex:0 0 36px!important}
.x:hover{background:var(--g1);color:var(--k)}
.seg{display:inline-flex;flex-wrap:wrap;gap:4px;background:var(--g1);border-radius:16px;padding:4px}
.seg button{border:none;background:none;padding:.55rem .9rem;border-radius:12px;cursor:pointer;font-weight:600;font-size:.84rem;color:var(--g6);min-height:40px;text-align:left}
.seg button.on{background:#fff;color:var(--k);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.chk{display:flex;gap:.5rem;align-items:center;font-size:.85rem;cursor:pointer;min-height:36px}
.chk input{width:18px;height:18px;accent-color:var(--b1)}
.crit-cats{display:flex;gap:.8rem;flex-wrap:wrap}
.sum{font-size:.85rem;font-weight:600}
.sum.bad{color:var(--bad)}
/* calificar */
.judges{display:flex;gap:6px;flex-wrap:wrap}
.judges button{border:1.5px solid var(--g2);background:#fff;border-radius:999px;padding:.55rem 1rem;cursor:pointer;font-weight:600;min-height:44px}
.judges button.on{background:var(--b1);color:var(--b1t);border-color:var(--b1)}
.judges button small{font-weight:500;opacity:.7;margin-left:.3rem}
.team{background:#fff;border:1px solid var(--g2);border-radius:20px;padding:1.2rem 1.3rem;display:grid;gap:.9rem}
.team.done{border-color:var(--b1)}
.team.cf{opacity:.55}
.team-h{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}
.team-h b{font-family:var(--d);font-size:1.3rem;display:block}
.team-h .muted{margin-top:.2rem}
.crit{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.4rem 1rem;align-items:center;padding:.5rem 0;border-top:1px solid var(--g1)}
.crit .cn{font-weight:600;font-size:.92rem}
.crit .cd{font-size:.78rem;color:var(--g6);line-height:1.35}
.dots{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.dots button{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--g2);background:#fff;cursor:pointer;font-weight:600;font-size:.88rem}
.dots button.on{background:var(--b1);color:var(--b1t);border-color:var(--b1)}
.dots.ten button{width:34px;height:34px;font-size:.8rem}
.time{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;font-size:.88rem}
.time input{width:90px}
.progress{height:6px;background:var(--g1);border-radius:6px;overflow:hidden;margin-top:.4rem}
.progress i{display:block;height:100%;background:var(--b1);border-radius:6px}
.anchors{font-size:.78rem;color:var(--g6);line-height:1.5}
.qr-card{display:grid;gap:.6rem;justify-items:start}
.qr{width:170px;max-width:100%;background:#fff;border-radius:12px}
.qr-code{font:700 1.25rem var(--b);letter-spacing:.06em}
/* pantalla */
.screen{position:fixed;inset:0;background:var(--b1);color:var(--b1t);z-index:10001;display:flex;flex-direction:column}
.screen-in{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:4vh 6vw}
.screen-x{position:absolute;top:16px;right:16px;width:48px;height:48px;border-radius:50%;border:none;background:rgba(127,127,127,.25);color:inherit;font-size:1.6rem;cursor:pointer}
.screen-nav{position:absolute;bottom:20px;right:20px;display:flex;gap:8px}
.screen-nav button{width:52px;height:52px;border-radius:50%;border:none;background:rgba(127,127,127,.25);color:inherit;font-size:1.8rem;cursor:pointer}
.scr-logo{max-height:11vh;max-width:30vw;object-fit:contain;margin-bottom:3vh;background:#fff;border-radius:14px;padding:8px}
.scr-eye{color:var(--b2);font-size:clamp(.9rem,1.6vw,1.2rem);letter-spacing:.2em;text-transform:uppercase;font-weight:700}
.scr-t{font-family:var(--d);font-size:clamp(2.2rem,6vw,5rem);line-height:1.05;margin:.6rem 0 2.5rem}
.scr-sub{font-size:clamp(1.2rem,2.4vw,2rem);opacity:.85}
.scr-pat{display:flex;flex-wrap:wrap;gap:1.2rem 2.5rem;justify-content:center;font-size:clamp(1.3rem,3vw,2.4rem);font-weight:700}
.scr-dots{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);display:flex;gap:8px}
.scr-dots i{width:8px;height:8px;border-radius:999px;background:currentColor;opacity:.3}
.scr-dots i.on{opacity:1;width:24px}
.podio{display:flex;gap:2vw;align-items:flex-end;justify-content:center;width:100%;max-width:1100px}
.podio div{flex:1;background:var(--b3);color:var(--b3t);border-radius:22px 22px 0 0;padding:1.4rem 1rem;display:flex;flex-direction:column;gap:.4rem}
.podio div.p1{background:var(--b2);color:var(--b2t);height:44vh}
.podio div.p2{height:34vh}.podio div.p3{height:27vh;opacity:.85}
.podio em{font-style:normal;font-family:var(--d);font-size:clamp(2rem,4vw,3.4rem)}
.podio strong{font-size:clamp(1rem,2vw,1.6rem);line-height:1.2}
.podio span{font-size:clamp(.85rem,1.3vw,1.1rem);opacity:.85}
.print-foot{display:none}
@media(max-width:900px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.ev-name{display:none}}
@media(max-width:640px){.g2,.g3{grid-template-columns:1fr}.span2{grid-column:auto}.crit{grid-template-columns:1fr}.dots{justify-content:flex-start}
  .bar{grid-template-columns:minmax(70px,38%) 1fr auto;gap:.5rem}.bar.rnk{grid-template-columns:auto minmax(70px,36%) 1fr auto}
  .code-row{flex-direction:column;align-items:stretch}.podio{flex-direction:column;align-items:stretch}.podio div{height:auto!important;border-radius:14px}
  .head-logo{height:44px}.donut{width:110px;height:110px;flex-basis:110px}.donut>div{width:80px;height:80px}.tl li{grid-template-columns:70px 1fr}}
@media print{
  .top,.tabs,.acts,.modebar,.screen,.gate,.lnk,.noprint,.powered{display:none!important}
  .pane{display:block!important;padding-top:0}
  .pane[hidden]{display:none!important}
  .card,.kpi,.team,.item,.matrix{break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .matrix .mc,.bar .f,.bar .t,.tag,.tbl tr.win td,.rk,.donut,.kpi.acc,.tbl th{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .card.w,.kpi{box-shadow:none}
  body{font-size:12px}
  .print-foot{display:block;font-size:10px;color:#777;margin-top:1rem;text-align:center}
}
.tags-w .tag{white-space:normal;overflow:visible;line-height:1.35;border-radius:10px}
