:root{--brand-red:#e30613;--brand-red-dark:#9f0712;--brand-gold:#fc2;--brand-ink:#15151f;--brand-text:#f8fafc;--brand-muted:#8a91a7;--brand-panel:#fff;--brand-line:#15151f1f;--accent-teal:#00b3b8;--accent-violet:#7059ff;--surface-soft:#f5f7fb;--shadow-lg:0 28px 80px #0a0a1447;--shadow-md:0 18px 44px #0f172a24}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--brand-ink);background:#0f1222;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.route-hub{background:radial-gradient(circle at 20% 20%,#ffcc2238,#0000 28%),radial-gradient(circle at 75% 15%,#00b3b838,#0000 28%),linear-gradient(135deg,#17192b,#10121e 60%,#24151e);place-items:center;min-height:100vh;padding:24px;display:grid}.hub-panel{width:min(560px,100%);box-shadow:var(--shadow-lg);background:#ffffffeb;border:1px solid #ffffff29;border-radius:8px;padding:40px}.brand-mark,.controller-brand{background:var(--brand-red);color:#fff;border-radius:4px;width:fit-content;padding:8px 12px;font-size:13px;font-weight:900}.hub-panel h1{margin:18px 0 8px;font-size:clamp(40px,8vw,78px);line-height:.96}.hub-panel p{color:#52586b}.hub-links{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.hub-links a{background:var(--brand-ink);color:#fff;text-align:center;border-radius:6px;min-width:136px;padding:14px 18px;font-weight:800;text-decoration:none}.screen-page{min-height:100vh;color:var(--brand-text);background:linear-gradient(115deg,#e306133d,#0000 38%),radial-gradient(circle at 82% 18%,#ffcc223d,#0000 26%),linear-gradient(145deg,#151826,#10111d 62%,#25101a);padding:clamp(20px,3vw,38px);position:relative;overflow:hidden}.screen-page:before{content:"";pointer-events:none;background-image:linear-gradient(#ffffff0d 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000000b8,#0000 85%);mask-image:linear-gradient(#000000b8,#0000 85%)}.screen-header,.screen-stage{z-index:1;position:relative}.screen-header{justify-content:space-between;align-items:center;gap:28px;display:flex}.brand-lockup{align-items:center;gap:16px;display:flex}.brand-symbol{background:var(--brand-red);color:#fff;border-radius:6px;place-items:center;width:66px;height:66px;font-size:36px;font-weight:950;display:grid;box-shadow:0 16px 34px #e3061366}.brand-lockup span,.admin-header span{color:#ffffff9e;text-transform:uppercase;font-size:13px;font-weight:800;display:block}.brand-lockup strong{color:#fff;font-size:clamp(32px,4vw,56px);line-height:.9;display:block}.screen-header p{color:#ffffffd1;text-align:right;max-width:540px;margin:0;font-size:clamp(22px,3vw,42px);font-weight:850;line-height:1.02}.screen-stage{grid-template-columns:minmax(500px,1fr) minmax(220px,300px);grid-template-areas:"status qr""wheel qr";align-items:center;gap:22px 44px;min-height:calc(100vh - 134px);padding-bottom:20px;display:grid}.screen-status{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:#fff;background:#ffffff1c;border:1px solid #ffffff2e;border-radius:999px;grid-area:status;justify-self:center;align-items:center;gap:12px;padding:13px 20px;font-size:clamp(18px,2vw,26px);font-weight:800;display:inline-flex}.status-dot,.controller-status span{background:var(--brand-muted);border-radius:999px;width:13px;height:13px;display:inline-block;box-shadow:0 0 0 6px #8a91a724}.status-dot.status-ready,.status-dot.status-spinning,.status-dot.status-stopping,.controller-status.status-ready span,.controller-status.status-spinning span,.controller-status.status-stopping span{background:#22c55e;box-shadow:0 0 0 6px #22c55e2b}.status-dot.status-finished,.controller-status.status-finished span{background:var(--brand-gold);box-shadow:0 0 0 6px #ffcc222b}.wheel-shell{aspect-ratio:1;grid-area:wheel;justify-self:center;width:min(70vh,760px);position:relative}.wheel-shell:before{filter:blur(46px);content:"";background:#ffcc2240;border-radius:50%;position:absolute;inset:8%}.wheel-svg{width:100%;height:100%;display:block;position:relative;overflow:visible}.wheel-rotor{transform-box:fill-box;transform-origin:50%;will-change:transform}.wheel-segment text{fill:#fff;paint-order:stroke;stroke:#00000052;stroke-width:5px;stroke-linejoin:round;font-size:20px;font-weight:950}.wheel-segment.is-winner path{filter:brightness(1.18);stroke:#fff;stroke-width:8px}.wheel-center-label{fill:#fff;font-size:42px;font-weight:950}.wheel-pointer{z-index:2;filter:drop-shadow(0 10px 18px #00000052);border:26px solid #0000;border-top:0;border-bottom:58px solid #fff;width:0;height:0;position:absolute;top:-4px;left:50%;transform:translate(-50%)}.qr-panel{box-shadow:var(--shadow-lg);color:var(--brand-ink);background:#ffffffed;border:1px solid #ffffff2e;border-radius:8px;grid-area:qr;align-self:center;justify-items:center;gap:12px;padding:22px;display:grid}.qr-code{background:#fff;border-radius:6px;padding:8px;display:grid}.qr-panel p{color:var(--brand-red);margin:0;font-size:22px;font-weight:900}.qr-panel span{color:#596070;font-size:14px;font-weight:800}.result-backdrop{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0608129e;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.result-modal{width:min(720px,92vw);box-shadow:var(--shadow-lg);color:var(--brand-ink);text-align:center;background:#fff;border:1px solid #ffffff38;border-radius:8px;padding:clamp(34px,6vw,70px)}.result-modal svg{color:var(--brand-red)}.result-modal p{color:#62697a;text-transform:uppercase;margin:14px 0 10px;font-size:clamp(18px,2vw,24px);font-weight:800}.result-modal h2{color:var(--brand-red);margin:0;font-size:clamp(42px,7vw,88px);line-height:.98}.next-round-countdown{background:var(--brand-ink);color:#fff;border-radius:8px;margin:24px auto 0;padding:14px 18px;font-size:clamp(20px,3vw,34px);font-weight:900}.next-round-countdown strong{background:var(--brand-gold);min-width:56px;min-height:56px;color:var(--brand-ink);border-radius:999px;place-items:center;margin-left:8px;display:inline-grid}.app-download-panel{text-align:left;background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;align-items:center;gap:16px;width:min(520px,100%);margin:22px auto 0;padding:14px;display:flex}.app-download-qr{background:#fff;border-radius:6px;flex:none;padding:6px;display:grid}.app-download-panel span{color:var(--brand-red);font-size:19px;font-weight:950}.app-download-panel p{color:#62697a;text-transform:none;margin:4px 0 0;font-size:15px;font-weight:750}.controller-page{background:radial-gradient(circle at 84% 10%,#ffcc2247,#0000 24%),linear-gradient(160deg,#161927,#10111d 58%,#2c1017);place-items:stretch stretch;min-height:100vh;padding:16px;display:grid}.controller-card{width:min(480px,100%);min-height:calc(100vh - 32px);box-shadow:var(--shadow-lg);background:#fffffff5;border:1px solid #ffffff24;border-radius:8px;flex-direction:column;justify-content:space-between;margin:0 auto;padding:28px 22px;display:flex}.controller-card h1{color:var(--brand-ink);margin:34px 0 20px;font-size:clamp(48px,16vw,78px);line-height:.92}.controller-status{background:var(--surface-soft);color:#464d5e;border-radius:8px;align-items:center;gap:12px;min-height:58px;padding:14px 16px;font-weight:800;display:flex}.controller-result{text-align:center;background:#fff8f8;border:2px solid #e306131f;border-radius:8px;margin:28px 0;padding:24px 18px}.controller-result p{color:#666d7c;text-transform:uppercase;margin:0 0 8px;font-weight:800}.controller-result strong{color:var(--brand-red);font-size:clamp(32px,11vw,54px);line-height:1}.manual-code-form{gap:12px;margin:28px 0;display:grid}.manual-code-form label{color:#545b6b;text-transform:uppercase;font-size:14px;font-weight:900}.manual-code-form input{width:100%;min-height:64px;color:var(--brand-ink);letter-spacing:0;text-transform:uppercase;background:#fff;border:2px solid #d0d5dd;border-radius:8px;padding:0 16px;font-size:24px;font-weight:900}.manual-code-form input:focus{border-color:var(--brand-red);outline:4px solid #e306131f}.manual-code-form button{background:var(--brand-red);color:#fff;border:0;border-radius:8px;min-height:64px;font-size:22px;font-weight:950}.manual-code-form button:disabled{color:#667085;background:#c9ced9}.controller-app-gate{gap:12px;margin-top:auto;display:grid}.controller-app-gate p{color:var(--brand-ink);margin:0;font-size:22px;font-weight:900}.app-gate-button{background:var(--brand-red);color:#fff;border:0;border-radius:8px;justify-content:center;align-items:center;gap:10px;width:100%;min-height:74px;font-size:22px;font-weight:950;display:flex}.app-gate-button.secondary{background:var(--brand-ink)}.app-gate-button:disabled{color:#667085;background:#c9ced9}.result-proof-card{justify-content:flex-start}.result-proof-list{gap:10px;margin:22px 0;display:grid}.result-proof-list div{border-bottom:1px solid #eef1f5;justify-content:space-between;gap:16px;padding:12px 0;display:flex}.result-proof-list dt{color:#667085;font-weight:900}.result-proof-list dd{color:var(--brand-ink);text-align:right;margin:0;font-weight:900}.result-proof-link{background:var(--brand-ink);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-height:48px;padding:0 16px;font-weight:900;text-decoration:none;display:inline-flex}.controller-spin-button{background:linear-gradient(135deg, var(--brand-red), #ff4e2f);color:#fff;border:0;border-radius:8px;place-items:center;gap:8px;width:100%;min-height:170px;margin-top:auto;font-size:clamp(30px,9vw,44px);font-weight:950;display:grid;box-shadow:0 24px 48px #e3061347}.controller-spin-button:disabled{box-shadow:none;color:#667085;background:#c9ced9}.controller-spin-button.is-stop{background:linear-gradient(135deg,#15151f,#42495c);box-shadow:0 24px 48px #15151f47}.spin-icon.is-spinning{animation:1s linear infinite spinIcon}@keyframes spinIcon{to{transform:rotate(360deg)}}.admin-page{min-height:100vh;color:var(--brand-ink);background:#f2f4f8;padding:28px}.admin-header{justify-content:space-between;align-items:flex-end;gap:18px;max-width:1280px;margin:0 auto 22px;display:flex}.admin-header span{color:var(--brand-red)}.admin-header h1{margin:4px 0 0;font-size:clamp(34px,5vw,60px);line-height:.96}.admin-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.admin-button{background:var(--brand-red);color:#fff;border:0;border-radius:6px;justify-content:center;align-items:center;gap:9px;min-height:44px;padding:0 16px;font-weight:850;display:inline-flex}.admin-button.secondary{background:var(--brand-ink)}.admin-button.compact{min-height:38px;padding:0 12px}.admin-button.full{width:100%}.admin-grid{grid-template-columns:minmax(0,1fr) minmax(300px,440px);gap:18px;max-width:1280px;margin:0 auto 18px;display:grid}.admin-section{border:1px solid var(--brand-line);box-shadow:var(--shadow-md);background:#fff;border-radius:8px;padding:20px}.section-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.section-header h2{margin:0;font-size:24px}.section-header p{color:#667085;margin:4px 0 0}.session-pill{color:#475467;text-transform:uppercase;background:#e5e7eb;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:900}.session-pill.status-ready,.session-pill.status-spinning,.session-pill.status-stopping{color:#166534;background:#dcfce7}.session-pill.status-finished{color:#92400e;background:#fef3c7}.session-controls{gap:14px;display:grid}.toggle-row{align-items:center;gap:12px;font-weight:800;display:flex}.toggle-row input{width:22px;height:22px;accent-color:var(--brand-red)}.admin-field{color:#545b6b;gap:7px;font-size:14px;font-weight:800;display:grid}.admin-field select,.admin-field input,.prize-row input{width:100%;min-height:40px;color:var(--brand-ink);background:#fff;border:1px solid #d0d5dd;border-radius:6px}.admin-field select,.admin-field input{padding:0 12px}.result-list{gap:8px;display:grid}.stats-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;display:grid}.stat-box{background:#f2f4f8;border-radius:8px;gap:4px;padding:12px;display:grid}.stat-box.wide{grid-column:1/-1}.stat-box span{color:#667085;text-transform:uppercase;font-size:12px;font-weight:900}.stat-box strong{color:var(--brand-ink);font-size:22px;line-height:1.05}.prize-stats{border:1px solid #eef1f5;border-radius:8px;gap:6px;margin:4px 0 12px;padding:10px;display:grid}.prize-stat-row{grid-template-columns:12px 1fr auto;align-items:center;gap:8px;display:grid}.prize-stat-row span{border-radius:999px;width:12px;height:12px}.prize-stat-row p{color:#475467;margin:0;font-size:13px;font-weight:800}.prize-stat-row strong{color:var(--brand-ink);font-size:13px}.result-row{border-bottom:1px solid #eef1f5;justify-content:space-between;gap:12px;padding:11px 0;display:flex}.result-row span{color:#667085}.empty-state{color:#667085;margin:0}.prize-manager{max-width:1280px;margin:0 auto}.prize-table{gap:8px;display:grid}.prize-row{background:#fbfcfe;border:1px solid #eef1f5;border-radius:8px;grid-template-columns:minmax(180px,1.4fr) minmax(120px,1fr) 90px 90px 92px 92px;align-items:center;gap:10px;padding:10px;display:grid}.prize-head{color:#667085;text-transform:uppercase;background:0 0;border:0;font-size:12px;font-weight:900}.prize-row input{padding:0 10px}.switch-label{color:#667085;align-items:center;gap:8px;font-weight:800;display:flex}.switch-label input{width:20px;height:20px;min-height:20px;accent-color:var(--brand-red)}.row-actions{align-items:center;gap:8px;display:flex}.row-actions input[type=color]{width:42px;min-height:36px;padding:2px}.icon-button{color:#475467;background:#fff;border:1px solid #d0d5dd;border-radius:6px;place-items:center;width:38px;height:38px;display:grid}.mobile-field-label{display:none}@media (max-width:980px){.screen-header{flex-direction:column;align-items:flex-start}.screen-header p{text-align:left}.screen-stage{grid-template-columns:1fr;grid-template-areas:"status""wheel""qr"}.wheel-shell{width:min(86vw,640px)}.qr-panel{justify-self:center;width:min(360px,100%)}.admin-grid{grid-template-columns:1fr}}@media (max-width:760px){.admin-page{padding:18px}.admin-header{flex-direction:column;align-items:stretch}.admin-actions{justify-content:stretch}.admin-actions .admin-button{flex:1}.prize-head{display:none}.prize-row{grid-template-columns:1fr 1fr}.prize-row label,.row-actions{min-width:0}.mobile-field-label{color:#667085;text-transform:uppercase;margin:0 0 5px;font-size:12px;font-weight:900;display:block}}@media (max-width:520px){.hub-panel{padding:26px}.hub-links a{width:100%}.screen-page{padding:16px}.brand-symbol{width:54px;height:54px;font-size:30px}.wheel-segment text{font-size:17px}.qr-code svg{width:160px;height:160px}.controller-card{padding:22px 18px}.controller-spin-button{min-height:156px}.prize-row{grid-template-columns:1fr}}
