:root{--lg-topbar:64px;--lg-stage-max:1500px}body{font-family:system-ui,sans-serif}header{height:64px;display:flex;align-items:center;justify-content:space-between;max-width:1500px;margin:auto;padding:8px 24px;gap:12px}header a{min-height:44px;display:flex;align-items:center}h1{margin:0;font-size:1.65rem}h2{font-size:1.05rem;margin:0}p{margin:6px 0;line-height:1.5}button,select{min-height:44px}select{width:100%;background:var(--lg-white);color:var(--lg-ink);border:1px solid var(--lg-line);border-radius:12px;padding:8px}label{display:flex;gap:10px;align-items:center;min-height:44px}input[type=checkbox]{width:22px;height:22px;accent-color:var(--lg-rose)}fieldset{border:0;padding:0;margin:0}legend{font-weight:800}#setup{max-width:540px;margin:12px auto;padding:16px 24px;display:grid;gap:8px}#setup label:has(select){display:block}#prize-options{display:grid;grid-template-columns:1fr 1fr}#prize-options label{font-size:.85rem}#tools{display:flex;gap:8px}#stats{display:grid;grid-template-columns:1fr 1fr;gap:6px}#stats span{padding:6px;background:var(--lg-cream);border-radius:12px}#stats strong,#stats small{display:block}#stats strong{font-size:1.2rem}small{font-size:.78rem;color:var(--lg-muted)}.player{border:1px solid var(--lg-line);border-left:4px solid var(--lg-rose);border-radius:12px;padding:7px;margin-bottom:5px;overflow-wrap:anywhere}.player strong,.player small{display:block}.help{font-size:.82rem;color:var(--lg-muted)}#status{font-size:1.2rem;font-weight:800;min-height:2em;text-align:center}#tickets{width:100%;display:grid;gap:16px}.ticket{background:var(--lg-white);border:2px solid var(--lg-rose);border-radius:16px;padding:10px;box-shadow:var(--lg-shadow)}.ticket h2{margin:0 0 8px;color:var(--lg-rose)}table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:3px}td{height:46px;text-align:center;border:1px solid var(--lg-line);border-radius:6px;font-size:1rem;font-weight:800;white-space:nowrap}td.blank{background:var(--lg-cream);border-style:dashed}td.marked{background:var(--lg-rose);color:var(--lg-on-rose)}#last-number{font-size:3.2rem;font-weight:900;display:block;text-align:center;background:var(--lg-pink);color:var(--lg-rose);border:2px solid var(--lg-rose);border-radius:22px;padding:8px}#number-board{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:2px}#number-board span{font-size:.65rem;text-align:center;padding:4px 0;white-space:nowrap;border-radius:3px;background:var(--lg-cream)}#number-board .called{background:var(--lg-pink);font-weight:900;color:var(--lg-rose)}#history{font-size:.78rem;max-height:80px;overflow:auto;overflow-wrap:anywhere}#prizes{display:grid;grid-template-columns:1fr 1fr;gap:7px}#prizes button{font-size:.83rem;padding:8px;overflow-wrap:anywhere}.actions{display:flex;gap:8px;flex-wrap:wrap}#manual-mark{display:flex;gap:8px;align-items:end;width:100%}#manual-mark label{flex:1;display:block}#manual-mark button{flex:1}#manual-mark select{margin-top:5px}#event{min-height:3em}#leaderboard{max-height:160px;overflow:auto}
@media(min-width:1000px){.lg-stage--3{grid-template-columns:minmax(210px,260px) minmax(0,1fr) minmax(250px,300px);gap:18px}.lg-rail{padding:16px;gap:10px}.lg-center{gap:10px;justify-content:center}#lobby .lg-lobby{margin:12px auto;padding:18px 24px}#lobby .lg-lobby h1{margin:4px 0}#lobby .lg-lobby label{margin:5px 0}#lobby .lg-avatars{margin-top:6px}#lobby .lg-row{margin:8px 0}#setup:not([hidden]){position:absolute;left:max(16px,calc(50% - 560px));top:140px;width:260px;margin:0}#prize-options{grid-template-columns:1fr}#tickets{max-height:calc(100dvh - 285px);overflow:auto}}
@media(max-width:999px){header{padding:8px 14px}#setup{margin:8px 12px}#lobby{padding:0 12px}.lg-lobby{padding:18px;margin:12px auto}.lg-button{padding:10px 14px}#game{display:flex;flex-direction:column;padding:0 12px 24px;gap:12px}.lg-center{order:1}.lg-rail--right{order:2}.lg-rail--left{order:3}.lg-rail{background:var(--lg-white);border:1px solid var(--lg-line);border-radius:20px;padding:16px}.ticket{padding:6px}td{height:38px;font-size:.82rem}table{border-spacing:2px}#stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}#stats span{padding:6px 3px;text-align:center}#stats strong{font-size:1rem}#stats small{font-size:.63rem}#players{display:grid;grid-template-columns:1fr 1fr;gap:6px}.player{margin:0}.player strong{font-size:.83rem}#number-board span{font-size:.72rem}#tickets{margin:8px 0}}
@media(min-width:1000px){body:has(.lg-roomchip){--lg-topbar:108px}.lg-center{gap:6px}.lg-center>.help{display:none}.ticket{padding:6px}.ticket h2{font-size:.95rem;margin-bottom:3px}td{height:32px;font-size:.9rem}table{border-spacing:2px}#tickets{gap:8px;max-height:calc(100dvh - var(--lg-topbar) - 230px)}#status{min-height:1.8em}.lg-rail--left h1{font-size:1.4rem}.player{padding:5px}#stats span{padding:5px}#number-board span{padding:3px 0}}
@media(min-width:1000px){.lg-rail--right{gap:6px}.lg-rail--right .actions{display:grid;grid-template-columns:1fr 1fr}.lg-rail--right .lg-button{font-size:.8rem;padding:6px}.lg-rail--right label{font-size:.82rem}.lg-rail--right .help{font-size:.75rem}#last-number{font-size:2.8rem;line-height:1.2;padding:2px}#call-count{margin:0}#event{font-size:.85rem;min-height:2.5em}#awards{margin:0;font-size:.72rem}}

/* Phone content follows the page instead of trapping vertical scrolling. */
@media(max-width:999px){#history,#leaderboard{max-height:none;overflow:visible}}

/* A connected roster keeps its Start button in the desktop viewport. */
@media(min-width:1000px){
 .lg-lobby:has(.lg-roster):has(.lg-start:enabled){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .lg-lobby:has(.lg-roster):has(.lg-start:enabled)>*{grid-column:1/-1;margin:0}
 .lg-lobby:has(.lg-roster):has(.lg-start:enabled)>label{grid-column:auto;min-width:0}
 .lg-lobby:has(.lg-roster):has(.lg-start:enabled)>.lg-join,.lg-lobby:has(.lg-roster):has(.lg-start:enabled)>.lg-avatars,.lg-lobby:has(.lg-roster):has(.lg-start:enabled)>.lg-row,.lg-lobby:has(.lg-roster):has(.lg-start:enabled)>.lg-muted{display:none}
 .lg-lobby:has(.lg-roster):has(.lg-start:enabled) .lg-code{font-size:2rem}
 .lg-roster ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:8px 0;padding-left:20px}
 .lg-roster li{overflow-wrap:anywhere;font-size:.85rem}
}
