:root{--blue-900:#052970;--blue-800:#073f9a;--blue-700:#0756c7;--blue-600:#0b64dc;--blue-100:#eaf2ff;--surface:#fff;--surface-muted:#f5f7fb;--line:#dbe3ef;--text:#162033;--muted:#5b6678;--green:#0f9d52;--amber:#f39800;--purple:#5b35c8;--cyan:#0798ad;--danger:#c92a2a;--shadow:0 10px 28px #0529701f;--radius:8px;--font:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;color:var(--text);background:var(--surface-muted);font-family:var(--font);letter-spacing:0;margin:0;overflow-x:hidden}html,#root{min-height:100%}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline-offset:3px;outline:4px solid #ffbf47}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell,.display-shell{min-height:100vh;padding:18px}.center-shell{place-items:center;display:grid}.app-header{color:#fff;background:var(--blue-900);border-radius:var(--radius);min-height:84px;box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:18px;padding:10px 18px;display:flex}.brand-block{align-items:center;gap:18px;min-width:0;display:flex}.brand-block h1{margin:0;font-size:clamp(2rem,4vw,2.9rem);font-weight:850;line-height:.95}.brand-block p,.header-round{color:#ffffffe6;margin:6px 0 0;font-size:1.05rem;font-weight:700;display:block}.logo-frame{border-radius:var(--radius);background:#fff;border:2px solid #ffffffbf;flex:none;place-items:center;width:108px;height:70px;display:grid;position:relative;overflow:hidden}.logo-frame.compact{width:96px;height:72px}.logo-frame img{object-fit:contain;width:100%;height:100%}.logo-frame span{color:var(--muted);text-align:center;font-size:.78rem;font-weight:800;display:none}.logo-frame.missing-logo span{display:block}.header-actions,.history-top-actions,.summary-actions,.modal-actions,.form-actions,.checker-actions,.segmented-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.button{border-radius:var(--radius);color:#fff;background:var(--blue-700);text-align:center;text-transform:uppercase;border:0;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:12px 18px;font-size:.95rem;font-weight:850;line-height:1.15;display:inline-flex;box-shadow:0 8px 18px #073f9a2e}.button svg{flex:none;width:24px;height:24px}.button.primary{background:var(--blue-800)}.button.secondary{color:var(--blue-900);box-shadow:inset 0 0 0 1px var(--line);background:#eef4ff}.button.ghost{background:#ffffff1f;box-shadow:inset 0 0 0 1px #ffffff59}.button.success{background:var(--green)}.button.warning{background:var(--amber)}.button.purple{background:var(--purple)}.button.cyan{background:var(--cyan)}.button.danger{background:var(--danger)}.button.block{width:100%}.header-action{min-height:52px;padding:12px 18px}.surface,.modal,.surface-inset{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.surface-inset{box-shadow:inset 0 0 0 1px #dbe3ef73}.home-shell{gap:18px;display:grid}.home-hero{grid-template-columns:minmax(0,1.1fr) minmax(320px,.8fr);align-items:center;gap:28px;padding:34px;display:grid}.home-copy h2{color:var(--blue-900);margin:10px 0 12px;font-size:clamp(3.6rem,9vw,7rem);font-weight:900;line-height:.92}.institution-name{color:var(--blue-700);margin:0;font-size:1.2rem;font-weight:850}.local-note{max-width:720px;color:var(--muted);margin:0 0 22px;font-size:1.2rem;line-height:1.55}.current-clock{color:var(--blue-900);background:var(--blue-100);border-radius:var(--radius);align-items:center;gap:10px;padding:12px 14px;font-weight:800;display:inline-flex}.home-actions{gap:14px;display:grid}.hero-button{width:100%;min-height:68px;font-size:1.05rem}.storage-warning,.error-surface{padding:22px}.setup-layout{max-width:1060px;margin:18px auto 0;padding:26px}.section-heading h2,.history-screen h2,.panel-title-row h2,.summary-card h2{color:var(--blue-900);margin:0;font-size:2rem;line-height:1.1}.section-heading p,.panel-title-row p{color:var(--muted);margin:8px 0 0}.setup-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:22px;display:grid}label{color:var(--blue-900);gap:8px;font-weight:800;display:grid}input,textarea,select{width:100%;min-height:48px;color:var(--text);border-radius:var(--radius);background:#fff;border:1px solid #cbd6e4;padding:10px 12px;font-size:1rem}textarea{resize:vertical;min-height:110px}.toggle-row{background:var(--surface-muted);border-radius:var(--radius);align-items:center;gap:12px;padding:12px;display:flex}.toggle-row input{width:24px;height:24px;min-height:24px}.full-span{grid-column:1/-1}.form-errors{color:#8b1a1a;border-radius:var(--radius);background:#fff1f1;margin-top:18px;padding:12px 14px}.dashboard-grid{grid-template-columns:minmax(230px,.8fr) minmax(360px,.95fr) minmax(520px,1.35fr);gap:18px;margin-top:18px;display:grid}.left-rail,.center-stage{align-content:start;gap:18px;display:grid}.round-card,.summary-panel,.history-panel,.number-board,.management-grid>.surface,.prize-box{padding:18px}.round-card h2,.summary-panel h2,.history-panel h2,.prize-box h3,.management-grid h3,.auto-controls h3{color:var(--blue-900);text-transform:uppercase;margin:0;font-size:1.16rem}.round-pill-row{flex-wrap:wrap;gap:10px;margin:14px 0;display:flex}.round-pill-row strong,.status-pill{border-radius:var(--radius);padding:11px 14px;font-weight:850}.round-pill-row strong{color:#fff;background:var(--blue-800)}.status-pill{color:#08713d;background:#e9f8ef}.status-pill.paused{color:#8a5400;background:#fff3db}.status-pill.finished{color:#6e1f1f;background:#fff1f1}.round-card p{color:var(--muted);align-items:center;gap:8px;margin:0;font-size:1.05rem;font-weight:750;display:flex}.summary-stat{border-bottom:1px solid var(--line);grid-template-columns:48px 1fr auto;align-items:center;gap:12px;padding:14px 0;display:grid}.summary-stat svg{color:#fff;border-radius:50%;width:48px;height:48px;padding:10px}.summary-stat span{color:var(--muted);text-transform:uppercase;font-weight:850}.summary-stat strong{font-size:2.1rem;line-height:1}.summary-stat.blue svg{background:var(--blue-700)}.summary-stat.amber svg{background:var(--amber)}.summary-stat.green svg{background:var(--green)}.summary-stat.purple svg{background:var(--purple)}.summary-stat.cyan svg{background:var(--cyan)}.current-ball-panel{color:#fff;background:var(--blue-900);border-radius:var(--radius);min-height:392px;box-shadow:var(--shadow);justify-items:center;gap:14px;padding:20px;display:grid}.panel-label{text-transform:uppercase;font-size:1.35rem;font-weight:900}.current-ball,.waiting-ball{aspect-ratio:1;width:min(230px,70vw);color:var(--blue-900);background:#fff;border:18px solid #24a8ff;border-radius:50%;place-items:center;animation:.42s ease-out ball-pop;display:grid;box-shadow:inset 0 0 16px #05297029,0 14px 32px #0000002e}.current-ball strong{white-space:nowrap;font-size:clamp(3rem,6vw,4.55rem);font-weight:950;line-height:1}.draw-animation{justify-items:center;gap:8px;width:100%;min-height:270px;display:grid}.draw-animation p{color:#fffffff2;text-transform:uppercase;margin:0;font-size:1.08rem;font-weight:900}.bingo-globe{width:min(300px,76vw);height:244px;position:relative}.globe-cage{background:radial-gradient(circle at 32% 28%,#fffffff2,#ffffff26 18%,#0000 34%),radial-gradient(circle,#ffffff29,#24a8ff14 58%,#05297033);border:10px solid #25a8ff;border-radius:50%;width:190px;height:190px;margin-left:-95px;animation:.98s linear infinite globe-spin;position:absolute;top:4px;left:50%;overflow:hidden;box-shadow:inset 0 0 22px #fff3,0 14px 30px #00000038}.globe-cage:before,.globe-cage:after{content:"";border:4px solid #ffffffad;border-radius:50%;position:absolute;inset:22px}.globe-cage:after{border-width:3px;inset:46px 18px}.globe-line{background:#ffffffa3;border-radius:999px;height:4px;margin-top:-2px;position:absolute;top:50%;left:18px;right:18px}.globe-line.vertical{transform:rotate(90deg)}.globe-line.diagonal-one{transform:rotate(38deg)}.globe-line.diagonal-two{transform:rotate(-38deg)}.globe-spinner{border-radius:50%;animation:.62s linear infinite reverse ball-mix;position:absolute;inset:24px}.mix-ball,.falling-ball{color:var(--blue-900);background:#fff;border:5px solid #ffcf3c;border-radius:50%;place-items:center;display:grid;box-shadow:inset 0 -5px 10px #05297026,0 8px 18px #0000002e}.mix-ball{width:34px;height:34px;position:absolute}.ball-one{top:28px;left:16px}.ball-two{border-color:#25a8ff;top:20px;right:22px}.ball-three{border-color:#18b96f;bottom:16px;left:58px}.ball-four{border-color:#7f63e8;bottom:42px;right:42px}.ball-five{border-color:#f39800;top:66px;left:46px}.globe-neck{background:#25a8ff;border-radius:0 0 16px 16px;width:52px;height:30px;margin-left:-26px;position:absolute;top:184px;left:50%;box-shadow:inset 0 -4px #05297038}.globe-stand{background:#f8fbff;border:4px solid #25a8ff;border-radius:999px;width:170px;height:18px;margin-left:-85px;position:absolute;bottom:0;left:50%}.globe-stand:before{content:"";background:#25a8ff;border-radius:999px;width:18px;height:42px;margin-left:-9px;position:absolute;bottom:12px;left:50%}.drop-ramp{transform-origin:0;background:#f8fbff;border:4px solid #25a8ff;border-radius:999px;width:108px;height:12px;position:absolute;top:194px;left:155px;transform:rotate(-8deg)}.falling-ball{opacity:0;width:76px;height:76px;animation:1.65s cubic-bezier(.16,.9,.28,1.12) forwards ball-drop;position:absolute;bottom:18px;right:6px}.falling-ball strong{white-space:nowrap;font-size:1.15rem;font-weight:950}.waiting-ball{aspect-ratio:auto;color:#fff;border-radius:var(--radius);width:min(320px,100%);min-height:184px;box-shadow:none;text-align:center;background:#ffffff1f;border:2px dashed #ffffff75;padding:22px}.waiting-ball p{color:#fff;margin:0;font-size:1.25rem;font-weight:850}.previous-balls{border-radius:var(--radius);text-align:center;background:#ffffff14;gap:10px;width:100%;padding:14px;display:grid}.previous-balls>span{font-weight:900}.previous-balls>div{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.previous-balls p{margin:0}.mini-ball{width:62px;height:62px;color:var(--blue-900);background:#fff;border:7px solid #25a8ff;border-radius:50%;place-items:center;font-weight:900;display:grid}.number-board{container-type:inline-size}.board-grid{grid-template-columns:repeat(5,minmax(62px,1fr));gap:clamp(5px,.75vw,10px);min-width:0;height:100%;display:grid}.board-column{border:1px solid var(--line);border-radius:var(--radius);background:#fff;grid-template-rows:clamp(36px,8cqw,62px) repeat(8,minmax(0,1fr));min-width:0;min-height:0;display:grid;overflow:hidden}.board-letter{color:#fff;background:var(--blue-800);place-items:center;min-height:0;font-size:clamp(1.2rem,4.2cqw,2.45rem);font-weight:950;display:grid}.board-row{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));min-height:0;display:grid}.board-number-cell{place-items:center;min-width:0;min-height:0;display:grid}.board-number-cell.left{border-right:1px solid var(--line)}.board-number-cell.empty{background:#f8fbff}.board-number{color:#222936;text-align:center;background:#fff;border:0;border-radius:0;place-items:center;width:100%;min-width:0;height:100%;min-height:0;padding:1px;font-size:clamp(15px,4.2cqw,2.6rem);font-weight:900;line-height:1;display:grid;overflow:hidden;box-shadow:inset 0 -2px #0529700a}button.board-number{cursor:pointer}.board-number.empty{box-shadow:none;background:0 0}.board-number.drawn{color:#fff;background:var(--blue-700);box-shadow:inset 0 0 0 3px #ffffff73}.board-number.last{color:var(--blue-900);background:#ffdf5c;box-shadow:inset 0 0 0 4px #d69900,0 0 0 3px #ffbf475c}.board-number.checked{outline-offset:-4px;outline:4px solid #111827}.number-board.compact{padding:clamp(6px,1vw,12px)}.number-board.compact .board-grid{gap:clamp(4px,.55vw,8px)}.number-board.compact .board-column{grid-template-rows:clamp(30px,7cqw,54px) repeat(8,minmax(0,1fr))}.history-panel{min-height:260px}.panel-title-row{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.history-stats{flex-wrap:wrap;gap:8px;margin:14px 0;display:flex}.history-stats span{color:var(--blue-900);background:var(--blue-100);border-radius:var(--radius);padding:7px 10px;font-size:.9rem;font-weight:800}.history-table-wrap{max-height:224px;overflow:auto}.history-table{border-collapse:collapse;width:100%}.history-table th,.history-table td{border-bottom:1px solid var(--line);text-align:left;padding:8px 6px;font-size:.95rem}.history-table th{color:var(--blue-900);font-weight:900}.history-group td{color:#fff;background:var(--blue-700);font-weight:900}.draw-action-bar{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-top:16px;padding:16px;display:grid}.big-action{min-height:68px;padding:14px;font-size:.98rem}.big-action svg{width:32px;height:32px}.management-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px;display:grid}.prize-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.prize-heading{align-items:center;gap:10px;display:flex}.prize-heading svg{color:#fff;background:var(--blue-700);border-radius:50%;width:38px;height:38px;padding:8px}.prize-box.tinquina .prize-heading svg{background:var(--green)}.prize-box.full-card .prize-heading svg{background:var(--purple)}.prize-box dl,.summary-grid,.history-card dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.prize-box dt,.summary-grid dt,.history-card dt{color:var(--muted);text-transform:uppercase;font-size:.84rem;font-weight:850}.prize-box dd,.summary-grid dd,.history-card dd{color:var(--blue-900);margin:4px 0 0;font-size:1.35rem;font-weight:900}.complete-note,.integrity-note,.modal-help{color:var(--muted);font-weight:700;line-height:1.45}.auto-controls{gap:12px;margin-top:16px;display:grid}.pause-banner{color:#402700;border:2px solid var(--amber);border-radius:var(--radius);text-align:center;background:#ffe8b3;margin-top:18px;padding:14px 18px;font-size:1.5rem;font-weight:950}.pause-banner.complete{color:#0d4d2c;border-color:var(--green);background:#dff8ea}.modal-backdrop{z-index:40;background:#040c1e9e;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal{width:min(680px,100%);max-height:min(92vh,900px);padding:24px;overflow:auto}.dialog{text-align:center}.dialog-icon{color:#fff;background:var(--blue-700);border-radius:50%;place-items:center;width:58px;height:58px;margin:0 auto 12px;display:grid}.dialog-icon.danger{background:var(--danger)}.dialog h2,.form-modal h2,.checker-modal h2{color:var(--blue-900);margin:0;font-size:1.75rem}.dialog p{color:var(--muted);font-size:1.05rem;line-height:1.5}.form-modal{gap:16px;display:grid}.icon-button{border-radius:var(--radius);width:44px;height:44px;color:var(--blue-900);background:var(--blue-100);border:0;place-items:center;display:grid}.icon-button svg{width:24px;height:24px}.checker-modal{width:min(1180px,100%)}.checker-layout{grid-template-columns:minmax(280px,.75fr) minmax(400px,1.25fr);gap:16px;margin-top:16px;display:grid}.checker-entry{gap:14px;padding:16px;display:grid}.check-results{flex-wrap:wrap;gap:8px;display:flex}.check-chip{color:#fff;border-radius:var(--radius);gap:2px;min-width:74px;padding:8px 10px;font-weight:900;display:inline-grid}.check-chip small{font-size:.74rem;font-weight:800}.check-chip.drawn{background:var(--green)}.check-chip.not-drawn{background:var(--danger)}.check-chip.duplicate{color:#3e2b00;background:#ffd866}.check-chip.invalid{background:#6b7280}.checker-summary{flex-wrap:wrap;gap:10px;margin-top:16px;padding:14px;display:flex}.checker-summary span{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:8px 10px;font-weight:800}.checker-verdict{border-radius:var(--radius);margin-top:14px;padding:14px;font-size:1.1rem;font-weight:900}.checker-verdict.ok{color:#0d4d2c;background:#dff8ea}.checker-verdict.attention{color:#7a1919;background:#ffe2e2}.toast-stack{z-index:60;gap:10px;width:min(420px,100vw - 36px);display:grid;position:fixed;bottom:18px;right:18px}.toast{border-radius:var(--radius);color:#fff;width:100%;box-shadow:var(--shadow);text-align:left;border:0;align-items:center;gap:10px;padding:14px;font-weight:850;display:flex}.toast.success{background:var(--green)}.toast.error{background:var(--danger)}.toast.info{background:var(--blue-800)}.history-screen,.summary-wrap{margin-top:18px;padding:22px}.history-cards{gap:14px;margin-top:18px;display:grid}.history-card{border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:minmax(180px,1fr) minmax(260px,.9fr) minmax(320px,1.2fr);align-items:center;gap:16px;padding:16px;display:grid}.history-card h3{color:var(--blue-900);margin:0 0 6px;font-size:1.25rem}.history-card p,.empty-state{color:var(--muted);margin:0;font-weight:700}.card-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.card-actions .button{padding:10px;font-size:.82rem}.summary-actions{justify-content:flex-end;margin-bottom:16px}.summary-card{padding:26px}.summary-card header{border-bottom:2px solid var(--blue-100);padding-bottom:16px}.summary-card header p{color:var(--muted);margin:0 0 4px;font-weight:800}.summary-card header strong{color:var(--blue-900);font-size:1.35rem}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin:20px 0}.summary-grid div{background:var(--surface-muted);border-radius:var(--radius);padding:12px}.summary-grid dd{overflow-wrap:anywhere;font-size:1.05rem}.summary-balls{flex-wrap:wrap;gap:8px;display:flex}.summary-balls span{color:#fff;background:var(--blue-700);border-radius:999px;padding:7px 9px;font-weight:850}.plain-list{padding-left:20px}.display-shell{background:#061e52;grid-template-rows:auto auto minmax(0,1fr) auto auto;gap:16px;display:grid}.display-layout{grid-template-columns:minmax(330px,.78fr) minmax(560px,1.22fr);align-items:stretch;gap:18px;min-width:0;min-height:0;display:grid}.display-draw-area{align-content:center;justify-items:center;gap:16px;min-width:0;display:grid}.display-draw-button{width:min(520px,100%);min-height:92px;font-size:clamp(1.05rem,2vw,1.55rem)}.display-draw-button svg{width:40px;height:40px}.display-metrics{flex-wrap:wrap;justify-content:center;gap:10px;width:100%;display:flex}.display-metrics span{color:#fff;border-radius:var(--radius);background:#ffffff1f;border:1px solid #ffffff38;padding:10px 14px;font-weight:900}.display-board{min-width:0;min-height:0;display:grid}.display-status{color:#083b1e;border-radius:var(--radius);text-align:center;background:#dff8ea;padding:12px;font-size:1.5rem;font-weight:950}.display-status.paused{color:#553400;background:#ffe3a3}.display-status.finished{color:#6e1f1f;background:#ffdede}.display-footer{color:#fff;background:var(--blue-900);border-radius:var(--radius);justify-content:space-between;gap:16px;padding:14px 18px;font-size:1.25rem;font-weight:900;display:flex}.display-empty{color:var(--blue-900);padding:26px}.orientation-hint{color:#5f3b00;border-radius:var(--radius);text-align:center;background:#fff4d6;border:1px solid #ffd37a;margin:0;padding:8px 10px;font-size:.8rem;font-weight:850;display:none}.login-shell{background:linear-gradient(135deg,#eaf2ff 0%,#fff 48%,#f4f8ff 100%);place-items:center;min-height:100vh;padding:18px;display:grid}.login-card{text-align:center;gap:18px;width:min(430px,100%);padding:30px;display:grid}.login-logo-wrap{place-items:center;width:min(230px,72vw);margin:0 auto;display:grid}.login-logo-wrap img{object-fit:contain;width:100%;height:auto}.login-card h1{color:var(--blue-900);margin:0;font-size:2.25rem;font-weight:950;line-height:1}.login-error{color:#8b1a1a;border-radius:var(--radius);background:#fff1f1;margin:0;padding:12px;font-weight:800}.login-form{text-align:left;gap:15px;display:grid}.input-with-icon{position:relative}.input-with-icon svg{width:22px;height:22px;color:var(--blue-700);position:absolute;top:50%;left:13px;transform:translateY(-50%)}.input-with-icon input{padding-left:46px}.login-button{width:100%;margin-top:4px}.menu-floating-button{z-index:55;border-radius:var(--radius);color:#fff;background:var(--blue-900);width:52px;height:52px;box-shadow:var(--shadow);border:0;place-items:center;display:grid;position:fixed;top:18px;left:18px}.menu-floating-button svg{width:28px;height:28px}.menu-floating-button.mobile-only{display:none}.side-menu-backdrop{z-index:44;background:#040c1e85;border:0;display:none;position:fixed;inset:0}.side-menu-backdrop.open{display:block}.side-menu{z-index:45;width:286px;min-width:0;max-width:calc(100vw - 24px);height:calc(100vh - 32px);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;flex-direction:column;gap:12px;padding:12px;transition:width .18s,transform .18s;display:flex;overflow:hidden auto}.side-menu.rail{position:sticky;top:16px}.side-menu.drawer{position:fixed;top:12px;left:12px;transform:translate(calc(-100% - 24px))}.side-menu.drawer.open{transform:translate(0)}.side-menu.collapsed{width:82px}.side-menu.collapsed .side-menu-title,.side-menu.collapsed .side-menu-section h2,.side-menu.collapsed .side-menu-action span,.side-menu.collapsed .side-menu-extra{display:none}.side-menu.collapsed .logo-frame.compact{width:48px;height:48px}.side-menu-header{border-bottom:1px solid var(--line);align-items:center;gap:10px;min-width:0;padding-bottom:10px;display:flex}.side-menu .logo-frame.compact{width:78px;height:58px}.side-menu-title{flex:1;min-width:0;display:grid}.side-menu-title strong{color:var(--blue-900);text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;font-weight:950;overflow:hidden}.side-menu-title span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;font-weight:800;overflow:hidden}.side-menu-close{display:none}.side-menu.drawer .side-menu-close{display:grid}.side-menu-collapse{flex:none}.side-menu-nav,.side-menu-section,.side-menu-extra,.side-menu-footer{gap:8px;display:grid}.side-menu-section h2{color:var(--muted);text-transform:uppercase;margin:8px 4px 2px;font-size:.74rem;font-weight:950}.side-menu-action{border-radius:var(--radius);width:100%;min-height:44px;color:var(--blue-900);text-align:left;background:#f3f7ff;border:0;align-items:center;gap:10px;padding:10px;font-size:.84rem;font-weight:900;line-height:1.15;display:flex}.side-menu-action svg{flex:none;width:22px;height:22px}.side-menu-action.primary{color:#fff;background:var(--blue-700)}.side-menu-action.danger{color:#fff;background:var(--danger)}.side-menu-extra{border-top:1px solid var(--line);padding-top:8px}.side-menu-footer{border-top:1px solid var(--line);margin-top:auto;padding-top:8px}.round-menu-card{color:var(--blue-900);background:var(--blue-100);border-radius:var(--radius);gap:4px;padding:12px;display:grid}.round-menu-card span,.round-menu-card small,.round-menu-stats span{color:var(--muted);text-transform:uppercase;font-size:.76rem;font-weight:900}.round-menu-card strong{font-size:1.05rem;font-weight:950;line-height:1.15}.round-menu-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.round-menu-stats div{background:var(--surface-muted);border-radius:var(--radius);gap:4px;min-width:0;padding:10px;display:grid}.round-menu-stats strong{overflow-wrap:anywhere;color:var(--blue-900);font-size:1rem;font-weight:950}.round-menu-integrity{color:var(--muted);border:1px solid var(--line);border-radius:var(--radius);background:#f8fbff;align-items:flex-start;gap:8px;padding:10px;font-size:.82rem;font-weight:800;line-height:1.35;display:flex}.round-menu-integrity svg{width:22px;height:22px;color:var(--green);flex:none}.side-menu-extra .auto-controls{background:var(--surface-muted);border-radius:var(--radius);gap:10px;margin-top:0;padding:10px}.side-menu-extra .auto-controls h3{font-size:.92rem}.side-menu-extra .segmented-actions{grid-template-columns:1fr;gap:8px;display:grid}.side-menu-extra .button{width:100%;min-height:42px;padding:9px 10px;font-size:.78rem}.home-clean-shell{background:#fff;place-items:center;min-height:100vh;padding:24px;display:grid;position:relative}.home-focus{justify-items:center;gap:30px;width:min(620px,100%);display:grid}.home-main-logo{object-fit:contain;width:min(440px,78vw);height:auto}.home-primary-actions{gap:14px;width:min(460px,100%);display:grid}.home-clean-shell .storage-warning{max-width:760px;margin:0 auto;position:fixed;bottom:18px;left:18px;right:18px}.round-shell{grid-template-columns:auto minmax(320px,.78fr) minmax(470px,1.22fr);gap:12px;min-height:100vh;padding:12px;display:grid;overflow-x:hidden}.round-stage,.round-board-region{min-width:0}.round-stage{align-content:start;gap:12px;display:grid}.stage-card{border:1px solid var(--line);border-radius:var(--radius);min-height:calc(100vh - 32px);box-shadow:var(--shadow);background:#fff;align-content:center;justify-items:center;gap:18px;padding:18px;display:grid}.stage-card .current-ball-panel{width:100%;min-height:430px}.mega-draw-button{width:min(460px,100%);min-height:92px;font-size:1.35rem}.mega-draw-button svg{width:38px;height:38px}.stage-metrics{flex-wrap:wrap;justify-content:center;gap:10px;width:100%;display:flex}.stage-metrics span{color:var(--blue-900);background:var(--blue-100);border-radius:var(--radius);padding:9px 12px;font-weight:900}.round-board-region{display:grid}.round-board-region .number-board{width:100%;min-height:calc(100vh - 32px)}.round-board-region .board-grid{align-content:stretch;height:100%}.round-board-region .board-column{grid-template-rows:clamp(40px,4.8vw,62px) repeat(8,minmax(0,1fr))}.draw-history-modal{width:min(860px,100vw - 24px)}.embedded-panel{background:0 0;gap:14px;padding:0;display:grid}.embedded-panel .history-table-wrap{max-height:min(56vh,500px)}@keyframes ball-pop{0%{opacity:.4;transform:scale(.84)}to{opacity:1;transform:scale(1)}}@keyframes globe-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes ball-mix{0%{transform:rotate(0)scale(1)}50%{transform:rotate(180deg)scale(.94)}to{transform:rotate(360deg)scale(1)}}@keyframes ball-drop{0%{opacity:0;transform:translate(-118px,-112px)scale(.56)}34%{opacity:1;transform:translate(-86px,-48px)scale(.68)}62%{opacity:1;transform:translate(-34px,-12px)scale(.82)}82%{opacity:1;transform:translateY(8px)scale(1.04)}to{opacity:1;transform:translate(0)scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=1320px){.dashboard-grid{grid-template-columns:minmax(240px,.75fr) minmax(360px,1fr)}.draw-action-bar,.management-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.round-shell{grid-template-columns:auto minmax(300px,.8fr) minmax(390px,1.2fr)}.round-board-region{grid-column:auto}.round-board-region .number-board,.stage-card{min-height:calc(100vh - 24px)}}@media (width>=1121px) and (width<=1320px){.round-shell{grid-template-columns:auto minmax(300px,.8fr) minmax(390px,1.2fr)}.round-board-region{grid-column:auto}.round-board-region .number-board,.stage-card{min-height:calc(100vh - 24px)}}@media (width<=920px){.app-shell,.display-shell{padding:10px}.app-header,.home-hero,.dashboard-grid,.management-grid,.checker-layout,.history-card{grid-template-columns:1fr}.app-header{flex-direction:column;align-items:flex-start}.header-actions,.history-top-actions{width:100%}.header-actions .button,.history-top-actions .button{flex:180px}.home-hero{padding:22px}.setup-form,.summary-grid,.draw-action-bar{grid-template-columns:1fr}.card-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.menu-floating-button.mobile-only{display:grid}.side-menu.rail,.side-menu.drawer{width:min(320px,100vw - 20px);height:calc(100vh - 20px);position:fixed;top:10px;left:10px;transform:translate(calc(-100% - 24px))}.side-menu.rail.open,.side-menu.drawer.open{transform:translate(0)}.side-menu.collapsed{width:min(320px,100vw - 20px)}.side-menu.collapsed .side-menu-title,.side-menu.collapsed .side-menu-section h2,.side-menu.collapsed .side-menu-action span,.side-menu.collapsed .side-menu-extra{display:initial}.side-menu.collapsed .side-menu-extra,.side-menu.collapsed .side-menu-nav,.side-menu.collapsed .side-menu-section,.side-menu.collapsed .side-menu-footer,.side-menu-close{display:grid}.side-menu-collapse{display:none}.round-shell{grid-template-columns:minmax(0,.78fr) minmax(220px,1.22fr);align-items:start;gap:8px;padding:10px}.round-stage{grid-column:1}.round-board-region{grid-column:2}.stage-card{gap:12px;min-height:auto;padding:10px}.stage-card .current-ball-panel{min-height:auto;padding:12px}.mega-draw-button{min-height:76px;font-size:1.06rem}.round-board-region .number-board{min-height:min(680px,100dvh - 20px);padding:8px;position:sticky;top:10px}.display-layout{grid-template-columns:minmax(0,.78fr) minmax(220px,1.22fr);gap:10px}.display-shell .current-ball-panel{min-height:auto;padding:12px}.display-draw-area{gap:12px}.display-draw-button{min-height:76px;font-size:1.02rem}.display-board .number-board{min-height:min(680px,100dvh - 104px)}}@media (width<=620px){.brand-block{align-items:flex-start}.logo-frame{width:86px;height:66px}.brand-block h1{font-size:2rem}.button,.hero-button,.big-action{width:100%;min-height:56px}.board-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.board-letter{font-size:clamp(.9rem,4.7cqw,1.55rem)}.board-number{font-size:clamp(15px,4.4cqw,1.15rem);font-weight:700}.current-ball-panel{min-height:auto}.current-ball{width:min(220px,78vw)}.waiting-ball{width:100%;min-height:152px}.modal,.home-clean-shell{padding:16px}.home-focus{gap:22px}.home-main-logo{width:min(330px,84vw)}.home-clean-shell .storage-warning{width:100%;margin-top:18px;position:static}.round-shell{grid-template-columns:minmax(0,.74fr) minmax(154px,1.26fr);gap:6px;padding:6px}.round-board-region .number-board{min-height:min(620px,100dvh - 12px);padding:5px;top:6px}.round-board-region .board-column{grid-template-rows:clamp(26px,6cqw,38px) repeat(8,minmax(0,1fr))}.stage-metrics span{text-align:center;flex:110px}.display-layout{grid-template-columns:minmax(0,.74fr) minmax(154px,1.26fr);gap:6px}.display-shell{gap:8px;padding:6px}.display-board .number-board{min-height:min(620px,100dvh - 92px);padding:5px}.display-draw-button{min-height:62px;font-size:.88rem}}@media (width<=620px) and (orientation:portrait){.orientation-hint{display:block}.round-shell>.orientation-hint{grid-column:1/-1}}@media print{body{background:#fff}.no-print,.app-header,.toast-stack,.modal-backdrop{display:none!important}.app-shell{padding:0}.surface,.summary-card{box-shadow:none;border:0}.print-area{width:100%;padding:0}}
