/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.contents{display:contents}.table{display:table}}:root{--ink:#192334;--muted:#647084;--cream:#fffaf0;--orange:#ff6b35;--yellow:#ffc64b;--green:#178c66;--line:#e8e4dc}*{box-sizing:border-box}body{color:var(--ink);background:#f5f2eb;margin:0;font-family:Noto Sans TC,Microsoft JhengHei,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.topbar{border-bottom:1px solid var(--line);z-index:5;background:#fff;align-items:center;gap:32px;height:72px;padding:0 5vw;display:flex;position:sticky;top:0}.brand{white-space:nowrap;align-items:center;gap:10px;font-size:20px;font-weight:900;display:flex}.brand-dot{color:#fff;background:var(--orange);border-radius:12px;place-items:center;width:36px;height:36px;display:grid;transform:rotate(-5deg)}.brand-logo{object-fit:contain;border-radius:8px;width:42px;height:42px}.brand+.live{margin-left:auto}nav{background:#f3f1ec;border-radius:12px;gap:5px;margin:auto;padding:5px;display:flex}nav button{color:#697386;background:0 0;border:0;border-radius:9px;padding:9px 18px;font-weight:700}nav button.active{color:var(--ink);background:#fff;box-shadow:0 2px 7px #25344a18}.live{color:var(--green);font-size:14px;font-weight:800}.live i{background:#22b681;border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block;box-shadow:0 0 0 5px #22b68120}.live.syncing{color:#a16a15}.live.syncing i{background:#d99a31;box-shadow:0 0 0 5px #d99a3120}.live.offline{color:#b64335}.live.offline i{background:#d75243;box-shadow:0 0 0 5px #d7524320}.player-shell{background:radial-gradient(circle at 15% 20%,#fff1c9 0,#0000 30%),radial-gradient(circle at 90% 80%,#ffd9cb 0,#0000 28%),#fffaf1;min-height:calc(100vh - 72px);padding:34px 6vw 60px}.event-title{text-align:center;margin-bottom:26px}.event-title p{color:var(--orange);letter-spacing:.08em;margin:0;font-weight:800}.event-title h1{letter-spacing:.08em;margin:4px 0;font-size:46px}.event-title span{color:var(--muted);font-weight:700}.player-grid{grid-template-columns:minmax(430px,590px) 300px;align-items:start;gap:24px;max-width:1020px;margin:auto;display:grid;position:relative}.player-status-overlay{z-index:3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;background:#fffcf7f2;border:1px solid #eadfce;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;min-height:520px;display:flex;position:absolute;inset:0}.player-status-overlay h2{margin:14px 0 5px;font-size:28px}.player-status-overlay p{color:var(--muted)}.status-symbol{background:var(--orange);color:#fff;border-radius:22px;place-items:center;width:70px;height:70px;font-size:34px;font-weight:900;display:grid}.card-panel,.latest,.recent,.progress,.quota,.draw-panel,.history,.setting-card{background:#fff;border:1px solid #eadfce;border-radius:22px;box-shadow:0 15px 40px #6a503213}.card-panel{padding:22px}.person{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.person small,.person strong{display:block}.person strong{margin-top:3px;font-size:20px}.person span{color:var(--green);background:#e8f7f1;border-radius:99px;padding:7px 11px;font-size:13px;font-weight:800}.person-actions{align-items:center;gap:7px;display:flex}.person-actions button{color:var(--muted);background:0 0;border:0;font-size:12px;text-decoration:underline}.letters,.bingo-card{grid-template-columns:repeat(5,1fr);gap:7px;display:grid}.letters b{text-align:center;color:var(--orange);padding:5px;font-size:22px}.cell{aspect-ratio:1;background:#fffdf9;border:2px solid #eee7dc;border-radius:13px;flex-direction:column;justify-content:center;align-items:center;transition:all .2s;display:flex}.cell b{font-size:clamp(18px,3vw,27px)}.cell small{color:var(--muted);margin-top:2px;font-size:10px}.cell.marked{color:#fff;background:linear-gradient(145deg,var(--orange),#ff875c);border-color:var(--orange);box-shadow:0 5px 12px #ff6b3538}.cell.marked small{color:#fff8}.auto-note{text-align:center;color:var(--muted);margin:17px 0 0;font-size:13px}.winner-banner{color:#137657;text-align:center;background:#e8f7f1;border-radius:13px;margin-top:14px;padding:14px;animation:.35s ease-out pop}.winner-banner b,.winner-banner span{display:block}.winner-banner b{font-size:20px}.winner-banner span{margin-top:3px;font-size:13px}@keyframes pop{0%{opacity:0;transform:scale(.96)}}.winner-banner.official{color:#784c00;background:linear-gradient(135deg,#fff0b7,#ffd970);border:1px solid #edbd3d;box-shadow:0 8px 25px #eebf4940}.login-card{background:#fff;border:1px solid #eadfce;border-radius:24px;max-width:430px;margin:0 auto;padding:30px;box-shadow:0 20px 55px #6a503220}.login-card h2{text-align:center;margin:10px 0 4px;font-size:26px}.login-card>p{text-align:center;color:var(--muted);margin:0 0 22px;font-size:14px}.login-icon{background:var(--orange);color:#fff;border-radius:17px;place-items:center;width:55px;height:55px;margin:auto;font-size:28px;font-weight:900;display:grid;transform:rotate(-4deg)}.login-card label{color:var(--muted);margin-top:13px;font-size:13px;font-weight:800;display:block}.login-card input{border:1px solid var(--line);width:100%;color:var(--ink);border-radius:11px;margin-top:6px;padding:13px;display:block}.login-card>button{background:var(--ink);color:#fff;border:0;border-radius:12px;width:100%;margin-top:20px;padding:14px;font-weight:900}.login-card>small{text-align:center;color:#9da3ad;margin-top:10px;display:block}.login-error{color:#b53b29;background:#fff0ec;border-radius:9px;margin-top:12px;padding:9px;font-size:13px}.management-gate{border:1px solid var(--line);text-align:center;background:#fff;border-radius:22px;width:min(420px,100% - 28px);margin:70px auto;padding:30px;box-shadow:0 18px 50px #25344a15}.management-gate h1{margin:15px 0 5px}.management-gate p{color:var(--muted);margin:0 0 20px}.management-gate label{text-align:left;color:var(--muted);font-size:13px;font-weight:800;display:block}.management-gate input{border:1px solid var(--line);border-radius:11px;width:100%;margin-top:6px;padding:13px;display:block}.management-gate>button{background:var(--ink);color:#fff;border:0;border-radius:11px;width:100%;margin-top:15px;padding:13px;font-weight:900}.management-gate>small{color:#9da3ad;margin-top:10px;display:block}.role-entry{background:radial-gradient(circle at 12% 20%,#fff0bf,#0000 27%),radial-gradient(circle at 88% 75%,#ffd8ca,#0000 27%),#fffaf1;min-height:calc(100vh - 72px);padding:65px 6vw}.entry-heading{text-align:center;margin-bottom:35px}.entry-heading small{color:var(--orange);letter-spacing:.08em;font-weight:900}.entry-heading h1{margin:7px 0;font-size:42px}.entry-heading p{color:var(--muted)}.role-cards{grid-template-columns:repeat(3,1fr);gap:18px;max-width:980px;margin:auto;display:grid}.role-cards button{text-align:left;color:var(--ink);background:#fff;border:1px solid #eadfce;border-radius:22px;padding:25px;transition:all .2s;box-shadow:0 15px 40px #6a503213}.role-cards button:hover{border-color:var(--orange);transform:translateY(-4px)}.role-cards i{width:48px;height:48px;color:var(--orange);background:#fff0e9;border-radius:14px;place-items:center;font-size:20px;font-style:normal;font-weight:900;display:grid}.role-cards b,.role-cards span,.role-cards em{display:block}.role-cards b{margin:18px 0 8px;font-size:22px}.role-cards span{color:var(--muted);min-height:52px;line-height:1.6}.role-cards em{color:var(--orange);margin-top:22px;font-style:normal;font-weight:900}.rooms-dashboard .dash-heading p{color:var(--muted);margin:5px 0 0}.room-summary{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px;display:grid}.room-summary article{border:1px solid var(--line);background:#fff;border-radius:15px;padding:17px}.room-summary span{color:var(--muted)}.room-summary b{margin-top:4px;font-size:28px;display:block}.room-list{gap:12px;display:grid}.room-list>article{border:1px solid var(--line);background:#fff;border-radius:17px;grid-template-columns:58px 1.2fr 2fr auto;align-items:center;gap:16px;padding:18px;display:grid}.room-logo{color:#fff;border-radius:14px;place-items:center;width:52px;height:52px;font-size:22px;font-weight:900;display:grid}.room-logo.orange{background:var(--orange)}.room-logo.blue{background:#3979c8}.room-logo.green{background:#27896b}.room-list h2{margin:2px 0 5px;font-size:18px}.room-list small,.room-list dt{color:var(--muted)}.room-list dl{grid-template-columns:repeat(3,1fr);gap:12px;margin:0;display:grid}.room-list dt{font-size:11px}.room-list dd{margin:3px 0 0;font-weight:800}.room-list button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px 13px;font-weight:800}.status-live{color:var(--green);font-size:12px;font-weight:800}.status-draft{color:#9a6a23;background:#fff3d8;border-radius:99px;padding:3px 7px;font-size:11px}.alert-backdrop{z-index:1000;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow:hidden}.alert-backdrop:before{content:"";animation:1.25s ease-in-out infinite alternate celebrationPulse;position:absolute;inset:0}.host-alert:before{background:#ff552dd1}.player-alert:before{background:#ffc32ddb}.player-alert.official:before{background:linear-gradient(135deg,#ff6935eb,#ffd344eb)}.alert-backdrop>section{z-index:2;text-align:center;background:#fff;border-radius:28px;width:min(540px,100%);padding:34px;animation:.42s cubic-bezier(.2,.9,.25,1.2) alertEntrance;position:relative;box-shadow:0 30px 90px #54200b55}.alert-backdrop small{color:var(--orange);letter-spacing:.1em;font-weight:900;display:block}.alert-backdrop h1{margin:10px 0;font-size:clamp(35px,7vw,58px);line-height:1.05}.alert-backdrop p{color:var(--muted);font-size:16px;line-height:1.6}.alert-pulse{width:76px;height:76px;color:var(--orange);background:#fff;border-radius:50%;place-items:center;margin:-74px auto 20px;font-size:50px;font-weight:950;animation:.65s ease-in-out infinite alternate iconPulse;display:grid;box-shadow:0 10px 30px #7a251d3b}.host-alert strong{color:var(--orange);font-size:70px;line-height:1;display:block}.host-alert strong em{font-size:20px;font-style:normal}.alert-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:24px;display:grid}.alert-actions button,.player-alert section>button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px;font-weight:900}.alert-actions button.accent,.player-alert section>button{background:var(--ink);color:#fff;border-color:var(--ink)}.trophy{color:#8b5200;background:linear-gradient(145deg,#fff4a8,#ffb92f);border:7px solid #fff;border-radius:50%;place-items:center;width:108px;height:108px;margin:-82px auto 22px;font-size:26px;font-weight:950;animation:.65s ease-in-out infinite alternate iconPulse;display:grid;box-shadow:0 15px 35px #9a5f1350}.player-alert section>button{width:100%;margin-top:18px}.confetti{z-index:1;pointer-events:none;position:absolute;inset:0}.confetti i{top:-10%;left:calc((var(--n,1))*5%);background:#fff;width:10px;height:22px;animation:2.4s linear infinite confettiFall;position:absolute;transform:rotate(18deg)}.confetti i:nth-child(3n){background:#ff6b35;border-radius:50%}.confetti i:nth-child(2n){background:#1a7e68}.confetti i:first-child{animation-delay:-.3s;left:5%}.confetti i:nth-child(2){animation-delay:-1.4s;left:11%}.confetti i:nth-child(3){animation-delay:-.8s;left:18%}.confetti i:nth-child(4){animation-delay:-2s;left:24%}.confetti i:nth-child(5){animation-delay:-.2s;left:31%}.confetti i:nth-child(6){animation-delay:-1.1s;left:38%}.confetti i:nth-child(7){animation-delay:-1.8s;left:44%}.confetti i:nth-child(8){animation-delay:-.6s;left:50%}.confetti i:nth-child(9){animation-delay:-1.5s;left:56%}.confetti i:nth-child(10){animation-delay:-.1s;left:62%}.confetti i:nth-child(11){animation-delay:-2.1s;left:68%}.confetti i:nth-child(12){animation-delay:-.9s;left:74%}.confetti i:nth-child(13){animation-delay:-1.7s;left:80%}.confetti i:nth-child(14){animation-delay:-.4s;left:86%}.confetti i:nth-child(15){animation-delay:-1.2s;left:92%}.confetti i:nth-child(16){animation-delay:-2.2s;left:15%}.confetti i:nth-child(17){animation-delay:-1.9s;left:47%}.confetti i:nth-child(18){animation-delay:-.7s;left:77%}@keyframes celebrationPulse{0%{opacity:.72}to{opacity:1}}@keyframes alertEntrance{0%{opacity:0;transform:scale(.78)translateY(25px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes iconPulse{0%{transform:scale(.94)}to{transform:scale(1.08)}}@keyframes confettiFall{to{top:110%;transform:rotate(540deg)}}.host-heading-actions{align-items:center;gap:10px;display:flex}.host-heading-actions>button{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;padding:11px 14px;font-weight:800}.host-heading-actions>button:hover{border-color:var(--orange);color:var(--orange)}.qr-backdrop{z-index:1100;background:#121b29d9;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.qr-backdrop section{text-align:center;background:#fff;border-radius:26px;width:min(520px,100%);padding:30px;position:relative;box-shadow:0 30px 90px #0007}.qr-backdrop small{color:var(--orange);font-weight:900}.qr-backdrop h1{margin:8px 0 4px;font-size:34px}.qr-backdrop p{color:var(--muted)}.qr-backdrop img{border:10px solid #fff;border-radius:15px;width:min(330px,80%);margin:18px auto;display:block;box-shadow:0 8px 30px #25344a20}.qr-close{color:var(--muted);background:0 0;border:0;font-size:30px;position:absolute;top:12px;right:16px}.room-code{background:#f4f1eb;border-radius:12px;justify-content:center;align-items:center;gap:12px;padding:13px;display:flex}.room-code span{color:var(--muted)}.room-code b{letter-spacing:.1em;font-size:22px}.qr-note{font-size:12px}main>.stage-display:first-child{min-height:100vh}.login-card.guest-mode label:not(:first-of-type){display:none}.login-card.guest-mode .login-icon{background:var(--green)}.capacity-setting{align-items:center;gap:8px;display:flex}.capacity-setting input{border:1px solid var(--line);text-align:right;border-radius:9px;width:110px;padding:10px;font-weight:800}.capacity-setting button{background:var(--ink);color:#fff;border:0;border-radius:9px;padding:10px 14px;font-weight:800}.capacity-setting button:disabled{opacity:.45;cursor:not-allowed}.setting-success,.setting-message{margin-top:9px;font-weight:800;display:block}.setting-success{color:#23845c}.setting-message{color:#b65c31}.export-actions{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:17px;display:grid}.export-actions a{text-align:center;border:1px solid var(--line);color:var(--ink);background:#faf9f6;border-radius:10px;padding:12px;font-weight:800;text-decoration:none}.export-actions a:hover{border-color:var(--orange);color:var(--orange)}.product-import{align-items:center;gap:15px;margin-top:16px;display:flex}.product-import span{color:var(--muted);font-size:13px}.product-preview{border-radius:12px;grid-template-columns:1fr 2fr auto;align-items:center;gap:14px;margin-top:14px;padding:14px;display:grid}.product-preview.all-good{background:#eaf8f2}.product-preview.has-errors{background:#fff0ec}.product-preview b,.product-preview span{display:block}.product-preview span{color:var(--muted);font-size:12px}.product-preview ul{color:#a23d30;margin:0;font-size:12px}.product-samples{flex-wrap:wrap;gap:6px;display:flex}.product-samples span{color:var(--ink);background:#fff;border-radius:7px;padding:5px 8px}.product-preview button{background:var(--ink);color:#fff;border:0;border-radius:9px;padding:10px 13px;font-weight:800}.product-preview button:disabled{opacity:.4}.latest>img{object-fit:contain;background:#fff;border-radius:14px;width:86px;height:86px;margin:0 auto 10px;padding:5px}.latest:has(>img) strong{font-size:45px}.drawn-ball>img{object-fit:contain;background:#fff;border-radius:50%;width:95px;height:95px;margin-bottom:4px;padding:7px}.drawn-ball:has(>img) b{font-size:48px}.image-uploader{grid-template-columns:1fr 110px auto;align-items:end;gap:14px;margin-top:16px;display:grid}.image-uploader label:first-child{color:var(--muted);font-size:13px;font-weight:800}.image-uploader select{border:1px solid var(--line);background:#fff;border-radius:9px;width:100%;margin-top:6px;padding:10px;display:block}.image-preview{width:110px;height:90px;color:var(--muted);border:1px dashed #cbc5bb;border-radius:10px;place-items:center;font-size:12px;display:grid;overflow:hidden}.image-preview img{object-fit:contain;width:100%;height:100%;padding:5px}.image-uploader>small{color:var(--green);grid-column:1/-1;font-weight:700}.batch-image-import{background:#faf8f3;border:1px dashed #cfc6b8;border-radius:14px;justify-content:space-between;align-items:center;gap:18px;margin-top:18px;padding:18px;display:flex}.batch-image-import b,.batch-image-import span{display:block}.batch-image-import span{color:var(--muted);margin-top:5px;font-size:12px}.batch-image-status{color:#315b8c;background:#eef5ff;border-radius:9px;margin-top:10px;padding:10px 12px;font-size:13px;font-weight:750}.single-image-heading{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.single-image-heading b,.single-image-heading span{display:block}.single-image-heading span{color:var(--muted);margin-top:3px;font-size:12px}.image-edit-actions{flex-direction:column;align-items:stretch;gap:7px;display:flex}.image-edit-actions button{border:1px solid var(--ink);color:var(--ink);cursor:pointer;background:#fff;border-radius:9px;padding:9px 12px;font-weight:800}.product-image-library{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.product-image-library>b{margin-bottom:11px;display:block}.product-image-library>div{grid-template-columns:repeat(8,1fr);gap:9px;max-height:330px;padding:3px;display:grid;overflow:auto}.product-image-library button{aspect-ratio:1;cursor:pointer;background:#f5f2ec;border:2px solid #0000;border-radius:11px;padding:4px;position:relative;overflow:hidden}:is(.product-image-library button:hover,.product-image-library button:focus-visible){border-color:var(--orange);outline:none}.product-image-library img{object-fit:contain;background:#fff;border-radius:7px;width:100%;height:100%}.product-image-library span{color:#fff;background:#192334dc;border-radius:5px;padding:2px 5px;font-size:10px;font-weight:900;position:absolute;bottom:5px;left:5px}.batch-image-preview{border:1px solid var(--line);border-radius:13px;margin-top:12px;overflow:hidden}.batch-preview-heading{background:#faf9f6;justify-content:space-between;align-items:center;gap:16px;padding:14px;display:flex}.batch-preview-heading b,.batch-preview-heading span{display:block}.batch-preview-heading span{color:var(--muted);margin-top:3px;font-size:12px}.batch-preview-heading>div:last-child{gap:8px;display:flex}.batch-preview-heading button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:9px;padding:9px 12px;font-weight:800}.batch-preview-heading button.save{background:var(--orange);color:#fff;border-color:var(--orange)}.batch-preview-table{max-height:280px;overflow:auto}.batch-preview-table>div{border-top:1px solid #eee9e1;grid-template-columns:75px minmax(130px,1fr) minmax(180px,1.3fr);align-items:center;gap:12px;padding:10px 14px;display:grid}.batch-preview-table .head{color:var(--muted);z-index:1;background:#f3f0e9;font-size:11px;font-weight:900;position:sticky;top:0}.batch-preview-table>div>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upload-button.disabled,.batch-preview-heading button:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.admin-nav{position:sticky;top:92px}.setting-card{scroll-margin-top:92px}.product-example{border:1px solid var(--line);background:#faf9f6;border-radius:12px;margin-top:16px;overflow:hidden}.product-example-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:15px;padding:13px 15px;display:flex}.product-example-heading b,.product-example-heading span{display:block}.product-example-heading span{color:var(--muted);margin-top:3px;font-size:12px}.product-example-heading button{border:1px solid var(--ink);color:var(--ink);cursor:pointer;background:#fff;border-radius:9px;padding:9px 12px;font-weight:800}.product-example-heading button:hover{background:var(--ink);color:#fff}.product-example table{border-collapse:collapse;background:#fff;width:100%}.product-example th,.product-example td{text-align:left;border-bottom:1px solid #eee9e1;padding:10px 15px}.product-example th{color:var(--muted);background:#f7f5f0;font-size:12px}.product-example tbody tr:last-child td{border-bottom:0}.cell.product-cell{color:var(--ink);background:#fff;border-color:#e5dfd5;padding:5px;position:relative;overflow:hidden}.cell.product-cell b{text-align:center;font-size:clamp(12px,2vw,18px);line-height:1.2}.cell.product-cell small{text-overflow:ellipsis;white-space:nowrap;text-align:center;width:100%;color:var(--muted);font-size:9px;overflow:hidden}.cell.product-cell.marked{color:var(--ink);border:3px solid var(--orange);background:#fff;box-shadow:inset 0 0 0 2px #fff,0 5px 12px #ff6b3530}.cell.product-cell.marked small{color:var(--muted)}.cell.product-cell.marked:after{content:"✓";background:var(--orange);color:#fff;border-radius:50%;place-items:center;width:20px;height:20px;font-size:12px;font-weight:950;display:grid;position:absolute;top:4px;right:4px;box-shadow:0 2px 5px #0002}.cell.product-cell img{object-fit:cover;border-radius:8px;width:100%;height:100%}.product-number{width:36px;height:36px;color:var(--ink);z-index:1;background:#ffffffeb;border-radius:50%;place-items:center;font-size:18px;font-weight:950;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0004}.cell.product-cell>small{width:auto;color:var(--ink);background:#ffffffe8;border-radius:5px;padding:3px 4px;position:absolute;bottom:4px;left:4px;right:4px}.product-fallback{padding:7px}.cell.product-cell{isolation:isolate;background:#fff;padding:0}.cell.product-cell img{object-fit:contain;z-index:0;border-radius:10px;width:100%;height:100%;position:relative}.cell.product-cell .product-missing{background:linear-gradient(135deg,#f4f1eb,#e5dfd5);width:100%;height:100%}.cell.product-cell.marked{border:4px solid var(--orange);box-shadow:0 0 0 3px #fff,0 0 0 7px var(--orange),0 8px 20px #0002}@supports (color:color-mix(in lab, red, red)){.cell.product-cell.marked{box-shadow:0 0 0 3px #fff,0 0 0 7px color-mix(in srgb,var(--orange) 35%,transparent),0 8px 20px #0002}}.cell.product-cell.marked{transform:scale(.94)}.cell.product-cell.marked:before{content:"";background:var(--orange);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.cell.product-cell.marked:before{background:color-mix(in srgb,var(--orange) 32%,transparent)}}.cell.product-cell.marked:before{z-index:1}.cell.product-cell.marked:after{content:"✓";background:var(--orange);color:#fff;z-index:2;border-radius:50%;place-items:center;width:42%;min-width:32px;height:42%;min-height:32px;font-size:clamp(20px,4vw,34px);font-weight:950;display:grid;position:absolute;top:50%;left:50%;right:auto;transform:translate(-50%,-50%);box-shadow:0 4px 14px #0005}.product-missing{background:linear-gradient(135deg,#f4f1eb,#dcd5ca);display:block;position:relative}.product-missing:after{content:"";opacity:.7;background:linear-gradient(145deg,#0000 48%,#a9a196 49% 55%,#0000 56%);border:2px solid #a9a196;border-radius:5px;width:30%;height:30%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.latest.product-latest{flex-direction:column;justify-content:center;align-items:center;gap:9px;display:flex}.latest.product-latest>img,.latest.product-latest>.product-missing{object-fit:contain;background:#fff;border-radius:14px;width:100%;height:150px}.latest.product-latest small{order:-1}.drawn-ball.product-drawn{background:#fff;border-radius:24px;padding:12px;overflow:hidden}.drawn-ball.product-drawn>img,.drawn-ball.product-drawn>.product-missing{object-fit:contain;background:#fff;border-radius:16px;width:100%;height:100%;margin:0;padding:0}.number-cloud.product-cloud{grid-template-columns:repeat(8,1fr)}.number-cloud.product-cloud>span{background:#f4f1eb;border:2px solid #0000;border-radius:10px;padding:3px;overflow:hidden}.number-cloud.product-cloud>span>img,.number-cloud.product-cloud>span>.product-missing{object-fit:contain;border-radius:7px;width:100%;height:100%}.number-cloud.product-cloud>span.hit{border:4px solid var(--orange);box-shadow:0 0 0 2px var(--orange);background:#fff}@supports (color:color-mix(in lab, red, red)){.number-cloud.product-cloud>span.hit{box-shadow:0 0 0 2px color-mix(in srgb,var(--orange) 30%,transparent)}}.number-cloud.product-cloud>span.hit{transform:scale(.94)}.product-stage .stage-ball{background:#fff;border-radius:36px;padding:24px;overflow:hidden;box-shadow:0 35px 80px #0006,0 0 0 18px #ffffff0a}.product-stage .stage-ball>img,.product-stage .stage-ball>.product-missing{object-fit:contain;background:#fff;border-radius:22px;width:100%;height:100%}.product-stage .stage-recent i{background:#fff;border-radius:12px;padding:4px;overflow:hidden}.product-stage .stage-recent i.current{outline:5px solid var(--orange);background:#fff}.product-stage .stage-recent i img,.product-stage .stage-recent i .product-missing{object-fit:contain;border-radius:8px;width:100%;height:100%}.product-stage .stage-line i{background:#ffffff0d;border-radius:5px;padding:1px;overflow:hidden}.product-stage .stage-line i img,.product-stage .stage-line i .product-missing{object-fit:contain;opacity:.25;border-radius:4px;width:100%;height:100%}.product-stage .stage-line i.drawn{outline:2px solid var(--orange);background:#fff}.product-stage .stage-line i.drawn img,.product-stage .stage-line i.drawn .product-missing{opacity:1}.crop-backdrop{z-index:1200;background:#121b29df;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.crop-backdrop>section{background:#fff;border-radius:22px;width:min(560px,100%);max-height:95vh;padding:24px;overflow:auto;box-shadow:0 30px 90px #0007}.crop-heading{justify-content:space-between;align-items:start;margin-bottom:16px;display:flex}.crop-heading small{color:var(--orange);font-weight:900}.crop-heading h2{margin:4px 0 0}.crop-heading>button{color:var(--muted);background:0 0;border:0;font-size:30px}.crop-square{aspect-ratio:1;border:4px solid var(--orange);background:#f3f0ea;border-radius:14px;width:min(330px,80vw);margin:auto;position:relative;overflow:hidden}.crop-square img{object-fit:cover;transform-origin:50%;width:100%;height:100%}.crop-square span{width:54px;height:54px;color:var(--ink);background:#ffffffeb;border-radius:50%;place-items:center;font-size:25px;font-weight:950;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 3px 12px #0004}.crop-controls{gap:10px;margin-top:18px;display:grid}.crop-controls label{color:var(--muted);grid-template-columns:90px 1fr;align-items:center;gap:12px;font-size:13px;font-weight:800;display:grid}.crop-controls input{width:100%;accent-color:var(--orange)}.crop-backdrop section>p{color:var(--muted);text-align:center;font-size:12px}.crop-actions{justify-content:flex-end;gap:9px;display:flex}.crop-actions button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:11px 14px;font-weight:800}.crop-actions .save{background:var(--orange);color:#fff;border-color:var(--orange)}.session-ended{color:#a23d30;text-align:left;background:#fff0ec;border-radius:11px;margin-bottom:16px;padding:13px}.session-ended b,.session-ended span{display:block}.session-ended span{margin-top:4px;font-size:12px;line-height:1.5}.device-hint{padding-left:24px;color:var(--muted)!important;margin:8px 0 0!important;font-size:12px!important}.session-ended-modal{z-index:1300;background:#172132df;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.session-ended-modal section{text-align:center;background:#fff;border-radius:22px;width:min(440px,100%);padding:30px;box-shadow:0 25px 80px #0006}.session-ended-modal strong{color:#a23d30;font-size:28px;display:block}.session-ended-modal p{color:var(--muted);line-height:1.7}.session-ended-modal button{background:var(--ink);color:#fff;border:0;border-radius:11px;width:100%;padding:13px;font-weight:900}.brand-save-row{align-items:center;gap:14px;margin-top:16px;display:flex}.brand-save-row .save{width:auto}.brand-save-row span{color:var(--green);font-size:12px;font-weight:800}.player-grid{position:relative}.round-access-overlay{z-index:30;text-align:center;background:#fffffff2;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;padding:30px;display:flex;position:absolute;inset:0;box-shadow:0 15px 50px #1d29391f}.round-access-overlay div{color:#a23d30;background:#fff0ec;border-radius:50%;place-items:center;width:68px;height:68px;font-size:38px;font-weight:950;display:grid}.round-access-overlay h2{margin:15px 0 5px;font-size:30px}.round-access-overlay p{max-width:480px;color:var(--muted);line-height:1.7}.card-panel.locked{filter:grayscale(.7)}.create-room-backdrop{z-index:1400;background:#172132df;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.create-room-backdrop>section{background:#fff;border-radius:22px;width:min(580px,100%);padding:26px;box-shadow:0 25px 80px #0006}.create-room-form{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px;display:grid}.create-room-form label{color:var(--muted);font-size:13px;font-weight:800}.create-room-form input{border:1px solid var(--line);width:100%;color:var(--ink);border-radius:10px;margin-top:6px;padding:11px;display:block}.create-room-form label:last-child{grid-column:1/-1}.empty-rooms{text-align:center;color:var(--muted);border:1px solid var(--line);background:#fff;border-radius:16px;padding:40px}.room-list button:disabled{opacity:.45;cursor:not-allowed}:-webkit-full-screen .topbar{display:none}:fullscreen .topbar{display:none}:-webkit-full-screen .stage-display{height:100vh;min-height:100vh}:fullscreen .stage-display{height:100vh;min-height:100vh}@media (prefers-reduced-motion:reduce){.alert-backdrop:before,.alert-pulse,.trophy,.confetti i,.alert-backdrop>section{animation:none}}.player-grid aside{gap:14px;display:grid}.latest{text-align:center;background:var(--ink);color:#fff;padding:22px}.latest small,.latest b{display:block}.latest strong{color:var(--yellow);margin:8px;font-size:72px;line-height:1}.latest b{color:#ced5df;font-size:14px}.recent,.progress,.quota{padding:18px}.recent h3,.progress h3{margin:0 0 12px;font-size:14px}.recent div{gap:7px;display:flex}.recent span{background:#f0ede7;border-radius:50%;place-items:center;width:35px;height:35px;font-weight:800;display:grid}.recent span.new{background:var(--orange);color:#fff}.progress>div:first-child{justify-content:space-between;display:flex}.progress b{color:var(--orange)}.bar{background:#eeeae3;border-radius:9px;height:8px;overflow:hidden}.bar i{background:var(--orange);height:100%;display:block}.progress p{color:var(--muted);margin:10px 0 0;font-size:12px}.quota span,.quota small,.quota b{display:block}.quota b{margin:4px 0;font-size:24px}.quota small{color:var(--muted)}.dashboard{max-width:1180px;margin:auto;padding:44px 28px 70px}.dash-heading{justify-content:space-between;align-items:end;margin-bottom:25px;display:flex}.dash-heading small{color:var(--orange);font-weight:800}.dash-heading h1{margin:5px 0 0;font-size:36px}.round-pill{color:#b9541c;background:#fff1dc;border-radius:99px;padding:12px 18px;font-weight:800}.stats{grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:20px;display:grid}.stats article{border:1px solid var(--line);background:#fff;border-radius:17px;padding:18px 20px}.stats span,.stats small{color:var(--muted)}.stats b{margin:3px 0;font-size:32px;display:block}.host-grid{grid-template-columns:370px 1fr;gap:20px;display:grid}.draw-panel,.history{padding:25px}.drawn-ball{color:#fff;background:radial-gradient(circle at 34% 25%,#ffad71,var(--orange) 42%,#d8481e);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:220px;height:220px;margin:0 auto 24px;display:flex;box-shadow:0 18px 38px #ff6b3544}.drawn-ball b{font-size:84px;line-height:1}.drawn-ball span{font-weight:800}.primary{background:var(--ink);color:#fff;border:0;border-radius:13px;width:100%;padding:15px;font-size:17px;font-weight:900}.or{color:#9ba1aa;align-items:center;gap:10px;margin:18px 0;font-size:12px;display:flex}.or:before,.or:after{content:"";background:var(--line);flex:1;height:1px}.manual{gap:8px;display:flex}.manual input{border:1px solid var(--line);text-align:center;border-radius:10px;width:100%;min-width:0;padding:12px;font-weight:800}.manual button,.undo,.host-actions button,.save,.more{border:1px solid var(--line);background:#fff;border-radius:10px;padding:11px 15px;font-weight:800}.undo{width:100%;color:var(--muted);margin-top:10px}.history h2,.setting-card h2{margin-top:0}.number-cloud{grid-template-columns:repeat(10,1fr);gap:8px;display:grid}.number-cloud span{aspect-ratio:1;color:#98a0ac;background:#f1eee8;border-radius:50%;place-items:center;font-size:12px;font-weight:800;display:grid}.number-cloud span.hit{background:var(--orange);color:#fff}.host-actions{justify-content:flex-end;gap:9px;margin-top:25px;display:flex}.host-actions button:last-child,.save{background:var(--orange);color:#fff;border-color:var(--orange)}.host-actions button.reset-event{color:#a43d31;background:#fff7f5;border-color:#e8c4bc;margin-right:auto}.host-actions button:disabled,.lifecycle-actions button:disabled{opacity:.55;cursor:not-allowed}.winner-control{border:1px solid var(--line);background:#fff;border-radius:17px;align-items:center;gap:16px;margin-bottom:20px;padding:16px 20px;display:flex}.winner-control>div{margin-right:auto}.winner-control h2{margin:0 0 3px;font-size:17px}.winner-control p{color:var(--muted);margin:0;font-size:13px}.winner-control label{white-space:nowrap;font-size:14px;font-weight:700}.winner-control input{accent-color:var(--orange)}.winner-count{border:1px solid var(--line);border-radius:8px;width:65px;padding:8px}.winner-control button{background:var(--orange);color:#fff;border:0;border-radius:10px;padding:11px 15px;font-weight:900}.winner-control button:disabled{opacity:.4;cursor:not-allowed}.game-lifecycle{border:1px solid var(--line);background:#fff;border-radius:17px;justify-content:space-between;align-items:center;margin-bottom:15px;padding:14px 18px;display:flex}.game-lifecycle>div:first-child{color:var(--muted);align-items:center;gap:12px;font-size:13px;display:flex}.game-status{border-radius:99px;padding:7px 11px;font-size:13px}.game-status.live{color:#147654;background:#e8f7f1}.game-status.waiting,.game-status.paused{color:#976015;background:#fff3d8}.game-status.results{color:#9e4b1c;background:#fff0e8}.game-status.ended{color:#657080;background:#eef0f3}.lifecycle-actions{gap:8px;display:flex}.lifecycle-actions button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 13px;font-weight:800}.lifecycle-actions button.start{background:var(--green);color:#fff;border-color:var(--green)}.lifecycle-actions button.end{color:#a43d31}.stage-display{color:#fff;background:radial-gradient(circle at 75% 40%,#39465d 0,#0000 34%),#111a29;min-height:calc(100vh - 72px);padding:34px 5vw;position:relative;overflow:hidden}.stage-top{justify-content:space-between;align-items:center;display:flex}.stage-top>div{align-items:center;gap:15px;display:flex}.stage-top img{object-fit:contain;background:#fff;border-radius:14px;width:64px;height:64px;padding:7px}.stage-logo{background:var(--orange);border-radius:16px;place-items:center;width:60px;height:60px;font-size:30px;font-weight:950;display:grid}.stage-top small{color:#ffb18d;font-weight:900}.stage-top h1{margin:2px 0;font-size:25px}.stage-top button{color:#fff;background:#ffffff12;border:1px solid #ffffff35;border-radius:10px;padding:10px 14px;font-weight:800}.stage-content{grid-template-columns:1fr 1.2fr;align-items:center;gap:7vw;max-width:1250px;min-height:58vh;margin:auto;display:grid}.stage-content aside>span{color:#ffbd9d;font-size:18px;font-weight:900}.stage-content aside h2{margin:12px 0;font-size:clamp(48px,6vw,85px);line-height:1.05}.stage-content aside>p{color:#b8c1cf;font-size:21px}.stage-recent{margin-top:45px}.stage-recent>b{color:#aeb8c7;margin-bottom:12px;display:block}.stage-recent div{gap:12px;display:flex}.stage-recent i{background:#ffffff15;border-radius:50%;place-items:center;width:56px;height:56px;font-size:20px;font-style:normal;font-weight:900;display:grid}.stage-recent i.current{background:var(--orange);transform:scale(1.15)}.stage-ball{aspect-ratio:1;background:radial-gradient(circle at 32% 24%,#ffb078,var(--orange) 43%,#cf431b);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:min(39vw,440px);display:flex;box-shadow:0 35px 80px #0006,0 0 0 18px #ffffff0a}.stage-ball small{font-size:19px;font-weight:800}.stage-ball strong{margin:12px 0;font-size:clamp(120px,15vw,220px);line-height:.9}.stage-ball span{font-size:22px;font-weight:900}.stage-footer{border-top:1px solid #ffffff20;grid-template-columns:auto 1fr;align-items:start;gap:24px;padding-top:20px;display:grid}.stage-footer>span{white-space:nowrap;color:#b7c0ce}.stage-line{flex-wrap:wrap;gap:5px;display:flex}.stage-line i{color:#ffffff35;background:#ffffff0d;border-radius:50%;place-items:center;width:24px;height:24px;font-size:9px;font-style:normal;display:grid}.stage-line i.drawn{background:var(--orange);color:#fff}.stage-winners{z-index:5;text-align:center;background:linear-gradient(135deg,#ef5c2ef2,#ffbf3ef2);flex-direction:column;justify-content:center;align-items:center;animation:1.25s ease-in-out infinite alternate celebrationPulse;display:flex;position:absolute;inset:0}.stage-winners small{letter-spacing:.3em;font-weight:950}.stage-winners h2{margin:15px;font-size:clamp(48px,7vw,100px)}.stage-winners strong{font-size:80px}.stage-winners p{max-width:900px;font-size:25px;line-height:1.8}.admin-layout{grid-template-columns:220px 1fr;gap:20px;display:grid}.admin-nav{color:#fff;background:#202b3c;border-radius:18px;flex-direction:column;gap:5px;height:max-content;padding:18px;display:flex}.admin-nav b{padding:8px 10px 16px}.admin-nav button{text-align:left;color:#b9c0cb;background:0 0;border:0;border-radius:9px;padding:11px}.admin-nav button.selected{color:#fff;background:#ffffff18}.admin-nav span{float:right}.settings{gap:14px;display:grid}.setting-card{justify-content:space-between;align-items:center;padding:22px;display:flex}.setting-card p{color:var(--muted);margin-bottom:0}.setting-card.column{display:block}.switch-row{align-items:center;gap:10px;font-weight:800;display:flex}.switch-row input{width:42px;height:22px;accent-color:var(--orange)}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-row label{color:var(--muted);font-size:13px;font-weight:700}.form-row input,.form-row select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;margin-top:7px;padding:11px;display:block}.hint{background:#fff7e7;border-radius:9px;padding:11px;font-size:13px}.check{margin-top:12px;display:block}.check input,.rules input{accent-color:var(--orange)}.rules{grid-template-columns:repeat(3,1fr);gap:9px;margin-top:18px;display:grid}.rules label{border:1px solid var(--line);border-radius:10px;gap:8px;padding:12px;display:flex}.more{justify-self:start}.brand-form{grid-template-columns:1fr 1fr;gap:14px;margin-top:20px;display:grid}.brand-form label{color:var(--muted);font-size:13px;font-weight:700}.brand-form>label>input,.color-field{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;margin-top:7px;padding:11px;display:block}.color-field{gap:8px;padding:5px;display:flex}.color-field input[type=color]{background:0 0;border:0;width:45px;height:34px;padding:0}.color-field input:last-child{border:0;outline:0;width:100%}.logo-upload{border-top:1px solid var(--line);grid-template-columns:110px 1fr;align-items:center;gap:18px;margin-top:20px;padding-top:20px;display:grid}.logo-preview{color:#a19a8f;background:#faf8f3;border:1px dashed #cfc8bc;border-radius:12px;place-items:center;width:110px;height:80px;font-weight:900;display:grid;overflow:hidden}.logo-preview img{object-fit:contain;width:100%;height:100%;padding:8px}.logo-upload p{margin:4px 0 10px;font-size:12px}.upload-button{background:var(--ink);color:#fff;cursor:pointer;border-radius:9px;padding:9px 13px;font-size:13px;font-weight:800;display:inline-block}.upload-button input{display:none}.remove-logo{color:#b84d35;background:0 0;border:0;margin-left:10px;font-size:13px}.allocation-summary{border:1px solid;border-radius:12px;justify-content:space-between;align-items:center;margin:16px 0;padding:14px 16px;display:flex}.allocation-summary span,.allocation-summary b{display:block}.allocation-summary span{margin-bottom:3px;font-size:12px}.allocation-summary b{font-size:18px}.allocation-summary small{font-weight:800}.allocation-summary.matched{color:#157656;background:#eaf8f2;border-color:#a9dfcb}.allocation-summary.warning{color:#9a6115;background:#fff5df;border-color:#f0cd83}.privacy-note{color:#546173;background:#f1f5fa;border-radius:10px;margin-top:15px;padding:11px 13px;font-size:13px}.roster-upload{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;margin-top:20px;padding-top:20px;display:flex}.roster-upload p{margin:4px 0 0;font-size:12px}.roster-result{border-radius:12px;grid-template-columns:2fr repeat(3,1fr) auto;align-items:center;gap:10px;margin-top:14px;padding:14px;display:grid}.roster-result.all-good{background:#eaf8f2}.roster-result.has-errors{background:#fff5df}.roster-result span,.roster-result b{display:block}.roster-result span{color:var(--muted);font-size:11px}.roster-result button{background:var(--ink);color:#fff;border:0;border-radius:9px;padding:10px 13px;font-weight:800}.roster-result button:disabled{opacity:.4}.login-rules{grid-template-columns:repeat(4,1fr)}@media (max-width:800px){.topbar{flex-wrap:wrap;gap:10px;height:auto;padding:12px 16px}.topbar nav{order:3;width:100%}.topbar nav button{flex:1;padding:8px 5px;font-size:13px}.live{margin-left:auto}.role-entry{padding:38px 14px}.entry-heading h1{font-size:32px}.role-cards{grid-template-columns:1fr}.player-shell{padding:22px 14px 40px}.event-title h1{font-size:34px}.player-grid,.host-grid,.admin-layout{grid-template-columns:1fr}.card-panel{padding:13px}.cell{border-radius:9px}.player-grid aside{grid-template-columns:1fr 1fr}.latest{grid-row:span 2}.stats{grid-template-columns:1fr 1fr}.stats article:last-child{grid-column:span 2}.number-cloud{grid-template-columns:repeat(8,1fr)}.admin-nav{display:none}.form-row,.rules,.brand-form{grid-template-columns:1fr}.dash-heading{align-items:start}.dash-heading h1{font-size:29px}.roster-upload{flex-direction:column;align-items:flex-start}.roster-result{grid-template-columns:1fr 1fr}.roster-result button{grid-column:span 2}.room-summary{grid-template-columns:1fr 1fr}.room-summary article:last-child{grid-column:span 2}.room-list>article{grid-template-columns:52px 1fr}.room-list dl,.room-list button{grid-column:span 2}.batch-image-import,.batch-preview-heading{flex-direction:column;align-items:flex-start}.image-uploader{grid-template-columns:1fr 90px}.image-edit-actions,.image-uploader>small{grid-column:1/-1}.product-image-library>div{grid-template-columns:repeat(4,1fr)}.batch-preview-table>div{grid-template-columns:58px 1fr}.batch-preview-table>div>span:last-child{grid-column:1/-1}.batch-preview-table .head>span:last-child{display:none}}.operational-tools{gap:14px;padding-top:0;display:grid}.account-list,.archive-list{gap:9px;margin-top:15px;display:grid}.account-list article{border:1px solid var(--line);background:#faf9f6;border-radius:12px;grid-template-columns:minmax(170px,1fr) minmax(220px,1.2fr) auto auto;align-items:center;gap:9px;padding:12px;display:grid}.account-list b,.account-list span{display:block}.account-list span{color:var(--muted);margin-top:3px;font-size:12px}.account-list input{border:1px solid var(--line);border-radius:9px;width:100%;padding:10px}.account-list button,.archive-list button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px 12px;font-weight:800}.account-list button.danger,.archive-list button.danger{color:#a43d31;background:#fff7f5;border-color:#e8c4bc}.account-list button.save{color:#fff;background:var(--green);border-color:var(--green)}.account-list button:disabled{opacity:.4;cursor:not-allowed}.archive-list>div{border:1px solid var(--line);border-radius:11px;justify-content:space-between;align-items:center;padding:11px 13px;display:flex}.operational-tools .export-actions{grid-template-columns:repeat(2,minmax(180px,260px))}.operational-tools .upload-button{text-align:center;padding:12px}@media (max-width:800px){.account-list article,.operational-tools .export-actions{grid-template-columns:1fr}}.account-list article{grid-template-columns:minmax(170px,1fr) minmax(220px,1.2fr) auto auto auto}.account-list button.account-delete{color:#b42318;background:#fff;border-color:#f0aaa3}.account-list button.account-delete:hover{color:#fff;background:#b42318;border-color:#b42318}@media (max-width:800px){.account-list article{grid-template-columns:1fr}}.logout-button{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:9px;padding:8px 11px;font-weight:800}.password-field{border:1px solid var(--line);border-radius:9px;min-width:260px;padding:11px}.brand-save-row button:disabled{opacity:.45;cursor:not-allowed}.allocation-mode-banner{border-radius:10px;margin:10px 0 0;padding:11px 13px;font-size:13px;font-weight:850}.allocation-mode-banner.stop{color:#a43d31;background:#fff0ec;border:1px solid #e9c1b7}.allocation-mode-banner.partial,.allocation-mode-banner.spread{color:#157656;background:#eaf8f2;border:1px solid #a9dfcb}.room-actions{gap:7px;min-width:128px;display:grid}.room-list .room-actions .room-open{color:#fff;background:var(--green);border-color:var(--green)}.room-list .room-actions .room-close{color:#a43d31;background:#fff7f5;border-color:#e8c4bc}.delete-room-list{gap:10px;display:grid}.delete-room-list>div{border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:13px 15px;display:flex}.delete-room-list span{flex-direction:column;gap:3px;display:flex}.delete-room-list small{color:var(--muted)}.room-delete{color:#b42318!important;background:#fff!important;border-color:#f0aaa3!important}.room-delete:hover{color:#fff!important;background:#b42318!important;border-color:#b42318!important}.roster-upload-actions{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.template-download{border:1px solid var(--ink);color:var(--ink);cursor:pointer;background:#fff;border-radius:9px;padding:10px 13px;font-weight:800}.print-card-export{background:#fff7e7;border:1px solid #f0c777;border-radius:13px;justify-content:space-between;align-items:center;gap:18px;margin:18px 0;padding:16px;display:flex}.print-card-export div{gap:4px;display:grid}.print-card-export span{color:var(--muted);font-size:13px}.print-card-export button{background:var(--orange);color:#fff;cursor:pointer;border:0;border-radius:10px;flex:none;padding:11px 15px;font-weight:900}.print-card-app{color:#182235;background:#e9e7e2;min-height:100vh}.print-toolbar{z-index:5;background:#fff;border-bottom:1px solid #d9d4ca;grid-template-columns:1fr 190px auto;align-items:center;gap:18px;padding:18px max(22px,50vw - 590px);display:grid;position:sticky;top:0;box-shadow:0 4px 18px #26324718}.print-toolbar h1{margin:2px 0;font-size:27px}.print-toolbar small{color:var(--print-accent);font-weight:900}.print-toolbar p{color:#657080;margin:3px 0;font-size:13px}.print-toolbar label{color:#657080;font-size:12px;font-weight:800}.print-toolbar label input{border:1px solid #d8d3c9;border-radius:9px;width:100%;margin:5px 0 2px;padding:9px;font-weight:900;display:block}.print-toolbar-actions{gap:8px;display:flex}.print-toolbar-actions button{cursor:pointer;background:#fff;border:1px solid #d8d3c9;border-radius:10px;padding:11px 14px;font-weight:850}.print-toolbar-actions .print-export{color:#fff;background:var(--print-accent);border-color:var(--print-accent)}.print-toolbar-actions button:disabled{opacity:.55;cursor:wait}.print-help{color:#77551b;background:#fff7e7;border-radius:8px;grid-column:1/-1;padding:8px 11px;font-size:12px}.print-document{max-width:760px;margin:24px auto;padding:0 20px 50px}.print-sheet{box-sizing:border-box;page-break-after:always;break-after:page;background:#fff;grid-template-rows:1fr;grid-template-columns:1fr;width:105mm;height:148mm;margin:0 auto 22px;padding:4mm;display:grid;box-shadow:0 8px 30px #26324726}.print-bingo-card{box-sizing:border-box;background:linear-gradient(150deg,#fff 0%,#fffdf8 100%);border:1.2px solid #263247;border-radius:4mm;grid-template-rows:auto auto auto 1fr auto;min-width:0;min-height:0;padding:4mm;display:grid;overflow:hidden}.print-bingo-card>header{border-bottom:1px solid #d8d3c9;grid-template-columns:13mm 1fr auto;align-items:center;gap:2.5mm;padding-bottom:2.4mm;display:grid}.print-bingo-card>header img,.print-bingo-card>header i{object-fit:contain;border-radius:2.5mm;width:12mm;height:12mm}.print-bingo-card>header i{background:var(--print-accent);color:#fff;place-items:center;font-size:6mm;font-style:normal;font-weight:950;display:grid}.print-bingo-card>header div{display:grid}.print-bingo-card>header small{color:#657080;font-size:2.7mm;font-weight:750}.print-bingo-card>header b{font-size:5mm;line-height:1.05}.print-bingo-card>header>span{color:#657080;text-align:right;font-size:2.4mm;font-weight:800}.print-bingo-card>header strong{color:#182235;letter-spacing:.08em;font-size:4.5mm;display:block}.print-card-meta{color:#657080;white-space:nowrap;justify-content:space-between;gap:2mm;padding:2mm .5mm;font-size:2.5mm;font-weight:750;display:flex}.print-letters{text-align:center;color:var(--print-accent);grid-template-columns:repeat(5,1fr);gap:1.5mm;margin-bottom:1.5mm;font-size:5mm;display:grid}.print-card-grid{grid-template-rows:repeat(5,1fr);grid-template-columns:repeat(5,1fr);gap:1.4mm;min-height:0;display:grid}.print-card-grid>div{background:#fff;border:1px solid #d2cbc0;border-radius:2mm;place-items:center;min-width:0;min-height:0;font-size:7mm;font-weight:950;display:grid;overflow:hidden;box-shadow:0 .6mm 1.6mm #25324a12}.print-card-grid .print-free{color:#fff;background:var(--print-accent);line-height:1}.print-product-cell img{object-fit:cover;width:100%;height:100%;display:block}.print-product-cell span{text-align:center;padding:1mm;font-size:2.7mm;line-height:1.05}.print-bingo-card.product .print-card-grid>div{background:#f1eee8;border-width:.7mm;border-color:#fff;box-shadow:0 0 0 .25mm #cbc3b8}.print-bingo-card.product .print-product-cell img{object-fit:cover;transform:scale(1.01)}.print-bingo-card>footer{color:#657080;justify-content:space-between;padding-top:2mm;font-size:2.2mm;font-weight:750;display:flex}.print-error{text-align:center;color:#182235;background:#f6f3ed;place-content:center;min-height:100vh;padding:30px;display:grid}.print-error h1{margin-bottom:4px}.print-error p{color:#657080}.print-error button{color:#fff;background:#182235;border:0;border-radius:9px;justify-self:center;padding:10px 18px;font-weight:800}.print-document{max-width:900px}.print-sheet{width:210mm;height:297mm;padding:8mm}.print-bingo-card{border-width:2px;border-radius:8mm;padding:8mm}.print-bingo-card>header{grid-template-columns:26mm 1fr auto;gap:5mm;padding-bottom:4.8mm}.print-bingo-card>header img,.print-bingo-card>header i{border-radius:5mm;width:24mm;height:24mm}.print-bingo-card>header i{font-size:12mm}.print-bingo-card>header small{font-size:5.4mm}.print-bingo-card>header b{font-size:10mm}.print-bingo-card>header>span{font-size:4.8mm}.print-bingo-card>header strong{font-size:9mm}.print-card-meta{gap:4mm;padding:4mm 1mm;font-size:5mm}.print-letters{gap:3mm;margin-bottom:3mm;font-size:10mm}.print-card-grid{gap:2.8mm}.print-card-grid>div{border-width:2px;border-radius:4mm;font-size:14mm;box-shadow:0 1.2mm 3.2mm #25324a12}.print-free b{font-size:10mm}.print-free small{margin-top:-4mm;font-size:4.2mm}.print-product-cell span{padding:2mm;font-size:5.4mm}.print-bingo-card.product .print-card-grid{gap:2mm}.print-bingo-card.product .print-card-grid>div{border-width:1.4mm;box-shadow:0 0 0 .5mm #cbc3b8}.print-bingo-card>footer{padding-top:4mm;font-size:4.4mm}@media (max-width:900px){.print-card-export{flex-direction:column;align-items:flex-start}.print-toolbar{grid-template-columns:1fr;position:static}.print-toolbar-actions{flex-wrap:wrap}.print-document{padding:0 12px 30px;overflow:auto}.print-sheet{transform-origin:0 0}}@media print{@page{size:A4 portrait;margin:0}html,body{-webkit-print-color-adjust:exact;print-color-adjust:exact;width:210mm;height:297mm;background:#fff!important}.print-toolbar{display:none!important}.print-card-app{background:#fff!important}.print-document{max-width:none;margin:0;padding:0}.print-sheet{width:210mm;height:297mm;box-shadow:none;page-break-after:always;break-after:page;margin:0}.print-sheet:last-child{page-break-after:auto;break-after:auto}}.allocation-toggle-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px;display:flex}.allocation-toggle-heading .switch-row{background:#f6f4ef;border-radius:12px;flex:none;padding:10px 12px}.allocation-mode-banner.independent{color:#245a86;background:#edf7ff;border:1px solid #cce5f7}.independent-card-note{background:#f5f9fc;border:1px solid #dcebf5;border-radius:14px;gap:8px;padding:18px;display:grid}.independent-card-note span{color:var(--muted)}.independent-card-note label{color:var(--muted);max-width:420px;margin-top:6px;font-size:13px;font-weight:700}.independent-card-note select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;margin-top:7px;padding:11px;display:block}.stage-top{z-index:7;position:relative}.stage-top-actions{align-items:center;gap:12px;display:flex}.stage-join-qr{color:#192334;background:#fff;border-radius:18px;align-items:center;gap:16px;padding:12px 18px 12px 12px;display:flex;position:absolute;top:52px;right:0;box-shadow:0 12px 35px #0005}.stage-top .stage-join-qr img{object-fit:contain;background:#fff;border-radius:11px;width:190px;height:190px;padding:0}.stage-join-qr div{gap:5px;display:grid}.stage-join-qr span{color:#5b6574;white-space:nowrap;font-size:16px;font-weight:800}.stage-join-qr b{color:var(--orange);letter-spacing:.08em;font-size:27px}@media (max-width:1100px){.stage-top .stage-join-qr img{width:140px;height:140px}.stage-join-qr span{font-size:13px}.stage-join-qr b{font-size:21px}}@media (max-width:800px){.stage-top .stage-join-qr img{width:90px;height:90px}.stage-join-qr div{display:none}.stage-join-qr{padding:7px}.stage-top-actions{gap:6px}}
