*{margin:0;padding:0;box-sizing:border-box}body,html,#root{width:100%;height:100%}body{overflow:hidden}.display{width:100vw;height:100vh;background:#050505;color:#fff;font-family:Georgia,serif}.screen{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.idle-screen{background:radial-gradient(ellipse at 50% 80%,rgba(180,130,0,.18) 0%,transparent 55%),radial-gradient(ellipse at center,#1a0a00,#050505 70%)}.logo{text-align:center}.logo-icon{font-size:8rem;margin-bottom:1rem;filter:drop-shadow(0 0 40px rgba(255,215,0,.5));animation:float 4s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-18px)}}.logo h1{font-size:6rem;letter-spacing:.35em;color:gold;text-transform:uppercase;text-shadow:0 0 80px rgba(255,215,0,.4),0 4px 20px rgba(0,0,0,.8)}.logo p{font-size:1.5rem;color:#888;margin-top:1.2rem;letter-spacing:.15em}.betting-screen{background:radial-gradient(ellipse at 20% 50%,rgba(20,60,20,.4) 0%,transparent 50%),#060606;flex-direction:row;align-items:stretch;padding:2rem;gap:2rem}.betting-left{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}.race-title{font-size:3rem;color:gold;letter-spacing:.08em;text-align:center;margin-bottom:.4rem;text-shadow:0 0 40px rgba(255,215,0,.3)}.betting-open{font-size:1.3rem;color:#4caf50;letter-spacing:.4em;text-align:center;margin-bottom:2rem;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.horses-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.9rem;width:100%}.horse-card{background:linear-gradient(160deg,#141414,#1a1a1a);border:1px solid #252525;border-top:4px solid var(--silk);border-radius:12px;padding:1.1rem .9rem;display:flex;flex-direction:column;align-items:center;gap:.35rem}.horse-silk{width:28px;height:28px;background:var(--silk);border-radius:50%;margin-bottom:.1rem;box-shadow:0 0 14px var(--silk)}.horse-number{font-size:1.4rem;color:#fff;font-weight:700}.horse-name{font-size:1.1rem;text-align:center;color:#ccc}.horse-odds{font-size:1.8rem;color:#4caf50;font-weight:700;margin-top:.15rem}.betting-qr{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;background:#ffffff05;border:1px solid #1e1e1e;border-radius:16px;flex-shrink:0}.qr-label{font-size:1.1rem;letter-spacing:.3em;color:gold;font-weight:700}.qr-box{padding:1rem;background:#fff;border-radius:12px;box-shadow:0 0 40px #ffd70033}.qr-sub{font-size:.8rem;color:#555;text-align:center}.race-video{width:100%;height:100%;object-fit:cover}.cgi-screen{background:linear-gradient(180deg,#070f04,#050505);flex-direction:column;padding:1.2rem 1.5rem .8rem;gap:0;justify-content:flex-start}.cgi-header{text-align:center;margin-bottom:.75rem;flex-shrink:0}.cgi-subtitle{font-size:.9rem;letter-spacing:.4em;color:#4caf50;animation:pulse 1.5s ease-in-out infinite;margin-top:.2rem}.cgi-track{flex:1;display:flex;flex-direction:column;gap:3px;width:100%;min-height:0}.cgi-lane{flex:1;display:flex;align-items:stretch;min-height:0}.cgi-label{width:250px;flex-shrink:0;display:flex;align-items:center;gap:.45rem;padding-right:.75rem;border-right:1px solid #111}.cgi-silk{width:14px;height:14px;border-radius:2px;flex-shrink:0}.cgi-num{font-size:1.5rem;font-weight:700;min-width:32px;text-align:right;flex-shrink:0}.cgi-name{font-size:.95rem;color:#aaa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.cgi-place{font-size:1.2rem;flex-shrink:0}.cgi-run{flex:1;position:relative;border-radius:3px;overflow:visible}.cgi-run.lane-0{background:linear-gradient(180deg,#062010,#051a0c);border:1px solid #0a2a10}.cgi-run.lane-1{background:linear-gradient(180deg,#072514,#061f0f);border:1px solid #0c3015}.cgi-run:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0px,rgba(255,255,255,.018) 1px,transparent 1px,transparent 48px)}.cgi-finish-line{position:absolute;top:-2px;bottom:-2px;width:10px;background:repeating-linear-gradient(to bottom,#fff,#fff 5px,#111 5px,#111 10px);z-index:5;box-shadow:0 0 12px #fff9}.cgi-finish-line:before{content:"🏁";position:absolute;top:-24px;left:-4px;font-size:1.1rem}.cgi-horse{position:absolute;top:50%;left:0;transform:translateY(-50%);font-size:2.4rem;line-height:1;animation:gallop .22s steps(2) infinite;z-index:10}@keyframes gallop{0%{transform:translateY(-50%)}to{transform:translateY(-58%)}}.cgi-saddle-cloth{display:none}.finished-screen{background:radial-gradient(ellipse at center,#1a1000,#050505 70%);overflow:hidden;position:relative}.finished-rays{position:absolute;top:0;right:0;bottom:0;left:0;background:conic-gradient(from 0deg at 50% 50%,rgba(255,215,0,.06) 0deg,transparent 30deg,rgba(255,215,0,.04) 60deg,transparent 90deg,rgba(255,215,0,.06) 120deg,transparent 150deg,rgba(255,215,0,.04) 180deg,transparent 210deg,rgba(255,215,0,.06) 240deg,transparent 270deg,rgba(255,215,0,.04) 300deg,transparent 330deg,rgba(255,215,0,.06) 360deg);animation:rays-spin 20s linear infinite}@keyframes rays-spin{to{transform:rotate(360deg)}}.finished-content{text-align:center;position:relative;z-index:1;padding:2rem}.winner-label{font-size:1.8rem;letter-spacing:.5em;color:#888;margin-bottom:1rem}.winner-name{font-size:clamp(3rem,8vw,7rem);color:gold;letter-spacing:.08em;text-shadow:0 0 80px rgba(255,215,0,.7),0 0 160px rgba(255,215,0,.3);animation:winner-pulse 1.8s ease-in-out infinite alternate;margin-bottom:1rem;line-height:1.1}@keyframes winner-pulse{0%{text-shadow:0 0 60px rgba(255,215,0,.5)}to{text-shadow:0 0 120px rgba(255,215,0,1),0 0 200px rgba(255,180,0,.5)}}.race-subtitle{font-size:1.5rem;color:#bbb;letter-spacing:.05em}body:has(.slip-screen){overflow:auto;height:auto}.slip-screen{width:100%;min-height:100vh;background:linear-gradient(135deg,#0a0a0a,#0d0d0d);display:flex;align-items:flex-start;justify-content:center;padding:1rem;overflow-y:auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.slip-card{background:#111;border:1px solid #222;border-radius:20px;padding:1.5rem;width:100%;max-width:460px;display:flex;flex-direction:column;gap:1.25rem;margin:auto}.slip-header{display:flex;align-items:center;gap:1rem;border-bottom:1px solid #1e1e1e;padding-bottom:1rem}.slip-logo{font-size:2.5rem}.slip-title{font-size:1.6rem;color:gold;font-weight:700;letter-spacing:.1em;font-family:Georgia,serif}.slip-race-name{font-size:.85rem;color:#777;margin-top:2px}.slip-label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:#555;margin-bottom:.5rem;font-weight:700}.slip-input{width:100%;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:10px;padding:.8rem 1rem;font-size:1rem;color:#fff;outline:none;transition:border-color .2s}.slip-input:focus{border-color:gold}.slip-amount{font-size:1.4rem;text-align:center;margin-top:.5rem}.slip-stake-row{display:flex;gap:.5rem;margin-bottom:.5rem}.slip-quick{flex:1;padding:.6rem 0;border:1px solid #2a2a2a;border-radius:8px;background:#1a1a1a;color:#bbb;cursor:pointer;font-size:.95rem;transition:all .15s}.slip-quick.active{background:gold;color:#111;border-color:gold;font-weight:700}.slip-horses{display:flex;flex-direction:column;gap:.5rem}.slip-horse-btn{display:flex;align-items:center;gap:.75rem;padding:.8rem 1rem;background:#1a1a1a;border:2px solid #252525;border-left:5px solid var(--hc);border-radius:10px;cursor:pointer;color:#bbb;text-align:left;transition:all .15s;width:100%}.slip-horse-btn:hover{background:#202020}.slip-horse-btn.selected{background:#1c1c14;border-color:gold;border-left-color:var(--hc);color:#fff}.sh-num{color:var(--hc);font-weight:700;min-width:36px;font-size:.9rem}.sh-name{flex:1;font-size:1rem}.sh-odds{color:#4caf50;font-weight:700;font-size:.9rem}.slip-potential{background:#0f1f06;border:1px solid #1e3a10;border-radius:10px;padding:.8rem 1rem;color:#8bc34a;font-size:.95rem;text-align:center}.slip-potential strong{color:#c5e1a5;font-size:1.15rem}.slip-submit{padding:1rem;background:gold;color:#111;border:none;border-radius:12px;font-size:1.1rem;font-weight:700;cursor:pointer;letter-spacing:.04em;transition:opacity .2s,transform .1s}.slip-submit:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.slip-submit:active:not(:disabled){transform:translateY(0)}.slip-submit:disabled{opacity:.35;cursor:not-allowed}.slip-error{color:#ef5350;font-size:.9rem;background:#1a0808;padding:.6rem 1rem;border-radius:8px}.slip-loading{color:#555;text-align:center;padding:2rem}.slip-closed{color:#888;text-align:center;padding:1rem}.slip-status{margin-top:.5rem;font-size:.8rem;color:#555;text-transform:capitalize}.slip-success{text-align:center;border-color:#1a3a1a;background:linear-gradient(135deg,#0a1a0a,#111)}.slip-icon{font-size:3.5rem}.slip-success h2{font-size:1.8rem;color:#4caf50}.slip-confirm-line{color:#bbb;font-size:1rem}.slip-payout{color:#8bc34a;font-size:1.15rem;padding:.5rem 1rem;background:#0f1f06;border-radius:8px}.slip-good-luck{color:#555;font-size:.9rem}@media (max-width: 600px){.slip-card{border-radius:16px;padding:1.25rem;gap:1rem}.slip-title{font-size:1.3rem}.slip-horse-btn{padding:.7rem .75rem}.sh-name{font-size:.9rem}}@media (max-width: 380px){.slip-screen{padding:.5rem}.slip-card{padding:1rem;gap:.9rem;border-radius:12px}.slip-stake-row{gap:.35rem}}@media (orientation: landscape) and (max-height: 500px){.slip-card{gap:.75rem;padding:1rem}.slip-header{padding-bottom:.6rem}.slip-label{margin-bottom:.3rem}}
