/*
 * app.css — Hoja de estilos del SITIO PÚBLICO (views/home.php y layout app).
 * Alcance: portada del juego (banda del pozo, vitrina de premios, cómo jugar,
 *   verificación de tickets, cabecera y pie públicos). NO cubre el panel admin
 *   (admin.css) ni la taquilla (terminal.css).
 * Sistema de diseño:
 *   - Variables CSS en :root (claro) y en [data-theme="dark"] (oscuro): --ink,
 *     --paper, --surface, --surface-soft, --muted, --green, --green-dark, --yellow,
 *     --red, --line, sombras. El conmutador theme.js escribe data-theme en <html>
 *     y estas ramas redefinen toda la paleta en cascada.
 *   - color-mix(in srgb, ...) para derivar tonos translúcidos desde las variables
 *     (requiere navegadores modernos, coherente con el resto del stack visual).
 *   - Tipografías: "Archivo" para texto y "Fraunces" (serif) para titulares y
 *     cifras destacadas (identidad del juego).
 *   - Las bolas de números (result-ball) se tiñen por posición con las clases
 *     .result-ball--N definidas más abajo en este archivo.
 * Convención: clases BEM-like con prefijo de sección (jackpot-, prize-, draw-,
 *   verify-, site-). Los componentes de Bootstrap 5 (navbar, botones, rejilla)
 *   se sobrescriben aquí solo cuando hace falta ajustarlos a la marca.
 */

:root {
    color-scheme: light;
    --ink: #17201d;
    --fixed-ink: #17201d;
    --paper: #f4f1e8;
    --surface: #fff;
    --surface-soft: #ecece7;
    --muted: #616863;
    --green: #b8860b;
    --green-dark: #8b6914;  /* dorado: marca Lotto Dorado */
    --yellow: #ffd43b;
    --red: #d94841;
    --line: #d7d4ca;
    --ticket-shadow: #c9c5b8;
    --shadow: 0 12px 30px rgba(23, 32, 29, .1);
    --shadow-soft: 0 5px 16px rgba(23, 32, 29, .07);
}

[data-theme="dark"] {
    color-scheme: dark;
    --ink: #edf4f0;
    --paper: #101713;
    --surface: #19231e;
    --surface-soft: #26332c;
    --muted: #aab7b0;
    --green: #d4af37;
    --green-dark: #b8860b;
    --line: #39483f;
    --ticket-shadow: #080d0a;
    --shadow: 0 14px 34px rgba(0, 0, 0, .3);
    --shadow-soft: 0 6px 18px rgba(0, 0, 0, .22);
}

* { box-sizing: border-box; }

body {
    margin: 0;
    color: var(--ink);
    background-color: var(--paper);
    background-image: linear-gradient(135deg, color-mix(in srgb, var(--green) 5%, transparent), transparent 36%);
    font-family: "Archivo", sans-serif;
    letter-spacing: 0;
}

.site-header { position: sticky; top: 0; z-index: 20; background: color-mix(in srgb, var(--surface) 90%, transparent); border-bottom: 1px solid var(--line); box-shadow: 0 5px 18px rgba(23,32,29,.05); backdrop-filter: blur(14px); }
.navbar { min-height: 72px; }
.navbar-brand { display: flex; align-items: center; gap: .7rem; color: var(--ink); font-size: 1.15rem; }
.brand-mark { display: block; width: 40px; height: 40px; flex: 0 0 40px; border-radius: 10px; box-shadow: 0 7px 18px rgba(8,127,91,.2); }
.age-notice { color: var(--muted); font-size: .78rem; font-weight: 600; }
.site-login-link { display: inline-flex; min-height: 40px; align-items: center; justify-content: center; gap: .4rem; }
.theme-toggle { display: grid; width: 40px; height: 40px; flex: 0 0 40px; place-items: center; color: var(--ink); background: linear-gradient(145deg, var(--surface), var(--surface-soft)); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-soft); transition: transform .18s ease, border-color .18s ease; }
.theme-toggle:hover, .theme-toggle:focus-visible { color: var(--green); border-color: var(--green); }

