.bingo-room-entry{max-width:980px;margin:28px auto 34px;padding:clamp(20px,4vw,34px);border:1px solid #efe7dc;border-radius:26px;background:linear-gradient(140deg,#fffaf0,#f4fbf7);box-shadow:0 18px 50px #382b1510}.bingo-entry-copy{max-width:700px;margin:0 auto 24px;text-align:center}.bingo-entry-copy .eyebrow{color:#9b7550}.bingo-entry-copy h2{margin:8px 0 10px;color:#302d37;font-size:clamp(24px,4vw,34px)}.bingo-entry-copy p{margin:0;color:#706b78;line-height:1.65}.bingo-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.bingo-entry-card{display:grid;gap:14px;padding:20px;border:1px solid #eee7f0;border-radius:18px;background:#ffffffd9}.bingo-entry-card h3{margin:0;color:#3b3444}.bingo-entry-card label,.bingo-room-join-panel label,.bingo-join-panel label{display:grid;gap:7px;color:#534d5c;font-size:13px;font-weight:700}.bingo-entry-card input,.bingo-join-panel input{width:100%;min-height:44px;padding:10px 12px;border:1px solid #e3dbe8;border-radius:11px;background:#fff;color:#332d3c;font:inherit}.bingo-lobby-message{min-height:22px;margin:12px 0 0;color:#875a41;font-size:14px;text-align:center}.bingo-solo-toggle{display:block;margin:18px auto 0;border:0;background:none;color:#766786;font:inherit;font-size:13px;text-decoration:underline;cursor:pointer}.bingo-room-page{max-width:1040px;margin:26px auto 48px;padding:0 16px;color:#332e39}.bingo-room-header{position:relative;padding:clamp(22px,4vw,38px);border:1px solid #eee8f1;border-radius:24px;background:linear-gradient(135deg,#fbf6ff,#f2fbf7)}.bingo-back-link{display:inline-block;margin-bottom:18px;color:#756981;font-size:13px;text-decoration:none}.bingo-room-code{position:absolute;top:24px;right:28px;display:grid;gap:3px;text-align:right}.bingo-room-code span{color:#81758e;font-size:10px;font-weight:800;letter-spacing:.12em}.bingo-room-code strong{color:#4e3a6d;font-size:20px;letter-spacing:.11em}.bingo-room-header h1{margin:0 180px 8px 0;color:#312b38;font-size:clamp(26px,4vw,38px)}.bingo-room-header p{max-width:620px;margin:0;color:#756e7d;line-height:1.55}.bingo-live-call{display:flex;align-items:center;justify-content:center;gap:20px;margin:18px 0;padding:14px 20px;border:1px solid #f0e1bc;border-radius:20px;background:#fff8e8}.bingo-live-call>div{display:flex;align-items:center;gap:14px}.bingo-live-call span{color:#806c42;font-size:11px;font-weight:800;letter-spacing:.1em}.bingo-live-call strong{display:grid;min-width:78px;min-height:78px;place-items:center;border-radius:19px;background:#fff;color:#574720;box-shadow:0 5px 18px #513f1517;font-size:clamp(36px,7vw,54px);line-height:1}.bingo-live-call small{color:#847957;font-size:13px}.bingo-join-panel{max-width:500px;margin:22px auto;padding:24px;border:1px solid #eee6f0;border-radius:20px;background:#fff;box-shadow:0 12px 34px #3123430a}.bingo-join-panel h2{margin:0 0 6px;color:#3b3346;font-size:22px}.bingo-join-panel p{margin:0 0 18px;color:#756f7b;font-size:14px}.bingo-join-panel form{display:grid;gap:14px}.bingo-join-panel .button{justify-self:start}.bingo-room-message{min-height:22px;margin:10px 0;color:#8a5944;font-size:14px;text-align:center}.bingo-room-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:14px 0}.bingo-moderator-tabs{display:flex;gap:6px;padding:5px;border:1px solid #e9e1ee;border-radius:14px;background:#f8f5fa}.bingo-moderator-tabs button{padding:10px 14px;border:0;border-radius:10px;background:transparent;color:#756b80;font:inherit;font-size:13px;font-weight:750;cursor:pointer}.bingo-moderator-tabs button.is-active{background:#fff;color:#4d3c63;box-shadow:0 2px 9px #30204212}.bingo-copy-link{flex:0 0 auto}.bingo-room-status{margin:12px 0;padding:12px 15px;border-radius:12px;background:#f4f0f7;color:#62586b;font-size:14px;line-height:1.45}.bingo-moderator-controls{margin:14px 0;padding:16px;border:1px solid #e9e1ee;border-radius:18px;background:#fff}.bingo-moderator-controls-copy{display:flex;justify-content:space-between;gap:10px;margin-bottom:12px;color:#403849;font-size:14px}.bingo-moderator-controls-copy span{color:#847a8d;font-size:12px}.bingo-control-buttons{display:flex;flex-wrap:wrap;gap:9px}.bingo-control-buttons .button{min-height:42px}.bingo-close-room{margin-left:auto}.bingo-winner-notices{margin:14px 0;padding:12px 16px;border:1px solid #d8ebd9;border-radius:16px;background:#f0faee;color:#355d3a}.bingo-winner-notices p{margin:5px 0}.bingo-winner-notices strong{color:#264b2c}.bingo-caller-view,.bingo-card-view{padding:clamp(16px,3vw,26px);border:1px solid #eee7f0;border-radius:22px;background:#fff;box-shadow:0 14px 40px #3123430a}.bingo-room-section-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:16px}.bingo-room-section-heading span{color:#967858;font-size:10px;font-weight:850;letter-spacing:.12em}.bingo-room-section-heading h2{margin:4px 0 0;color:#38313e;font-size:23px}.bingo-room-section-heading small{color:#7c7482;font-size:12px;text-align:right}.bingo-shared-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px}.bingo-room-number{display:grid;min-height:40px;place-items:center;border:1px solid #eee8f1;border-radius:10px;background:#faf8fb;color:#62596a;font-size:14px;font-weight:750}.bingo-room-number.is-called{border-color:#91c5a4;background:#dff2e5;color:#2c6440;box-shadow:inset 0 0 0 1px #91c5a4}.bingo-room-lower-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(200px,.7fr);gap:14px;margin-top:16px}.bingo-history-panel,.bingo-players-panel{padding:15px;border-radius:15px;background:#f8f6fa}.bingo-history-panel h3,.bingo-players-panel h3{margin:0 0 11px;color:#4c4355;font-size:14px}.bingo-history-list{display:flex;flex-wrap:wrap;gap:6px}.bingo-history-number{display:grid;min-width:34px;height:34px;place-items:center;border:1px solid #eae3ef;border-radius:9px;background:#fff;color:#655b70;font-size:13px;font-weight:750}.bingo-history-number.is-latest{border-color:#e5bd60;background:#fff1c9;color:#684d12}.bingo-history-empty{color:#8c8492;font-size:13px}.bingo-players-panel ul{display:flex;flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none}.bingo-players-panel li{display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #eae4ee;border-radius:10px;background:#fff;color:#4e4657;font-size:13px}.bingo-players-panel li span{color:#8c7d99;font-size:10px}.bingo-card-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:6px;padding:clamp(8px,2vw,14px);border:1px solid #e8e0ed;border-radius:16px;background:#fbf9fc}.bingo-card-cell{display:grid;min-width:0;aspect-ratio:1.12;place-items:center;border:1px solid #e6deeb;border-radius:9px;background:#fff;color:#41384b;font-size:clamp(14px,3vw,23px);font-weight:800}.bingo-card-cell.is-called{border-color:#78bc92;background:#ccebd5;color:#235d38;box-shadow:inset 0 0 0 1px #78bc92}.bingo-card-cell.is-blank{border-color:transparent;background:#f2eef4}.bingo-card-view>.bingo-history-panel{margin-top:14px}.bingo-entry-card .button:disabled,.bingo-control-buttons .button:disabled{opacity:.48;cursor:not-allowed}.bingo-room-page [hidden],.bingo-room-entry[hidden],.tool-workspace[hidden]{display:none!important}
@media(max-width:640px){.bingo-entry-grid{grid-template-columns:1fr}.bingo-room-code{top:18px;right:18px}.bingo-room-header h1{margin-right:130px}.bingo-room-code strong{font-size:16px}.bingo-room-toolbar{align-items:stretch;flex-direction:column}.bingo-moderator-tabs{width:100%}.bingo-moderator-tabs button{flex:1;padding:9px 7px;font-size:12px}.bingo-copy-link{align-self:flex-start}.bingo-control-buttons{display:grid;grid-template-columns:1fr 1fr}.bingo-control-buttons .button{font-size:12px;padding:9px 10px}.bingo-close-room{margin-left:0}.bingo-room-lower-grid{grid-template-columns:1fr}.bingo-shared-grid{gap:4px}.bingo-room-number{min-height:33px;border-radius:8px;font-size:12px}.bingo-card-grid{gap:4px;padding:7px}.bingo-card-cell{border-radius:6px;font-size:clamp(13px,4vw,20px)}.bingo-live-call{gap:12px}.bingo-live-call strong{min-width:66px;min-height:66px}.bingo-live-call span{max-width:75px;font-size:9px}.bingo-room-section-heading{align-items:start;flex-direction:column}.bingo-room-section-heading small{text-align:left}}
