@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700;800&family=Inter:wght@300;400;500;600;700&display=swap";
:root{--emerald-950:#022c22;--emerald-900:#064e3b;--emerald-800:#065f46;--emerald-700:#047857;--emerald-600:#059669;--gold-600:#b8860b;--gold-500:#d4a574;--gold-400:#e8c496;--gold-300:#f0d6b0;--cream-50:#fdf8f0;--cream-100:#faf0e2;--cream-200:#f2e4d0;--racing-red:#dc2626;--racing-red-dark:#991b1b;--rose-500:#c27ba0;--text-dark:#1a1a1a;--text-muted:#6b7280;--text-light:#9ca3af;--white:#fff;--black:#000;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001f;--shadow-lg:0 8px 32px #00000029;--shadow-xl:0 16px 48px #0003;--shadow-gold:0 4px 20px #d4a5744d;--font-display:"Playfair Display",Georgia,serif;--font-body:"Inter",-apple-system,sans-serif;--ease-spring:cubic-bezier(.34,1.56,.64,1);--ease-smooth:cubic-bezier(.4,0,.2,1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-body);color:var(--text-dark);background:var(--cream-50);min-height:100vh;overflow-x:hidden}.container{max-width:480px;padding:0 var(--space-md);margin:0 auto}.container-wide{max-width:960px;padding:0 var(--space-md);margin:0 auto}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.2}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.1rem}.label{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);font-size:.75rem;font-weight:600}.hero{background:linear-gradient(135deg,var(--emerald-950)0%,var(--emerald-900)40%,var(--emerald-800)100%);color:var(--white);padding:var(--space-3xl)var(--space-md)var(--space-2xl);text-align:center;position:relative;overflow:hidden}.hero:before{content:"🏇";opacity:.04;font-size:200px;position:absolute;top:-30px;right:-30px;transform:rotate(-15deg)}.hero:after{content:"";background:linear-gradient(90deg,var(--gold-600),var(--gold-400),var(--gold-600));height:4px;position:absolute;bottom:0;left:0;right:0}.hero h1{margin-bottom:var(--space-sm);text-shadow:0 2px 8px #0000004d;font-size:2.2rem}.hero .subtitle{color:var(--gold-400);font-family:var(--font-display);margin-bottom:var(--space-lg);font-size:1rem;font-style:italic}.hero .tagline{color:#ffffffb3;max-width:320px;margin:0 auto;font-size:.9rem;line-height:1.5}.btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:14px var(--space-lg);border-radius:var(--radius-lg);font-family:var(--font-body);cursor:pointer;transition:all .2s var(--ease-smooth);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border:none;min-height:52px;font-size:1rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg,var(--emerald-700),var(--emerald-800));color:var(--white);box-shadow:var(--shadow-md),0 0 0 0 #05966900}.btn-primary:hover{box-shadow:var(--shadow-lg),0 0 0 4px #05966926;background:linear-gradient(135deg,var(--emerald-600),var(--emerald-700))}.btn-gold{background:linear-gradient(135deg,var(--gold-600),var(--gold-500));color:var(--white);box-shadow:var(--shadow-gold)}.btn-gold:hover{box-shadow:var(--shadow-lg),0 0 20px #d4a57466}.btn-outline{color:var(--emerald-800);border:2px solid var(--emerald-700);background:0 0}.btn-outline:hover{background:var(--emerald-800);color:var(--white)}.btn-danger{background:var(--danger);color:var(--white)}.btn-ghost{color:var(--text-muted);padding:var(--space-sm)var(--space-md);background:0 0;min-height:auto}.btn-ghost:hover{background:#0000000d}.btn-block{width:100%;display:flex}.btn-sm{border-radius:var(--radius-md);min-height:40px;padding:8px 16px;font-size:.875rem}.btn-lg{min-height:60px;padding:18px 32px;font-size:1.1rem}.card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all .3s var(--ease-smooth);border:1px solid #0000000f;overflow:hidden}.card:hover{box-shadow:var(--shadow-md)}.card-body{padding:var(--space-md)}.horse-card{align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;transition:all .2s var(--ease-smooth);-webkit-tap-highlight-color:transparent;border:2px solid #0000;display:flex;position:relative;overflow:hidden}.horse-card:before{content:"";width:4px;transition:width .2s var(--ease-smooth);position:absolute;top:0;bottom:0;left:0}.horse-card:hover{border-color:var(--emerald-600);box-shadow:var(--shadow-md);transform:translateY(-1px)}.horse-card:active{transform:scale(.99)}.horse-card.selected{border-color:var(--emerald-700);box-shadow:var(--shadow-md),0 0 0 3px #064e3b1a;background:linear-gradient(135deg,#064e3b08,#064e3b14)}.horse-card.scratched{opacity:.5;cursor:not-allowed;text-decoration:line-through}.horse-number{border-radius:var(--radius-md);width:48px;height:48px;font-family:var(--font-display);color:var(--white);flex-shrink:0;justify-content:center;align-items:center;font-size:1.2rem;font-weight:800;display:flex;position:relative}.horse-silk{border-radius:var(--radius-md);flex-shrink:0;width:48px;height:48px;position:relative;overflow:hidden}.horse-silk.pattern-stripes{background-image:repeating-linear-gradient(45deg,#0000,#0000 4px,#ffffff40 4px 8px)}.horse-silk.pattern-diamonds{background-image:linear-gradient(45deg,#fff3 25%,#0000 25%),linear-gradient(-45deg,#fff3 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#fff3 75%),linear-gradient(-45deg,#0000 75%,#fff3 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px}.horse-silk.pattern-dots{background-image:radial-gradient(circle,#ffffff4d 2px,#0000 2px);background-size:10px 10px}.horse-silk.pattern-chevron{background-image:linear-gradient(135deg,#fff3 25%,#0000 25%),linear-gradient(225deg,#fff3 25%,#0000 25%);background-size:12px 24px}.horse-info{flex:1;min-width:0}.horse-name{font-family:var(--font-display);margin-bottom:2px;font-size:1.05rem;font-weight:700}.horse-jockey{color:var(--text-muted);font-size:.8rem}.horse-odds{font-family:var(--font-display);color:var(--emerald-800);white-space:nowrap;border-radius:var(--radius-full);background:#064e3b14;padding:4px 12px;font-size:1.1rem;font-weight:700}.horse-list{gap:var(--space-sm);padding:var(--space-md);flex-direction:column;display:flex}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#00000080;justify-content:center;align-items:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-sheet{background:var(--white);border-radius:var(--radius-xl)var(--radius-xl)0 0;padding:var(--space-lg)var(--space-md)var(--space-2xl);width:100%;max-width:480px;max-height:85vh;animation:slideUp .3s var(--ease-spring);overflow-y:auto}.modal-handle{background:var(--cream-200);border-radius:var(--radius-full);width:40px;height:4px;margin:0 auto var(--space-lg)}.modal-title{text-align:center;margin-bottom:var(--space-lg)}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}.amount-grid{gap:var(--space-sm);margin:var(--space-md)0;grid-template-columns:repeat(3,1fr);display:grid}.amount-btn{padding:var(--space-md);border:2px solid var(--cream-200);border-radius:var(--radius-md);background:var(--white);font-family:var(--font-display);color:var(--text-dark);cursor:pointer;transition:all .2s var(--ease-smooth);text-align:center;font-size:1.2rem;font-weight:700}.amount-btn:hover{border-color:var(--emerald-600)}.amount-btn.selected{border-color:var(--emerald-700);background:var(--emerald-800);color:var(--white)}.amount-btn:active{transform:scale(.96)}.bet-type-row{gap:var(--space-sm);margin:var(--space-md)0;display:flex}.bet-type-btn{border:2px solid var(--cream-200);border-radius:var(--radius-md);background:var(--white);color:var(--text-dark);cursor:pointer;transition:all .2s var(--ease-smooth);text-align:center;text-transform:capitalize;flex:1;padding:12px;font-size:.9rem;font-weight:600}.bet-type-btn.selected{border-color:var(--gold-600);background:linear-gradient(135deg,var(--gold-600),var(--gold-500));color:var(--white)}.input-group{margin:var(--space-md)0}.input-group label{margin-bottom:var(--space-xs);font-size:.9rem;font-weight:600;display:block}.input{width:100%;padding:14px var(--space-md);border:2px solid var(--cream-200);border-radius:var(--radius-md);font-family:var(--font-body);background:var(--white);font-size:1rem;transition:border-color .2s}.input:focus{border-color:var(--emerald-600);outline:none}.input::placeholder{color:var(--text-light)}.payment-options{gap:var(--space-sm);margin:var(--space-md)0;flex-direction:column;display:flex}.payment-btn{align-items:center;gap:var(--space-md);padding:var(--space-md);border:2px solid var(--cream-200);border-radius:var(--radius-lg);background:var(--white);cursor:pointer;text-align:left;font-family:var(--font-body);transition:all .2s;display:flex}.payment-btn:hover{border-color:var(--emerald-600)}.payment-btn .payment-icon{text-align:center;width:40px;font-size:1.5rem}.payment-btn .payment-label{font-size:1rem;font-weight:600}.payment-btn .payment-desc{color:var(--text-muted);font-size:.8rem}.confirmation{text-align:center;padding:var(--space-2xl)var(--space-md)}.confirmation-icon{margin-bottom:var(--space-md);animation:bounceIn .5s var(--ease-spring);font-size:4rem}.confirmation-code{font-family:var(--font-display);letter-spacing:.15em;color:var(--emerald-800);padding:var(--space-md)var(--space-lg);border-radius:var(--radius-md);margin:var(--space-md)0;background:#064e3b14;font-size:2rem;font-weight:800;display:inline-block}@keyframes bounceIn{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.stat-card{background:linear-gradient(135deg,var(--emerald-900),var(--emerald-800));color:var(--white);padding:var(--space-lg);border-radius:var(--radius-lg);text-align:center;margin:var(--space-md)}.stat-value{font-family:var(--font-display);font-size:2.5rem;font-weight:800}.stat-label{color:var(--gold-400);text-transform:uppercase;letter-spacing:.1em;margin-top:4px;font-size:.8rem}.leaderboard-item{align-items:center;gap:var(--space-md);padding:var(--space-md);border-bottom:1px solid var(--cream-200);display:flex}.leaderboard-rank{border-radius:var(--radius-full);justify-content:center;align-items:center;width:32px;height:32px;font-size:.85rem;font-weight:700;display:flex}.leaderboard-rank.gold{background:var(--gold-400);color:var(--text-dark)}.leaderboard-rank.silver{color:var(--text-dark);background:silver}.leaderboard-rank.bronze{color:var(--white);background:#cd7f32}.leaderboard-rank.other{background:var(--cream-200);color:var(--text-muted)}.leaderboard-bar{background:var(--cream-200);border-radius:var(--radius-full);height:8px;margin-top:4px;overflow:hidden}.leaderboard-fill{background:linear-gradient(90deg,var(--emerald-700),var(--emerald-600));border-radius:var(--radius-full);height:100%;transition:width .5s var(--ease-smooth)}.nav-bar{background:var(--white);border-top:1px solid var(--cream-200);padding:var(--space-sm)0;z-index:50;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #0000000d}.nav-item{padding:var(--space-xs)var(--space-md);color:var(--text-muted);cursor:pointer;font-size:.7rem;font-family:var(--font-body);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;align-items:center;gap:2px;text-decoration:none;transition:color .2s;display:flex}.nav-item.active{color:var(--emerald-800)}.nav-icon{font-size:1.3rem}.tabs{background:var(--cream-100);border-radius:var(--radius-md);margin:var(--space-md);padding:3px;display:flex}.tab{border-radius:var(--radius-sm);font-family:var(--font-body);color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:1;padding:10px;font-size:.85rem;font-weight:600;transition:all .2s}.tab.active{background:var(--white);color:var(--text-dark);box-shadow:var(--shadow-sm)}.admin-header{background:var(--emerald-950);color:var(--white);padding:var(--space-md);justify-content:space-between;align-items:center;display:flex}.admin-header h2{font-size:1.1rem}.admin-stats-grid{gap:var(--space-sm);padding:var(--space-md);grid-template-columns:repeat(2,1fr);display:grid}.admin-stat{background:var(--white);border-radius:var(--radius-md);padding:var(--space-md);text-align:center;box-shadow:var(--shadow-sm)}.admin-stat .value{font-family:var(--font-display);color:var(--emerald-800);font-size:1.5rem;font-weight:700}.admin-stat .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem}.bet-row{padding:var(--space-md);border-bottom:1px solid var(--cream-100);justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.bet-row .bet-info{flex:1;min-width:0}.bet-row .bet-name{font-size:.95rem;font-weight:600}.bet-row .bet-details{color:var(--text-muted);font-size:.8rem}.bet-row .bet-amount{font-family:var(--font-display);color:var(--emerald-800);font-size:1.1rem;font-weight:700}.badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.03em;align-items:center;padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-flex}.badge-pending{color:#92400e;background:#fef3c7}.badge-confirmed{color:#065f46;background:#d1fae5}.badge-cash{color:#1e40af;background:#dbeafe}.badge-paypal{color:#5b21b6;background:#ede9fe}.playground-banner{color:var(--white);text-align:center;padding:var(--space-sm)var(--space-md);background:linear-gradient(90deg,#7c3aed,#a855f7);font-size:.85rem;font-weight:600}.form-row{gap:var(--space-sm);margin-bottom:var(--space-sm);display:flex}.form-row>*{flex:1}.confetti-container{pointer-events:none;z-index:200;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.confetti-piece{width:10px;height:10px;animation:3s linear forwards confettiFall;position:absolute;top:-20px}@keyframes confettiFall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(720deg)}}.spinner{border:3px solid var(--cream-200);border-top-color:var(--emerald-700);width:40px;height:40px;margin:var(--space-2xl)auto;border-radius:50%;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--cream-100)25%,var(--cream-50)50%,var(--cream-100)75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (min-width:768px){.container{max-width:560px}.horse-card{padding:var(--space-md)var(--space-lg)}h1{font-size:2.5rem}.amount-grid{grid-template-columns:repeat(5,1fr)}}.empty-state{text-align:center;padding:var(--space-3xl)var(--space-lg);color:var(--text-muted)}.empty-state .empty-icon{margin-bottom:var(--space-md);opacity:.5;font-size:3rem}.page-content{padding-bottom:80px}.status-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.status-dot.open{background:var(--success)}.status-dot.draft{background:var(--text-light)}.status-dot.locked{background:var(--warning)}.status-dot.completed{background:var(--emerald-700)}.card-enter{animation:cardEnter .4s var(--ease-spring)backwards}@keyframes cardEnter{0%{opacity:0;transform:translateY(20px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.card-enter:first-child{animation-delay:0s}.card-enter:nth-child(2){animation-delay:40ms}.card-enter:nth-child(3){animation-delay:80ms}.card-enter:nth-child(4){animation-delay:.12s}.card-enter:nth-child(5){animation-delay:.16s}.card-enter:nth-child(6){animation-delay:.2s}.card-enter:nth-child(7){animation-delay:.24s}.card-enter:nth-child(8){animation-delay:.28s}.card-enter:nth-child(9){animation-delay:.32s}.card-enter:nth-child(10){animation-delay:.36s}.card-enter:nth-child(n+11){animation-delay:.4s}@keyframes pulseGlow{0%,to{box-shadow:0 0 #064e3b33}50%{box-shadow:0 0 0 8px #064e3b00}}.pulse-glow{animation:2s ease-in-out infinite pulseGlow}