.jackpot-band {
    overflow: hidden;
    color: #fff;
    background-color: var(--green-dark);
    background-image: linear-gradient(120deg, #064f3c, var(--green-dark) 58%, #16362d), radial-gradient(circle at 12% 20%, rgba(255, 212, 59, .18) 0 2px, transparent 3px);
    background-size: auto, 34px 34px;
}

.jackpot-content { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3rem; align-items: center; padding-block: 3.25rem; }
.eyebrow, .step-label { display: block; margin-bottom: .45rem; font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.jackpot-band h1 { max-width: 720px; margin: 0 0 .65rem; font-family: "Fraunces", serif; font-size: clamp(2.15rem, 6vw, 4.5rem); line-height: .98; letter-spacing: 0; }
.jackpot-band p { margin: 0; color: rgba(255, 255, 255, .78); }
.draw-status { min-width: 250px; padding: 1.4rem; color: var(--fixed-ink); background: linear-gradient(145deg, #ffe77f, var(--yellow)); border: 2px solid var(--fixed-ink); border-radius: 8px; box-shadow: 7px 7px 0 var(--fixed-ink); }
.draw-status span { display: block; font-size: .78rem; }
.draw-status strong { display: block; margin: .2rem 0 1rem; font-family: "Fraunces", serif; font-size: 1.75rem; }
.draw-status__label { font-weight: 800; text-transform: uppercase; }
.draw-status__date { margin-bottom: .35rem; font-weight: 700; }
.draw-financials { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; margin: .8rem 1rem 0; padding-top: .75rem; border-top: 1px solid var(--line); }
.draw-financials span { display: grid; gap: .2rem; color: var(--muted); font-size: .62rem; font-weight: 800; text-transform: uppercase; }
.draw-financials strong { color: var(--ink); font-size: .72rem; }

.prize-showcase { padding-block: 3.25rem 4rem; background-image: repeating-linear-gradient(135deg, transparent 0 18px, color-mix(in srgb, var(--green) 4%, transparent) 18px 19px); }
.prize-showcase__heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.5rem; }
.prize-showcase__heading .eyebrow { color: var(--green); }
.prize-showcase__heading h2 { margin: 0; font-family: "Fraunces", serif; font-size: 2.35rem; letter-spacing: 0; }
.prize-showcase__live { display: flex; align-items: center; gap: .5rem; padding: .5rem .7rem; color: var(--green-dark); background: color-mix(in srgb, var(--green) 10%, var(--surface)); border: 1px solid color-mix(in srgb, var(--green) 35%, var(--line)); border-radius: 6px; font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.prize-showcase__live i { width: 8px; height: 8px; background: var(--green); border-radius: 50%; box-shadow: 0 0 0 4px color-mix(in srgb, var(--green) 18%, transparent); }
.prize-awards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.prize-award { --award-accent: var(--green); position: relative; display: flex; min-width: 0; min-height: 265px; overflow: hidden; flex-direction: column; padding: 1.25rem; background: linear-gradient(155deg, var(--surface), color-mix(in srgb, var(--award-accent) 7%, var(--surface))); border: 1px solid var(--line); border-top: 6px solid var(--award-accent); border-radius: 8px; box-shadow: var(--shadow-soft); animation: prize-reveal .55s both; transition: transform .2s ease, box-shadow .2s ease; }
.prize-award:nth-child(2) { animation-delay: .08s; }
.prize-award:nth-child(3) { animation-delay: .16s; }
.prize-award:nth-child(4) { animation-delay: .24s; }
.prize-award:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.prize-award--6 { --award-accent: #d5a200; }
.prize-award--5 { --award-accent: #b8860b; }
.prize-award--4 { --award-accent: #d94841; }
.prize-award--3 { --award-accent: #356aa0; }
.prize-award header { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.prize-award header i { color: var(--award-accent); font-size: 1rem; }
.prize-award__hits { display: flex; flex: 1; align-items: baseline; gap: .55rem; padding-block: 1.1rem; }
.prize-award__hits strong { color: var(--award-accent); font-family: "Fraunces", serif; font-size: 5rem; line-height: .9; letter-spacing: 0; }
.prize-award__hits span { color: var(--muted); font-size: .8rem; font-weight: 800; text-transform: uppercase; }
.prize-award__amount { padding-top: 1rem; border-top: 1px solid var(--line); }
.prize-award__amount span, .prize-award__amount strong { display: block; }
.prize-award__amount span { margin-bottom: .35rem; color: var(--muted); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.prize-award__amount strong { overflow-wrap: anywhere; color: var(--ink); font-family: "Fraunces", serif; font-size: 1.45rem; line-height: 1.1; letter-spacing: 0; }
@keyframes prize-reveal { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
.btn { border-radius: 10px; transition: transform .18s ease, box-shadow .18s ease; }
.btn:hover:not(:disabled) { transform: translateY(-1px); }
.btn-success { --bs-btn-bg: var(--green); --bs-btn-border-color: transparent; --bs-btn-hover-bg: var(--green-dark); --bs-btn-hover-border-color: transparent; background-image: linear-gradient(135deg, var(--green), var(--green-dark)); box-shadow: 0 8px 20px rgba(8,127,91,.2); }

.site-footer { padding-block: 1.5rem; color: var(--muted); background: var(--surface); border-top: 1px solid var(--line); font-size: .72rem; }
.site-footer__content { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 2rem; align-items: center; }
.site-footer__brand { display: grid; gap: .25rem; }
.site-footer__brand strong { color: var(--ink); font-family: "Fraunces", serif; font-size: 1rem; letter-spacing: 0; }
.site-footer__socials { display: flex; gap: .55rem; align-items: center; }
.site-footer__socials > span { display: grid; width: 42px; height: 42px; place-items: center; color: var(--ink); background: var(--surface-soft); border: 1px solid var(--line); border-radius: 50%; font-size: 1.15rem; }
.site-footer__age { display: flex; align-items: center; gap: .6rem; color: var(--ink); font-weight: 800; }
.site-footer__age b { display: grid; width: 52px; height: 52px; place-items: center; color: #fff; background: var(--red); border: 3px solid color-mix(in srgb, var(--red) 65%, var(--ink)); border-radius: 50%; font-family: "Archivo", sans-serif; font-size: 1.1rem; letter-spacing: 0; }
.offcanvas-title { font-family: "Fraunces", serif; }
.rules-list { padding-left: 1.2rem; }
.rules-list li { padding: .6rem 0; border-bottom: 1px solid var(--line); }

.verify-header { background: var(--surface); border-bottom: 1px solid var(--line); }
.verify-header .container { display: flex; min-height: 72px; align-items: center; justify-content: space-between; }
.verify-hero { color: #fff; background: #8b6914; }
.verify-hero .container { padding-block: 2.5rem; }
.verify-hero h1 { margin: 0; font-family: "Fraunces", serif; font-size: clamp(2rem, 5vw, 3.7rem); letter-spacing: 0; }
.verify-hero p { max-width: 620px; margin: .6rem 0 0; color: rgba(255,255,255,.75); }
.verify-main { min-height: calc(100vh - 130px); }
.verify-content { display: grid; gap: 1rem; padding-block: 1.5rem 3rem; }
.verify-status { display: grid; grid-template-columns: 56px 1fr; gap: 1rem; align-items: center; padding: 1.25rem; background: var(--surface); border: 1px solid var(--line); border-left: 5px solid var(--green); border-radius: 8px; box-shadow: var(--shadow-soft); }
.verify-status > div, .verify-ticket-heading > div, .verify-result > div, .verify-prize > div, .verify-marketing > div { min-width: 0; }
.verify-status > i { color: var(--green); font-size: 2.5rem; }
.verify-status.is-invalid { border-left-color: var(--red); }
.verify-status.is-invalid > i { color: var(--red); }
.verify-status span, .verify-ticket-heading span, .verify-number-group > span, .verify-result span, .verify-prize span, .verify-marketing span { color: var(--muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.verify-status h2, .verify-result h2, .verify-prize h2, .verify-marketing h2 { margin: .15rem 0 .3rem; font-family: "Fraunces", serif; letter-spacing: 0; }
.verify-status p, .verify-result p, .verify-prize p, .verify-marketing p { margin: 0; color: var(--muted); font-size: .82rem; }
.verify-ticket-data { padding: 1.25rem; background: var(--surface); border: 1px solid var(--line); border-radius: 8px; }
.verify-ticket-heading { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px dashed var(--line); }
.verify-ticket-heading div { display: grid; gap: .15rem; }
.verify-ticket-heading div:last-child { text-align: right; }
.verify-ticket-heading strong { font-size: 1.05rem; }
.verify-ticket-heading strong, .verify-prize h2 { overflow-wrap: anywhere; }
.verify-ticket-data dl { display: grid; grid-template-columns: repeat(2, 1fr); margin: 0; }
.verify-ticket-data dl div { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--line); font-size: .78rem; }
.verify-ticket-data dl div:nth-child(odd) { padding-right: 1rem; }
.verify-ticket-data dl div:nth-child(even) { padding-left: 1rem; border-left: 1px solid var(--line); }
.verify-ticket-data dt { color: var(--muted); font-weight: 500; }
.verify-ticket-data dd { margin: 0; text-align: right; font-weight: 700; }
.verify-number-group { padding-top: 1rem; }
.verify-number-group > div, .verify-winning-numbers { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .65rem; }
.verify-number-group b, .verify-winning-numbers b { display: grid; width: 42px; height: 42px; place-items: center; color: #fff; background: var(--green); border-radius: 50%; font-size: .8rem; }
.result-balls { display: flex; flex-wrap: wrap; gap: .55rem; align-items: center; }
.result-ball { display: grid; width: min(50px, 12vw); aspect-ratio: 1; place-items: center; flex: 0 0 auto; border: 2px solid rgba(255,255,255,.72); border-radius: 50%; color: #17201d; box-shadow: 0 5px 12px rgba(23,32,29,.16), inset 0 2px 0 rgba(255,255,255,.55); font-size: clamp(.72rem, 2vw, 1rem); font-weight: 800; line-height: 1; }
.result-ball--1 { color: #6b4f00; background: linear-gradient(145deg, #fff3a6, #ffd43b 52%, #d9a900); }
.result-ball--2 { color: #06456e; background: linear-gradient(145deg, #d9f0ff, #74c0fc 52%, #3b8dcc); }
.result-ball--3 { color: #761f24; background: linear-gradient(145deg, #ffd0d0, #ff8787 52%, #d95862); }
.result-ball--4 { color: #145c2a; background: linear-gradient(145deg, #c9f7d2, #69db7c 52%, #35a854); }
.result-ball--5 { color: #5b216d; background: linear-gradient(145deg, #f3d4ff, #da77f2 52%, #a347bf); }
.result-ball--6 { color: #713a00; background: linear-gradient(145deg, #ffe0b2, #ffa94d 52%, #db7620); }
.result-ball--7 { color: #17446b; background: linear-gradient(145deg, #d8f5ff, #66d9e8 52%, #168aad); }
.result-ball--8 { color: #5b4010; background: linear-gradient(145deg, #fff0c2, #fcc419 52%, #e67700); }
.result-ball--9 { color: #5c1835; background: linear-gradient(145deg, #ffd6e7, #f783ac 52%, #c2255c); }
.result-ball--10 { color: #244c38; background: linear-gradient(145deg, #d3f9d8, #8ce99a 52%, #2f9e44); }
.result-ball--11 { color: #3e2768; background: linear-gradient(145deg, #e5dbff, #9775fa 52%, #6741d9); }
.result-ball--12 { color: #59320d; background: linear-gradient(145deg, #ffe8cc, #ffb366 52%, #d9480f); }
.result-ball--13 { color: #0b5360; background: linear-gradient(145deg, #c5f6fa, #3bc9db 52%, #1098ad); }
.result-ball--14 { color: #533b08; background: linear-gradient(145deg, #fff9db, #ffe066 52%, #fab005); }
.result-ball--15 { color: #631c36; background: linear-gradient(145deg, #ffe3ec, #faa2c1 52%, #e64980); }
.result-ball--16 { color: #1d5735; background: linear-gradient(145deg, #d8f5a2, #a9e34b 52%, #66a80f); }
.result-ball--17 { color: #3a286b; background: linear-gradient(145deg, #e5dbff, #b197fc 52%, #7950f2); }
.result-ball--18 { color: #65300b; background: linear-gradient(145deg, #fff4e6, #ffc078 52%, #f76707); }
.result-ball--19 { color: #155047; background: linear-gradient(145deg, #c3fae8, #63e6be 52%, #0ca678); }
.result-ball--20 { color: #714d0a; background: linear-gradient(145deg, #fff3bf, #ffd43b 52%, #f08c00); }
.result-ball--21 { color: #651d3d; background: linear-gradient(145deg, #ffdeeb, #ff8fab 52%, #d6336c); }
.result-ball--22 { color: #245c2b; background: linear-gradient(145deg, #e3f9e5, #8ce99a 52%, #37b24d); }
.result-ball--23 { color: #443276; background: linear-gradient(145deg, #f0e6ff, #c0aaff 52%, #845ef7); }
.result-ball--24 { color: #713b09; background: linear-gradient(145deg, #fff0db, #ffa94d 52%, #e8590c); }
.result-ball--25 { color: #14525b; background: linear-gradient(145deg, #d0f4f7, #66d9e8 52%, #0b7285); }
.result-ball--26 { color: #584305; background: linear-gradient(145deg, #fff9db, #ffe066 52%, #f59f00); }
.result-ball--27 { color: #761d46; background: linear-gradient(145deg, #ffe3ec, #f783ac 52%, #c2255c); }
.result-ball--28 { color: #1e5630; background: linear-gradient(145deg, #d3f9d8, #69db7c 52%, #2b8a3e); }
.result-ball--29 { color: #4c3270; background: linear-gradient(145deg, #e5dbff, #da77f2 52%, #9c36b5); }
.result-ball--30 { color: #703609; background: linear-gradient(145deg, #ffe8cc, #ffb366 52%, #d9480f); }
.result-ball--31 { color: #0f514b; background: linear-gradient(145deg, #c3fae8, #63e6be 52%, #099268); }
.result-ball--32 { color: #5d4308; background: linear-gradient(145deg, #fff3bf, #fcc419 52%, #e67700); }
.result-ball--33 { color: #6b1e3e; background: linear-gradient(145deg, #ffd6e7, #ff8787 52%, #d6336c); }
.result-ball--34 { color: #24552c; background: linear-gradient(145deg, #d8f5d0, #8ce99a 52%, #2f9e44); }
.result-ball--35 { color: #3e2b6d; background: linear-gradient(145deg, #e5dbff, #9775fa 52%, #6741d9); }
.result-ball--36 { color: #65320b; background: linear-gradient(145deg, #ffe8cc, #ffa94d 52%, #e8590c); }
.result-ball--37 { color: #075261; background: linear-gradient(145deg, #c5f6fa, #66d9e8 52%, #1098ad); }
.result-ball--38 { color: #594107; background: linear-gradient(145deg, #fff3bf, #ffd43b 52%, #f08c00); }
.result-ball--39 { color: #661d40; background: linear-gradient(145deg, #ffe3ec, #faa2c1 52%, #d6336c); }
.result-ball--40 { color: #1c5830; background: linear-gradient(145deg, #d3f9d8, #69db7c 52%, #2b8a3e); }
.result-ball--41 { color: #472c70; background: linear-gradient(145deg, #f0e6ff, #da77f2 52%, #9c36b5); }
.result-ball--42 { color: #71370a; background: linear-gradient(145deg, #ffe8cc, #ffa94d 52%, #d9480f); }
.result-balls--compact { min-width: 230px; gap: .25rem; }
.result-balls--compact .result-ball { width: 32px; font-size: .68rem; }
.winner-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem .5rem; padding: 0 1rem 1rem; color: var(--muted); font-size: .68rem; }
.winner-summary span { padding: .35rem .45rem; background: var(--surface-soft); border-radius: 5px; }
.winner-summary strong { color: var(--ink); }
.verify-result, .verify-prize, .verify-safety { display: flex; gap: 1rem; align-items: center; padding: 1.25rem; background: var(--surface); border: 1px solid var(--line); border-radius: 8px; }
.verify-result > i, .verify-prize > i, .verify-safety > i { color: var(--green); font-size: 2rem; }
.verify-result:not(.is-pending) { justify-content: space-between; }
.verify-hits { display: grid; min-width: 96px; justify-items: center; padding: .75rem; color: #fff; background: var(--green); border-radius: 8px; }
.verify-hits strong { font-family: "Fraunces", serif; font-size: 2rem; line-height: 1; }
.verify-hits span { color: rgba(255,255,255,.75); }
.verify-prize.has-prize { color: #17201d; background: #ffd43b; border-color: #17201d; }
.verify-prize.has-prize > i, .verify-prize.has-prize span, .verify-prize.has-prize p { color: #17201d; }
.verify-safety > i { color: var(--red); }
.verify-safety p { margin: .2rem 0 0; color: var(--muted); font-size: .78rem; }
.verify-marketing { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: 1.5rem; color: #fff; background: #17201d; border-radius: 8px; }
.verify-marketing span, .verify-marketing p { color: rgba(255,255,255,.65); }
.verify-marketing a { flex: 0 0 auto; padding: .75rem 1rem; color: #17201d; background: #ffd43b; border-radius: 6px; font-size: .76rem; font-weight: 800; text-decoration: none; }

[data-theme="dark"] .btn-outline-dark { --bs-btn-color: var(--ink); --bs-btn-border-color: var(--line); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--green); --bs-btn-hover-border-color: var(--green); }
[data-theme="dark"] .btn-dark { --bs-btn-bg: #29352f; --bs-btn-border-color: #48574f; --bs-btn-hover-bg: #34443b; }
[data-theme="dark"] .text-dark { color: var(--ink) !important; }
[data-theme="dark"] .offcanvas { --bs-offcanvas-bg: var(--surface); --bs-offcanvas-color: var(--ink); }
[data-theme="dark"] .prize-showcase__live { color: var(--green); }

@media (max-width: 991.98px) {
    .jackpot-content { grid-template-columns: 1fr; gap: 1.75rem; }
    .draw-status { width: min(100%, 390px); }
    .prize-awards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .site-footer__content { grid-template-columns: 1fr auto; }
    .site-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 575.98px) {
    .navbar-brand { font-size: .95rem; }
    .site-login-link { width: 40px; padding-inline: 0; }
    .jackpot-content { padding-block: 2.5rem; }
    .draw-status { min-width: 0; }
    .prize-showcase { padding-block: 2.5rem; }
    .prize-showcase__heading { align-items: flex-start; flex-direction: column; }
    .prize-showcase__heading h2 { font-size: 2rem; }
    .prize-awards { grid-template-columns: 1fr; }
    .prize-award { min-height: 220px; }
    .prize-award__hits strong { font-size: 4rem; }
    .site-footer__content { grid-template-columns: 1fr; gap: 1.25rem; }
    .site-footer__brand { grid-column: auto; }
    .site-footer__socials { flex-wrap: wrap; }
    .site-footer__age { justify-content: space-between; }
    .verify-hero .container { padding-block: 2rem; }
    .verify-status { grid-template-columns: 42px 1fr; }
    .verify-status > i { font-size: 2rem; }
    .verify-ticket-data dl { grid-template-columns: 1fr; }
    .verify-ticket-data dl div:nth-child(odd), .verify-ticket-data dl div:nth-child(even) { padding-inline: 0; border-left: 0; }
    .verify-number-group b, .verify-winning-numbers b { width: 34px; height: 34px; font-size: .7rem; }
    .verify-result:not(.is-pending), .verify-marketing { align-items: stretch; flex-direction: column; }
    .verify-marketing a { text-align: center; }
    .result-balls { gap: .35rem; }
    .result-ball { width: 40px; }
    .winner-summary { grid-template-columns: 1fr; }
}

@media (max-width: 300px) {
    .verify-header .navbar-brand > span:last-child { display: none; }
    .verify-header .container { padding-inline: .65rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Reglamento oficial público (views/partials/rules.php).
   Hero con degradado dorado de marca y tarjetas con acento superior dorado;
   #reglamento desplaza el ancla hacia abajo para no quedar bajo el navbar fijo. */
#reglamento { scroll-margin-top: 5.5rem; }
.rules-hero { padding: 2.5rem 1.5rem; color: #2b1e00; background: linear-gradient(135deg, #d4af37 0%, #f6d97a 50%, #b8860b 100%); border-radius: 1rem; }
.rules-hero h2 { margin-bottom: .5rem; font-family: "Fraunces", serif; font-weight: 700; }
.rules-hero p { color: rgba(43,30,0,.75); }
.rules-card { border: 0; border-top: 3px solid #d4af37; box-shadow: var(--shadow-soft, 0 8px 24px rgba(23,32,29,.08)); height: 100%; }
.rules-card .card-title { display: flex; gap: .5rem; align-items: center; margin-bottom: .75rem; font-weight: 700; }
.rules-card .card-title i { color: #b8860b; }
.rules-card p, .rules-card li { color: var(--muted); font-size: .88rem; }
.rules-card strong { color: var(--ink); }
.rules-table { --bs-table-accent-bg: transparent; margin-top: .5rem; }
.rules-table thead th { color: var(--muted); font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; border-bottom-color: #d4af37; }
.rules-table tbody td { color: var(--ink); }

[data-theme="dark"] .rules-card { --bs-card-bg: var(--surface); --bs-card-color: var(--ink); }
[data-theme="dark"] .rules-card p, [data-theme="dark"] .rules-card li { color: var(--muted); }
[data-theme="dark"] .rules-table { --bs-table-color: var(--ink); --bs-table-border-color: var(--line); }
[data-theme="dark"] .rules-table thead th { color: var(--muted); }
/* Bolas 3D oficiales (assets/img/balls/ball-NN.png, generadas con la
   identidad dorada). El número queda como texto accesible pero oculto
   visualmente: la cifra viaja dentro de la imagen. */
.result-ball { background-color: transparent; background-position: center; background-repeat: no-repeat; background-size: contain; color: transparent; text-shadow: none; font-size: 0; }
.result-ball--1 { background-image: url("../img/balls/ball-01.png"); }
.result-ball--2 { background-image: url("../img/balls/ball-02.png"); }
.result-ball--3 { background-image: url("../img/balls/ball-03.png"); }
.result-ball--4 { background-image: url("../img/balls/ball-04.png"); }
.result-ball--5 { background-image: url("../img/balls/ball-05.png"); }
.result-ball--6 { background-image: url("../img/balls/ball-06.png"); }
.result-ball--7 { background-image: url("../img/balls/ball-07.png"); }
.result-ball--8 { background-image: url("../img/balls/ball-08.png"); }
.result-ball--9 { background-image: url("../img/balls/ball-09.png"); }
.result-ball--10 { background-image: url("../img/balls/ball-10.png"); }
.result-ball--11 { background-image: url("../img/balls/ball-11.png"); }
.result-ball--12 { background-image: url("../img/balls/ball-12.png"); }
.result-ball--13 { background-image: url("../img/balls/ball-13.png"); }
.result-ball--14 { background-image: url("../img/balls/ball-14.png"); }
.result-ball--15 { background-image: url("../img/balls/ball-15.png"); }
.result-ball--16 { background-image: url("../img/balls/ball-16.png"); }
.result-ball--17 { background-image: url("../img/balls/ball-17.png"); }
.result-ball--18 { background-image: url("../img/balls/ball-18.png"); }
.result-ball--19 { background-image: url("../img/balls/ball-19.png"); }
.result-ball--20 { background-image: url("../img/balls/ball-20.png"); }
.result-ball--21 { background-image: url("../img/balls/ball-21.png"); }
.result-ball--22 { background-image: url("../img/balls/ball-22.png"); }
.result-ball--23 { background-image: url("../img/balls/ball-23.png"); }
.result-ball--24 { background-image: url("../img/balls/ball-24.png"); }
.result-ball--25 { background-image: url("../img/balls/ball-25.png"); }
.result-ball--26 { background-image: url("../img/balls/ball-26.png"); }
.result-ball--27 { background-image: url("../img/balls/ball-27.png"); }
.result-ball--28 { background-image: url("../img/balls/ball-28.png"); }
.result-ball--29 { background-image: url("../img/balls/ball-29.png"); }
.result-ball--30 { background-image: url("../img/balls/ball-30.png"); }
.result-ball--31 { background-image: url("../img/balls/ball-31.png"); }
.result-ball--32 { background-image: url("../img/balls/ball-32.png"); }
.result-ball--33 { background-image: url("../img/balls/ball-33.png"); }
.result-ball--34 { background-image: url("../img/balls/ball-34.png"); }
.result-ball--35 { background-image: url("../img/balls/ball-35.png"); }
.result-ball--36 { background-image: url("../img/balls/ball-36.png"); }
.result-ball--37 { background-image: url("../img/balls/ball-37.png"); }
.result-ball--38 { background-image: url("../img/balls/ball-38.png"); }
.result-ball--39 { background-image: url("../img/balls/ball-39.png"); }
.result-ball--40 { background-image: url("../img/balls/ball-40.png"); }
.result-ball--41 { background-image: url("../img/balls/ball-41.png"); }
.result-ball--42 { background-image: url("../img/balls/ball-42.png"); }

/* ============================================================================
   LOTTO DORADO — Dirección de arte "El Premio con Prestigio" (2026).
   Elegante Contemporáneo: marfil/tinta como base (80%), oros (15%),
   esmeralda solo como acento funcional (5%). Sobrescribe reglas base de
   esta misma hoja (van antes); en empate gana la última.
   ============================================================================ */
:root {
    --gold: #d4af37;
    --gold-deep: #8b6914;
    --gold-light: #f6d97a;
    --ivory: #faf6ec;
    --emerald: #0e7a5f;
    --coal: #1b1509;
}

body { font-family: "Plus Jakarta Sans", "Archivo", sans-serif; }
body { background-color: var(--ivory); }

/* ---- HERO: banner fotográfico dorado ---- */
.jackpot-band {
    position: relative;
    background-color: var(--coal);
    background-image: url("../img/hero-landing.jpg");
    background-size: cover;
    background-position: center right;
}
.jackpot-band::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(27, 21, 9, .88) 0%, rgba(27, 21, 9, .55) 45%, rgba(27, 21, 9, .15) 100%);
    pointer-events: none;
}
.jackpot-content { position: relative; padding-block: 4.5rem; }
.jackpot-copy p { max-width: 560px; }
.eyebrow--light { color: var(--gold-light); }

.jackpot-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.btn-gold {
    display: inline-flex; align-items: center; gap: .5rem;
    padding: .8rem 1.4rem; color: #2b1e00; font-weight: 800;
    background: linear-gradient(135deg, var(--gold-light), var(--gold) 55%, var(--gold-deep));
    border: 0; border-radius: 999px; box-shadow: 0 10px 26px rgba(212, 175, 55, .35);
}
.btn-gold:hover { color: #2b1e00; filter: brightness(1.06); }
.btn-glass {
    display: inline-flex; align-items: center; gap: .5rem;
    padding: .8rem 1.4rem; color: #fff; font-weight: 700;
    background: rgba(250, 246, 236, .12); border: 1px solid rgba(246, 217, 122, .45);
    border-radius: 999px; backdrop-filter: blur(8px);
}
.btn-glass:hover { color: var(--gold-light); border-color: var(--gold-light); }

/* Tarjeta de estado del sorteo: cristal sobre el hero */
.draw-status {
    color: #fff;
    background: rgba(27, 21, 9, .58);
    border: 1px solid rgba(246, 217, 122, .4);
    border-radius: 16px;
    box-shadow: 0 18px 44px rgba(0, 0, 0, .35);
    backdrop-filter: blur(12px);
}
.draw-status strong { color: var(--gold-light); }
.draw-status__date { color: rgba(255, 255, 255, .85); }

/* ---- PREMIACIÓN: 3 categorías con medallas oficiales ---- */
.prize-awards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.prize-award--6 { --award-accent: #d5a200; }
.prize-award--5 { --award-accent: #9aa3ad; }
.prize-award--4 { --award-accent: #b0793d; }
.prize-award__medal {
    width: 96px; height: 96px; object-fit: contain;
    margin-bottom: .35rem;
    filter: drop-shadow(0 10px 16px rgba(139, 105, 20, .35));
}
.prize-award__pct {
    padding: .3rem .6rem; color: #2b1e00; font-style: normal;
    background: linear-gradient(135deg, var(--gold-light), var(--gold));
    border-radius: 999px; font-size: .66rem;
}
.prize-showcase__note {
    margin: 1.5rem 0 0; padding: 1rem 1.25rem;
    color: var(--ink); background: color-mix(in srgb, var(--gold) 10%, var(--surface));
    border: 1px solid color-mix(in srgb, var(--gold) 35%, var(--line));
    border-left: 4px solid var(--gold); border-radius: 10px; font-size: .92rem;
}
.prize-showcase__note i { color: var(--gold-deep); }

/* Botón Verificar ticket del navbar (acento esmeralda, 5% de la UI) */
.site-verify-link {
    display: inline-flex; min-height: 40px; align-items: center; justify-content: center; gap: .4rem;
    color: #fff; background: linear-gradient(135deg, #12926f, var(--emerald));
    border-radius: 10px; box-shadow: 0 8px 20px rgba(14, 122, 95, .25);
}
.site-verify-link:hover { color: #fff; filter: brightness(1.07); }

/* ---- CÓMO JUGAR: banda oscura con infografía ---- */
#como-jugar { scroll-margin-top: 5.5rem; }
.howto-band {
    padding-block: 4rem;
    color: #fff;
    background-color: #14100a;
    background-image: radial-gradient(ellipse at 50% 0%, rgba(212, 175, 55, .14), transparent 60%);
}
.howto-band h2 { color: #fff; font-family: "Fraunces", serif; font-size: clamp(1.9rem, 4vw, 2.8rem); }
.howto-band__img {
    display: block; width: 100%; height: auto; border-radius: 1rem;
    border: 1px solid rgba(246, 217, 122, .25); box-shadow: 0 24px 60px rgba(0, 0, 0, .45);
}
.howto-step { padding: 1.25rem 1rem; text-align: center; }
.howto-step b {
    display: inline-grid; width: 44px; height: 44px; margin-bottom: .6rem; place-items: center;
    color: #2b1e00; background: linear-gradient(135deg, var(--gold-light), var(--gold));
    border-radius: 50%; font-family: "Fraunces", serif; font-size: 1.15rem;
}
.howto-step h3 { color: #fff; font-family: "Fraunces", serif; font-size: 1.3rem; }
.howto-step p { margin: 0; color: rgba(250, 246, 236, .65); font-size: .9rem; }

/* ---- CONFIANZA ---- */
.trust-section { padding-block: 4rem; }
.trust-section h2 { font-family: "Fraunces", serif; font-size: clamp(1.9rem, 4vw, 2.6rem); }
.trust-card {
    height: 100%; padding: 1.5rem 1.25rem;
    background: var(--surface); border: 1px solid var(--line); border-top: 4px solid var(--gold);
    border-radius: 12px; box-shadow: var(--shadow-soft); transition: transform .2s ease, box-shadow .2s ease;
}
.trust-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.trust-card i { color: var(--gold-deep); font-size: 1.7rem; }
.trust-card h3 { margin: .6rem 0 .4rem; font-size: 1.02rem; font-weight: 800; }
.trust-card p { margin: 0; color: var(--muted); font-size: .85rem; }

.admin-result-card__verify {
    display: inline-flex; align-items: center; gap: .35rem;
    margin: 0 1rem 1rem; color: var(--emerald); font-size: .8rem; font-weight: 800; text-decoration: none;
    /* Reset de <button>: la clase nació como enlace <a>; ahora el elemento
       abre el modal de verificación y debe conservar exactamente el mismo
       aspecto (sin fondo ni borde nativos del botón). */
    background: none; border: 0; padding: 0; cursor: pointer; font-family: inherit; text-align: left;
}
.admin-result-card__verify:hover { color: var(--gold-deep); }

/* ---- CTA FINAL ---- */
.cta-final {
    margin-block: 1rem 3rem; padding-block: 4rem; color: #fff; text-align: center;
    background:
        radial-gradient(ellipse at 50% 120%, rgba(212, 175, 55, .35), transparent 60%),
        linear-gradient(160deg, #241b08, var(--coal));
    border-radius: 1.5rem;
}
.cta-final h2 { color: #fff; font-family: "Fraunces", serif; font-size: clamp(2rem, 5vw, 3.2rem); }
.cta-final p { color: rgba(250, 246, 236, .7); }

/* ---- Ajustes modo oscuro para las piezas nuevas ---- */
[data-theme="dark"] .howto-band { background-color: #0d0a06; }
[data-theme="dark"] .prize-showcase__note { background: color-mix(in srgb, var(--gold) 14%, var(--surface)); }

/* Hero de la página de verificación con la ilustración oficial */
.verify-hero__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.verify-hero__img { width: 220px; height: 220px; object-fit: contain; filter: drop-shadow(0 14px 24px rgba(0, 0, 0, .35)); }
@media (max-width: 767.98px) { .verify-hero__img { display: none; } }

/* ---- FORMULARIO DE CONSULTA DE TICKET (vista de verificación) ----
   Formulario inline que aparece al abrir /ticket/verify sin identificador
   (estado "sin consulta") y como reintento tras un "ticket no encontrado".
   El campo crece para ocupar el ancho disponible y el botón queda a la
   derecha; en pantallas angostas ambos pasan a ocupar todo el ancho. */
.verify-lookup-form { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.verify-lookup-form .form-control { flex: 1 1 220px; width: auto; }
.verify-lookup-form .btn { flex: 0 0 auto; }
@media (max-width: 575.98px) {
    .verify-lookup-form .btn { width: 100%; }
}

/* ============================================================
   TABLERO PÚBLICO "JUGADAS EN VIVO" (views/tickets-board.php)
   Estética dorada del branding: banda hero oscura con cifras en
   vidrio, banda de ganadores, tabla rankeada por aciertos con
   mini-bolas propias (ligeras: sin imágenes 3D, son docenas por
   pantalla) y estados con pastillas de color.
   ============================================================ */
.board-hero__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: 2.5rem; }
.board-hero__icon { font-size: clamp(4rem, 10vw, 7rem); color: rgba(255, 255, 255, .22); }
.board-stats { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.25rem; }
.board-stat {
    display: grid; gap: .1rem; min-width: 120px; padding: .7rem 1rem;
    background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .25);
    border-radius: .75rem; backdrop-filter: blur(6px);
}
.board-stat strong { color: #fff; font-family: "Fraunces", serif; font-size: 1.15rem; letter-spacing: 0; }
.board-stat span { color: rgba(255, 255, 255, .75); font-size: .68rem; font-weight: 800; text-transform: uppercase; }

.board-content { padding-block: 1.5rem 3rem; display: grid; gap: 1.25rem; }

/* Banda de ganadores: dorada sólida, es el gancho visual del negocio. */
.board-winners {
    display: flex; align-items: center; gap: 1rem; padding: 1rem 1.25rem;
    color: #2b1e00; background: linear-gradient(120deg, #f6d97a, #d4af37 55%, #b8860b);
    border-radius: .9rem; box-shadow: 0 10px 26px rgba(184, 134, 11, .35);
}
.board-winners > i { font-size: 2rem; }
.board-winners strong { display: block; font-family: "Fraunces", serif; letter-spacing: 0; }
.board-winners span { font-size: .82rem; font-weight: 600; }

/* Tarjeta contenedora del listado. */
.board-card { background: var(--surface); border: 1px solid var(--line); border-radius: .9rem; box-shadow: var(--shadow-soft); overflow: hidden; }
.board-card__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--line); }
.board-card__head h2 { margin: 0; font-family: "Fraunces", serif; font-size: 1.15rem; letter-spacing: 0; }
.board-card__head p { margin: .15rem 0 0; color: var(--muted); font-size: .75rem; }

.board-table { margin: 0; font-size: .85rem; }
.board-table thead th {
    padding: .65rem 1rem; color: var(--muted); font-size: .68rem; font-weight: 800;
    text-transform: uppercase; letter-spacing: .04em; border-bottom: 1px solid var(--line);
    background: color-mix(in srgb, var(--surface) 70%, var(--line) 30%); white-space: nowrap;
}
.board-table tbody td { padding: .6rem 1rem; border-bottom: 1px solid var(--line); white-space: nowrap; }
.board-table tbody tr:last-child td { border-bottom: 0; }
.board-table tbody tr { transition: background-color .15s ease; }
.board-table tbody tr:hover { background: color-mix(in srgb, var(--gold, #d4af37) 7%, transparent); }

/* Resaltados de fila según premio. */
.board-row--jackpot { background: linear-gradient(90deg, rgba(212, 175, 55, .22), transparent 70%); box-shadow: inset 3px 0 0 var(--gold, #d4af37); }
.board-row--five { background: linear-gradient(90deg, rgba(212, 175, 55, .12), transparent 70%); box-shadow: inset 3px 0 0 rgba(212, 175, 55, .6); }
.board-row--four { background: linear-gradient(90deg, rgba(16, 185, 129, .10), transparent 70%); box-shadow: inset 3px 0 0 var(--emerald, #10b981); }

.board-seq { color: var(--muted); font-weight: 700; width: 3rem; }
.board-ticket { display: block; font-weight: 800; letter-spacing: .02em; }
.board-status { display: inline-block; margin-top: .15rem; padding: .05rem .5rem; font-size: .62rem; font-weight: 800; text-transform: uppercase; border-radius: 999px; background: var(--line); color: var(--muted); }
.board-status--valid { background: rgba(16, 185, 129, .15); color: #0d9463; }
.board-status--winner, .board-status--paid { background: rgba(212, 175, 55, .2); color: #8b6914; }
.board-status--cancelled { background: rgba(220, 38, 38, .12); color: #b91c1c; }

/* Mini-bolas del tablero: versión ligera y densa de las bolas 3D. */
.board-balls { display: inline-flex; gap: .3rem; }
.board-ball {
    display: inline-flex; align-items: center; justify-content: center;
    width: 1.55rem; height: 1.55rem; border-radius: 50%;
    font-size: .68rem; font-weight: 800; color: #241b08;
    background: radial-gradient(circle at 30% 28%, #fdf3d3, #e8c96a 58%, #b8860b);
    border: 1px solid rgba(139, 105, 20, .55);
    box-shadow: inset 0 -2px 3px rgba(139, 105, 20, .35);
}

/* Pastillas de aciertos. */
.board-hits { display: inline-flex; align-items: center; gap: .3rem; padding: .28rem .7rem; font-size: .74rem; font-weight: 800; border-radius: 999px; }
.board-hits strong { font-size: .95rem; }
.board-hits--6 { color: #2b1e00; background: linear-gradient(120deg, #f6d97a, #d4af37); box-shadow: 0 0 0 3px rgba(212, 175, 55, .25); }
.board-hits--5 { color: #8b6914; background: rgba(212, 175, 55, .18); border: 1px solid rgba(212, 175, 55, .5); }
.board-hits--4 { color: #0d9463; background: rgba(16, 185, 129, .14); border: 1px solid rgba(16, 185, 129, .45); }
.board-hits--0, .board-hits--1, .board-hits--2, .board-hits--3 { color: var(--muted); background: var(--line); }
.board-hits--pending { color: var(--muted); background: transparent; border: 1px dashed var(--muted); }

/* Estado vacío del tablero. */
.board-empty { display: grid; justify-items: center; gap: .6rem; padding: 3.5rem 1.5rem; text-align: center; background: var(--surface); border: 1px dashed var(--line); border-radius: .9rem; }
.board-empty > i { font-size: 3rem; color: var(--gold, #d4af37); }
.board-empty h2 { margin: 0; font-family: "Fraunces", serif; letter-spacing: 0; }
.board-empty p { max-width: 460px; margin: 0 0 .6rem; color: var(--muted); font-size: .88rem; }

@media (max-width: 767.98px) {
    .board-hero__inner { padding-block: 2rem; }
    .board-hero__icon { display: none; }
    .board-stat { min-width: 100px; flex: 1; }
}
