*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,-apple-system,sans-serif;background:#000001;color:#fff;touch-action:manipulation}.app{min-height:100vh;display:flex;flex-direction:column;max-width:100vw;padding:0 0 12rem}.header{padding:15px 20px 10px;text-align:center;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;position:relative}h1{font-size:1.2rem;margin:0;font-weight:500;flex:1;text-align:center}.header>p{display:none}.win-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:2000;animation:winEnter .5s ease-out}@keyframes winEnter{0%{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}to{opacity:1;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}}.win-message{background:linear-gradient(135deg,#4ade80,#22c55e);color:#000;padding:3rem 2rem;border-radius:20px;text-align:center;animation:celebration .6s ease-out;box-shadow:0 20px 60px #4ade804d;border:3px solid #16a34a;max-width:90vw;max-width:min(90vw,400px)}@keyframes celebration{0%{transform:scale(.3) rotate(-10deg);opacity:0}50%{transform:scale(1.1) rotate(5deg)}to{transform:scale(1) rotate(0);opacity:1}}.win-message{font-size:2.5rem;font-weight:700;margin-bottom:1rem}.win-details{font-size:1.25rem;margin-bottom:2rem;opacity:.9}.win-close-btn{background:#374151;color:#fff;border:2px solid #6b7280;padding:1rem 2rem;border-radius:10px;cursor:pointer;font-size:1.1rem;font-weight:700;transition:all .2s ease;text-transform:uppercase;letter-spacing:1px}.win-close-btn:hover{background:#4b5563;color:#fff;transform:scale(1.05)}.win-close-btn:active{transform:scale(.95)}.bingo-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(5,1fr);gap:3px;background:#333;padding:3px;border-radius:8px;margin:0 8px;height:calc(100vh - 80px);min-height:0}.bingo-cell{background:#000001;border:1px solid #444;padding:.5rem;text-align:center;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;font-size:.85rem;line-height:1.1;word-break:break-word;-webkit-user-select:none;user-select:none;border-radius:4px}.bingo-cell.marked{background:#ef4444;color:#fff;font-weight:700}.bingo-cell.free-space{background:#00320ff2;color:#fff;font-weight:700;font-size:.9rem;cursor:default}.bingo-cell.free-space.marked{background:#011007}.reset-btn{background:#000001;color:#fff;border:none;padding:8px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.reset-btn:hover{background:#4b5563;transform:scale(1.05)}.reset-btn:active{transform:scale(.95)}.reset-btn svg{width:18px;height:18px}.confirm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.confirm-dialog{background:#2a2a2a;border-radius:12px;padding:2rem;max-width:400px;width:100%;text-align:center;box-shadow:0 10px 30px #00000080;animation:dialogEnter .2s ease-out}@keyframes dialogEnter{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.confirm-dialog h3{margin-bottom:.5rem;color:#fff;font-size:1.25rem}.confirm-dialog p{margin-bottom:1.5rem;color:#ccc;line-height:1.5}.confirm-buttons{display:flex;gap:1rem;justify-content:center}.cancel-btn{background:#6b7280;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s}.cancel-btn:hover{background:#4b5563}.confirm-btn{background:#ef4444;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s}.confirm-btn:hover{background:#dc2626}.cancel-btn:active,.confirm-btn:active{transform:scale(.98)}@media (max-width: 768px){.header{padding:10px 15px 5px}h1{font-size:1rem}.game-area{padding:0 3px}.bingo-grid{gap:2px;padding:2px}.bingo-cell{font-size:.75rem;padding:.3rem}.reset-btn{top:8px;right:12px;padding:8px}.reset-btn svg{width:16px;height:16px}.confirm-dialog{padding:1.5rem;margin:0 10px}.confirm-buttons{flex-direction:column}.win-message{font-size:2rem;padding:2rem 1.5rem}.win-details{font-size:1rem;margin-bottom:1.5rem}.win-close-btn{font-size:1rem;padding:.8rem 1.5rem}}@media (max-width: 480px){.bingo-cell{font-size:.65rem;padding:.2rem}.header{padding:8px 12px 3px}h1{font-size:.9rem}.game-area{padding:0 2px}}
