:root{
    --app-bg:#100034;
    --shell:#160044;
    --sheet:#fffefb;
    --ink:#151126;
    --yellow:#ffe35b;
    --yellow-deep:#ffb51f;
    --blue:#1998e2;
    --blue-bright:#20c4ff;
    --green:#43d86b;
    --green-dark:#087b2d;
    --red:#ff3d3d;
    --red-deep:#df176a;
    --purple:#6417ff;
    --purple-soft:#9a62ff;
    --pink:#ef3bbd;
    --orange:#ff7a18;
    --mint:#9bffcf;
    --white:#fffefb;
    --line:#7a42ff;
    --footer:#fffefb;
    --shadow:0 18px 46px rgba(59,14,150,.32);
    --app-top-gap:20px;
    --app-side-gap:10px;
    --app-bottom-gap:0px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{background:var(--app-bg)}
body{
    height:100vh;
    height:100dvh;
    overflow:hidden;
    font-family:"Trebuchet MS","Segoe UI",sans-serif;
    background:
        linear-gradient(150deg, rgba(255,215,79,.22) 0 8%, transparent 28%),
        linear-gradient(210deg, rgba(239,59,189,.24) 0 18%, transparent 42%),
        linear-gradient(180deg, #9a62ff 0%, #6417ff 28%, #23006d 62%, #0b0523 100%);
    color:#fff;
}

body.admin-body{
    height:auto;
    min-height:100vh;
    overflow:auto;
    background:linear-gradient(180deg, #9a62ff 0%, #6417ff 34%, #100034 100%);
    color:#21113f;
}

a{text-decoration:none;color:inherit}

.app-shell{
    width:min(100%,430px);
    height:100vh;
    height:100dvh;
    margin:0 auto;
    padding:var(--app-top-gap) var(--app-side-gap) var(--app-bottom-gap);
    display:grid;
    grid-template-rows:auto 1fr;
    row-gap:10px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.08), transparent 18%),
        linear-gradient(180deg, #210064 0%, #110335 100%);
    overflow:hidden;
}

.topbar{
    z-index:30;
    display:grid;
    grid-template-columns:44px minmax(0,1fr) 44px;
    align-items:center;
    justify-content:center;
    gap:12px;
    min-height:62px;
    padding:12px 10px;
    border-radius:22px;
    background:
        linear-gradient(145deg, rgba(255,255,255,.22) 0%, transparent 34%),
        linear-gradient(105deg, rgba(255,215,79,.2) 0%, transparent 24%),
        linear-gradient(135deg, #5b14ff 0%, #7d35ff 46%, #ef3bbd 100%);
    border:1px solid rgba(255,255,255,.28);
    box-shadow:0 16px 34px rgba(60,0,150,.35), inset 0 -1px 0 rgba(255,255,255,.26);
}

.topbar-icon-button{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:999px;
    background:rgba(255,255,255,.16);
    color:#fff;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);
}

.topbar-icon-button svg{
    width:24px;
    height:24px;
    fill:none;
    stroke:currentColor;
    stroke-width:2.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.topbar-brand{
    min-width:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:4px;
    text-align:center;
}

.topbar-kicker{
    align-self:flex-start;
    display:inline-flex;
    align-items:center;
    min-height:20px;
    padding:2px 9px;
    border-radius:999px;
    background:rgba(155,255,207,.16);
    border:1px solid rgba(155,255,207,.36);
    color:var(--mint);
    font-size:11px;
    font-weight:900;
    letter-spacing:.2px;
    text-shadow:0 2px 8px rgba(0,0,0,.24);
}

.page-title{
    margin:0;
    color:#fff;
    font-size:22px;
    font-weight:900;
    line-height:1.02;
    text-shadow:0 2px 12px rgba(0,0,0,.24);
}

.logout-button{
    width:46px;
    height:46px;
    flex:0 0 46px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0;
    border-radius:999px;
    background:linear-gradient(180deg, #fff575, #ffb51f);
    color:#321100;
    box-shadow:0 10px 24px rgba(255,181,31,.34), inset 0 1px 0 rgba(255,255,255,.46);
}

.logout-icon{
    width:22px;
    height:22px;
    fill:none;
    stroke:currentColor;
    stroke-width:2.6;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.page-stack{
    height:100%;
    min-height:0;
    display:grid;
    grid-template-rows:auto minmax(0,1fr) auto;
    gap:9px;
    overflow:hidden;
}

.video-card{
    position:relative;
    z-index:0;
}

.video-frame{
    position:relative;
    overflow:hidden;
    width:100%;
    aspect-ratio:16/9;
    border-radius:20px;
    border:2px solid rgba(255,255,255,.72);
    background:
        linear-gradient(135deg, rgba(255,255,255,.16), transparent 28%),
        linear-gradient(160deg, #7d35ff 0%, #4b11bd 42%, #10002f 100%);
    display:grid;
    place-items:center;
    box-shadow:0 12px 26px rgba(43,0,116,.32), inset 0 0 42px rgba(239,59,189,.16);
}

.remote-player-frame{
    position:absolute;
    inset:0;
    z-index:3;
    width:100%;
    height:100%;
    border:0;
}

.remote-chip{
    position:relative;
    z-index:2;
    min-height:54px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 24px;
    border-radius:999px;
    background:linear-gradient(135deg, #ff3d9b 0%, #ff7a18 55%, #ffd74f 100%);
    color:#fff;
    font-size:18px;
    font-weight:900;
    text-shadow:0 2px 8px rgba(76,0,75,.3);
    box-shadow:0 12px 28px rgba(255,74,93,.34), inset 0 1px 0 rgba(255,255,255,.38);
    animation:floatChip 2.8s ease-in-out infinite;
}

.spark{
    position:absolute;
    width:84px;
    height:84px;
    border-radius:999px;
    filter:blur(10px);
    opacity:.82;
}

.spark-left{
    top:20px;
    left:16px;
    background:radial-gradient(circle, rgba(239,59,189,.95), transparent 65%);
    animation:drift 4.5s ease-in-out infinite;
}

.spark-right{
    right:18px;
    bottom:20px;
    background:radial-gradient(circle, rgba(255,215,79,.95), transparent 65%);
    animation:drift 5s ease-in-out infinite reverse;
}

.board-shell{
    min-height:0;
    display:block;
    height:100%;
    max-height:100%;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
    border-radius:22px 22px 0 0;
    background:var(--sheet);
    border:2px solid rgba(154,98,255,.9);
    box-shadow:var(--shadow);
}

.result-sheet-image{
    display:block;
    width:100%;
    height:auto;
    background:#fff;
}

.result-template-fallback{
    aspect-ratio:980/1024;
}

.result-sheet-stage{
    position:relative;
    width:100%;
    min-width:0;
    background:#fff;
}

.sheet-overlay{
    position:absolute;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:900;
    font-family:Arial, Helvetica, sans-serif;
    line-height:1;
    text-align:center;
    pointer-events:none;
    text-transform:uppercase;
}

.overlay-title{
    left:49%;
    top:10.45%;
    width:27%;
    height:3%;
    padding:0 1%;
    color:#fff;
    font-size:clamp(8px, 2.25vw, 13px);
    line-height:1;
    text-shadow:0 2px 0 rgba(0,0,0,.18);
}

.overlay-title span{
    display:block;
    white-space:nowrap;
}

.overlay-draw-number{
    left:45.20%;
    top:20.60%;
    width:7.8%;
    height:3%;
    color:#f00;
    font-size:clamp(9px, 2.7vw, 16px);
}

.overlay-date{
    left:59.8%;
    top:19.5%;
    width:22%;
    height:3.1%;
    color:#092ec8;
    font-size:clamp(14px, 3.2vw, 19px);
}

.overlay-first-prize{
    left:43.2%;
    top:26.0%;
    width:40.8%;
    height:4.7%;
    color:#f00;
    font-size:clamp(14px, 5.1vw, 30px);
    letter-spacing:0;
    white-space:nowrap;
}

#firstPrizeSeries,
.first-prize-series,
.overlay-first-prize span:first-child{
    margin-right:.34em;
}

.overlay-cons-prize{
    left:68.8%;
    top:36.30%;
    width:8.7%;
    height:2.3%;
    color:#000;
    font-size:clamp(10px, 2.15vw, 13px);
    white-space:nowrap;
}

.prize-grid{
    display:grid;
    color:#000;
    overflow:hidden;
}

.prize-grid .number-cell{
    min-height:0;
    width:100%;
    color:inherit;
    font:inherit;
    line-height:1;
    text-align:center;
    white-space:nowrap;
}

.overlay-second-prize,
.overlay-third-prize,
.overlay-fourth-prize{
    grid-template-columns:repeat(5, minmax(0, 1fr));
    grid-auto-rows:1fr;
    align-items:center;
    justify-items:center;
    column-gap:1.2%;
    row-gap:0;
    font-size:clamp(7.8px, 2.15vw, 12.5px);
}

.overlay-second-prize{
    left:38.7%;
    top:41.60%;
    width:57.5%;
    height:5.8%;
}

.overlay-third-prize{
    left:39.3%;
    top:49.5%;
    width:57.5%;
    height:5.8%;
}

.overlay-fourth-prize{
    left:38.7%;
    top:57.6%;
    width:57.5%;
    height:5.7%;
}

.overlay-fifth-prize{
    left:2.1%;
    top:68.5%;
    width:95.8%;
    height:24.8%;
    grid-template-columns:repeat(10, minmax(0, 1fr));
    grid-auto-rows:1fr;
    align-items:center;
    justify-items:center;
    gap:.120% 0;
    padding:.8% .45% .7%;
    font-size:clamp(7.8px, 1.68vw, 9.8px);
}

.overlay-footer-date{
    bottom:1.65%;
    width:20.6%;
    height:3.1%;
    color:#fff51b;
    font-size:clamp(11px, 4.25vw, 20px);
}

.overlay-footer-date.left{
    left:1.0%;
}

.overlay-footer-date.right{
    right:1.5%;
}

.theme-1pm .overlay-title,
.theme-6pm .overlay-title,
.theme-8pm .overlay-title{
    color:#fff;
}

.theme-1pm .overlay-draw-number,
.theme-6pm .overlay-draw-number{
    color:#ff0000;
}

.theme-8pm .overlay-draw-number{
    color:#ff0000;
}

.theme-1pm .overlay-date{
    color:#061567;
}

.theme-6pm .overlay-date,
.theme-8pm .overlay-date{
    color:#fff;
}

.theme-1pm .overlay-first-prize,
.theme-6pm .overlay-first-prize{
    color:#f00;
}

.theme-8pm .overlay-first-prize{
    color:#007a2d;
}

.theme-1pm .overlay-footer-date{
    color:#fff51b;
}

.theme-6pm .overlay-footer-date{
    color:#ff0000;
}

.theme-8pm .overlay-footer-date{
    color:#fff;
}

.board-top{
    display:grid;
    grid-template-columns:82px minmax(0,1fr);
    border-bottom:2px solid #0c3d95;
}

.jackpot-panel{
    padding:3px 3px 4px;
    background:
        radial-gradient(circle at center, rgba(255,255,255,.22), transparent 38%),
        repeating-linear-gradient(155deg, rgba(255,255,255,.08) 0 2px, transparent 2px 22px),
        linear-gradient(180deg, #ffef2b 0%, #ffe008 100%);
    color:#1229a0;
    text-align:center;
    border-right:2px solid #0c3d95;
}

.jackpot-tag{
    margin:0;
    font-size:7px;
    line-height:1.05;
    font-weight:900;
    text-transform:uppercase;
}

.jackpot-value{
    margin:2px 0 2px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:0;
    color:#261098;
    font-weight:900;
    text-transform:uppercase;
    text-shadow:
        -2px -2px 0 #fff,
        2px -2px 0 #fff,
        -2px 2px 0 #fff,
        2px 2px 0 #fff;
}

.jackpot-digit{
    display:block;
    font-size:42px;
    line-height:.78;
}

.jackpot-word{
    display:block;
    margin-top:-1px;
    font-size:14px;
    line-height:.82;
    letter-spacing:0;
}

.jackpot-sub{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:2px 4px;
    border-radius:7px;
    background:#fff8d4;
    color:#16308f;
    font-size:7px;
    font-weight:900;
}

.live-board{
    padding:3px 3px 4px;
    color:#fff;
}

.theme-1pm .live-board{
    background:
        radial-gradient(circle at top right, rgba(255,255,255,.12), transparent 18%),
        linear-gradient(180deg, #1dc61d 0%, #0fb116 100%);
}

.theme-6pm .live-board{
    background:
        radial-gradient(circle at top right, rgba(255,255,255,.12), transparent 18%),
        linear-gradient(180deg, #1ca7e8 0%, #1397d5 100%);
}

.theme-8pm .live-board{
    background:
        radial-gradient(circle at top right, rgba(255,255,255,.1), transparent 18%),
        linear-gradient(180deg, #f11717 0%, #d90f0f 100%);
}

.board-head{
    display:grid;
    grid-template-columns:34px minmax(0,1fr) 42px;
    align-items:center;
    gap:3px;
}

.board-logo-wrap{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    padding:1px;
    border-radius:999px;
    background:#ffffff;
    box-shadow:0 3px 10px rgba(0,0,0,.18);
    transform:translateY(-1px);
}

.board-logo{
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius:999px;
    background:#fff;
}

.title-panel{
    padding:2px 5px 3px;
    border-radius:12px;
    background:#3141a7;
    border:2px solid rgba(255,255,255,.72);
    text-align:center;
    box-shadow:inset 0 -4px 0 rgba(0,0,0,.08);
}

.theme-1pm .title-panel{
    background:linear-gradient(180deg, #3542ac 0%, #2c3794 100%);
}

.theme-6pm .title-panel{
    background:linear-gradient(180deg, #3946b3 0%, #2f3b9d 100%);
}

.theme-8pm .title-panel{
    background:linear-gradient(180deg, #3340a0 0%, #2a347f 100%);
}

.board-brand{
    margin:0 0 2px;
    font-size:7px;
    line-height:1;
    font-weight:900;
    text-transform:uppercase;
    color:#f7ffff;
}

.board-head h3{
    margin:0;
    color:#fff36d;
    font-size:11px;
    line-height:.88;
    font-weight:900;
    text-transform:uppercase;
}

.clock-pill{
    min-width:42px;
    min-height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:3px 2px;
    border-radius:0 0 0 12px;
    background:#ffef22;
    color:#1e33cf;
    font-size:14px;
    line-height:1;
    font-weight:900;
    text-align:center;
    box-shadow:inset 0 -4px 0 rgba(0,0,0,.06);
}

.theme-1pm .clock-pill{
    background:linear-gradient(180deg, #ff2c18 0%, #ffec29 100%);
    color:#132ec8;
}

.theme-6pm .clock-pill{
    background:linear-gradient(180deg, #ffe626 0%, #ffcd1e 100%);
    color:#ef2121;
}

.theme-8pm .clock-pill{
    background:linear-gradient(180deg, #fff21f 0%, #ffda25 100%);
    color:#2146d8;
}

.meta-strip{
    display:grid;
    grid-template-columns:52px minmax(0,1fr) 36px;
    gap:2px;
    margin:2px 0;
}

.meta-box{
    padding:2px 2px 2px;
    border-radius:7px;
    background:#ffef22;
    text-align:center;
    border:1px solid rgba(202,34,34,.55);
}

.meta-box span{
    display:block;
    color:#5e3800;
    font-size:6px;
    line-height:1;
    font-weight:900;
    text-transform:uppercase;
}

.meta-box strong{
    display:block;
    margin-top:2px;
    color:#0d2ec1;
    font-size:10px;
    line-height:1;
    font-weight:900;
}

.first-prize-bar{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    min-height:34px;
    padding:3px 5px;
    border-radius:12px;
    background:#fffdfd;
    color:#ff231c;
    border:2px solid #ff463e;
    font-weight:900;
}

.first-series{
    min-width:40px;
    font-size:17px;
    line-height:1;
    text-align:center;
}

.first-number{
    font-size:26px;
    line-height:1;
}

.consolation-bar{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:3px;
    flex-wrap:wrap;
    margin-top:3px;
    padding:3px 2px;
    border-radius:7px;
    background:rgba(255,255,255,.9);
    color:#15387c;
    font-size:7px;
    font-weight:900;
    text-align:center;
}

.consolation-bar strong{
    color:#d21414;
    font-size:10px;
}

.prize-list{
    display:grid;
    gap:5px;
    padding:5px 5px 22px;
    background:#eef8ea;
}

.prize-row{
    display:grid;
    grid-template-columns:62px minmax(0,1fr);
    gap:0;
    overflow:hidden;
    border-radius:14px;
    background:#fff;
    border:1px solid rgba(195,39,39,.5);
}

.prize-label{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    gap:2px;
    padding:5px 4px 5px 5px;
    color:#fff;
}

.prize-label span{
    font-size:7px;
    line-height:1;
    font-weight:900;
    text-transform:uppercase;
}

.prize-label strong{
    font-size:11px;
    line-height:1;
    font-weight:900;
}

.prize-row.second .prize-label{
    background:linear-gradient(90deg, #ff3626 0%, #ffbc1e 100%);
}

.prize-row.third .prize-label{
    background:linear-gradient(90deg, #2b39a5 0%, #0cc06c 100%);
}

.prize-row.fourth .prize-label{
    background:linear-gradient(90deg, #8d5638 0%, #df644f 100%);
}

.prize-row.fifth .prize-label{
    background:linear-gradient(90deg, #1166c5 0%, #1a7ff0 100%);
}

.prize-values{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:2px 4px;
    padding:4px 5px;
    align-content:center;
    background:#fff;
}

.number-cell{
    min-height:20px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#111;
    font-size:11px;
    line-height:1;
    font-weight:900;
    text-align:center;
    white-space:nowrap;
}

.fifth-prize-panel{
    display:grid;
    grid-template-rows:auto 1fr;
    min-height:0;
    background:#fff;
}

.fifth-prize-head{
    padding:3px 6px;
    background:#1668c5;
    color:#fff;
    font-size:8px;
    line-height:1.1;
    font-weight:900;
    text-transform:uppercase;
    text-align:center;
}

.fifth-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
    grid-auto-rows:14px;
    gap:1px 6px;
    padding:4px 6px 8px;
}

.fifth-grid .number-cell{
    min-height:14px;
    font-size:9px;
    line-height:1;
}

.winning-page{
    grid-template-rows:minmax(0,1fr) auto;
}

.winning-panel{
    min-height:0;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    padding:9px;
    border-radius:22px;
    background:rgba(255,255,255,.96);
    color:#21113f;
    border:1px solid rgba(255,255,255,.52);
    box-shadow:var(--shadow);
}

.winning-tabs{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    padding:5px;
    border-radius:18px;
    background:#f1eaff;
    border:1px solid rgba(100,23,255,.12);
}

.winning-tab{
    min-height:42px;
    border:0;
    border-radius:14px;
    background:transparent;
    color:#6e6280;
    font:900 13px/1 "Trebuchet MS","Segoe UI",sans-serif;
}

.winning-tab.active{
    background:linear-gradient(135deg, #9a62ff 0%, #6417ff 100%);
    color:#fff;
    box-shadow:0 10px 20px rgba(100,23,255,.24), inset 0 1px 0 rgba(255,255,255,.32);
}

.winning-tab-panel{
    display:none;
    padding-top:10px;
    height:calc(100% - 58px);
    min-height:0;
}

.winning-tab-panel.active{
    display:block;
}

.winning-form{
    min-height:100%;
    display:flex;
    flex-direction:column;
    gap:9px;
}

.field-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
}

.entry-field-grid{
    grid-template-columns:minmax(142px,1.28fr) minmax(92px,.72fr);
    gap:8px;
    padding:8px;
    border-radius:18px;
    background:linear-gradient(180deg, #f8f4ff 0%, #fff 100%);
    border:1px solid rgba(100,23,255,.12);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.72);
}

.entry-field-grid .field-label:first-child{
    grid-column:auto;
}

.check-field-grid{
    grid-template-columns:minmax(146px,1.18fr) minmax(88px,.62fr);
    gap:8px;
    padding:8px;
    border-radius:18px;
    background:linear-gradient(180deg, #f8f4ff 0%, #fff 100%);
    border:1px solid rgba(100,23,255,.12);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.72);
}

.check-field-grid .field-label:first-child{
    grid-column:auto;
}

.field-label{
    display:grid;
    gap:6px;
    min-width:0;
    color:#2a1749;
    font-size:11px;
    font-weight:900;
}

.field-label span{
    padding-left:2px;
}

.app-input{
    width:100%;
    min-width:0;
    height:48px;
    min-height:48px;
    padding:0 9px;
    border:1px solid rgba(100,23,255,.2);
    border-radius:16px;
    outline:none;
    background:#fff;
    color:#21113f;
    font:900 16px/1.2 "Trebuchet MS","Segoe UI",sans-serif;
    box-shadow:0 8px 16px rgba(22,0,84,.06), inset 0 1px 0 rgba(255,255,255,.72);
}

select.app-input{
    appearance:none;
    -webkit-appearance:none;
    text-align:center;
    background:
        linear-gradient(45deg, transparent 50%, #6417ff 50%),
        linear-gradient(135deg, #6417ff 50%, transparent 50%),
        #fff;
    background-position:
        calc(100% - 17px) 21px,
        calc(100% - 11px) 21px,
        0 0;
    background-size:6px 6px, 6px 6px, 100% 100%;
    background-repeat:no-repeat;
    padding-right:24px;
}

input[type="date"].app-input{
    text-align:center;
    padding:0 4px;
    font-size:14px;
}

input[type="number"].app-input{
    text-align:center;
}

.app-input:focus{
    border-color:var(--purple);
    box-shadow:0 0 0 3px rgba(100,23,255,.14);
}

.app-textarea{
    min-height:82px;
    max-height:120px;
    padding:10px 11px;
    resize:none;
    line-height:1.35;
}

.ticket-entry-scan-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) 86px;
    gap:8px;
    align-items:end;
}

.ticket-entry-scan-row .app-textarea{
    min-height:96px;
}

.ticket-entry-scan-row .qr-scan-button{
    height:96px;
    min-height:96px;
    grid-template-rows:42px 18px;
    align-content:center;
}

.ticket-entry-scan-row .qr-scan-button svg{
    width:46px;
    height:46px;
}

.ticket-entry-scan-row .qr-scan-button::after{
    font-size:14px;
}

.form-message,
.empty-result,
.saved-entry-box{
    padding:9px 10px;
    border-radius:14px;
    background:#f7f2ff;
    border:1px solid rgba(100,23,255,.12);
    color:#5a4a70;
    font-size:11px;
    font-weight:900;
    line-height:1.45;
}

.saved-entry-box{
    display:grid;
    grid-template-rows:minmax(0,1fr);
    min-height:116px;
    max-height:150px;
    overflow-y:auto;
    padding:0;
    background:#fff;
    border-color:rgba(100,23,255,.14);
    color:#21113f;
}

.saved-entry-row{
    display:flex;
    align-items:center;
    gap:8px;
}

.saved-entry-list{
    min-height:0;
    overflow-y:auto;
    padding:8px;
}

.saved-entry-row{
    min-height:30px;
    padding:6px 8px;
    margin-bottom:6px;
    border-radius:999px;
    background:#f7f2ff;
    border:1px solid rgba(100,23,255,.12);
    font-size:12px;
    font-weight:900;
}

.saved-entry-row span{
    min-width:34px;
    padding:4px 7px;
    border-radius:999px;
    background:linear-gradient(135deg, #9a62ff 0%, #6417ff 100%);
    color:#fff;
    text-align:center;
    font-size:11px;
}

.saved-entry-row strong{
    font-size:14px;
    color:#21113f;
}

.saved-entry-row.official-ticket{
    background:linear-gradient(135deg, #fff7d7 0%, #f8e7ff 100%);
    border-color:rgba(255,122,24,.28);
}

.saved-entry-row.official-ticket span{
    background:linear-gradient(135deg, #ff7a18 0%, #ef3bbd 100%);
}

.saved-entry-empty{
    padding:14px 4px;
    color:#7a708b;
    font-size:12px;
    font-weight:900;
}

.form-message:empty{
    display:none;
}

.flash-message{
    position:fixed;
    left:50%;
    bottom:92px;
    z-index:80;
    width:min(320px, calc(100% - 36px));
    transform:translateX(-50%);
    box-shadow:0 16px 30px rgba(22,0,84,.22);
    text-align:center;
}

.form-message.success{
    background:#ecfff4;
    border-color:rgba(67,216,107,.32);
    color:#08622b;
}

.form-message.error{
    background:#fff0f4;
    border-color:rgba(223,23,106,.28);
    color:#aa123f;
}

.form-message.neutral{
    background:#fff9df;
    border-color:rgba(255,181,31,.34);
    color:#765200;
}

.primary-action{
    min-height:48px;
    border:0;
    border-radius:999px;
    background:linear-gradient(135deg, #ff3d9b 0%, #ff7a18 55%, #ffd74f 100%);
    color:#fff;
    font:900 15px/1 "Trebuchet MS","Segoe UI",sans-serif;
    text-shadow:0 2px 8px rgba(76,0,75,.28);
    box-shadow:0 14px 26px rgba(255,74,93,.25), inset 0 1px 0 rgba(255,255,255,.38);
}

.secondary-action{
    min-height:48px;
    border:0;
    border-radius:999px;
    background:linear-gradient(135deg, #f5f1ff 0%, #ffffff 100%);
    color:#6417ff;
    font:900 14px/1 "Trebuchet MS","Segoe UI",sans-serif;
    box-shadow:0 10px 20px rgba(22,0,84,.1), inset 0 0 0 1px rgba(100,23,255,.18);
}

.sticky-action{
    z-index:4;
}

.entry-action-row{
    display:grid;
    grid-template-columns:94px minmax(0,1fr);
    gap:8px;
    margin-top:auto;
    padding-top:8px;
    background:#fff;
}

.winning-action-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) 54px;
    gap:8px;
}

.qr-scan-button{
    width:100%;
    min-width:0;
    padding:0;
    display:grid;
    grid-template-rows:27px 12px;
    place-items:center;
    gap:2px;
    background:linear-gradient(135deg, #6417ff 0%, #ef3bbd 100%);
    color:#fff;
    box-shadow:0 12px 28px rgba(100,23,255,.28), 0 0 0 2px rgba(255,255,255,.72) inset;
}

.qr-scan-button::after{
    content:"QR";
    font:900 11px/1 "Trebuchet MS","Segoe UI",sans-serif;
    letter-spacing:.7px;
}

.qr-scan-button svg{
    width:30px;
    height:30px;
    fill:currentColor;
}

.qr-entry-help{
    margin:0;
    padding:8px 10px 0;
    color:#5a4a70;
    font-size:11px;
    font-weight:900;
    text-align:center;
}

.winning-results{
    display:grid;
    gap:10px;
}

.ticket-result{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    padding:11px;
    border-radius:16px;
    background:#fff;
    border:1px solid rgba(100,23,255,.14);
    box-shadow:0 8px 18px rgba(22,0,84,.08);
}

.ticket-result strong{
    display:block;
    font-size:20px;
    line-height:1;
    color:#21113f;
}

.ticket-result small{
    display:block;
    margin-top:4px;
    color:#766985;
    font-size:11px;
    font-weight:900;
}

.ticket-result.is-winner{
    border-color:rgba(67,216,107,.42);
    background:linear-gradient(180deg, #fff 0%, #f1fff6 100%);
}

.winner-badge{
    align-self:start;
    padding:8px 10px;
    border-radius:999px;
    background:#a4a1aa;
    color:#fff;
    font-size:10px;
    font-weight:900;
}

.ticket-result.is-winner .winner-badge{
    background:linear-gradient(135deg, #43d86b 0%, #087b2d 100%);
}

.ticket-matches{
    grid-column:1 / -1;
    display:grid;
    gap:7px;
}

.win-match{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:3px 8px;
    padding:9px;
    border-radius:13px;
    background:#ecfff4;
    border:1px solid rgba(67,216,107,.28);
    color:#08622b;
    font-weight:900;
}

.win-match span{
    color:#6417ff;
}

.win-match small{
    grid-column:1 / -1;
    margin:0;
    color:#237442;
}

.no-match{
    padding:9px;
    border-radius:13px;
    background:#f4f1f8;
    color:#766985;
    font-size:12px;
    font-weight:900;
}

.qr-scanner-modal{
    position:fixed;
    inset:0;
    z-index:200;
    display:none;
    align-items:center;
    justify-content:center;
    padding:18px;
    background:rgba(16,0,52,.82);
    backdrop-filter:blur(10px);
}

.qr-scanner-modal.active{
    display:flex;
}

.qr-scanner-card{
    width:min(100%,390px);
    display:grid;
    gap:10px;
    padding:12px;
    border-radius:24px;
    background:linear-gradient(180deg, #f8f4ff 0%, #fff 100%);
    color:#21113f;
    border:1px solid rgba(255,255,255,.68);
    box-shadow:0 24px 60px rgba(0,0,0,.36);
}

.qr-scanner-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.qr-scanner-head strong{
    font-size:18px;
    font-weight:900;
}

.qr-scanner-head button{
    width:38px;
    height:38px;
    border:0;
    border-radius:999px;
    background:#6417ff;
    color:#fff;
    font:900 26px/1 "Trebuchet MS","Segoe UI",sans-serif;
}

.qr-video-wrap{
    position:relative;
    overflow:hidden;
    aspect-ratio:1;
    border-radius:20px;
    background:#160044;
    border:3px solid #6417ff;
}

.qr-video-wrap::after{
    content:"";
    position:absolute;
    inset:14%;
    border:3px solid #9bffcf;
    border-radius:18px;
    box-shadow:0 0 22px rgba(155,255,207,.36);
}

#qrScannerVideo{
    width:100%;
    height:100%;
    object-fit:cover;
}

#qrScannerStatus{
    margin:0;
    color:#5a4a70;
    font-size:12px;
    font-weight:900;
    text-align:center;
}

.qr-scan-choice{
    display:grid;
    gap:7px;
    padding:10px;
    border-radius:18px;
    background:linear-gradient(135deg, rgba(100,23,255,.12), rgba(255,61,155,.12));
    border:1px solid rgba(100,23,255,.18);
    text-align:center;
}

.qr-scan-choice[hidden]{
    display:none;
}

.qr-scan-choice strong{
    color:#21113f;
    font-size:22px;
    line-height:1;
    font-weight:900;
}

.qr-scan-choice small{
    color:#6e6280;
    font-size:12px;
    font-weight:900;
}

.qr-scan-choice div{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}

.language-first-run{
    position:fixed;
    inset:0;
    z-index:320;
    display:grid;
    place-items:center;
    padding:22px;
    background:linear-gradient(180deg, rgba(22,0,68,.94), rgba(63,0,151,.92));
    backdrop-filter:blur(12px);
}

.language-first-card{
    width:min(100%,360px);
    display:grid;
    gap:12px;
    padding:20px;
    border-radius:28px;
    background:linear-gradient(180deg, #fff 0%, #f4eaff 100%);
    color:#21113f;
    text-align:center;
    box-shadow:0 28px 70px rgba(0,0,0,.38);
}

.language-first-card img{
    width:104px;
    height:104px;
    margin:0 auto 2px;
    border-radius:999px;
}

.language-first-card h2{
    margin:0;
    font-size:25px;
    font-weight:900;
}

.language-first-card p{
    margin:0 0 4px;
    color:#665779;
    font-size:13px;
    font-weight:900;
}

.language-first-card button{
    min-height:50px;
    border:0;
    border-radius:999px;
    background:linear-gradient(135deg, #6417ff 0%, #ef3bbd 75%, #ff7a18 100%);
    color:#fff;
    font:900 18px/1 "Trebuchet MS","Segoe UI",sans-serif;
    box-shadow:0 14px 28px rgba(100,23,255,.24), inset 0 1px 0 rgba(255,255,255,.34);
}

.qr-manual-text{
    min-height:72px;
    padding:10px 12px;
    line-height:1.3;
    resize:none;
}

.legal-page{
    grid-template-rows:minmax(0,1fr) auto;
}

.legal-scroll{
    min-height:0;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    padding:16px;
    border-radius:22px;
    background:rgba(255,255,255,.96);
    color:#21113f;
    box-shadow:var(--shadow);
}

.legal-scroll h2,
.legal-scroll h3{
    margin:0;
    color:#21113f;
    font-weight:900;
}

.legal-scroll h2{
    font-size:24px;
    margin-bottom:12px;
}

.legal-scroll h3{
    margin-top:16px;
    font-size:16px;
}

.legal-scroll p{
    margin:8px 0 0;
    color:#5a4a70;
    font-size:14px;
    font-weight:800;
    line-height:1.45;
}

.app-drawer-backdrop{
    position:fixed;
    inset:0;
    z-index:180;
    display:none;
    background:rgba(9,0,32,.58);
    backdrop-filter:blur(2px);
}

.app-drawer-backdrop.active{
    display:block;
}

.app-side-drawer{
    position:fixed;
    z-index:190;
    inset:0 auto 0 0;
    width:min(84vw,340px);
    transform:translateX(-105%);
    transition:transform .22s ease;
    background:#fff;
    color:#2d253a;
    box-shadow:22px 0 48px rgba(0,0,0,.32);
    overflow-y:auto;
}

.app-side-drawer.active{
    transform:translateX(0);
}

.drawer-brand{
    min-height:192px;
    display:grid;
    place-items:center;
    gap:8px;
    padding:18px 18px 16px;
    background:linear-gradient(180deg,#6417ff 0%,#8d20ff 54%,#c027ff 100%);
    color:#fff;
    text-align:center;
}

.drawer-logo{
    width:92px;
    height:92px;
    object-fit:contain;
    filter:drop-shadow(0 10px 18px rgba(0,0,0,.25));
}

.drawer-brand strong{
    font-size:22px;
    font-weight:900;
    line-height:1.08;
}

.language-row{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    padding:12px 14px;
    background:#8c00ff;
}

.language-row button{
    min-height:40px;
    border:2px solid rgba(255,255,255,.42);
    border-radius:999px;
    background:transparent;
    color:#fff;
    font:900 14px/1 "Trebuchet MS","Segoe UI",sans-serif;
}

.language-row button.active{
    border-color:#9bffcf;
    background:rgba(155,255,207,.16);
    box-shadow:0 0 0 3px rgba(155,255,207,.14);
}

.drawer-links{
    display:grid;
    padding:18px 0 28px;
}

.drawer-links a,
.drawer-links button{
    min-height:58px;
    display:grid;
    grid-template-columns:62px minmax(0,1fr);
    align-items:center;
    gap:10px;
    border:0;
    padding:0 20px;
    background:#fff;
    color:#3c3547;
    font:900 17px/1.1 "Trebuchet MS","Segoe UI",sans-serif;
    text-align:left;
}

.drawer-links span{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border-radius:10px;
    background:#f2ecff;
    color:#6417ff;
    font-size:22px;
    font-weight:900;
}

.app-more-menu{
    position:fixed;
    z-index:220;
    min-width:164px;
    display:none;
    padding:8px;
    border-radius:16px;
    background:#fff;
    color:#21113f;
    box-shadow:0 18px 42px rgba(0,0,0,.28);
}

.app-more-menu.active{
    display:grid;
}

.app-more-menu button{
    min-height:42px;
    border:0;
    border-radius:12px;
    padding:0 14px;
    background:#fff;
    color:#21113f;
    text-align:left;
    font:900 14px/1 "Trebuchet MS","Segoe UI",sans-serif;
}

.app-more-menu button:active,
.drawer-links button:active,
.drawer-links a:active{
    background:#f5f0ff;
}

.footer-card{
    z-index:30;
    padding:8px 4px 10px;
    border-radius:22px 22px 0 0;
    background:
        linear-gradient(135deg, rgba(255,255,255,.98), rgba(255,255,255,.92)),
        linear-gradient(180deg, #fff, #f8f4ff);
    border-top:1px solid rgba(100,23,255,.18);
    box-shadow:0 -16px 34px rgba(18,0,72,.24);
}

.footer-menu{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
}

.menu-link{
    min-height:58px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:5px;
    padding:6px 4px 7px;
    border-radius:18px;
    background:linear-gradient(180deg, #ffffff, #f5f1ff);
    border:1px solid rgba(100,23,255,.12);
    color:#8b8a93;
    font-size:10px;
    font-weight:900;
    text-align:center;
    box-shadow:inset 0 -10px 14px rgba(100,23,255,.04), 0 8px 18px rgba(22,0,84,.08);
}

.menu-link.active{
    background:
        linear-gradient(135deg, rgba(255,255,255,.22), transparent 42%),
        linear-gradient(135deg, #9a62ff 0%, #6417ff 100%);
    border-color:rgba(255,255,255,.38);
    color:#fff;
    box-shadow:0 12px 24px rgba(100,23,255,.28), inset 0 1px 0 rgba(255,255,255,.36);
}

.menu-icon{
    width:28px;
    height:28px;
    display:grid;
    place-items:center;
    border-radius:10px;
    background:linear-gradient(135deg, #fff0ff 0%, #efe8ff 100%);
    color:inherit;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.8), 0 5px 10px rgba(100,23,255,.12);
}

.menu-icon svg{
    width:18px;
    height:18px;
    display:block;
    fill:currentColor;
}

.menu-link.active .menu-icon{
    background:linear-gradient(135deg, #fff575 0%, #ffb51f 100%);
    color:#321100;
    box-shadow:0 8px 16px rgba(255,181,31,.34), inset 0 1px 0 rgba(255,255,255,.55);
}

.old-result-stack{
    grid-template-rows:auto minmax(0,1fr) auto;
}

.old-result-controls{
    display:grid;
    gap:8px;
    padding:10px;
    border-radius:18px;
    background:rgba(255,255,255,.96);
    color:#21113f;
    box-shadow:0 10px 22px rgba(43,0,116,.18);
}

.old-result-form{
    display:grid;
    grid-template-columns:minmax(0,1.2fr) minmax(86px,.7fr) auto;
    gap:7px;
    align-items:end;
}

.old-result-form label{
    display:grid;
    gap:4px;
    color:#2a1749;
    font-size:11px;
    font-weight:900;
}

.old-result-action{
    min-height:38px;
    border:0;
    border-radius:13px;
    padding:0 12px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg, #6417ff 0%, #ef3bbd 100%);
    color:#fff;
    font:900 13px/1 "Trebuchet MS","Segoe UI",sans-serif;
    box-shadow:0 8px 16px rgba(100,23,255,.22);
}

.old-result-action.download{
    background:linear-gradient(135deg, #ff7a18 0%, #ffd74f 100%);
    color:#321100;
}

.old-result-action.icon-only{
    width:42px;
    padding:0;
}

.old-result-action.icon-only svg{
    width:22px;
    height:22px;
    fill:none;
    stroke:currentColor;
    stroke-width:2.4;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.old-result-meta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding-top:2px;
    font-size:12px;
    font-weight:900;
}

.old-result-meta span{
    color:#6417ff;
    font-size:11px;
}

.old-result-board{
    position:relative;
}

.result-not-uploaded{
    min-height:0;
    display:grid;
    place-content:center;
    gap:10px;
    padding:24px;
    border-radius:24px;
    background:
        radial-gradient(circle at 22% 18%, rgba(255,245,117,.3), transparent 28%),
        radial-gradient(circle at 82% 22%, rgba(239,59,189,.24), transparent 30%),
        linear-gradient(160deg, rgba(255,255,255,.96), rgba(244,234,255,.94));
    color:#21113f;
    text-align:center;
    box-shadow:var(--shadow);
    border:1px solid rgba(255,255,255,.7);
}

.result-not-uploaded strong{
    font-size:24px;
    line-height:1.08;
    font-weight:900;
}

.result-not-uploaded span{
    color:#6e6280;
    font-size:14px;
    font-weight:900;
}

.tips-page{
    grid-template-rows:minmax(0,1fr) auto;
}

.tips-scroll{
    min-height:0;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    padding:2px 0 10px;
    background:linear-gradient(180deg, #4b00c4 0%, #35009b 42%, #210070 100%);
    border-radius:20px;
    border:1px solid rgba(255,255,255,.12);
}

.tips-view{
    display:none;
    gap:16px;
    padding:12px 8px 18px;
}

.tips-view.active{
    display:grid;
}

.tips-hero{
    padding:18px 12px 14px;
    border-radius:22px;
    background:
        radial-gradient(circle at 50% 0%, rgba(255,255,255,.22), transparent 30%),
        linear-gradient(135deg, rgba(239,59,189,.36), transparent 44%),
        linear-gradient(180deg, #4a00bd 0%, #2b007f 100%);
    border:1px solid rgba(255,255,255,.18);
    box-shadow:0 14px 30px rgba(32,0,112,.28);
    text-align:center;
}

.tips-play-icon{
    width:56px;
    height:56px;
    margin:0 auto 12px;
    display:grid;
    place-items:center;
    border:3px solid rgba(255,255,255,.86);
    border-radius:999px;
    color:#fff;
    box-shadow:0 0 32px rgba(154,98,255,.52);
}

.tips-play-icon svg{
    width:28px;
    height:28px;
    fill:currentColor;
}

.tips-hero p{
    margin:0;
    color:#fff;
    font-size:18px;
    font-weight:900;
    line-height:1.18;
    text-shadow:0 2px 10px rgba(0,0,0,.32);
}

.tips-option-list{
    display:grid;
    gap:18px;
    padding:4px 8px 12px;
}

.tips-option-button{
    min-height:76px;
    display:grid;
    grid-template-columns:54px minmax(0,1fr);
    align-items:center;
    gap:10px;
    border:2px solid rgba(255,255,255,.7);
    border-radius:999px;
    padding:0 20px 0 18px;
    background:linear-gradient(135deg, #ffffff 0%, #f2e9ff 42%, #ffd7ec 100%);
    color:#2a1749;
    font:900 20px/1.08 "Trebuchet MS","Segoe UI",sans-serif;
    text-align:center;
    text-shadow:none;
    box-shadow:0 16px 32px rgba(22,0,84,.2), 0 0 24px rgba(239,59,189,.16), inset 0 1px 0 rgba(255,255,255,.88);
}

.tips-option-button span{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:999px;
    color:#fff;
    background:linear-gradient(135deg, #6417ff 0%, #ef3bbd 70%, #ff7a18 100%);
    font-size:32px;
    text-shadow:0 2px 10px rgba(0,0,0,.22);
    box-shadow:0 10px 20px rgba(100,23,255,.25);
}

.tips-subhead{
    min-height:54px;
    display:grid;
    grid-template-columns:46px minmax(0,1fr) 46px;
    align-items:center;
    gap:8px;
    margin:-12px -8px 4px;
    padding:8px 8px;
    background:linear-gradient(180deg, #8d00ff 0%, #7400f2 100%);
    color:#05000f;
    box-shadow:0 8px 16px rgba(0,0,0,.18);
}

.tips-subhead button{
    width:42px;
    height:42px;
    border:0;
    border-radius:999px;
    background:transparent;
    color:#0b001a;
    font:900 42px/1 "Trebuchet MS","Segoe UI",sans-serif;
}

.tips-subhead strong{
    min-width:0;
    color:#0b001a;
    font-size:22px;
    font-weight:900;
    line-height:1.05;
    text-align:center;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.tips-helper{
    margin:0;
    color:#9bffcf;
    font-size:15px;
    font-weight:900;
    line-height:1.25;
    text-align:center;
}

.tips-tool-card{
    padding:12px;
    border-radius:22px;
    background:linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.05));
    border:1px solid rgba(255,255,255,.24);
    box-shadow:0 12px 26px rgba(21,0,82,.24);
}

.tips-tool-card h2{
    margin:0 0 10px;
    color:#fff;
    font-size:21px;
    font-weight:900;
    text-align:center;
}

.pick-ticket-form{
    display:grid;
    gap:12px;
}

.tips-input{
    width:100%;
    min-height:58px;
    border:2px solid rgba(255,255,255,.84);
    border-radius:18px;
    padding:0 18px;
    background:rgba(255,255,255,.08);
    color:#fff;
    font:900 24px/1 "Trebuchet MS","Segoe UI",sans-serif;
    outline:none;
    box-shadow:0 0 24px rgba(67,216,107,.18);
    text-align:center;
}

.tips-input::placeholder{
    color:rgba(255,255,255,.58);
}

.tips-glow-button{
    justify-self:center;
    min-width:160px;
    min-height:50px;
    border:2px solid #ffd74f;
    border-radius:999px;
    background:linear-gradient(135deg, rgba(255,215,79,.36), rgba(239,59,189,.32));
    color:#ffd74f;
    font:900 19px/1 "Trebuchet MS","Segoe UI",sans-serif;
    box-shadow:0 0 28px rgba(255,215,79,.42), inset 0 0 18px rgba(255,255,255,.12);
}

.tips-result-list{
    display:grid;
    gap:12px;
    margin-top:0;
}

.tip-result-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    min-height:126px;
    padding:13px 12px 10px;
    border:2px solid rgba(255,255,255,.9);
    border-radius:18px;
    background:rgba(48,0,166,.72);
    color:#fff;
}

.tip-result-row strong{
    display:block;
    margin-bottom:6px;
    font-size:24px;
    text-align:center;
}

.tip-result-row span,
.tip-result-row em{
    display:block;
    font-style:normal;
    font-weight:900;
    font-size:15px;
}

.tip-result-row span{
    color:#ffe35b;
}

.tip-result-row em{
    color:#43d86b;
}

.tip-result-row a{
    grid-column:1 / -1;
    justify-self:center;
    min-height:40px;
    padding:0 32px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:2px solid #fff;
    border-radius:999px;
    color:#ffd74f;
    font-weight:900;
    font-size:16px;
    background:rgba(255,255,255,.05);
    text-shadow:1px 0 #ff3d3d, -1px 0 #43d86b;
}

.tips-empty{
    padding:14px;
    border-radius:16px;
    background:rgba(255,255,255,.12);
    color:#fff;
    text-align:center;
    font-weight:900;
}

.hot-number-list{
    display:grid;
    gap:14px;
}

.hot-number-row{
    min-height:82px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
    align-items:center;
    padding:10px 14px;
    border:2px solid rgba(255,255,255,.92);
    border-radius:18px;
    background:rgba(48,0,166,.72);
    color:#fff;
}

.hot-number-row strong{
    font-size:25px;
    font-weight:900;
    text-align:center;
}

.hot-number-row span{
    grid-column:1;
    color:#9bffcf;
    font-size:12px;
    font-weight:900;
    text-align:center;
}

.hot-number-row button{
    grid-column:2;
    grid-row:1;
    min-height:50px;
    border:2px solid #fff;
    border-radius:16px;
    padding:0 18px;
    background:transparent;
    color:#ffd74f;
    font:900 20px/1 "Trebuchet MS","Segoe UI",sans-serif;
    text-shadow:1px 0 #ff3d3d, -1px 0 #43d86b;
}

@media (min-width:431px){
    body{
        display:grid;
        place-items:center;
        padding:14px;
    }
    .app-shell{
        height:min(900px, calc(100vh - 28px));
        border-radius:28px;
        overflow:hidden;
        box-shadow:0 0 0 1px rgba(255,255,255,.12), 0 24px 48px rgba(18,0,72,.4);
    }
}

@media (max-width:380px){
    :root{--app-top-gap:3px;--app-side-gap:8px}
    .topbar{padding:7px 7px 9px}
    .topbar-kicker{font-size:9px}
    .page-title{font-size:18px}
    .logout-button{width:40px;height:40px;flex-basis:40px}
    .logout-icon{width:20px;height:20px}
    .board-top{grid-template-columns:76px minmax(0,1fr)}
    .jackpot-digit{font-size:38px}
    .jackpot-word{font-size:12px}
    .board-head{grid-template-columns:30px minmax(0,1fr) 38px}
    .board-logo-wrap{width:30px;height:30px}
    .title-panel{padding:2px 4px 3px}
    .board-head h3{font-size:10px}
    .clock-pill{font-size:13px;min-height:42px}
    .meta-strip{grid-template-columns:48px minmax(0,1fr) 34px}
    .first-series{font-size:15px}
    .first-number{font-size:23px}
    .prize-row{grid-template-columns:56px minmax(0,1fr)}
    .prize-label strong{font-size:10px}
    .number-cell{font-size:10px}
    .fifth-grid .number-cell{font-size:8px}
    .menu-link{font-size:9px}
}

@media (max-width:345px){
    .jackpot-tag{font-size:9px}
    .jackpot-digit{font-size:34px}
    .jackpot-word{font-size:11px}
    .board-head{grid-template-columns:28px minmax(0,1fr) 34px}
    .board-logo-wrap{width:28px;height:28px}
    .board-head h3{font-size:9px}
    .board-brand{font-size:7px}
    .first-number{font-size:20px}
    .fifth-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
    .logout-button{width:38px;height:38px;flex-basis:38px}
}

@keyframes floatChip{
    0%,100%{transform:translateY(0)}
    50%{transform:translateY(-4px)}
}

@keyframes drift{
    0%,100%{transform:translate3d(0,0,0)}
    50%{transform:translate3d(8px,-8px,0)}
}

.admin-page{
    min-height:100vh;
    padding:12px;
    background:linear-gradient(180deg, #9a62ff 0%, #6417ff 34%, #100034 100%);
    color:#21113f;
    overflow:auto;
}

.admin-workspace{
    width:min(100%,1500px);
    margin:0 auto;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(380px,430px);
    gap:12px;
    align-items:start;
}

.admin-card{
    width:min(100%,980px);
    margin:0 auto;
    padding:12px;
    border-radius:18px;
    background:#fff;
    box-shadow:0 24px 52px rgba(18,0,72,.28);
}

.admin-editor{width:100%;margin:0}

.admin-login{max-width:420px;margin-top:12vh}
.admin-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start;margin-bottom:10px}
.admin-head h1,.admin-card h1,.admin-recent h2{margin:0;color:#21113f}
.admin-head h1{font-size:24px;line-height:1}
.admin-head p,.admin-card p{margin:4px 0 0;color:#655772;font-weight:800;font-size:12px}
.admin-head-actions,.admin-actions{display:flex;gap:10px;flex-wrap:wrap}
.admin-head-actions a,.admin-recent-row a{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 10px;border-radius:999px;background:#f3edff;color:#6417ff;font-weight:900;font-size:12px}
.admin-form{display:grid;gap:9px}
.admin-grid{display:grid;gap:8px}
.admin-grid.two{grid-template-columns:1fr 1fr}
.admin-grid.three{grid-template-columns:repeat(3,1fr)}
.admin-form label,.admin-login label{display:grid;gap:5px;color:#2a1749;font-weight:900;font-size:12px}
.admin-input,.admin-textarea{width:100%;border:1px solid rgba(100,23,255,.18);border-radius:11px;background:#fff;color:#21113f;font:800 14px/1.25 "Trebuchet MS","Segoe UI",sans-serif;outline:none;box-shadow:0 5px 10px rgba(22,0,84,.05)}
.admin-input{min-height:36px;padding:0 10px}
.admin-textarea{min-height:105px;padding:12px;resize:vertical}
.admin-textarea.tall{min-height:190px}
.admin-button{min-height:38px;border:0;border-radius:999px;padding:0 14px;background:linear-gradient(135deg, #ff3d9b 0%, #ff7a18 55%, #ffd74f 100%);color:#fff;font:900 13px/1 "Trebuchet MS","Segoe UI",sans-serif;box-shadow:0 10px 18px rgba(255,74,93,.2)}
.admin-button.ghost{background:linear-gradient(135deg, #9a62ff 0%, #6417ff 100%)}
.admin-msg{margin-bottom:14px;padding:12px;border-radius:14px;font-weight:900}
.admin-msg.success{background:#ecfff4;color:#08622b;border:1px solid rgba(67,216,107,.3)}
.admin-msg.error{background:#fff0f4;color:#aa123f;border:1px solid rgba(223,23,106,.28)}
.admin-entry-block{display:grid;gap:7px;padding:8px;border-radius:14px;background:#f8f4ff;border:1px solid rgba(100,23,255,.12)}
.admin-entry-block h2{display:flex;justify-content:space-between;gap:8px;align-items:center;margin:0;color:#21113f;font-size:15px;line-height:1}
.admin-entry-block h2 span{color:#6b5d7b;font-size:11px}
.admin-number-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:5px}
.admin-number-grid.many{grid-template-columns:repeat(20,minmax(0,1fr));gap:4px}
.admin-number-box{width:100%;height:32px;border:1px solid rgba(100,23,255,.2);border-radius:9px;background:#fff;color:#21113f;text-align:center;font:900 13px/1 "Trebuchet MS","Segoe UI",sans-serif;box-shadow:0 4px 8px rgba(22,0,84,.05)}
.admin-number-box:focus,.admin-first-ticket:focus{border-color:#6417ff;box-shadow:0 0 0 3px rgba(100,23,255,.14);outline:none}
.json-upload-block{background:linear-gradient(135deg,#fff9df 0%,#f8f4ff 100%)}
.stream-form{margin-top:12px;padding:10px;border-radius:16px;background:#fff9df;border:1px solid rgba(255,181,31,.34)}
.stream-form h2{margin:0;color:#21113f}
.admin-recent{margin-top:12px;padding-top:10px;border-top:1px solid rgba(100,23,255,.12)}
.admin-recent-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto;gap:6px;align-items:center;padding:7px 0;border-bottom:1px solid rgba(100,23,255,.08);font-weight:900;font-size:12px}

.admin-preview-panel{
    position:sticky;
    top:12px;
    min-height:calc(100vh - 24px);
    padding:10px;
    border-radius:18px;
    background:rgba(255,255,255,.96);
    box-shadow:0 24px 52px rgba(18,0,72,.28);
}

.admin-preview-head{
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:center;
    margin-bottom:8px;
}

.admin-preview-head strong{
    display:block;
    color:#21113f;
    font-size:18px;
    font-weight:900;
}

.admin-preview-head span{
    display:block;
    margin-top:2px;
    color:#655772;
    font-size:12px;
    font-weight:800;
}

.admin-preview-head a{
    min-height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 12px;
    border-radius:999px;
    background:#6417ff;
    color:#fff;
    font-size:13px;
    font-weight:900;
}

.admin-preview-frame{
    width:100%;
    height:calc(100vh - 84px);
    min-height:720px;
    border:0;
    border-radius:20px;
    background:#fff;
    box-shadow:inset 0 0 0 1px rgba(100,23,255,.12);
}

.result-view-body{min-height:100vh;overflow:auto;background:#ede7ff;color:#111}
.result-view{width:min(100%,940px);margin:0 auto;padding:16px}
.result-view-toolbar{display:flex;justify-content:flex-end;gap:8px;margin-bottom:12px}
.result-view-toolbar a,.result-view-toolbar button{border:0;border-radius:999px;min-height:40px;padding:0 14px;background:#6417ff;color:#fff;font-weight:900}
.result-view-sheet{height:auto;max-height:none;overflow:visible;border-radius:10px}
.result-paper{background:#fff;border:3px solid #16279a;border-radius:10px;overflow:hidden}
.result-paper-head{display:flex;justify-content:space-between;gap:12px;padding:18px;background:linear-gradient(135deg,#16b51d 0%,#fff12e 48%,#f20f22 100%);color:#10106e}
.result-paper-head h1{margin:4px 0;font-size:34px;line-height:1;color:#202ba0}
.result-paper-head strong{display:grid;place-items:center;min-width:86px;border-radius:18px;background:#fff121;color:#f20f22;font-size:30px}
.first-result{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;background:#fff;border-bottom:2px solid #16279a}
.first-result span{font-size:20px;font-weight:900;color:#202ba0}
.first-result strong{font-size:42px;color:#f20f22;line-height:1}
.result-prize-section{padding:10px 14px;border-bottom:1px solid #d5dcff}
.result-prize-section h2{margin:0 0 8px;padding:7px 10px;border-radius:8px;background:#0878d8;color:#fff;font-size:20px}
.result-number-grid{display:grid;gap:6px 10px}
.result-number-grid span{text-align:center;font-size:18px;font-weight:900}

@media (max-width:700px){
    .admin-page{padding:10px}
    .admin-workspace{grid-template-columns:1fr}
    .admin-card{padding:14px;border-radius:20px}
    .admin-grid.two,.admin-grid.three,.admin-recent-row{grid-template-columns:1fr}
    .admin-number-grid,.admin-number-grid.many{grid-template-columns:repeat(5,minmax(0,1fr))}
    .admin-number-box{height:40px;font-size:14px}
    .admin-preview-panel{position:static;min-height:0}
    .admin-preview-frame{height:680px;min-height:680px}
    .result-paper-head h1{font-size:24px}
    .first-result strong{font-size:30px}
    .result-number-grid span{font-size:14px}
}

@media print{
    body:not(.result-view-body){
        height:auto;
        overflow:visible;
        display:block;
        padding:0;
        background:#fff;
    }
    body:not(.result-view-body) .app-shell{
        width:100%;
        height:auto;
        padding:0;
        display:block;
        background:#fff;
        box-shadow:none;
    }
    body:not(.result-view-body) .topbar,
    body:not(.result-view-body) .old-result-controls,
    body:not(.result-view-body) .footer-card{
        display:none;
    }
    body:not(.result-view-body) .page-stack{
        display:block;
        height:auto;
        overflow:visible;
    }
    body:not(.result-view-body) .board-shell{
        height:auto;
        max-height:none;
        overflow:visible;
        border:0;
        border-radius:0;
        box-shadow:none;
    }
    .result-view-toolbar{display:none}
    .result-view{padding:0;width:100%}
    .result-view-body{background:#fff}
    .result-view-sheet{
        border:0;
        border-radius:0;
        box-shadow:none;
    }
    .result-paper{border-radius:0}
}
