:root{--ink:#171717;--red:#c91f1f;--muted:#6b7280;--ok:#19733b}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f2f2f2;color:var(--ink)}
.topbar{position:sticky;top:0;z-index:20;background:#151515;color:#fff;padding:12px 20px;display:flex;justify-content:space-between}
.brand{font-weight:800}.badge{background:var(--red);padding:5px 9px;border-radius:999px;font-size:.8rem}
.hero{background:#111;display:flex;justify-content:center;overflow:hidden}.hero-poster{display:block;width:auto;max-width:100%;height:auto;max-height:720px;object-fit:contain;background:#111}
.container{max-width:980px;margin:auto;padding:22px}.panel{background:#fff;border-radius:16px;padding:24px;box-shadow:0 7px 30px rgba(0,0,0,.08);margin:20px 0}
.stepper{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:18px 0 28px}.step{text-align:center;color:#888;font-size:.82rem}
.step .dot{width:34px;height:34px;border-radius:50%;background:#ccc;color:#fff;display:grid;place-items:center;margin:0 auto 6px;font-weight:700}.step.active{color:#111;font-weight:700}.step.active .dot{background:var(--red)}.step.done .dot{background:var(--ok)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:720px){.grid{grid-template-columns:1fr}.hero-poster{width:100%;max-height:none}.step span{display:none}}
label{display:block;font-weight:700;margin:4px 0 6px}input,select,textarea{width:100%;padding:12px;border:1px solid #cfcfcf;border-radius:9px;font-size:1rem;background:#fff}textarea{min-height:100px}
.choice{border:2px solid #dedede;border-radius:14px;padding:18px;cursor:pointer;background:#fff}.choice.selected{border-color:var(--red);background:#fff6f6}
.choice h3{margin:0 0 6px}.price{font-size:1.6rem;font-weight:900}.btnrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
button,.btn{border:0;border-radius:9px;padding:13px 18px;font-size:1rem;font-weight:800;cursor:pointer}.primary{background:var(--red);color:#fff}.secondary{background:#e8e8e8}.dark{background:#171717;color:#fff}
.hidden{display:none!important}.note{background:#fff8dd;border-left:4px solid #e0a800;padding:12px;border-radius:7px}.ok{background:#e9f7ef;border-left:4px solid var(--ok);padding:12px;border-radius:7px}
.summary{display:grid;grid-template-columns:1fr auto;gap:8px;border-top:1px solid #ddd;padding-top:12px}.summary div:nth-child(even){font-weight:800}
.footer{background:#171717;color:#fff;padding:28px;text-align:center;margin-top:40px}.small{font-size:.88rem;color:var(--muted)}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}@media(max-width:720px){.kpis{grid-template-columns:1fr 1fr}}
.kpi{background:#fafafa;border:1px solid #ddd;border-radius:12px;padding:18px}.kpi b{font-size:1.8rem}
table{width:100%;border-collapse:collapse;font-size:.93rem}th,td{padding:10px;border-bottom:1px solid #e4e4e4;text-align:left}th{background:#fafafa}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:15px 0}.search{max-width:420px}.tag{padding:4px 8px;border-radius:999px;font-size:.78rem;font-weight:800}.tag.paid{background:#dff3e5;color:#155b2d}.tag.pending{background:#fff1cf;color:#7a5700}.tag.delivered{background:#dde8ff;color:#183f78}
.includes-box{background:#fff7e6;border:3px solid #b7791f;border-radius:16px;padding:22px;margin-top:20px}.includes-box h3{font-size:1.4rem;margin:0 0 12px;color:#7a4c00}.includes-box ul{margin:0;padding-left:22px;font-size:1.08rem;line-height:1.65}.award-block{border:1px solid #ddd;border-radius:12px;padding:16px;margin:14px 0}.award-block h3{margin-top:0}.winner{background:#fff7d6!important}.intolerance{background:#fff4f4}.gold{background:#b7791f;color:#fff}

.print-sheet{display:none}
@media print{
  @page{size:A5 portrait;margin:7mm}
  body{background:#fff;font-family:Arial,Helvetica,sans-serif}
  body>*:not(main){display:none!important}
  main.container{max-width:none;margin:0;padding:0}
  main .panel{box-shadow:none;margin:0;padding:0}
  .stepper,.step-pane:not([data-step="5"]),.screen-only{display:none!important}
  .step-pane[data-step="5"]{display:block!important}
  .print-sheet{display:block!important;color:#111;font-size:10pt}
  .print-header{text-align:center;border-bottom:2px solid #111;padding-bottom:6px;margin-bottom:8px}
  .print-header h1{font-size:22pt;margin:0}.print-header h2{font-size:13pt;margin:3px 0}
  .print-grid{display:grid;grid-template-columns:1fr 42mm;gap:8px}
  .print-data{display:grid;grid-template-columns:38mm 1fr;border-top:1px dotted #777}
  .print-data div{padding:3px 2px;border-bottom:1px dotted #999}
  .print-data .lbl{font-weight:700}
  .print-number{border:2px solid #111;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:42mm;text-align:center}
  .print-number b{font-size:38pt;color:#c91f1f}
  .print-payment{border:1px solid #111;padding:6px;margin-top:8px}
  .tear{border-top:2px dashed #111;margin:12px 0 8px;padding-top:8px}
  .tear-grid{display:grid;grid-template-columns:35mm 1fr;gap:10px;align-items:center}
  .tear-number{border:2px solid #111;text-align:center;padding:6px}.tear-number b{font-size:30pt}
  .print-foot{text-align:center;font-size:8pt;margin-top:6px}
  .online-print-top{display:grid;grid-template-columns:42mm 1fr;gap:7mm;align-items:center;border-bottom:2px solid #111;padding-bottom:5mm;margin-bottom:4mm}
  .online-print-poster{width:42mm;max-height:55mm;object-fit:contain}
  .online-print-title{text-align:center}.online-print-title h1{font-size:20pt;margin:2mm 0}.online-print-title h2{font-size:11pt;margin:0}
  .online-print-number{border:2px solid #111;margin-top:4mm;padding:2mm}.online-print-number span{display:block;font-size:8pt}.online-print-number b{display:block;font-size:30pt;color:#c91f1f}
  .online-print-data{grid-template-columns:36mm 1fr}
  .online-sponsors-title{text-align:center;font-weight:700;font-size:8pt;margin-top:4mm}
  .online-print-sponsors{display:grid;grid-template-columns:repeat(10,1fr);gap:1.2mm;align-items:center;margin-top:1.5mm}
  .online-print-sponsors img{width:100%;height:8mm;object-fit:contain}
  body.printing-admin main.container{display:none!important}
  body.printing-admin .admin-print-sheet{display:block!important}
}
@media print{
  body.printing-admin #appAdmin>section:not(#regDetailPanel){display:none!important}
  body.printing-admin #regDetailPanel{display:block!important;box-shadow:none!important;padding:0!important;margin:0!important}
  body.printing-admin #regDetailPanel>.admin-head,body.printing-admin #regDetailForm>*:not(.admin-print-sheet){display:none!important}
  body.printing-admin #regDetailForm{display:block!important}
  body.printing-admin .admin-print-sheet{display:block!important;color:#111;font-size:10pt}
}

.payment-confirm{margin-top:16px;padding:16px;border:2px solid #19733b;border-radius:12px;background:#fff}
.payment-confirm h3{margin-top:0}.pay-big{font-size:1.18rem;word-break:break-word}

.form-nav{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:-10px 0 20px}
.form-nav button{min-width:180px}
@media(max-width:600px){.form-nav{flex-direction:column}.form-nav button{width:100%}}

.candidate-btn{display:flex;flex-direction:column;gap:3px;width:100%;text-align:left;margin-top:10px;padding:13px 15px;border:1px solid #d5d5d5;border-radius:10px;background:#fff;cursor:pointer}
.candidate-btn:hover{border-color:#a51f24;background:#fff8f8}
.candidate-btn span{font-size:.88rem;color:#666}
button:disabled{opacity:.65;cursor:wait}

/* v1.5 — colaboradores originales SVG alrededor del cartel */
.sponsors-hero{display:grid;grid-template-columns:minmax(300px,1fr) minmax(360px,560px) minmax(300px,1fr);gap:18px;align-items:stretch;padding:22px;max-width:1800px;margin:0 auto;background:#111}
.poster-column{display:flex;align-items:flex-start;justify-content:center}
.sponsors-hero .hero-poster{width:100%;max-width:560px;max-height:none;border-radius:10px}
.sponsors-side{background:#fff;border-radius:12px;padding:14px;display:flex;flex-direction:column;min-width:0}
.sponsors-title{text-align:center;font-weight:900;letter-spacing:.12em;font-size:.82rem;color:#555;margin:2px 0 12px}
.sponsors-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;align-content:start;flex:1}
.sponsor-logo{height:72px;display:flex;align-items:center;justify-content:center;padding:7px;min-width:0}
.sponsor-logo img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.club-rat{display:block;width:105px;max-width:42%;height:auto;object-fit:contain;align-self:center;margin:8px auto 0}
.sponsors-mobile{display:none}
@media(max-width:1100px){
 .sponsors-hero{grid-template-columns:minmax(220px,1fr) minmax(330px,500px) minmax(220px,1fr);gap:12px;padding:14px}
 .sponsor-logo{height:62px;padding:5px}
}
@media(max-width:820px){
 .sponsors-hero{display:block;padding:0;background:#111}
 .sponsors-side{display:none}
 .poster-column{display:flex}
 .sponsors-hero .hero-poster{width:100%;max-width:none;border-radius:0}
 .sponsors-mobile{display:block;background:#fff;padding:18px 14px 22px;border-bottom:1px solid #ddd}
 .sponsors-mobile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
 .sponsors-mobile .sponsor-logo{height:68px;padding:6px}
}
@media(max-width:480px){
 .sponsors-mobile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .sponsors-mobile .sponsor-logo{height:72px}
}

/* v1.6 administración */
.admin-login-card{max-width:520px;margin:55px auto}.admin-head{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:1000;overflow:auto;padding:24px}.desk-modal{max-width:1050px;margin:0 auto}
.person-results{display:grid;gap:8px;margin:12px 0}.person-card{text-align:left;padding:12px;border:1px solid #ddd;border-radius:10px;background:#fff;display:grid;gap:3px;cursor:pointer}.person-card:hover{border-color:#111}.person-card.already{opacity:.65;cursor:not-allowed}.person-card strong{color:#a00}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid2 label{display:grid;gap:5px}
textarea{width:100%;box-sizing:border-box}select{width:100%;box-sizing:border-box;padding:11px;border:1px solid #bbb;border-radius:8px;background:#fff}
@media(max-width:700px){.grid2{grid-template-columns:1fr}.modal-bg{padding:8px}}

/* v1.6.1 — mejoras de Taquilla */
.desk-inline{margin:18px 0 20px;scroll-margin-top:58px}
.desk-inline .desk-modal{max-width:none;margin:0;border:2px solid #e1e1e1;box-shadow:none;background:#fafafa}
.person-results{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.person-card{position:relative;min-height:116px;padding:14px 16px;background:#fff;border:1px solid #d8d8d8;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.person-card:hover:not(.already){border-color:#d31e25;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.person-name{font-size:1.05rem;font-weight:800;line-height:1.2}
.person-contact,.person-meta{font-size:.9rem;font-weight:400;color:#444;line-height:1.35;overflow-wrap:anywhere}
.person-meta b{color:#111}.dot{padding:0 .25em;color:#999}
.select-hint{margin-top:4px;color:#b71920;font-size:.82rem;font-weight:800}
.person-card.already{background:#f3f3f3;opacity:1;color:#777}
.person-card.already .person-name,.person-card.already .person-contact,.person-card.already .person-meta{color:#888}
.already-badge{display:inline-block;margin-top:5px;padding:5px 8px;border-radius:6px;background:#dedede;color:#555;font-size:.78rem;font-weight:900}
.desk-section-title{margin:16px 0 2px;padding-bottom:7px;border-bottom:2px solid #222;font-size:1.08rem;font-weight:900}
.desk-help{margin:5px 0 13px}
.historical-missing{border:2px solid #d69200 !important;background:#fff9e8 !important}
.missing-note{display:block;margin-top:4px;color:#8a5b00;font-size:.76rem;font-weight:800}
@media(max-width:850px){.person-results{grid-template-columns:1fr}}

/* v1.6.2 — tabla administración y fusión de duplicados */
#appAdmin .panel table{width:100%;table-layout:fixed;border-collapse:collapse}
#appAdmin .panel table th,#appAdmin .panel table td{padding:9px 7px;vertical-align:middle;overflow-wrap:anywhere;font-size:.88rem}
#appAdmin .panel table th:nth-child(1){width:6%}
#appAdmin .panel table th:nth-child(2){width:27%}
#appAdmin .panel table th:nth-child(3){width:12%}
#appAdmin .panel table th:nth-child(4){width:9%}
#appAdmin .panel table th:nth-child(5){width:12%}
#appAdmin .panel table th:nth-child(6){width:9%}
#appAdmin .panel table th:nth-child(7){width:11%}
#appAdmin .panel table th:nth-child(8){width:14%}
.status-badge{display:inline-block;padding:5px 7px;border-radius:999px;font-weight:800;font-size:.78rem;white-space:nowrap}
.status-pendiente_pago{background:#fff1c7;color:#725000}.status-pagada,.status-entregada{background:#def4df;color:#1f6424}.status-cancelada{background:#eee;color:#666}
.dup-card,.merge-option{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid #ddd;border-radius:10px;background:#fff;cursor:pointer}
.dup-card input,.merge-option input{width:20px;height:20px;flex:0 0 auto;margin-top:2px}
.dup-card span,.merge-option span{display:grid;gap:4px}.dup-card small,.merge-option small{font-weight:400;color:#555}
.merge-bar{position:sticky;bottom:10px;margin-top:12px;padding:12px 14px;border-radius:10px;background:#111;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;z-index:5}
.merge-bar[hidden]{display:none}.merge-preview{margin-top:16px;padding:16px;border:2px solid #222;border-radius:12px;background:#fafafa;scroll-margin-top:55px}.merge-option{margin:8px 0}
.warning-box{margin:14px 0;padding:12px;border-radius:8px;background:#fff1c7;color:#5e4500}
@media(max-width:800px){
 #appAdmin .panel>div[style*="overflow:auto"]{overflow-x:auto!important}
 #appAdmin .panel table{min-width:900px;table-layout:auto}
}

/* v1.6.3 — barrera anti-duplicados al crear persona nueva en taquilla */
.newdup-check{margin:18px 0;padding:16px;border:3px solid #d69200;border-radius:14px;background:#fff9e8}
.newdup-check[hidden]{display:none}.newdup-head h3{margin:0 0 6px}.newdup-head p{margin:0 0 12px}
.compare-entered{display:grid;gap:4px;padding:12px;border:2px solid #222;border-radius:10px;background:#fff;margin-bottom:12px}
.compare-entered span{font-size:1.05rem;font-weight:800}.compare-entered small{color:#555}
.newdup-list{display:grid;gap:10px}.newdup-card{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px;border:1px solid #d6b45c;border-radius:10px;background:#fff}
.newdup-card>div{display:grid;gap:4px;min-width:0}.newdup-card small{color:#555;overflow-wrap:anywhere}.match-reason{font-size:.8rem;font-weight:800;color:#8a5b00}
.newdup-actions{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:14px}
.danger-outline{background:#fff;color:#9b1c1c;border:2px solid #9b1c1c}
@media(max-width:700px){.newdup-card{display:grid}.newdup-card button{width:100%}.newdup-actions button{width:100%}}

/* v1.6.4 — ficha y gestión de inscripciones */
.row-detail{white-space:nowrap;padding:7px 10px}
.reg-detail-panel{scroll-margin-top:20px}
.detail-status{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}
.detail-status>div{padding:10px 14px;background:#f4f4f4;border-radius:9px;border:1px solid #ddd}

.participant-detail{display:block;margin-top:6px;padding:5px 9px;font-size:12px;width:max-content}.delivery-list-badge{display:block;width:max-content;margin-top:5px;padding:3px 7px;border-radius:999px;background:#dff3e2;color:#176b2c;font-size:11px;font-weight:800}.delivery-box{margin:18px 0;padding:16px;border:2px solid #ddd;border-radius:12px;background:#fafafa}.delivery-pending{color:#8a6500;font-weight:900}.delivery-ok{color:#187232;font-weight:900}#deliveryPending{display:flex;align-items:end;gap:12px;flex-wrap:wrap}#deliveryPending label{min-width:220px;margin:0}@media(min-width:900px){.admin-table{width:100%;table-layout:auto}.admin-table th,.admin-table td{padding-left:6px;padding-right:6px}}

/* v1.6.6 · gestión clara de pagos */
.payment-admin-box{margin:18px 0;padding:16px;border:2px solid #d6d6d6;border-radius:12px;background:#fafafa}
.payment-admin-title{font-size:17px;margin-bottom:12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.payment-pending{color:#8a6500;font-weight:900}.payment-ok{color:#187232;font-weight:900}
#paymentPending{display:flex;align-items:end;gap:12px;flex-wrap:wrap}
#paymentPending label{min-width:260px;margin:0}#paymentPending select{margin-top:6px}
#paymentDone p{margin:4px 0 12px;line-height:1.6}

/* v1.6.7 · Premios */
.awards-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.award-card{border:1px solid #ddd;border-radius:12px;padding:14px;background:#fafafa}.award-card h3{margin-top:0}.award-club{grid-column:1/-1}.award-row{padding:9px 0;border-bottom:1px solid #e5e5e5}.award-row:last-child{border-bottom:0}.award-row small{display:block;margin-top:3px}.club-tools{margin-top:16px}.club-tools summary{cursor:pointer;font-weight:800}.club-alias-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #e5e5e5}.club-alias-action{display:flex;gap:8px;align-items:center}.club-alias-action input{min-width:220px}@media(max-width:760px){.awards-grid{grid-template-columns:1fr}.award-club{grid-column:auto}.club-alias-row{align-items:stretch;flex-direction:column}.club-alias-action{flex-direction:column;align-items:stretch}.club-alias-action input{min-width:0}}

/* v1.6.8 · sugerencias humanas para variantes de motoclub */
.club-suggestions{margin-top:16px;padding:14px;border:2px solid #d7a900;border-radius:10px;background:#fffbea}
.club-suggestions>p{margin:5px 0 10px}
.club-suggestion{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:9px 0;border-top:1px solid #eadfae}
.club-suggestion:first-of-type{border-top:0}

/* v1.7.0 · usuarios de administración */
.user-editor{margin:14px 0 20px;padding:16px;border:2px solid #d7d7d7;border-radius:12px;background:#fafafa}
.user-editor h3{margin-top:0}.checkline{display:flex;align-items:center;gap:8px;margin:10px 0}
.checkline input{width:auto}

.admin-print-sheet{display:none}


/* v1.7.3.1 — corrección impresión A5 desde administración */
@media print{
  body.printing-admin main.container{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
  }
  body.printing-admin #appAdmin{
    display:block!important;
  }
  body.printing-admin #regDetailPanel{
    display:block!important;
    visibility:visible!important;
  }
  body.printing-admin #regDetailForm{
    display:block!important;
    visibility:visible!important;
  }
  body.printing-admin #adminPrintSheet{
    display:block!important;
    visibility:visible!important;
    position:static!important;
    width:100%!important;
  }
  body.printing-admin #adminPrintSheet *{
    visibility:visible!important;
  }
}

.campaign-status{margin:14px 0;padding:14px;border:1px solid #ddd;border-radius:10px;background:#fafafa}.campaign-status .warn{color:#a00;font-weight:700}

/* v1.8.0.2: impresión pública limpia; nunca imprime cabeceras/textos del formulario */
@media print{
  body:not(.printing-admin) main.container>.panel>h2,
  body:not(.printing-admin) main.container>.panel>p,
  body:not(.printing-admin) main.container>.panel>.stepper,
  body:not(.printing-admin) main.container>.panel>.form-nav,
  body:not(.printing-admin) main.container>.panel>.step-pane:not([data-step="5"]){
    display:none!important;
  }
}

.campaign-preview{margin:14px 0;padding:16px;border:1px solid #ddd;border-radius:12px;background:#fff}
.campaign-preview-title{font-weight:800;font-size:1.05rem;margin-bottom:10px}
.campaign-metrics{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:10px;margin-bottom:8px}
.campaign-metrics>div{padding:12px;border-radius:10px;background:#f3f3f3;text-align:center}
.campaign-metrics span{display:block;font-size:1.55rem;font-weight:800}.campaign-metrics small{display:block}
.campaign-metrics .campaign-final{background:#fff4df;border:2px solid #d59a00}
.campaign-progress{height:14px;background:#e7e7e7;border-radius:99px;overflow:hidden;margin:10px 0}
.campaign-progress>div{height:100%;background:#238636}
@media(max-width:800px){.campaign-metrics{grid-template-columns:1fr 1fr}.campaign-metrics .campaign-final{grid-column:1/-1}}
