.game-selector{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);position:relative;overflow:hidden}.game-selector-header{position:absolute;top:var(--spacing-lg);right:var(--spacing-lg);z-index:10;display:flex;align-items:center;gap:var(--spacing-md);max-width:100%;box-sizing:border-box}.game-selector-content{position:relative;z-index:1;text-align:center;max-width:1200px;width:100%}.large-logo{max-width:300px;width:100%;height:auto;margin:0 auto var(--spacing-lg);display:block}.game-selector-title{font-size:3rem;font-weight:700;margin-bottom:var(--spacing-sm);background:linear-gradient(135deg,var(--color-text),var(--color-primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.game-selector-created-by{font-size:.9rem;color:var(--color-text-muted);margin-bottom:var(--spacing-xs);font-style:italic;opacity:.8}.game-selector-subtitle{font-size:1.25rem;color:var(--color-text-muted);margin-bottom:var(--spacing-2xl)}.games-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-xl);margin-top:var(--spacing-2xl)}.game-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);text-align:center;transition:all .3s ease;border:2px solid transparent;position:relative;cursor:pointer}.game-card.available{cursor:pointer}.game-card.available:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--color-primary)}.game-card.selected{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb, 79, 70, 229),.2)}.game-card.coming-soon{cursor:not-allowed;opacity:.6;filter:grayscale(.3)}.game-icon{font-size:4rem;margin-bottom:var(--spacing-md)}.game-name{font-size:1.5rem;margin-bottom:var(--spacing-sm);color:var(--color-text)}.game-description{color:var(--color-text-muted);margin-bottom:var(--spacing-md)}.coming-soon-badge{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:var(--color-accent);color:var(--color-text-dark);padding:4px 12px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase}.beta-badge{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:4px 12px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase;box-shadow:0 2px 4px #667eea4d}@media (max-width: 600px){.game-selector{padding-top:80px;padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.game-selector-header{top:var(--spacing-sm);right:var(--spacing-sm);max-width:calc(100% - var(--spacing-md) * 2)}.btn-google-header{padding:6px 10px;font-size:.75rem}.btn-google-header svg{width:14px;height:14px;flex-shrink:0}.user-name{max-width:100px;font-size:.8rem}.user-profile{flex-wrap:wrap;gap:var(--spacing-xs);padding:6px 10px;max-width:100%}.user-avatar{width:24px;height:24px}.btn-logout{font-size:.7rem;padding:4px 8px;margin-left:0}.large-logo{max-width:200px;margin-bottom:var(--spacing-md)}.game-selector-title{font-size:2rem}.game-selector-created-by{font-size:.8rem}.game-selector-subtitle{font-size:1rem;margin-bottom:var(--spacing-lg)}.games-grid{grid-template-columns:1fr;gap:var(--spacing-lg)}.game-card{padding:var(--spacing-lg)}}.home-actions{margin-top:var(--spacing-2xl);display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-xl);max-width:1000px;margin-left:auto;margin-right:auto}.action-section{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);text-align:center;transition:all .3s ease;border:2px solid transparent}.action-section:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.action-section-title{font-size:1.5rem;margin-bottom:var(--spacing-sm);color:var(--color-text)}.action-section-description{color:var(--color-text-muted);margin-bottom:var(--spacing-lg);font-size:.95rem}.action-hint{color:var(--color-text-muted);font-size:.85rem;margin-top:var(--spacing-sm);font-style:italic}.join-session-input{display:flex;flex-direction:column;gap:var(--spacing-md)}.session-code-input{width:100%;padding:var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:1.1rem;text-align:center;letter-spacing:.5rem;text-transform:uppercase;font-weight:600;transition:all .2s ease}.session-code-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb, 79, 70, 229),.1)}.error-message{color:var(--color-error, #ef4444);font-size:.9rem;margin-top:var(--spacing-sm)}.action-section .btn{width:100%}@media (max-width: 600px){.home-actions{grid-template-columns:1fr;gap:var(--spacing-lg);margin-top:var(--spacing-xl)}.action-section{padding:var(--spacing-lg)}.action-section-title{font-size:1.25rem}}@media (max-width: 400px){.game-selector{padding-top:70px}.game-selector-header{top:var(--spacing-xs);right:var(--spacing-xs)}.btn-google-header{padding:5px 8px;font-size:.7rem}.btn-google-header svg{width:12px;height:12px}}.home{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);position:relative;overflow:hidden}.home-header{position:absolute;top:var(--spacing-lg);right:var(--spacing-lg);z-index:10;display:flex;align-items:center;gap:var(--spacing-md);max-width:100%;box-sizing:border-box}.btn-google-header{background-color:#fff;color:#757575;border:1px solid #dadce0;padding:10px 16px;border-radius:var(--radius-md);font-size:.9rem;font-weight:500;display:flex;align-items:center;gap:8px;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #0000001a;white-space:nowrap;flex-shrink:0;max-width:100%;box-sizing:border-box}.btn-google-header:hover:not(:disabled){box-shadow:0 2px 6px #00000026;background-color:#f8f9fa}.btn-google-header:disabled{opacity:.6;cursor:not-allowed}.user-profile{display:flex;align-items:center;gap:var(--spacing-sm);background:var(--color-surface);padding:8px 16px;border-radius:var(--radius-lg);box-shadow:0 2px 8px #0000001a}.user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.user-name{color:var(--color-text);font-size:.9rem;font-weight:500;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-logout{background:transparent;border:1px solid var(--color-text-muted);color:var(--color-text-muted);padding:6px 12px;border-radius:var(--radius-md);font-size:.85rem;cursor:pointer;transition:all .2s ease;margin-left:var(--spacing-sm)}.btn-logout:hover{background:var(--color-text-muted);color:var(--color-surface);border-color:var(--color-text-muted)}@media (max-width: 600px){.home{padding-top:80px;padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.home-header{top:var(--spacing-sm);right:var(--spacing-sm);left:auto;max-width:calc(100% - var(--spacing-md) * 2)}.btn-google-header{padding:6px 10px;font-size:.75rem;white-space:nowrap;max-width:100%;overflow:hidden}.btn-google-header svg{width:14px;height:14px;flex-shrink:0}.user-name{max-width:100px;font-size:.8rem}.user-profile{flex-wrap:wrap;gap:var(--spacing-xs);padding:6px 10px;max-width:100%}.user-avatar{width:24px;height:24px}.btn-logout{font-size:.7rem;padding:4px 8px;margin-left:0}}.home-background{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:0}.floating-number{position:absolute;font-family:var(--font-mono);font-size:3rem;font-weight:700;opacity:.08;animation:float 20s ease-in-out infinite;color:var(--color-primary)}.floating-shape{position:absolute;font-size:4rem;opacity:.08;animation:float 20s ease-in-out infinite}.floating-shape.shape1{top:10%;left:10%;animation-delay:0s}.floating-shape.shape2{top:60%;right:15%;animation-delay:-6s}.floating-shape.shape3{bottom:10%;left:50%;animation-delay:-12s}.home-content{position:relative;z-index:1;text-align:center;max-width:900px;width:100%}.logo{display:flex;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.logo span{font-size:4rem;font-weight:700;width:70px;height:70px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);animation:logoReveal .5s ease-out backwards}.logo-b{background:var(--color-b);color:#fff;animation-delay:.1s}.logo-i{background:var(--color-i);color:var(--color-text-dark);animation-delay:.2s}.logo-n{background:var(--color-n);color:#fff;animation-delay:.3s}.logo-g{background:var(--color-g);color:#fff;animation-delay:.4s}.logo-o{background:var(--color-o);color:#fff;animation-delay:.5s}.logo-text{font-size:4rem;animation:logoReveal .5s ease-out backwards;animation-delay:.1s}@keyframes logoReveal{0%{opacity:0;transform:translateY(-30px) scale(.5)}to{opacity:1;transform:translateY(0) scale(1)}}.title{font-size:2.5rem;font-weight:700;margin-bottom:var(--spacing-sm);background:linear-gradient(135deg,var(--color-text),var(--color-primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subtitle{font-size:1.25rem;color:var(--color-text-muted);margin-bottom:var(--spacing-2xl)}.action-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-xl)}.action-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);text-align:center;transition:all .3s ease;border:2px solid transparent}.action-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.teacher-card:hover{border-color:var(--color-primary)}.student-card:hover{border-color:var(--color-secondary)}.student-options{display:flex;flex-direction:column;gap:var(--spacing-md);width:100%}.btn-computer{background:linear-gradient(135deg,var(--color-accent),var(--color-primary))}.card-icon{font-size:4rem;margin-bottom:var(--spacing-md)}.action-card h2{font-size:1.5rem;margin-bottom:var(--spacing-sm)}.action-card p{color:var(--color-text-muted);margin-bottom:var(--spacing-lg)}.action-card form{display:flex;flex-direction:column;gap:var(--spacing-md)}.name-input{text-align:center}.action-card .btn{width:100%}@media (max-width: 600px){.home-content{padding-top:var(--spacing-sm)}.logo{margin-top:var(--spacing-sm)}.logo span{font-size:2.5rem;width:50px;height:50px}.title{font-size:1.75rem;margin-top:var(--spacing-sm)}.subtitle{font-size:1rem;margin-bottom:var(--spacing-lg)}.action-cards{grid-template-columns:1fr;gap:var(--spacing-lg)}.action-card{padding:var(--spacing-lg)}}@media (max-width: 400px){.home{padding-top:70px}.home-header{top:var(--spacing-xs);right:var(--spacing-xs)}.btn-google-header{padding:5px 8px;font-size:.7rem}.btn-google-header svg{width:12px;height:12px}.btn-google-header{min-width:auto}.user-profile{padding:4px 8px}.user-name{max-width:80px;font-size:.75rem}}.loading p{color:var(--color-text-muted);font-size:1.1rem}.player-list{list-style:none;display:flex;flex-direction:column;gap:var(--spacing-sm)}.player-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--color-bg);border-radius:var(--radius-md);transition:background .2s ease}.player-item.clickable{cursor:pointer}.player-item.clickable:hover{background:var(--color-bg-secondary);transform:translate(2px)}.player-item.has-bingo{background:linear-gradient(135deg,var(--color-secondary),#22c55e)}.player-item.disconnected{opacity:.6;cursor:not-allowed}.player-item.disconnected:hover{background:var(--color-bg);transform:none}.player-avatar{width:36px;height:36px;background:linear-gradient(135deg,var(--color-primary),var(--color-o));border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;flex-shrink:0;position:relative}.player-avatar.disconnected{background:var(--color-text-muted);opacity:.5}.player-avatar.disconnected:after{content:"";position:absolute;top:-2px;right:-2px;width:12px;height:12px;background:var(--color-text-muted);border:2px solid var(--color-bg);border-radius:50%}.player-name{font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge{font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:var(--radius-full);flex-shrink:0}.disconnected-badge{background:var(--color-text-muted);color:var(--color-bg)}.bingo-badge{font-size:.75rem;font-weight:700;background:var(--color-accent);color:var(--color-text-dark);padding:2px 8px;border-radius:var(--radius-full);flex-shrink:0}.player-list-empty{text-align:center;padding:var(--spacing-xl);color:var(--color-text-muted)}.player-list.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--spacing-md)}.player-list-sections{display:flex;flex-direction:column;gap:var(--spacing-lg)}.player-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.section-header{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin:0;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm)}.active-section{color:var(--color-secondary);background:rgba(107,203,119,.1)}.idle-section{color:var(--color-text-muted);background:rgba(139,157,195,.1)}.waiting-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);text-align:center}.waiting-card p{color:var(--color-text-muted);margin-bottom:var(--spacing-md);font-size:1.1rem}.operator-selector{margin-bottom:var(--spacing-lg)}.operator-toggles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--spacing-sm)}.operator-toggle{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md);background:var(--color-bg-secondary);border:2px solid var(--color-surface-hover);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;font-family:var(--font-display);color:var(--color-text-muted)}.operator-toggle:hover{background:var(--color-surface);border-color:var(--color-primary);transform:translateY(-2px);color:var(--color-text)}.operator-toggle.selected{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.operator-toggle.selected:hover{background:var(--color-primary-hover)}.operator-symbol{font-size:1.5rem;font-weight:700;font-family:var(--font-mono)}.operator-label{font-size:.85rem;font-weight:500;text-align:center}.operator-toggle.selected .operator-label{color:#fff}.game-mode-selector{margin-bottom:var(--spacing-lg)}.selector-label{display:block;color:var(--color-text-muted);font-size:.9rem;margin-bottom:var(--spacing-sm);font-weight:600}.mode-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-sm)}.mode-option{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md);background:var(--color-bg-secondary);border:2px solid var(--color-surface-hover);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;font-family:var(--font-display);color:var(--color-text-muted)}.mode-option:hover{background:var(--color-surface);border-color:var(--color-primary);transform:translateY(-2px);color:var(--color-text)}.mode-option.selected{background:var(--color-secondary);border-color:var(--color-secondary);color:#fff}.mode-option.selected:hover{background:#22c55e;border-color:#22c55e}.mode-label{font-size:1rem;font-weight:700}.mode-description{font-size:.8rem;text-align:center;opacity:.9}.mode-option.selected .mode-description{color:#fff}.input-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.input-group label{font-weight:600;font-size:.9rem;color:var(--color-text-muted)}.name-input{width:100%;padding:var(--spacing-md);font-size:1rem;border:1px solid rgba(139,157,195,.3);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-family:var(--font-display);transition:border-color .2s}.name-input:focus{outline:none;border-color:var(--color-primary);border-width:2px}.name-input::placeholder{color:var(--color-text-muted)}.data-disclosure{font-size:.75rem;color:var(--color-text-muted);line-height:1.4;margin-top:var(--spacing-xs);margin-bottom:0}.data-disclosure a{color:var(--color-primary);text-decoration:underline}.data-disclosure a:hover{color:var(--color-primary-hover)}.appearance-option{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-lg);background:var(--color-surface);border-radius:var(--radius-md)}.appearance-option-header{display:flex;flex-direction:column;gap:var(--spacing-xs);align-items:flex-start}.appearance-option-label{font-weight:600;color:var(--color-text);font-size:1rem;margin:0}.appearance-option-hint{color:var(--color-text-muted);font-size:.85rem;margin:0;font-style:italic}.appearance-option-control{display:flex;align-items:center;justify-content:flex-start}.theme-selector{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--color-card);border-radius:var(--radius)}.theme-label{font-weight:600;color:var(--color-text);font-size:.9rem;margin-bottom:var(--spacing-xs)}.theme-toggle-container{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm);width:100%}.theme-toggle-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-md);background:var(--color-surface);border:2px solid var(--color-surface-hover);border-radius:var(--radius-md);color:var(--color-text);font-family:var(--font-display);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.theme-toggle-btn:hover{background:var(--color-surface-hover);transform:translateY(-1px)}.theme-toggle-btn.active{background:linear-gradient(135deg,var(--color-primary),var(--color-o));border-color:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.theme-icon{font-size:1.2rem}.theme-text{font-size:.9rem}@media (max-width: 600px){.theme-selector{padding:var(--spacing-md)}.theme-toggle-container{grid-template-columns:repeat(2,1fr)}.theme-toggle-btn{flex-direction:column;gap:var(--spacing-xs)}.theme-text{font-size:.75rem}.theme-toggle-btn{padding:var(--spacing-sm) var(--spacing-md);font-size:.85rem}.theme-icon{font-size:1rem}.theme-text{font-size:.8rem}}.area-perimeter-selector{margin-bottom:var(--spacing-lg, 1.5rem);padding-bottom:var(--spacing-lg, 1.5rem);border-bottom:1px solid var(--color-surface, #e0e0e0)}.selector-label{display:block;font-weight:600;margin-bottom:var(--spacing-xs, .5rem);color:var(--color-text, #333);font-size:1.1rem}.type-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--spacing-md, 1rem)}.type-option{display:flex;align-items:center;gap:var(--spacing-sm, .75rem);padding:var(--spacing-md, 1rem);border:2px solid var(--color-surface, #e0e0e0);border-radius:var(--radius-md, 8px);background:var(--color-surface, #fff);color:var(--color-text, #333);cursor:pointer;transition:all .2s;text-align:left}.type-option:hover{border-color:var(--color-primary, #2196F3);background:var(--color-surface-hover, #f5f5f5)}.type-option.selected{border-color:var(--color-primary, #2196F3);background:var(--color-primary-light, #e3f2fd);color:var(--color-primary-dark, #1976d2)}.type-icon{font-size:1.5rem;line-height:1}.type-info{display:flex;flex-direction:column;gap:.25rem}.type-label{font-weight:600;font-size:1rem}.type-description{font-size:.85rem;color:var(--color-text-muted, #666);line-height:1.3}.type-option.selected .type-description{color:var(--color-primary-dark, #1976d2)}.shape-selector{margin-bottom:var(--spacing-lg, 1.5rem);padding-bottom:var(--spacing-lg, 1.5rem);border-bottom:1px solid var(--color-surface, #e0e0e0)}.shape-selector h3{margin:0 0 var(--spacing-xs, .5rem) 0;color:var(--color-text, #333);font-size:1.1rem}.selector-description{color:var(--color-text-muted, #666);font-size:.9rem;margin-bottom:var(--spacing-md, 1rem)}.shape-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--spacing-md, 1rem)}.shape-option{padding:var(--spacing-md, 1rem);border:2px solid var(--color-surface, #e0e0e0);border-radius:var(--radius-md, 8px);background:var(--color-surface, #fff);color:var(--color-text, #333);cursor:pointer;transition:all .2s;text-transform:capitalize;font-weight:500;font-size:.95rem}.shape-option:hover:not(:disabled){border-color:var(--color-primary, #2196F3);background:var(--color-surface-hover, #f5f5f5)}.shape-option.selected{border-color:var(--color-primary, #2196F3);background:var(--color-primary, #2196F3);color:#fff}.shape-option:disabled{cursor:not-allowed;opacity:.5}.area-perimeter-game-settings{margin-bottom:var(--spacing-lg, 1.5rem);padding-bottom:var(--spacing-lg, 1.5rem);border-bottom:1px solid var(--color-surface, #e0e0e0)}.area-perimeter-game-settings h3{margin:0 0 var(--spacing-md, 1rem) 0;color:var(--color-text, #333);font-size:1.1rem}.settings-inputs{display:flex;flex-direction:column;gap:var(--spacing-md, 1rem)}.settings-inputs label{display:flex;flex-direction:column;gap:var(--spacing-xs, .5rem);color:var(--color-text, #333);font-weight:500}.settings-inputs input{padding:.75rem;border:2px solid var(--color-border, #ddd);border-radius:var(--radius, 4px);background:var(--color-bg, #fff);color:var(--color-text, #333);font-size:1rem;max-width:150px;transition:border-color .2s}.settings-inputs input:focus{outline:none;border-color:var(--color-primary, #2196F3)}.game-lobby-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.game-settings .game-lobby-form{gap:var(--spacing-md)}.game-settings-section{display:flex;flex-direction:column;gap:var(--spacing-lg)}.game-settings .game-lobby-form .game-settings-section{background:transparent;padding:0}.practice-setup-card .game-lobby-form .game-settings-section{background:var(--color-surface);padding:var(--spacing-lg);border-radius:var(--radius-lg);margin-bottom:var(--spacing-xl)}.number-range-section,.max-digits-section,.call-interval-section,.appearance-section,.past-problems-section{background:var(--color-surface);padding:var(--spacing-md);border-radius:var(--radius-md)}.number-range-section h3,.max-digits-section h3,.call-interval-section h3,.appearance-section h3,.past-problems-section h3{margin:0 0 var(--spacing-xs) 0;color:var(--color-text);font-size:1.1rem}.range-description{margin:0 0 var(--spacing-sm) 0;color:var(--color-text-muted);font-size:.9rem}.range-inputs{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-sm);flex-wrap:wrap}.range-input{display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1;min-width:150px}.range-input label{color:var(--color-text);font-weight:500;font-size:.95rem}.range-input input{padding:.75rem;border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);font-size:1rem;transition:border-color .2s}.range-input input:focus{outline:none;border-color:var(--color-primary)}.settings-inputs{display:flex;flex-direction:column;gap:var(--spacing-md)}.settings-inputs label{display:flex;flex-direction:column;gap:var(--spacing-xs);color:var(--color-text);font-weight:500}.settings-inputs input{padding:.75rem;border:2px solid var(--color-border, var(--color-text-muted));border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:1rem;max-width:150px;transition:border-color .2s}.settings-inputs input:focus{outline:none;border-color:var(--color-primary)}.settings-inputs small{color:var(--color-text-muted);font-size:.85rem}.elar-game-settings{display:block}.elar-game-settings h3{font-size:1.25rem;margin-top:0;margin-bottom:var(--spacing-md);color:var(--color-text)}.range-input input[type=number]{-moz-appearance:textfield}.range-input input[type=number]::-webkit-inner-spin-button,.range-input input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.range-hint{margin:0;color:var(--color-text-muted);font-size:.85rem;font-style:italic}.number-type-selector{margin-bottom:var(--spacing-md)}.number-type-selector label{display:block;color:var(--color-text);font-weight:500;font-size:.95rem;margin-bottom:var(--spacing-xs)}.number-type-selector select{width:100%;padding:.75rem;border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);font-size:1rem;transition:border-color .2s;cursor:pointer}.number-type-selector select:focus{outline:none;border-color:var(--color-primary)}.code-display{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);text-align:center}.lobby{min-height:100vh;padding:var(--spacing-xl);max-width:800px;margin:0 auto}.lobby-header{text-align:center;margin-bottom:var(--spacing-2xl)}.lobby-header h1{font-size:2.5rem;margin-bottom:var(--spacing-sm);background:linear-gradient(135deg,var(--color-text),var(--color-primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.teacher-name{color:var(--color-text-muted);font-size:1.1rem;margin-top:var(--spacing-sm)}.teacher-name-section{margin-top:var(--spacing-md);max-width:400px;margin-left:auto;margin-right:auto;display:flex;flex-direction:column;gap:var(--spacing-md)}.teacher-name-section .input-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.teacher-name-section .input-group label{font-weight:600;font-size:.9rem;color:var(--color-text-muted)}.code-display{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);text-align:center;margin-bottom:var(--spacing-xl)}.code-label{color:var(--color-text-muted);margin-bottom:var(--spacing-md)}.code-box{display:inline-flex;align-items:center;gap:var(--spacing-md);background:var(--color-bg);padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;border:2px solid var(--color-primary)}.code-box:hover{background:var(--color-bg-secondary)}.code{font-family:var(--font-mono);font-size:2.5rem;font-weight:700;letter-spacing:.2em;color:var(--color-primary)}.copy-btn{background:var(--color-primary);color:#fff;border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);font-family:var(--font-display);font-weight:600;cursor:pointer;transition:all .2s}.copy-btn:hover{background:var(--color-primary-hover)}.join-url{margin-top:var(--spacing-md);color:var(--color-text-muted);font-size:.9rem;cursor:pointer}.join-url span{color:var(--color-primary);text-decoration:underline}.game-settings{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-md)}.players-section{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.players-section h2{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);font-size:1.25rem}.player-count{color:#fff;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}.no-players{text-align:center;padding:var(--spacing-xl);color:var(--color-text-muted)}.player-list{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--spacing-md)}.player-item{display:flex;align-items:center;gap:var(--spacing-md);background:var(--color-bg-secondary);padding:var(--spacing-md);border-radius:var(--radius-md);animation:playerJoin .3s ease-out}@keyframes playerJoin{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.player-avatar{width:36px;height:36px;background:linear-gradient(135deg,var(--color-primary),var(--color-o));border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem}.player-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-settings h2{font-size:1.25rem;margin-bottom:var(--spacing-md);color:var(--color-text)}.game-settings h2:not(:first-child),.game-settings h3:not(:first-child){margin-top:var(--spacing-xl)}.game-settings .elar-game-settings h3{margin-top:0;margin-bottom:var(--spacing-md)}.btn-start{width:100%;padding:var(--spacing-lg) var(--spacing-xl);font-size:1.25rem;background:linear-gradient(135deg,var(--color-secondary),#22c55e);color:#fff;box-shadow:var(--shadow-md),0 0 20px #6bcb774d}.btn-start:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg),0 0 30px #6bcb7766}.btn-start:disabled{background:var(--color-surface);box-shadow:none}.battleship-grid-size-selector{width:100%}.battleship-grid-size-selector .setting-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.battleship-grid-size-selector .setting-group label{font-weight:500;color:var(--color-text);font-size:.95rem}.battleship-grid-size-selector .setting-group .input{width:100%;padding:var(--spacing-sm);border:1px solid var(--color-border, #cbd5e1);border-radius:var(--border-radius, .375rem);background:var(--color-surface);color:var(--color-text);font-size:1rem;cursor:pointer;transition:border-color .2s}.battleship-grid-size-selector .setting-group .input:hover{border-color:var(--color-primary)}.battleship-grid-size-selector .setting-group .input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f633}.battleship-grid-size-selector .setting-hint{color:var(--color-text-muted);font-size:.9rem;margin:0;margin-top:.25rem}.practice-setup-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);position:relative}.practice-setup-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-2xl);max-width:800px;width:100%;box-shadow:var(--shadow-xl);position:relative;z-index:1}.practice-setup-card h1{text-align:center;margin-bottom:var(--spacing-sm)}.setup-subtitle{text-align:center;color:var(--color-text-muted);margin-bottom:var(--spacing-xl)}.max-digits-section,.call-interval-section{margin-top:0}.btn-join{width:100%;margin-top:var(--spacing-lg)}.session-code-display{text-align:center;margin-top:var(--spacing-xl)}.session-code-display h2{margin-bottom:var(--spacing-md);color:var(--color-text)}.session-code-box{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);margin:var(--spacing-lg) 0;padding:var(--spacing-lg);background:var(--color-background);border-radius:var(--radius-md);border:2px solid var(--color-primary)}.session-code-text{font-size:2rem;font-weight:700;letter-spacing:.2em;color:var(--color-primary);font-family:Courier New,monospace}.btn-copy{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:1rem;transition:background .2s}.btn-copy:hover{background:var(--color-primary-dark)}.waiting-message{margin-top:var(--spacing-lg);color:var(--color-text-muted);font-size:1.1rem}.btn-back{margin-top:var(--spacing-lg);width:100%;background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border)}.btn-back:hover{background:var(--color-bg-secondary)}.error-message{color:var(--color-error);margin-top:var(--spacing-sm);text-align:center}@media (max-width: 600px){.practice-setup-card{padding:var(--spacing-lg)}.range-inputs{flex-direction:column}.range-input{min-width:100%}}.banner{position:relative;z-index:1000;animation:slideDown .3s ease-out}.banner.visible{opacity:1}.banner-content{display:flex;align-items:center;gap:var(--spacing-sm, 8px)}.banner-icon{font-size:1.2rem;flex-shrink:0}.banner-text{flex:1;font-weight:500}.banner-dismiss{background:transparent;border:none;color:inherit;font-size:1.5rem;line-height:1;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s;flex-shrink:0;opacity:.8}.banner-dismiss:hover{opacity:1;background-color:#0000001a}.banner-error{position:fixed;top:0;left:0;right:0;z-index:9999;background:#dc3545;color:#fff;box-shadow:0 2px 8px #0003;transform:translateY(-100%);transition:transform .3s ease-in-out}.banner-error.visible{transform:translateY(0)}.banner-error .banner-content{justify-content:center;gap:var(--spacing-md, 12px);padding:var(--spacing-md, 12px) var(--spacing-xl, 24px);max-width:1400px;margin:0 auto}.banner-error .banner-text{text-align:center;font-size:.95rem}.banner-error .banner-dismiss:hover{background-color:#fff3}.banner-warning{position:fixed;bottom:20px;left:50%;transform:translate(-50%);width:90%;max-width:600px;pointer-events:none;animation:slideUp .3s ease-out}.banner-warning .banner-content{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;padding:var(--spacing-sm, 8px) var(--spacing-lg, 16px);border-radius:var(--radius-lg, 8px);box-shadow:var(--shadow-lg, 0 4px 12px rgba(0, 0, 0, .15));font-weight:600;font-size:.95rem}.banner-warning .banner-text{text-align:center}.banner-info{left:50%;transform:translate(-50%);z-index:1000;pointer-events:none;max-width:500px;width:auto}.banner-info .banner-content{background:rgba(139,92,246,.15);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(139,92,246,.3);color:var(--color-text, #333);padding:var(--spacing-xs, 4px) var(--spacing-md, 12px);border-radius:var(--radius-md, 6px);box-shadow:0 2px 8px #0000001a;font-weight:400;font-size:.85rem}.banner-info .banner-icon{font-size:1rem;opacity:.7}.banner-success{background:linear-gradient(135deg,var(--color-secondary, #6366f1),#22c55e);color:#fff;padding:var(--spacing-md, 12px) var(--spacing-lg, 16px);border-radius:var(--radius-md, 6px);margin-bottom:var(--spacing-lg, 16px);box-shadow:0 4px 12px #22c55e4d}.banner-success .banner-content{justify-content:center}.banner-success .banner-icon{font-size:1.5rem}.banner-success .banner-text{font-size:1rem}.banner-success .banner-text strong{font-weight:700;text-transform:capitalize}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.teacher-game:has(.banner-error.visible) .game-header,.student-game:has(.banner-error.visible) .game-header{margin-top:48px}@media (max-width: 600px){.banner-info{top:120px;max-width:calc(100% - 40px)}.banner-info .banner-content{font-size:.85rem;padding:var(--spacing-xs, 4px) var(--spacing-md, 12px)}.banner-warning{bottom:10px;width:95%}.banner-warning .banner-content{font-size:.85rem;padding:var(--spacing-xs, 4px) var(--spacing-md, 12px)}.banner-warning .banner-text{font-size:.8rem}}.game-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);background:var(--color-surface);border-bottom:2px solid var(--color-bg);min-width:0;width:100%;max-width:100%;box-sizing:border-box}.game-header .header-left{flex:0 1 auto;min-width:0;overflow:hidden}.game-header h1{font-size:1.25rem;background:linear-gradient(135deg,var(--color-text),var(--color-primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;flex:1;text-align:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0 var(--spacing-sm)}.game-header .header-actions{display:flex;align-items:center;gap:var(--spacing-md);flex:0 1 auto;min-width:0}@media (max-width: 768px){.game-header{padding:var(--spacing-sm) var(--spacing-md)}.game-header h1{font-size:1rem;margin:0 var(--spacing-xs)}.game-header .header-actions{gap:var(--spacing-xs)}.header-left .player-info .player-name{display:none}.header-left .player-avatar{width:32px;height:32px;font-size:1rem}.game-header .header-actions button,.game-header .header-actions .btn-settings,.game-header .header-actions .btn-reload,.game-header .header-actions .btn-new-game{min-width:36px;height:36px;padding:var(--spacing-xs) var(--spacing-sm);font-size:.95rem}.header-left .session-info{min-width:100px}.header-left .session-code{font-size:.75rem;padding:var(--spacing-xs) var(--spacing-sm)}}@media (max-width: 480px){.game-header{padding:var(--spacing-xs) var(--spacing-sm)}.game-header h1{font-size:.875rem;margin:0 var(--spacing-xs)}.game-header .header-actions{gap:4px}.game-header .header-actions button,.game-header .header-actions .btn-settings,.game-header .header-actions .btn-reload,.game-header .header-actions .btn-new-game{min-width:32px;height:32px;padding:4px;font-size:.85rem}.game-header .header-actions .btn-new-game{min-width:32px;padding:4px 8px;font-size:.75rem}.header-left .player-avatar{width:28px;height:28px;font-size:.875rem}.header-left .session-info{min-width:80px}.header-left .session-code{font-size:.7rem;padding:2px var(--spacing-xs)}}@media (orientation: landscape) and (max-height: 600px){.game-header{padding:var(--spacing-xs) var(--spacing-sm)}.game-header h1{font-size:.875rem}.game-header .header-actions button,.game-header .header-actions .btn-settings,.game-header .header-actions .btn-reload,.game-header .header-actions .btn-new-game{min-width:32px;height:32px;padding:4px}.header-left .player-info .player-name{display:none}}.problem-display{display:flex;flex-direction:column;align-items:center;background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);text-align:center}.problem-label{color:var(--color-text-muted);margin-bottom:var(--spacing-md);font-size:1.1rem;text-align:center}.problem-text{font-family:var(--font-mono);font-size:3rem;font-weight:700;color:var(--color-accent);text-align:center}.problem-equals{font-size:2.5rem;color:var(--color-text-muted)}.problem-answer{font-size:3rem;font-weight:700;color:var(--color-primary);text-align:center}.answer-hint{color:var(--color-secondary);font-size:1.1rem;font-weight:600}.problem-hint{color:var(--color-text-muted);font-size:.9rem;margin-top:var(--spacing-md)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease}.modal-content{background:var(--color-surface);padding:var(--spacing-2xl);border-radius:var(--radius-xl);text-align:center;animation:scaleIn .3s ease;box-shadow:var(--shadow-lg),0 0 60px #ffd93d4d;max-width:500px;width:90%;max-height:95vh;overflow-y:auto;box-sizing:border-box}@media (max-width: 600px){.modal-content{width:95%;padding:var(--spacing-lg);max-height:98vh;border-radius:var(--radius-lg)}}.btn-reject{background:var(--color-danger);color:#fff;padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-full);font-family:var(--font-display);font-weight:600;cursor:pointer;transition:all .2s ease}.btn-approve{background:linear-gradient(135deg,var(--color-secondary),#22c55e);color:#fff;padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-full);font-family:var(--font-display);font-weight:600;cursor:pointer;transition:all .2s ease}.winner-modal h2{font-size:2.5rem;margin-bottom:var(--spacing-md)}.winner-name{font-size:1.5rem;color:var(--color-accent);margin-bottom:var(--spacing-lg);font-weight:600}.winner-pattern{color:var(--color-text-muted);margin-bottom:var(--spacing-xl);font-size:1rem}.winner-squares{margin-bottom:var(--spacing-xl)}.winner-squares-title{font-size:1rem;color:var(--color-text-muted);margin-bottom:var(--spacing-md);font-weight:500}.waiting-text{color:var(--color-text-muted);font-size:.9rem;margin-top:var(--spacing-lg)}.bingo-card{width:100%;max-width:600px;background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-md);box-shadow:var(--shadow-lg)}.card-header{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-bottom:var(--spacing-sm)}.header-cell{text-align:center;font-size:1.5rem;font-weight:700;padding:var(--spacing-sm);border-radius:var(--radius-sm);color:#fff}.header-b{background:var(--color-b);position:relative}.header-b:after{content:"●";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:.8rem;opacity:.8}.header-i{background:var(--color-i);color:var(--color-text-dark);position:relative}.header-i:after{content:"▲";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:.8rem;opacity:.8}.header-n{background:var(--color-n);position:relative}.header-n:after{content:"■";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:.8rem;opacity:.8}.header-g{background:var(--color-g);position:relative}.header-g:after{content:"★";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:.8rem;opacity:.8}.header-o{background:var(--color-o);position:relative}.header-o:after{content:"◆";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:.8rem;opacity:.8}.card-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.card-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:var(--color-bg);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:1.25rem;font-weight:700;cursor:pointer;transition:all .15s ease;position:relative;border:2px solid transparent;padding:.1rem;min-height:0;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.card-cell:hover:not(.marked):not(.free){background:var(--color-bg-secondary);border-color:var(--color-surface-hover)}.card-cell.called{border-color:var(--color-accent);animation:glow 1.5s ease-in-out infinite}@keyframes glow{0%,to{box-shadow:0 0 5px #ffd93d4d}50%{box-shadow:0 0 20px #ffd93d99}}.card-cell.marked{border:3px solid var(--color-primary);cursor:default;animation:marked .3s ease-out}@keyframes marked{0%{transform:scale(.95)}50%{transform:scale(1.05)}to{transform:scale(1)}}.marker-circle{position:absolute;top:50%;left:50%;transform:translate(calc(-50% + var(--mark-offset-x, 0%)),calc(-50% + var(--mark-offset-y, 0%)));width:85%;height:85%;border-radius:50%;background:var(--mark-color, var(--color-primary));opacity:var(--mark-opacity, .45);pointer-events:none;z-index:1;filter:hue-rotate(var(--mark-hue-shift, 0deg))}.card-cell.disabled{cursor:not-allowed;opacity:.7}.card-cell.disabled:hover{transform:none;box-shadow:none}.card-cell.free{background:var(--free-bg, linear-gradient(135deg, var(--color-secondary), #22c55e));cursor:default;position:relative}.card-cell.free:before{content:var(--free-icon, "");position:absolute;font-size:6rem;opacity:.3;z-index:0;top:50%;left:50%;transform:translate(-50%,-50%);line-height:1;pointer-events:none}.free-text{font-size:.75rem;font-family:var(--font-display);font-weight:700;color:#fff;position:relative;z-index:1}.cell-number{transition:opacity .2s;position:relative;z-index:1;font-size:1.5rem;line-height:1;text-align:center;max-width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}@media (max-width: 400px){.bingo-card{padding:var(--spacing-sm)}.header-cell{font-size:1.2rem;padding:var(--spacing-xs)}.card-cell{font-size:.9rem;padding:.08rem}.cell-number{font-size:1.35rem}}.student-card-modal{max-width:600px;width:95%;max-height:90vh;overflow-y:auto}.student-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:2px solid var(--color-bg)}.student-info{display:flex;align-items:center;gap:var(--spacing-md)}.student-avatar{width:48px;height:48px;background:linear-gradient(135deg,var(--color-primary),var(--color-o));border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.5rem;color:#fff}.student-card-header h2{font-size:1.5rem;margin:0;background:linear-gradient(135deg,var(--color-text),var(--color-primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.close-btn{background:none;border:none;color:var(--color-text-muted);font-size:2rem;cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease;line-height:1}.close-btn:hover{background:var(--color-bg);color:var(--color-text)}.student-card-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg)}.card-wrapper{width:100%;display:flex;justify-content:center}.card-wrapper .bingo-card{max-width:400px;pointer-events:none}.card-stats{width:100%;text-align:center;padding:var(--spacing-md);background:var(--color-bg);border-radius:var(--radius-md)}.card-stats p{margin:var(--spacing-xs) 0;color:var(--color-text-muted)}.has-bingo-indicator{color:var(--color-secondary)!important;font-weight:700;font-size:1.1rem}.no-card{padding:var(--spacing-xl);text-align:center;color:var(--color-text-muted)}.called-numbers{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.called-numbers h3{margin-bottom:var(--spacing-md);color:var(--color-text);font-size:1rem}.teacher-game .called-numbers h3{color:var(--color-text-muted)}.called-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);min-height:40px}.no-numbers{color:var(--color-text-muted);font-size:.9rem;font-style:italic}.called-num{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-family:var(--font-mono);font-weight:600;font-size:.9rem;color:#fff;animation:popIn .2s ease-out;border:none;cursor:default;transition:transform .2s ease,box-shadow .2s ease}.called-num.clickable{cursor:pointer}.called-num.clickable:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000004d}.called-num:disabled{cursor:default;opacity:1}.called-num.col-b,.called-num.col-B{background:var(--color-b);color:#fff}.called-num.col-i,.called-num.col-I{background:var(--color-i);color:var(--color-text-dark)}.called-num.col-n,.called-num.col-N{background:var(--color-n);color:#fff}.called-num.col-g,.called-num.col-G{background:var(--color-g);color:#fff}.called-num.col-o,.called-num.col-O{background:var(--color-o);color:#fff}@keyframes popIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.problem-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.problem-modal{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);max-width:400px;width:90%;position:relative;box-shadow:var(--shadow-lg);animation:modalSlideIn .2s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.problem-modal-close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:none;border:none;color:var(--color-text-muted);font-size:2rem;line-height:1;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.problem-modal-close:hover{background:var(--color-bg);color:var(--color-text)}.problem-modal h3{margin:0 0 var(--spacing-lg) 0;font-size:1.5rem;color:var(--color-text);text-align:center}.problem-modal-content{text-align:center}.problem-modal-equation{font-family:var(--font-mono);font-size:2.5rem;font-weight:700;color:var(--color-primary);padding:var(--spacing-lg);background:var(--color-bg);border-radius:var(--radius-md)}.number-board{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);overflow:auto}.teacher-game .number-board{grid-column:2;grid-row:1 / -1;width:100%}@media (max-width: 900px){.teacher-game .number-board{grid-column:1;grid-row:5}}.column-headers{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.teacher-game .col-header{font-size:1.5rem;padding:calc(var(--spacing-sm) * .9)}.col-header{text-align:center;font-size:1.5rem;font-weight:700;padding:var(--spacing-sm);border-radius:var(--radius-sm);color:#fff}.col-header.b{background:var(--color-b)}.col-header.i{background:var(--color-i);color:var(--color-text-dark)}.col-header.n{background:var(--color-n)}.col-header.g{background:var(--color-g)}.col-header.o{background:var(--color-o)}.number-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--spacing-md)}.number-column{display:flex;flex-direction:column;gap:var(--spacing-sm)}.number-btn{font-family:var(--font-mono);font-size:1.75rem;font-weight:600;padding:var(--spacing-md);background:var(--color-bg);color:var(--color-text);border:2px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.teacher-game .number-btn{font-size:1.75rem;padding:calc(var(--spacing-md) * .9)}.number-btn:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-primary);transform:scale(1.05)}.number-btn:disabled{opacity:.5;cursor:not-allowed}.number-btn.called{background:var(--color-primary);color:#fff;border-color:var(--color-primary);opacity:.6;cursor:not-allowed}.preferences-modal .modal-content{max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.preferences-content{padding:var(--spacing-xl)}.preferences-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-md);border-bottom:2px solid var(--color-surface-hover)}.preferences-header h2{font-size:1.75rem;margin:0;background:linear-gradient(135deg,var(--color-text),var(--color-primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.close-btn{background:transparent;border:none;color:var(--color-text-muted);font-size:2rem;line-height:1;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all .2s ease}.close-btn:hover{background:var(--color-surface-hover);color:var(--color-text);transform:rotate(90deg)}.preferences-section{margin-bottom:var(--spacing-xl)}.preferences-section:last-child{margin-bottom:0}.preferences-section h3{font-size:1.25rem;margin-bottom:var(--spacing-lg);color:var(--color-text)}.teacher-game{min-height:100vh;display:flex;flex-direction:column;width:100%;max-width:100%}.teacher-game .game-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-xl);background:var(--color-surface);border-bottom:2px solid var(--color-bg);width:100%;max-width:100%;box-sizing:border-box;min-width:0}.session-info{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-xs);min-width:120px}.session-code{font-family:var(--font-mono);font-weight:700;background:var(--color-primary);color:#fff;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);font-size:.9rem;white-space:nowrap}.teacher-game .session-info .player-count{color:var(--color-text-muted);font-size:.85rem;white-space:nowrap;line-height:1.2;background:none;border-radius:0;width:auto;height:auto;display:block;padding:0;font-weight:400}.teacher-game .game-header h1{font-size:1.5rem;background:linear-gradient(135deg,var(--color-text),var(--color-primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0 var(--spacing-sm)}.teacher-game .game-content{flex:1;display:grid;grid-template-columns:320px 1fr 280px;grid-template-rows:auto auto 1fr;gap:calc(var(--spacing-lg) * .9);padding:calc(var(--spacing-lg) * .9);max-width:1600px;margin:0 auto;width:100%;font-size:1rem;align-items:start;justify-items:start;box-sizing:border-box}.game-content .problem-display{font-size:1rem;padding:calc(var(--spacing-xl) * .85)}.game-content .problem-text{font-size:3rem}.game-content .problem-equals{font-size:2.5rem}.game-content .problem-answer{font-size:3rem}.game-content .problem-label{font-size:1.1rem;margin-bottom:calc(var(--spacing-md) * .9)}.game-content .bingo-card{padding:calc(var(--spacing-md) * .9)}.game-content .card-cell{font-size:1.25rem;padding:.1rem}.game-content .header-cell{font-size:1.5rem;padding:calc(var(--spacing-sm) * .9)}.game-content .called-numbers-section{padding:calc(var(--spacing-md) * .85);gap:calc(var(--spacing-md) * .9)}.game-content .players-sidebar{padding:calc(var(--spacing-lg) * .85);font-size:1rem}.game-content .players-sidebar h3{font-size:1.25rem;margin-bottom:calc(var(--spacing-md) * .9)}.game-content .btn{font-size:1rem;padding:calc(var(--spacing-md) * .9) calc(var(--spacing-xl) * .9)}.teacher-game .problem-display{grid-column:1;grid-row:1;width:100%;display:flex;flex-direction:column;align-items:center;background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);text-align:center;box-sizing:border-box}.teacher-game .called-numbers-section{grid-column:1;grid-row:2;width:100%;display:flex;flex-direction:column;gap:var(--spacing-md);box-sizing:border-box}.problem-label{color:var(--color-text-muted);margin-bottom:var(--spacing-md);font-size:1.1rem}.problem-text-row{display:flex;align-items:center;justify-content:center;margin-bottom:var(--spacing-md)}.problem-text{font-family:var(--font-mono);font-size:3rem;font-weight:700;color:var(--color-accent)}.problem-answer-row{display:flex;align-items:center;justify-content:center}.problem-answer{font-size:3rem;font-weight:700;color:var(--color-primary)}.no-problem{padding:var(--spacing-xl);color:var(--color-text-muted);font-size:1.1rem}.teacher-game .players-sidebar{grid-column:3;grid-row:1 / -1;width:100%;background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);overflow-y:auto;box-sizing:border-box}.players-sidebar h3{margin-bottom:var(--spacing-md);color:var(--color-text-muted)}.players-sidebar .player-list{list-style:none;display:flex;flex-direction:column;gap:var(--spacing-sm)}.players-sidebar .player{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background:var(--color-bg);border-radius:var(--radius-md)}.players-sidebar .player.has-bingo{background:linear-gradient(135deg,var(--color-secondary),#22c55e)}.bingo-badge{font-size:.75rem;font-weight:700;background:var(--color-accent);color:var(--color-text-dark);padding:2px 8px;border-radius:var(--radius-full)}.verification-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease}.verification-modal{background:var(--color-surface);padding:var(--spacing-2xl);border-radius:var(--radius-xl);text-align:center;animation:scaleIn .3s ease;box-shadow:var(--shadow-lg),0 0 60px #ffd93d66;max-width:500px;width:90%}.verification-modal h2{font-size:2rem;margin-bottom:var(--spacing-md);color:var(--color-accent)}.claiming-player{font-size:1.5rem;font-weight:700;color:var(--color-primary);margin-bottom:var(--spacing-sm)}.claim-pattern{color:var(--color-text-muted);margin-bottom:var(--spacing-md);font-size:1.1rem}.verification-instruction{color:var(--color-text-muted);margin-bottom:var(--spacing-xl);font-size:.95rem}.verification-actions{display:flex;gap:var(--spacing-lg);justify-content:center}.btn-reject{background:var(--color-danger);color:#fff;padding:var(--spacing-md) var(--spacing-xl)}.btn-reject:hover{background:#ef4444;transform:translateY(-2px)}.btn-approve{background:linear-gradient(135deg,var(--color-secondary),#22c55e);color:#fff;padding:var(--spacing-md) var(--spacing-xl)}.btn-approve:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg),0 0 30px #6bcb7766}.winner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease}.winner-modal{background:var(--color-surface);padding:var(--spacing-2xl);border-radius:var(--radius-xl);text-align:center;animation:scaleIn .3s ease;box-shadow:var(--shadow-lg),0 0 60px #ffd93d4d}.winner-modal h2{font-size:3rem;margin-bottom:var(--spacing-md)}.winner-name{font-size:1.5rem;color:var(--color-accent);margin-bottom:var(--spacing-sm)}.winner-pattern{color:var(--color-text-muted);margin-bottom:var(--spacing-xl)}.teacher-game .header-actions{display:flex;align-items:center;gap:var(--spacing-lg);flex:0 1 auto;min-width:0}.teacher-game .header-left{flex:0 1 auto;min-width:0;overflow:hidden}.called-numbers-section .btn-random{background:linear-gradient(135deg,var(--color-o),#a855f7);color:#fff;font-size:.95rem;font-weight:600;padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-md);cursor:pointer;box-shadow:0 2px 8px #c77dff4d;transition:all .2s ease;white-space:nowrap;width:100%}.called-numbers-section .btn-random:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #c77dff66}.called-numbers-section .btn-random:disabled{opacity:.5;cursor:not-allowed}.called-numbers-section .btn-random:active:not(:disabled){transform:translateY(0)}.btn-settings{background:var(--color-surface-hover);color:var(--color-text);font-size:1.1rem;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--color-primary);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:40px;height:40px}.btn-settings:hover{background:var(--color-primary);color:#fff;transform:rotate(90deg)}.btn-settings:active{transform:rotate(90deg) scale(.95)}.btn-reload{background:var(--color-surface-hover);color:var(--color-text);font-size:1.1rem;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--color-primary);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:40px}.btn-reload:hover{background:var(--color-primary);color:#fff;transform:rotate(180deg)}.btn-reload:active{transform:rotate(180deg) scale(.95)}.btn-new-game{background:linear-gradient(135deg,var(--color-secondary),#22c55e);color:#fff;font-size:.95rem;font-weight:600;padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--radius-md);cursor:pointer;box-shadow:0 2px 8px #22c55e4d;transition:all .2s ease;white-space:nowrap}.btn-new-game:hover{transform:translateY(-1px);box-shadow:0 4px 12px #22c55e66}.btn-new-game:active{transform:translateY(0)}@media (max-width: 900px){.teacher-game .game-content{grid-template-columns:1fr;grid-template-rows:auto auto auto auto auto}.teacher-game .problem-display{grid-column:1;grid-row:1}.teacher-game .called-numbers-section{grid-column:1;grid-row:2}.teacher-game .players-sidebar{grid-column:1;grid-row:4}.teacher-game .number-board{grid-column:1;grid-row:5}.btn-new-game{width:100%}}@media (max-width: 768px){.teacher-game .game-header{padding:var(--spacing-sm) var(--spacing-md)}.teacher-game .game-header h1{font-size:1rem;margin:0 var(--spacing-xs)}.teacher-game .header-actions{gap:var(--spacing-xs)}.teacher-game .session-info{min-width:100px}.teacher-game .session-code{font-size:.75rem;padding:var(--spacing-xs) var(--spacing-sm)}.teacher-game .header-actions button,.teacher-game .header-actions .btn-settings,.teacher-game .header-actions .btn-reload,.teacher-game .header-actions .btn-new-game{min-width:36px;height:36px;padding:var(--spacing-xs) var(--spacing-sm);font-size:.95rem}}@media (max-width: 480px){.teacher-game .game-header{padding:var(--spacing-xs) var(--spacing-sm)}.teacher-game .game-header h1{font-size:.875rem;margin:0 var(--spacing-xs)}.teacher-game .header-actions{gap:4px}.teacher-game .header-actions button,.teacher-game .header-actions .btn-settings,.teacher-game .header-actions .btn-reload,.teacher-game .header-actions .btn-new-game{min-width:32px;height:32px;padding:4px;font-size:.85rem}.teacher-game .header-actions .btn-new-game{min-width:32px;padding:4px 8px;font-size:.75rem}.teacher-game .session-info{min-width:80px}.teacher-game .session-code{font-size:.7rem;padding:2px var(--spacing-xs)}}@media (orientation: landscape) and (max-height: 600px){.teacher-game .game-header{padding:var(--spacing-xs) var(--spacing-sm)}.teacher-game .game-header h1{font-size:.875rem}.teacher-game .header-actions button,.teacher-game .header-actions .btn-settings,.teacher-game .header-actions .btn-reload,.teacher-game .header-actions .btn-new-game{min-width:32px;height:32px;padding:4px}}.home-background{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:0;pointer-events:none}.floating-graphic{position:absolute;opacity:.08;animation:float 20s ease-in-out infinite}.floating-graphic.n1,.floating-graphic.n2,.floating-graphic.n3,.floating-graphic.n4,.floating-graphic.n5,.floating-graphic.n6,.floating-graphic.n7,.floating-graphic.n8{font-family:var(--font-mono);font-size:3rem;font-weight:700;color:var(--color-primary)}.n1{top:10%;left:10%;animation-delay:0s}.n2{top:20%;right:15%;animation-delay:-3s;color:var(--color-b)}.n3{top:60%;left:5%;animation-delay:-6s;color:var(--color-i)}.n4{bottom:20%;right:10%;animation-delay:-9s;color:var(--color-n)}.n5{top:40%;right:25%;animation-delay:-12s;color:var(--color-g)}.n6{bottom:30%;left:20%;animation-delay:-15s;color:var(--color-o)}.n7{top:15%;left:40%;animation-delay:-18s}.n8{bottom:10%;right:30%;animation-delay:-21s;color:var(--color-accent)}.floating-graphic.h1,.floating-graphic.h2,.floating-graphic.h3,.floating-graphic.h4,.floating-graphic.h5,.floating-graphic.h6,.floating-graphic.h7,.floating-graphic.h8{font-size:3rem;opacity:.12}.h1{top:10%;left:10%;animation-delay:0s}.h2{top:20%;right:15%;animation-delay:-3s}.h3{top:60%;left:5%;animation-delay:-6s}.h4{bottom:20%;right:10%;animation-delay:-9s}.h5{top:40%;right:25%;animation-delay:-12s}.h6{bottom:30%;left:20%;animation-delay:-15s}.h7{top:15%;left:40%;animation-delay:-18s}.h8{bottom:10%;right:30%;animation-delay:-21s}@keyframes float{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-30px) rotate(5deg)}50%{transform:translateY(10px) rotate(-3deg)}75%{transform:translateY(-20px) rotate(3deg)}}.marker-color-selector{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--color-card);border-radius:var(--radius)}.marker-color-label{font-weight:600;color:var(--color-text);font-size:.9rem;margin-bottom:var(--spacing-xs)}.marker-color-controls{display:flex;flex-direction:column;gap:var(--spacing-sm)}.marker-color-preview{display:flex;align-items:center;gap:var(--spacing-md)}.marker-preview-circle{width:40px;height:40px;border-radius:50%;background:var(--color-primary);display:inline-block;flex-shrink:0;border:2px solid var(--color-surface-hover)}.marker-preview-label{font-size:.9rem;color:var(--color-text);font-weight:500;min-width:60px}.marker-hue-slider{width:100%;height:8px;border-radius:var(--radius-sm);background:var(--color-surface);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.marker-hue-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--color-primary);border:2px solid var(--color-surface);cursor:pointer;box-shadow:var(--shadow-sm);transition:all .2s ease}.marker-hue-slider::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:var(--shadow-md)}.marker-hue-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--color-primary);border:2px solid var(--color-surface);cursor:pointer;box-shadow:var(--shadow-sm);transition:all .2s ease}.marker-hue-slider::-moz-range-thumb:hover{transform:scale(1.1);box-shadow:var(--shadow-md)}.marker-color-hint{font-size:.8rem;color:var(--color-text-muted);font-style:italic}@media (max-width: 600px){.marker-color-selector{padding:var(--spacing-sm)}.marker-preview-circle{width:32px;height:32px}.marker-preview-label{font-size:.85rem}}.join-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);position:relative;overflow:hidden}.join-background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden}.bg-shape{position:absolute;border-radius:50%;filter:blur(80px);opacity:.15}.shape1{width:400px;height:400px;background:var(--color-primary);top:-100px;left:-100px;animation:pulse 8s ease-in-out infinite}.shape2{width:300px;height:300px;background:var(--color-o);bottom:-50px;right:-50px;animation:pulse 10s ease-in-out infinite;animation-delay:-2s}.shape3{width:250px;height:250px;background:var(--color-secondary);top:50%;left:50%;transform:translate(-50%,-50%);animation:pulse 12s ease-in-out infinite;animation-delay:-4s}@keyframes pulse{0%,to{transform:scale(1);opacity:.15}50%{transform:scale(1.2);opacity:.2}}.join-card{position:relative;z-index:1;background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--spacing-2xl);width:100%;max-width:420px;box-shadow:var(--shadow-lg)}.join-card h1{font-size:2rem;text-align:center;margin-bottom:var(--spacing-sm);background:linear-gradient(135deg,var(--color-text),var(--color-primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.join-subtitle{text-align:center;color:var(--color-text-muted);margin-bottom:var(--spacing-xl)}.join-card form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.code-input{font-family:var(--font-mono);font-size:1.5rem;font-weight:700;text-align:center;letter-spacing:.3em;text-transform:uppercase}.code-input.valid{border-color:var(--color-secondary)}.code-input.invalid{border-color:var(--color-danger)}.session-found{color:var(--color-secondary);font-size:.9rem;font-weight:500}.error-message{color:var(--color-danger);font-size:.9rem;text-align:center;padding:var(--spacing-sm);background:rgba(255,107,107,.1);border-radius:var(--radius-sm)}.btn-join{background:linear-gradient(135deg,var(--color-secondary),#22c55e);color:#fff;padding:var(--spacing-lg);font-size:1.1rem;box-shadow:var(--shadow-md),0 0 20px #6bcb774d}.btn-join:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg),0 0 30px #6bcb7766}.btn-back{background:none;border:none;color:var(--color-text-muted);font-family:var(--font-display);font-size:.9rem;cursor:pointer;margin-top:var(--spacing-lg);padding:var(--spacing-sm);transition:color .2s}.btn-back:hover{color:#22c55e}.loser-modal-overlay{background:rgba(0,0,0,.75);z-index:1000}.loser-modal{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-2xl);text-align:center;max-width:600px;width:90%;box-shadow:var(--shadow-xl);display:flex;flex-direction:column;align-items:center}.loser-modal h2{font-size:2.5rem;margin-bottom:var(--spacing-md);color:var(--color-text);text-align:center;width:100%}.loser-message{font-size:1.5rem;color:var(--color-text);margin-bottom:var(--spacing-lg);font-weight:600;text-align:center;width:100%}.winner-squares{margin-bottom:var(--spacing-xl);width:100%;display:flex;flex-direction:column;align-items:center}.winner-squares-title{font-size:1rem;color:var(--color-text-muted);margin-bottom:var(--spacing-md);font-weight:500;text-align:center;width:100%}.winner-squares-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:center}.winner-square{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-family:var(--font-mono);font-weight:600;font-size:.9rem;color:#fff;border:none;cursor:default}.winner-square.col-b,.winner-square.col-B{background:var(--color-b);color:#fff}.winner-square.col-i,.winner-square.col-I{background:var(--color-i);color:var(--color-text-dark)}.winner-square.col-n,.winner-square.col-N{background:var(--color-n);color:#fff}.winner-square.col-g,.winner-square.col-G{background:var(--color-g);color:#fff}.winner-square.col-o,.winner-square.col-O{background:var(--color-o);color:#fff}.waiting-text{color:var(--color-text-muted);font-size:.9rem;margin-top:var(--spacing-lg);text-align:center;width:100%}.loser-actions{margin-top:var(--spacing-xl);display:flex;justify-content:center}.loser-actions .btn-new-game{background:linear-gradient(135deg,var(--color-secondary),#22c55e);color:#fff;font-size:1rem;font-weight:600;padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-md);cursor:pointer;box-shadow:0 2px 8px #22c55e4d;transition:all .2s ease}.loser-actions .btn-new-game:hover{transform:translateY(-2px);box-shadow:0 4px 12px #22c55e66}.loser-actions .btn-new-game:active{transform:translateY(0)}.past-problems-sidebar{position:fixed;top:0;right:0;height:100vh;width:320px;background:var(--color-surface);box-shadow:-2px 0 8px #0000001a;z-index:100;transform:translate(100%);transition:transform .3s ease-in-out;display:flex;flex-direction:column}.past-problems-sidebar.open{transform:translate(0)}.past-problems-toggle{position:absolute;left:-40px;top:50%;transform:translateY(-50%);width:40px;height:60px;background:var(--color-primary);color:#fff;border:none;border-radius:8px 0 0 8px;cursor:pointer;font-size:1.2rem;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:-2px 0 4px #0000001a;transition:all .2s ease;z-index:101}.past-problems-toggle:hover{background:var(--color-primary-dark, #0056b3);transform:translateY(-50%) translate(-2px)}.past-problems-content{flex:1;overflow-y:auto;padding:var(--spacing-lg)}.past-problems-header-row{display:flex;justify-content:space-between;align-items:center;margin:0 0 var(--spacing-md) 0;position:sticky;top:0;background:var(--color-surface);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border, #e0e0e0);z-index:1}.past-problems-content h3{margin:0;color:var(--color-text);font-size:1.1rem}.past-problems-close-mobile{display:none;background:none;border:none;color:var(--color-text-muted);font-size:2rem;line-height:1;cursor:pointer;width:32px;height:32px;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease;padding:0}.past-problems-close-mobile:hover{background:var(--color-bg);color:var(--color-text)}.past-problems-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.no-problems{color:var(--color-text-muted);font-size:.9rem;font-style:italic;text-align:center;padding:var(--spacing-lg)}.past-problem-item{background:var(--color-bg);border-radius:var(--radius-md);padding:var(--spacing-md);border:1px solid var(--color-border, #e0e0e0);transition:all .2s ease;position:relative}.past-problem-item:hover{box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.past-problem-header{margin-bottom:var(--spacing-sm)}.past-problem-column{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-family:var(--font-mono);font-weight:600;font-size:.85rem;color:#fff}.past-problem-column.col-B{background:var(--color-b)}.past-problem-column.col-I{background:var(--color-i);color:var(--color-text-dark)}.past-problem-column.col-N{background:var(--color-n)}.past-problem-column.col-G{background:var(--color-g)}.past-problem-column.col-O{background:var(--color-o)}.past-problem-equation{font-family:var(--font-mono);font-size:1.1rem;font-weight:600;color:var(--color-text);word-break:break-word}.past-problem-players{display:flex;gap:4px;position:absolute;bottom:var(--spacing-xs);left:var(--spacing-xs);flex-wrap:wrap;align-items:center}.past-problem-player-avatar{width:15px;height:15px;background:linear-gradient(135deg,var(--color-primary),var(--color-o));border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:7px;flex-shrink:0;color:#fff;line-height:1;padding:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 768px){.past-problems-sidebar{width:280px}.past-problems-toggle{display:none}.past-problems-close-mobile{display:flex}}.student-game{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--color-bg) 0%,var(--color-bg-secondary) 100%);width:100%;max-width:100%}.student-game .game-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);background:var(--color-surface);border-bottom:2px solid var(--color-bg);width:100%;max-width:100%;box-sizing:border-box}.student-game .header-actions{display:flex;align-items:center;gap:var(--spacing-md)}.player-info{display:flex;align-items:center;gap:var(--spacing-sm)}.player-avatar{width:40px;height:40px;background:linear-gradient(135deg,var(--color-primary),var(--color-o));border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2rem}.student-game .game-header h1{font-size:1.25rem;background:linear-gradient(135deg,var(--color-text),var(--color-primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.student-game .session-code{font-family:var(--font-mono);font-weight:700;font-size:.85rem;background:var(--color-bg);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);color:var(--color-text-muted);white-space:nowrap}.session-code-footer{width:100%;display:flex;justify-content:center;padding:var(--spacing-md) 0;margin-top:var(--spacing-md)}.session-code-footer .session-code{font-family:var(--font-mono);font-weight:700;font-size:.9rem;background:var(--color-surface);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);color:var(--color-text-muted);border:2px solid var(--color-surface-hover)}.student-game .btn-settings{background:var(--color-surface-hover);color:var(--color-text);font-size:1.1rem;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--color-primary);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:40px;height:40px}.student-game .btn-settings:hover{background:var(--color-primary);color:#fff;transform:rotate(90deg)}.student-game .btn-settings:active{transform:rotate(90deg) scale(.95)}.student-game .btn-reload{background:var(--color-surface-hover);color:var(--color-text);font-size:1.1rem;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--color-primary);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:40px}.student-game .btn-reload:hover{background:var(--color-primary);color:#fff;transform:rotate(180deg)}.student-game .btn-reload:active{transform:rotate(180deg) scale(.95)}.student-game .btn-next{background:var(--color-primary);color:#fff;font-size:1rem;font-weight:600;padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-md);min-width:100px;white-space:nowrap}.student-game .btn-next:hover{background:var(--color-accent);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.student-game .btn-next:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.student-game .game-content{flex:1;display:flex;flex-direction:column;align-items:center;padding:calc(var(--spacing-lg) * .9);gap:calc(var(--spacing-lg) * .9);max-width:700px;margin:0 auto;width:100%;font-size:1rem}@media (orientation: landscape) and (max-height: 900px){.student-game .game-content{flex-direction:row;align-items:stretch;max-width:100%;padding:var(--spacing-xs);gap:var(--spacing-xs);height:calc(100vh - 50px);overflow:hidden;box-sizing:border-box}.student-game .game-content .problem-section{flex:0 0 33.333%;width:33.333%;display:flex;flex-direction:column;justify-content:center;padding:var(--spacing-sm);min-height:0}.student-game .game-content .bingo-card{flex:0 0 66.666%;width:66.666%;max-width:none;margin:0;height:100%;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;padding:var(--spacing-xs);max-height:100%;overflow:hidden}.student-game .game-content .session-code-footer{display:none}.student-game .game-content .problem-display{padding:var(--spacing-sm)}.student-game .game-content .problem-text,.student-game .game-content .problem-answer{font-size:1.5rem}.student-game .game-content .problem-container{flex-direction:column;gap:var(--spacing-sm)}.student-game .game-content .btn-next{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:.9rem}.student-game .game-content .bingo-card .card-header{gap:2px;margin-bottom:var(--spacing-xs)}.student-game .game-content .bingo-card .header-cell{font-size:.7rem;padding:calc(var(--spacing-xs) * .5)}.student-game .game-content .bingo-card .card-grid{gap:2px}.student-game .game-content .bingo-card .card-cell{padding:.08rem;min-height:0;aspect-ratio:1}.student-game .game-content .bingo-card .cell-number{line-height:1}.student-game .game-content .bingo-card .free-text{font-size:.5rem}.student-game .game-content .bingo-card .marker{width:12px;height:12px;font-size:8px;top:1px;right:1px}.student-game .game-header{padding:var(--spacing-sm) var(--spacing-md)}.student-game .game-header h1{font-size:1rem}.player-avatar{width:32px;height:32px;font-size:1rem}}.student-game .game-content .problem-display{font-size:1rem;padding:calc(var(--spacing-lg) * .85)}.student-game .game-content .problem-text,.student-game .game-content .problem-answer{font-size:2rem}.student-game .game-content .problem-label,.student-game .game-content .problem-hint{font-size:.9rem}.student-game .game-content .bingo-card{padding:calc(var(--spacing-md) * .9)}.student-game .game-content .card-cell{font-size:1.25rem;padding:.1rem}.student-game .game-content .header-cell{font-size:1.5rem;padding:calc(var(--spacing-sm) * .9)}.student-game .game-content .problem-section{padding:calc(var(--spacing-md) * .85);gap:calc(var(--spacing-md) * .9)}.student-game .game-content .problem-container{gap:calc(var(--spacing-md) * .9)}.student-game .game-content .btn-next{font-size:1rem;padding:calc(var(--spacing-md) * .9) calc(var(--spacing-xl) * .9)}.problem-section{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.problem-container{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--spacing-lg);flex-wrap:wrap}.waiting-card,.problem-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);text-align:center}.waiting-card p{color:var(--color-text-muted);margin-bottom:var(--spacing-md)}.problem-label{color:var(--color-text-muted);font-size:.9rem;margin-bottom:var(--spacing-md)}.problem-display{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);background:var(--color-bg);padding:var(--spacing-lg);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.problem-display .problem-text{font-family:var(--font-mono);font-size:2rem;font-weight:700;color:var(--color-accent)}.problem-display .equals{font-size:1.5rem;color:var(--color-text-muted)}.problem-display .question{font-size:2rem;font-weight:700;color:var(--color-primary);animation:pulse-question 1s ease-in-out infinite}@keyframes pulse-question{0%,to{opacity:1}50%{opacity:.5}}.problem-hint{color:var(--color-text-muted);font-size:.9rem}.called-numbers-bar{width:100%;display:flex;align-items:center;gap:var(--spacing-sm);background:var(--color-surface);padding:var(--spacing-md);border-radius:var(--radius-md);overflow-x:auto}.called-numbers-bar .label{color:var(--color-text-muted);font-size:.85rem;flex-shrink:0}.called-numbers-bar .numbers{display:flex;gap:var(--spacing-xs)}.called-numbers-bar .called-num{background:var(--color-primary);color:#fff;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-family:var(--font-mono);font-weight:600;font-size:.85rem;animation:popIn .2s ease-out}@keyframes popIn{0%{transform:scale(0)}to{transform:scale(1)}}.student-game .winner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease}.student-game .winner-modal{background:var(--color-surface);padding:var(--spacing-2xl);border-radius:var(--radius-xl);text-align:center;animation:scaleIn .3s ease;box-shadow:var(--shadow-lg),0 0 60px #ffd93d4d}.student-game .winner-modal h2{font-size:2.5rem;margin-bottom:var(--spacing-md)}.student-game .winner-name{font-size:1.25rem;color:var(--color-accent);margin-bottom:var(--spacing-sm)}.student-game .winner-pattern{color:var(--color-text-muted);font-size:.9rem;margin-bottom:var(--spacing-lg)}.waiting-text{color:var(--color-text-muted);font-size:.9rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.version-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);background:linear-gradient(180deg,var(--color-bg) 0%,var(--color-bg-secondary) 100%)}.version-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-2xl);max-width:600px;width:100%;box-shadow:var(--shadow-xl);text-align:center}.version-card h1{font-size:2rem;margin-bottom:var(--spacing-xl);background:linear-gradient(135deg,var(--color-primary),var(--color-o));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.version-info{display:flex;flex-direction:column;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);text-align:left}.version-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background:var(--color-card);border-radius:var(--radius-md);gap:var(--spacing-md)}.version-label{font-weight:600;color:var(--color-text-muted);min-width:150px}.version-value{font-family:var(--font-mono);font-size:.9rem;color:var(--color-text);word-break:break-all;text-align:right;flex:1}.btn{padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-o));color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}@media (max-width: 600px){.version-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.version-label{min-width:auto}.version-value{text-align:left;width:100%}}.not-found{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,var(--color-bg) 0%,var(--color-bg-secondary) 100%);padding:var(--spacing-xl)}.not-found-content{text-align:center;max-width:900px;width:100%}.not-found-icon{font-size:6rem;margin-bottom:var(--spacing-lg);animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.not-found h1{font-size:2.5rem;color:var(--color-text);margin-bottom:var(--spacing-md);background:linear-gradient(135deg,var(--color-primary),var(--color-accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.not-found-message{font-size:1.25rem;color:var(--color-text-muted);margin-bottom:var(--spacing-sm)}.not-found-submessage{font-size:1rem;color:var(--color-text-muted);margin-bottom:var(--spacing-xl)}.not-found-submessage strong{color:var(--color-primary);background:var(--color-bg);padding:2px 8px;border-radius:var(--radius-sm);font-family:var(--font-mono)}.game-container{position:relative;background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-xl);box-shadow:var(--shadow-lg);display:inline-block}.game-canvas{display:block;border:2px solid var(--color-primary);border-radius:var(--radius-md);background:#f7fafc;max-width:100%;height:auto}.game-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg)}.game-over-message{background:var(--color-surface);padding:var(--spacing-xl);border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow-xl)}.game-over-message h2{font-size:2rem;color:var(--color-text);margin-bottom:var(--spacing-md)}.game-over-message p{font-size:1.25rem;color:var(--color-text-muted);margin-bottom:var(--spacing-sm)}.restart-hint{font-size:.9rem!important;color:var(--color-primary)!important;font-weight:600;margin-top:var(--spacing-md)!important}.btn-back-home{font-size:1.25rem;padding:var(--spacing-md) var(--spacing-xl);margin-bottom:var(--spacing-xl);display:inline-block;position:relative;z-index:10}@media (max-width: 768px){.not-found h1{font-size:2rem}.not-found-icon{font-size:4rem}.game-canvas{width:100%}.game-container{padding:var(--spacing-md)}}.app-footer{position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-top:1px solid rgba(255,255,255,.1);padding:var(--spacing-sm) var(--spacing-md);z-index:100;box-shadow:0 -2px 8px #0000001a}.footer-content{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;gap:var(--spacing-md)}.footer-text{margin:0;color:var(--color-text-muted);font-size:.75rem;font-weight:400}.footer-links{display:flex;align-items:center;gap:var(--spacing-sm)}.footer-link{color:var(--color-text-muted);font-size:.75rem;text-decoration:none;transition:color .2s ease}.footer-link:hover{color:var(--color-primary);text-decoration:underline}.footer-separator{color:var(--color-text-muted);font-size:.75rem}@media (max-width: 600px){.app-footer{padding:var(--spacing-xs) var(--spacing-sm)}.footer-content{flex-direction:column;gap:var(--spacing-xs);text-align:center}.footer-text,.footer-links{font-size:.7rem}}.line-drawing-game{width:100%;max-width:1200px;margin:0 auto;padding:20px;display:flex;flex-direction:column;align-items:center}.game-instructions{font-size:18px;font-weight:500;margin-bottom:20px;text-align:center;color:#fff}.line-drawing-container{position:relative;width:100%;min-height:600px;background:#f5f5f5;border:3px solid #ddd;border-radius:8px;padding:40px;margin-bottom:20px;display:flex;flex-direction:column;gap:40px;justify-content:center;align-items:center}.line-drawing-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10}.shapes-column,.answers-column{position:relative;z-index:1;display:flex;flex-direction:row;gap:30px;justify-content:center;align-items:center;flex-wrap:wrap;width:100%}.shape-item,.answer-item{position:relative;padding:20px;background:white;border:2px solid #ddd;border-radius:8px;cursor:pointer;transition:all .2s;min-width:280px;max-width:320px;display:flex;flex-direction:column;align-items:center}.shape-item:hover,.answer-item:hover{border-color:#2196f3;box-shadow:0 2px 8px #2196f333}.shape-item.connected,.answer-item.connected{border-color:#4caf50;background:#f1f8f4}.shape-label{font-weight:700;font-size:16px;margin-bottom:10px;color:#333}.shape-content{display:flex;justify-content:center;align-items:center;min-height:180px;padding:20px}.shape-container{position:relative;display:flex;align-items:center;justify-content:center;padding:20px 40px;min-width:200px;min-height:150px;width:100%;max-width:100%;box-sizing:border-box;margin:0 auto}.shape-rectangle,.shape-square,.shape-diamond,.shape-trapezoid{position:relative;border:3px solid;box-sizing:border-box}.shape-square{width:160px;height:160px;margin:0 auto;display:block}.shape-diamond{width:160px;height:160px;transform:rotate(45deg);margin:0 auto;display:block}.shape-trapezoid-wrapper{position:relative;width:220px;height:140px;display:flex;align-items:center;justify-content:center;padding:20px 60px;margin:0 auto}.shape-trapezoid{width:100%;height:100%;position:absolute;top:0;left:0;background-color:inherit;border:3px solid;border-color:inherit;clip-path:polygon(15% 0%,85% 0%,100% 100%,0% 100%)}.shape-trapezoid-wrapper .side-label-top{top:-30px;left:50%;transform:translate(-50%)}.shape-trapezoid-wrapper .side-label-bottom{bottom:-30px;left:50%;transform:translate(-50%)}.shape-trapezoid-wrapper .side-label-left{left:-55px;top:50%;transform:translateY(-50%)}.shape-trapezoid-wrapper .side-label-right{right:-55px;top:50%;transform:translateY(-50%)}.side-label{position:absolute;font-size:18px;font-weight:700;color:#1a1a1a;background:white;padding:6px 10px;border-radius:6px;white-space:nowrap;z-index:20;box-shadow:0 2px 6px #00000026;border:1px solid #ddd;min-width:50px;text-align:center;pointer-events:none}.side-label-top{top:-30px;left:50%;transform:translate(-50%)}.side-label-bottom{bottom:-30px;left:50%;transform:translate(-50%)}.side-label-left{left:-55px;top:50%;transform:translateY(-50%)}.side-label-right{right:-55px;top:50%;transform:translateY(-50%)}.shape-diamond-wrapper{position:relative;width:200px;height:200px;display:flex;align-items:center;justify-content:center;padding:40px 20px;margin:0 auto}.shape-diamond-wrapper .shape-diamond{position:relative}.shape-diamond-wrapper .side-label{position:absolute;transform:none;writing-mode:horizontal-tb}.shape-diamond-wrapper .side-label-top{top:-45px;left:50%;transform:translate(-50%)}.shape-diamond-wrapper .side-label-right{right:-70px;top:50%;transform:translateY(-50%)}.shape-diamond-wrapper .side-label-bottom{bottom:-45px;left:50%;transform:translate(-50%)}.shape-diamond-wrapper .side-label-left{left:-70px;top:50%;transform:translateY(-50%)}.shape-triangle-wrapper{position:relative;min-width:200px;min-height:150px;display:flex;align-items:center;justify-content:center;padding:20px 40px 30px;width:100%;max-width:100%;box-sizing:border-box}.shape-triangle-wrapper .shape-triangle{position:relative}.shape-triangle-wrapper .side-label{position:absolute;transform:none;writing-mode:horizontal-tb}.shape-triangle-wrapper .side-label-base{bottom:-30px;left:50%;transform:translate(-50%)}.shape-triangle-wrapper .side-label-left{left:-50px;top:calc(50% + 15px);transform:translateY(-50%)}.shape-triangle-wrapper .side-label-right{right:-50px;top:calc(50% + 15px);transform:translateY(-50%)}.shape-circle{width:160px;height:160px;border-radius:50%;margin:0 auto;display:block}.shape-pentagon-wrapper,.shape-hexagon-wrapper,.shape-octagon-wrapper{position:relative;min-width:200px;min-height:150px;display:flex;align-items:center;justify-content:center;padding:20px;width:100%;max-width:100%;box-sizing:border-box}.shape-pentagon-wrapper .shape-pentagon,.shape-hexagon-wrapper .shape-hexagon,.shape-octagon-wrapper .shape-octagon{width:160px;height:160px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-sizing:border-box}.shape-pentagon-wrapper .shape-pentagon{clip-path:polygon(50% 0%,100% 38%,82% 100%,18% 100%,0% 38%)}.shape-hexagon-wrapper .shape-hexagon{clip-path:polygon(25% 0%,75% 0%,100% 50%,75% 100%,25% 100%,0% 50%)}.shape-octagon-wrapper .shape-octagon{clip-path:polygon(30% 0%,70% 0%,100% 30%,100% 70%,70% 100%,30% 100%,0% 70%,0% 30%)}.shape-pentagon-wrapper .side-label,.shape-hexagon-wrapper .side-label,.shape-octagon-wrapper .side-label{position:absolute;transform:none;writing-mode:horizontal-tb}.shape-pentagon-wrapper .side-label-top,.shape-hexagon-wrapper .side-label-top,.shape-octagon-wrapper .side-label-top{top:-30px;left:50%;transform:translate(-50%)}.shape-pentagon-wrapper .side-label-bottom{bottom:-30px;left:50%;transform:translate(-50%)}.answer-value{font-size:24px;font-weight:700;text-align:center;color:#333;padding:10px}.game-actions{display:flex;justify-content:center;gap:15px;margin-top:20px}.btn{padding:12px 24px;font-size:16px;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:all .2s}.btn-clear{background:#f44336;color:#fff}.btn-clear:hover:not(:disabled){background:#d32f2f}.btn-submit{background:#4CAF50;color:#fff}.btn-submit:hover:not(:disabled){background:#45a049}@media (max-width: 767px){.side-label{font-size:14px;padding:4px 8px;min-width:40px}.side-label-top{top:-25px}.side-label-bottom{bottom:-25px}.side-label-left{left:-40px}.side-label-right{right:-40px}.shape-triangle-wrapper .side-label-left{left:-40px}.shape-triangle-wrapper .side-label-right{right:-40px}.shape-triangle-wrapper .side-label-base{bottom:-25px}.shape-diamond-wrapper .side-label-top{top:-35px}.shape-diamond-wrapper .side-label-bottom{bottom:-35px}.shape-diamond-wrapper .side-label-left{left:-55px}.shape-diamond-wrapper .side-label-right{right:-55px}}@media (min-width: 768px){.shape-container{padding:30px 60px;min-width:300px;min-height:200px}.shape-triangle-wrapper{padding:20px 60px 40px;min-height:200px}.shape-pentagon-wrapper,.shape-hexagon-wrapper,.shape-octagon-wrapper{padding:40px 20px;min-height:200px}}@media (max-width: 768px){.line-drawing-container{flex-direction:column;align-items:center;min-height:auto}.shapes-column,.answers-column{width:100%;align-items:center}.shape-item,.answer-item{width:100%;max-width:300px}}.fill-in-blank-game{width:100%;margin:0;padding:12px;display:flex;flex-direction:column;align-items:center}.fill-in-blank-container{position:relative;width:100%;min-height:auto;background:#f5f5f5;border:2px solid #ddd;border-radius:12px;padding:16px;margin-bottom:16px;display:flex;flex-direction:column;gap:16px;justify-content:center;align-items:center}.questions-form{width:100%;display:flex;flex-direction:column;gap:16px;align-items:center}.shapes-section{display:flex;flex-direction:column;gap:16px;justify-content:center;align-items:center;width:100%}.shapes-section .shape-item{position:relative;padding:16px;background:white;border:2px solid #ddd;border-radius:12px;width:100%;max-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.shapes-section .shape-content{display:flex;justify-content:center;align-items:center;min-height:150px;padding:12px;width:100%;overflow:hidden;margin:0 auto}.questions-section{display:flex;flex-direction:column;gap:16px;width:100%;align-items:center}.question-item{display:flex;flex-direction:column;gap:12px;padding:16px;background:white;border:2px solid #ddd;border-radius:12px;width:100%;align-items:center}.answer-input-wrapper{position:relative;display:flex;align-items:center;justify-content:center;width:100%;max-width:200px;margin:0 auto}.answer-input{width:100%;padding:16px;font-size:20px;font-weight:600;border:3px solid #2196F3;border-radius:8px;text-align:center;background:white;color:#333;min-height:56px;box-sizing:border-box}.answer-input:focus{outline:none;border-color:#1976d2;box-shadow:0 0 0 4px #2196f326}.answer-input:disabled{background:#f5f5f5;border-color:#ccc;color:#666;cursor:not-allowed}.answer-input::placeholder{color:#999;font-weight:400}.btn-submit{padding:16px 32px;font-size:18px;font-weight:600;background:#4CAF50;color:#fff;border:none;border-radius:8px;cursor:pointer;transition:all .2s;margin:8px auto 0;min-height:56px;min-width:200px;box-shadow:0 2px 4px #0000001a;display:block}@media (min-width: 768px){.fill-in-blank-game{padding:20px;max-width:1200px;margin:0 auto}.fill-in-blank-container{padding:25px;min-height:500px;border-width:3px;border-radius:8px;gap:20px}.game-instructions{font-size:18px;margin-bottom:20px}.questions-form{gap:20px}.shapes-section{flex-direction:row;gap:20px}.shapes-section .shape-item{min-width:280px;max-width:400px;padding:20px;flex:0 1 auto}.shapes-section .shape-content{min-height:200px;padding:20px}.questions-section{max-width:600px;gap:20px}.question-item{padding:20px;gap:15px}.question-text{font-size:18px}.answer-input{padding:12px 15px;font-size:18px;min-height:auto}.btn-submit{padding:14px 40px;font-size:18px;min-height:auto;margin-top:10px}.btn-submit:hover:not(:disabled){background:#45a049;transform:translateY(-1px);box-shadow:0 4px 8px #0003}}@media (min-width: 1024px){.fill-in-blank-container{min-height:600px}}.drag-drop-game{width:100%;margin:0;padding:12px;display:flex;flex-direction:column;align-items:center}.drag-drop-container{position:relative;width:100%;min-height:auto;background:#f5f5f5;border:2px solid #ddd;border-radius:12px;padding:16px;margin-bottom:16px;display:flex;flex-direction:column;gap:20px;justify-content:center;align-items:center}.game-instructions{font-size:16px;font-weight:600;margin-bottom:16px;text-align:center;color:#333;line-height:1.4;padding:0 8px}.shapes-and-questions{display:flex;flex-direction:column;gap:20px;width:100%;margin-bottom:20px;align-items:center}.shape-question-group{display:flex;flex-direction:column;gap:20px;padding:16px;background:white;border:2px solid #ddd;border-radius:12px;width:100%;align-items:center}.shape-display{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}.shape-display .shape-content{display:flex;justify-content:center;align-items:center;min-height:150px;padding:12px;width:100%;overflow:hidden;margin:0 auto}.perimeter-hint{font-size:14px;font-weight:600;color:#2196f3;padding:8px 16px;background:#e3f2fd;border-radius:8px;border:2px solid #2196F3;text-align:center}.questions-for-shape{display:flex;flex-direction:column;gap:16px;width:100%;align-items:center}.question-with-blank{display:flex;flex-direction:column;gap:12px;width:100%;align-items:center}.question-text{font-size:16px;font-weight:500;color:#333;line-height:1.5;text-align:center;padding:0 8px}.answer-blank{min-height:64px;min-width:120px;width:100%;max-width:200px;border:3px dashed #2196F3;border-radius:8px;display:flex;align-items:center;justify-content:center;background:white;transition:all .2s;cursor:pointer;touch-action:manipulation;margin:0 auto}.answer-blank.empty{background:#f9f9f9}.answer-blank.empty:active{background:#e3f2fd;border-color:#1976d2}.answer-blank.filled{border-style:solid;border-color:#4caf50;background:#f1f8f4}.blank-placeholder{font-size:24px;color:#999;font-weight:700}.placed-answer{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#4CAF50;color:#fff;border-radius:8px;font-size:18px;font-weight:600}.remove-answer{background:rgba(255,255,255,.3);border:none;color:#fff;font-size:20px;font-weight:700;width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;transition:all .2s;touch-action:manipulation;min-width:32px;min-height:32px}.remove-answer:active{background:rgba(255,255,255,.5);transform:scale(.95)}.answer-choices-section{width:100%;display:flex;flex-direction:column;gap:12px;align-items:center;margin-top:16px;padding-top:20px;border-top:2px solid #ddd}.answer-choices-label{font-size:16px;font-weight:600;color:#333;text-align:center}.answer-choices{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;align-items:center;width:100%;margin:0 auto}.answer-choice{min-width:80px;min-height:56px;padding:12px 20px;background:#2196F3;color:#fff;border-radius:8px;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:grab;transition:all .2s;box-shadow:0 2px 4px #0003;-webkit-user-select:none;user-select:none;touch-action:manipulation;flex:1 1 auto;max-width:150px}.answer-choice:active{cursor:grabbing;transform:scale(.95);box-shadow:0 1px 2px #0003}.answer-choice:disabled,.answer-choice[disabled]{opacity:.5;cursor:not-allowed}.btn-submit{padding:16px 32px;font-size:18px;font-weight:600;background:#4CAF50;color:#fff;border:none;border-radius:8px;cursor:pointer;transition:all .2s;margin:16px auto 0;min-height:56px;min-width:200px;box-shadow:0 2px 4px #0000001a;display:block}.btn-submit:active:not(:disabled){background:#45a049;transform:scale(.98);box-shadow:0 1px 2px #0000001a}.btn-submit:disabled{background:#ccc;cursor:not-allowed;transform:none;box-shadow:none}@media (min-width: 768px){.drag-drop-game{padding:20px;max-width:1200px;margin:0 auto}.drag-drop-container{padding:30px;min-height:500px;border-width:3px;border-radius:8px;gap:30px}.game-instructions{font-size:18px;margin-bottom:20px}.shapes-and-questions{max-width:600px;gap:30px;margin-bottom:30px}.shape-question-group{padding:25px;gap:25px}.shape-display .shape-content{min-height:200px;padding:20px}.perimeter-hint{font-size:16px;padding:10px 20px}.question-text{font-size:18px}.answer-blank{min-height:60px;min-width:150px;max-width:none}.answer-choices-section{margin-top:20px;padding-top:30px;gap:15px}.answer-choices-label{font-size:18px}.answer-choices{gap:15px;max-width:800px}.answer-choice{min-width:60px;min-height:60px;padding:15px 25px;font-size:20px;max-width:none;flex:0 1 auto}.answer-choice:hover{background:#1976D2;transform:translateY(-2px);box-shadow:0 4px 8px #0000004d}.answer-blank.empty:hover{background:#e3f2fd;border-color:#1976d2}.remove-answer:hover{background:rgba(255,255,255,.5);transform:scale(1.1)}.btn-submit{padding:14px 40px;font-size:18px;min-height:auto;margin-top:20px}.btn-submit:hover:not(:disabled){background:#45a049;transform:translateY(-1px);box-shadow:0 4px 8px #0003}}@media (min-width: 1024px){.drag-drop-container{min-height:600px}}.slide-view-modal-overlay .modal-content{max-width:90vw;max-height:90vh;width:1000px;padding:0;overflow:hidden;display:flex;flex-direction:column}.slide-view-modal{display:flex;flex-direction:column;height:100%;background:var(--color-bg);color:var(--color-text)}.slide-view-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);background:var(--color-surface);border-bottom:2px solid var(--color-border)}.slide-view-title{display:flex;align-items:center;gap:var(--spacing-md)}.slide-view-title h2{margin:0;font-size:1.5rem;color:var(--color-text)}.slide-type-badge{background:var(--color-primary);color:#fff;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;text-transform:uppercase}.close-btn{background:none;border:none;font-size:2rem;color:var(--color-text);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:background .2s}.close-btn:hover{background:var(--color-border)}.slide-view-content{flex:1;overflow-y:auto;padding:var(--spacing-lg);background:var(--color-bg)}.slide-view-content .line-drawing-game,.slide-view-content .fill-in-blank-game,.slide-view-content .drag-drop-game{max-width:100%}.slide-view-content .btn-submit,.slide-view-content .btn-clear,.slide-view-content .game-actions{display:none}@media (max-width: 768px){.slide-view-modal-overlay .modal-content{max-width:95vw;width:95vw;max-height:95vh}.slide-view-header{padding:var(--spacing-md)}.slide-view-title h2{font-size:1.25rem}.slide-view-content{padding:var(--spacing-md)}}.area-perimeter-teacher-game{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg);color:var(--color-text)}.teacher-dashboard{flex:1;padding:var(--spacing-xl);max-width:1400px;margin:0 auto;width:100%;box-sizing:border-box}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-md);border-bottom:2px solid var(--color-surface)}.dashboard-header h2{margin:0;font-size:2rem;color:var(--color-text)}.slide-info{color:var(--color-text-muted);font-size:1rem}.no-students{text-align:center;padding:var(--spacing-xxl);color:var(--color-text-muted);font-size:1.1rem}.students-list{display:flex;flex-direction:column;gap:var(--spacing-lg)}.student-card{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--spacing-lg);box-shadow:0 2px 8px #0000001a}.student-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.student-name{margin:0;font-size:1.5rem;color:var(--color-text);font-weight:600}.slides-status{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.slide-indicator{width:40px;height:40px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem;cursor:pointer;transition:transform .2s,box-shadow .2s;border:2px solid transparent;-webkit-user-select:none;user-select:none}.slide-indicator:hover{transform:scale(1.1);box-shadow:0 4px 8px #0003}.slide-indicator:active{transform:scale(.95)}.slide-indicator.completed{background:#4CAF50;color:#fff;border-color:#45a049}.slide-indicator.current{background:#2196F3;color:#fff;border-color:#1976d2}.slide-indicator.attempted{background:#FFC107;color:#333;border-color:#ffa000}.slide-indicator.not-started{background:var(--color-surface);color:var(--color-text-muted);border-color:var(--color-border)}@media (max-width: 768px){.teacher-dashboard{padding:var(--spacing-md)}.dashboard-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.dashboard-header h2{font-size:1.5rem}.student-card{padding:var(--spacing-md)}.student-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}.student-name{font-size:1.25rem}.slide-indicator{width:35px;height:35px;font-size:.8rem}}.area-perimeter-student-game{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--color-bg) 0%,var(--color-bg-secondary) 100%);width:100%;max-width:100%}.area-perimeter-student-game .game-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--color-surface);border-bottom:2px solid var(--color-bg);width:100%;max-width:100%;box-sizing:border-box;flex-shrink:0}.area-perimeter-student-game .header-actions,.player-info{display:flex;align-items:center;gap:8px}.player-avatar{width:36px;height:36px;background:linear-gradient(135deg,var(--color-primary),var(--color-o));border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;color:#fff;flex-shrink:0}.player-name{font-size:.9rem;font-weight:500;color:var(--color-text);display:none}.area-perimeter-student-game .game-header h1{font-size:1rem;background:linear-gradient(135deg,var(--color-text),var(--color-primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;flex:1;text-align:center}.area-perimeter-student-game .session-code{font-family:var(--font-mono);font-weight:700;font-size:.75rem;background:var(--color-bg);padding:4px 8px;border-radius:var(--radius-sm);color:var(--color-text-muted);white-space:nowrap}.session-code-footer{width:100%;display:flex;justify-content:center;padding:12px 0;margin-top:12px;flex-shrink:0}.session-code-footer .session-code{font-family:var(--font-mono);font-weight:700;font-size:.85rem;background:var(--color-surface);padding:8px 16px;border-radius:var(--radius-md);color:var(--color-text-muted);border:2px solid var(--color-surface-hover)}.area-perimeter-student-game .btn-settings,.area-perimeter-student-game .btn,.area-perimeter-student-game .btn-reload{background:var(--color-surface-hover);color:var(--color-text);font-size:1rem;padding:8px;border:2px solid var(--color-primary);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;touch-action:manipulation}.area-perimeter-student-game .btn:active,.area-perimeter-student-game .btn-settings:active,.area-perimeter-student-game .btn-reload:active{transform:scale(.95)}.area-perimeter-student-game .game-content{flex:1;display:flex;flex-direction:column;align-items:center;padding:16px 12px;gap:16px;width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}.waiting-message{text-align:center;padding:40px 16px;color:var(--color-text-muted)}.waiting-message h2{font-size:1.25rem;font-weight:400;color:var(--color-text-muted);line-height:1.5}.slide-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg);background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.slide-title{font-size:1.5rem;font-weight:600;color:var(--color-text);margin:0}.slide-progress{font-size:.9rem;color:var(--color-text-muted);font-weight:500}.feedback-message{padding:12px 16px;margin-bottom:16px;border-radius:var(--radius-md);font-size:.95rem;font-weight:500;text-align:center;width:100%;max-width:100%;box-sizing:border-box}.feedback-message.correct{background:rgba(107,203,119,.2);color:var(--color-secondary);border:2px solid var(--color-secondary)}.feedback-message.incorrect{background:rgba(255,107,107,.2);color:var(--color-danger);border:2px solid var(--color-danger)}@media (min-width: 768px){.area-perimeter-student-game .game-header{padding:var(--spacing-md) var(--spacing-lg)}.area-perimeter-student-game .game-header h1{font-size:1.25rem}.player-avatar{width:40px;height:40px;font-size:1.2rem}.player-name{display:inline;font-size:1rem}.area-perimeter-student-game .header-actions{gap:var(--spacing-md)}.area-perimeter-student-game .btn-settings,.area-perimeter-student-game .btn,.area-perimeter-student-game .btn-reload{min-width:40px;height:40px;padding:var(--spacing-sm) var(--spacing-md);font-size:1.1rem}.area-perimeter-student-game .btn:hover,.area-perimeter-student-game .btn-settings:hover,.area-perimeter-student-game .btn-reload:hover{background:var(--color-primary);color:#fff}.area-perimeter-student-game .btn-reload:hover{transform:rotate(180deg)}.area-perimeter-student-game .btn-settings:hover{transform:rotate(90deg)}.area-perimeter-student-game .game-content{padding:calc(var(--spacing-lg) * .9);gap:calc(var(--spacing-lg) * .9);max-width:1400px;margin:0 auto;font-size:1rem}.waiting-message{padding:calc(var(--spacing-xl) * 2) var(--spacing-lg)}.waiting-message h2{font-size:1.5rem}.feedback-message{padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-lg);font-size:1rem;max-width:800px}}@media (min-width: 1024px){.area-perimeter-student-game .game-content{padding:var(--spacing-lg)}}@media (orientation: landscape) and (max-height: 600px){.area-perimeter-student-game .game-header{padding:8px 12px}.area-perimeter-student-game .game-header h1{font-size:.875rem}.player-name{display:none}.area-perimeter-student-game .btn-settings,.area-perimeter-student-game .btn,.area-perimeter-student-game .btn-reload{min-width:32px;height:32px;padding:4px;font-size:.85rem}.player-avatar{width:28px;height:28px;font-size:.875rem}}.teacher-game-content{display:flex;flex-direction:column;gap:var(--spacing-lg);padding:var(--spacing-lg);max-width:1200px;margin:0 auto;width:100%;box-sizing:border-box}.question-display{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md)}.question-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);flex-wrap:wrap;gap:var(--spacing-md)}.question-header h2{margin:0;font-size:1.5rem;color:var(--color-text);font-weight:600}.question-navigation{display:flex;gap:var(--spacing-md)}.question-navigation .btn{min-width:120px;white-space:nowrap}.question-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.question-instruction{font-size:1.125rem;color:var(--color-text-muted);margin:0;font-weight:500}.question-sentence{font-size:1.25rem;line-height:1.6;color:var(--color-text);margin:0;padding:var(--spacing-lg);background:var(--color-bg);border-radius:var(--radius-md)}.homophone-options{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;color:var(--color-primary)}.option-highlight{padding:.25rem .5rem;background:var(--color-surface);border-radius:var(--radius-sm)}.students-progress{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md)}.students-progress h2{margin:0 0 var(--spacing-lg) 0;font-size:1.5rem;color:var(--color-text);font-weight:600}.student-answers-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.student-answer{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background:var(--color-bg);border-radius:var(--radius-md);border:2px solid transparent;transition:all .2s ease}.student-answer.correct{border-color:var(--color-secondary);background:linear-gradient(135deg,rgba(74,222,128,.1),rgba(74,222,128,.05))}.student-answer.incorrect{border-color:var(--color-danger);background:linear-gradient(135deg,rgba(239,68,68,.1),rgba(239,68,68,.05))}.student-answer.not-answered{opacity:.6}.student-name{font-weight:600;color:var(--color-text);font-size:1rem}.student-answer-content{display:flex;align-items:center;gap:var(--spacing-sm)}.answer-text{font-size:1rem;color:var(--color-text);font-weight:500}.answer-status{font-size:1.25rem;font-weight:700;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%}.answer-status.correct{color:var(--color-secondary);background:rgba(74,222,128,.2)}.answer-status.incorrect{color:var(--color-danger);background:rgba(239,68,68,.2)}.no-answer{color:var(--color-text-muted);font-style:italic;font-size:.9rem}.no-students{text-align:center;color:var(--color-text-muted);padding:var(--spacing-xl);font-style:italic}@media (max-width: 768px){.teacher-game-content{padding:var(--spacing-md);gap:var(--spacing-md)}.question-display,.students-progress{padding:var(--spacing-md)}.question-header{flex-direction:column;align-items:stretch;gap:var(--spacing-sm)}.question-header h2{font-size:1.25rem;text-align:center}.question-navigation{width:100%;justify-content:stretch}.question-navigation .btn{flex:1;min-width:0;font-size:.95rem;padding:var(--spacing-sm) var(--spacing-md)}.question-instruction{font-size:1rem}.question-sentence{font-size:1.125rem;padding:var(--spacing-md)}.students-progress h2{font-size:1.25rem}.student-answer{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.student-answer-content{width:100%;justify-content:space-between}}@media (max-width: 480px){.teacher-game-content{padding:var(--spacing-sm);gap:var(--spacing-sm)}.question-display,.students-progress{padding:var(--spacing-sm)}.question-header h2{font-size:1.125rem}.question-instruction{font-size:.95rem}.question-sentence{font-size:1rem;padding:var(--spacing-sm)}.students-progress h2{font-size:1.125rem}.student-name,.answer-text{font-size:.95rem}.student-answer{padding:var(--spacing-sm)}.question-navigation .btn{font-size:.875rem;padding:var(--spacing-xs) var(--spacing-sm)}}@media (orientation: landscape) and (max-height: 600px){.teacher-game-content{padding:var(--spacing-sm);gap:var(--spacing-sm)}.question-display,.students-progress{padding:var(--spacing-sm)}.question-header{margin-bottom:var(--spacing-sm)}.question-header h2{font-size:1rem}.question-instruction{font-size:.9rem}.question-sentence{font-size:1rem;padding:var(--spacing-sm)}.students-progress h2{font-size:1rem;margin-bottom:var(--spacing-sm)}.student-answers-list{gap:var(--spacing-xs)}.student-answer{padding:var(--spacing-xs) var(--spacing-sm)}}.elar-completion-modal-overlay{display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.7);z-index:10000}.elar-completion-modal{background:var(--color-card);border-radius:12px;padding:2rem;max-width:500px;width:90%;text-align:center;box-shadow:var(--shadow-lg)}.elar-completion-modal h2{margin:0 0 1.5rem;font-size:2rem;color:var(--color-text)}.completion-stats{display:flex;justify-content:space-around;margin:2rem 0;padding:1.5rem;background:var(--color-bg-secondary);border-radius:8px}.stat-item{display:flex;flex-direction:column;align-items:center;gap:.5rem}.stat-label{font-size:1rem;color:var(--color-text-muted);font-weight:500}.stat-value{font-size:2rem;font-weight:700;color:var(--color-secondary)}.completion-message{font-size:1.1rem;color:var(--color-text);margin:1.5rem 0 2rem;line-height:1.6}.elar-completion-modal .btn{padding:.75rem 2rem;font-size:1.1rem;margin-top:1rem}.elar-student-game{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg);width:100%;max-width:100%;position:relative}.elar-student-game .student-game-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-lg);width:100%;max-width:100%;box-sizing:border-box}.elar-question-display{width:100%;max-width:600px;background:var(--color-card);border-radius:24px;padding:2rem 1.5rem;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:1.5rem}.elar-question-instruction{font-size:1rem;color:var(--color-text-muted);text-align:center;margin:0;font-weight:500;letter-spacing:.02em}.elar-sentence-container{width:100%;margin:1rem 0}.elar-question-sentence{font-size:1.5rem;line-height:1.8;color:var(--color-text);text-align:center;margin:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem}.elar-answer-blank{display:inline-flex;align-items:center;justify-content:center;min-height:60px;position:relative}.elar-blank-placeholder{display:inline-block;min-width:80px;height:60px;border:3px dashed var(--color-surface);border-radius:12px;background:var(--color-bg-secondary);color:var(--color-text-muted);font-weight:600;line-height:60px;text-align:center}.elar-inline-options{display:inline-flex;gap:.75rem;flex-wrap:wrap;justify-content:center;align-items:center}.elar-inline-option{min-width:100px;height:60px;padding:.75rem 1.25rem;font-size:1.25rem;font-weight:600;color:var(--color-primary);background:var(--color-card);border:3px solid var(--color-primary);border-radius:12px;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.elar-inline-option:hover{background:var(--color-surface);border-color:var(--color-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.elar-inline-option:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.elar-inline-option.selected{background:var(--color-primary);color:var(--color-text-dark);border-color:var(--color-primary-hover);box-shadow:var(--shadow-lg)}.elar-selected-answer{display:inline-block;min-width:100px;height:60px;padding:.75rem 1.25rem;font-size:1.25rem;font-weight:600;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md)}.elar-selected-answer.correct{background:var(--color-secondary);color:var(--color-text-dark);border:3px solid var(--color-secondary)}.elar-selected-answer.incorrect{background:var(--color-danger);color:var(--color-text-dark);border:3px solid var(--color-danger)}.elar-submit-button-container{width:100%;display:flex;justify-content:center;margin-top:1rem}.elar-submit-button{min-width:200px;height:56px;padding:0 2rem;font-size:1.125rem;font-weight:600;color:var(--color-text-dark);background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));border:none;border-radius:28px;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow-md);touch-action:manipulation}.elar-submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.elar-submit-button:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.elar-submit-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.elar-answer-feedback{width:100%;margin-top:1rem;padding:1.25rem;border-radius:16px;text-align:center;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.elar-feedback{display:flex;align-items:center;justify-content:center;gap:.75rem;font-size:1.125rem;font-weight:500;padding:1.25rem}.elar-feedback.correct{color:var(--color-text-dark);background:linear-gradient(135deg,var(--color-secondary),#4ade80);border:3px solid var(--color-secondary);box-shadow:0 4px 20px #4ade804d;animation:correctPulse .6s ease;font-size:1.25rem;padding:1.5rem;border-radius:20px}@keyframes correctPulse{0%{transform:scale(.95);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}.elar-feedback.incorrect{color:var(--color-text-dark);background:linear-gradient(135deg,var(--color-danger),#f87171);border:3px solid var(--color-danger);box-shadow:0 4px 20px #ef44444d;animation:incorrectPulse .6s ease;font-size:1.25rem;padding:1.5rem;border-radius:20px}@keyframes incorrectPulse{0%{transform:scale(.95);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}.elar-feedback-icon{font-size:1.5rem;font-weight:700}.elar-feedback-text{flex:1}@media (max-width: 768px){.elar-student-game .student-game-content{padding:var(--spacing-md)}.elar-question-display{padding:1.5rem 1rem;border-radius:20px}.elar-question-instruction{font-size:.9rem}.elar-question-sentence{font-size:1.25rem;line-height:1.7}.elar-inline-option,.elar-blank-placeholder,.elar-selected-answer{min-width:90px;height:56px;font-size:1.125rem;padding:.625rem 1rem}.elar-submit-button{width:100%;max-width:300px;height:52px;font-size:1rem}.elar-feedback{font-size:1rem;padding:1rem}}@media (max-width: 480px){.elar-student-game .student-game-content{padding:var(--spacing-sm)}.elar-question-display{padding:1.25rem .875rem;border-radius:16px}.elar-question-instruction{font-size:.875rem}.elar-question-sentence{font-size:1.125rem;line-height:1.6;gap:.375rem}.elar-inline-option,.elar-blank-placeholder,.elar-selected-answer{min-width:80px;height:52px;font-size:1rem;padding:.5rem .875rem;border-width:2px}.elar-inline-options{gap:.5rem}.elar-submit-button{height:48px;font-size:.9375rem}.elar-feedback{font-size:.9375rem;padding:.875rem}.elar-feedback-icon{font-size:1.25rem}}@media (min-width: 769px){.elar-question-display{max-width:700px}.elar-question-sentence{font-size:1.625rem}.elar-inline-option,.elar-blank-placeholder,.elar-selected-answer{min-width:110px;height:64px;font-size:1.375rem}}.battleship-game{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--color-bg) 0%,var(--color-bg-secondary) 100%);padding:var(--spacing-sm);box-sizing:border-box;overflow-x:hidden}.game-container{max-width:100%;margin:0 auto;width:100%;box-sizing:border-box;overflow-x:hidden}.setup-phase,.playing-phase,.finished-phase{display:flex;flex-direction:column;gap:var(--spacing-sm);align-items:center;width:100%;max-width:100%;box-sizing:border-box;padding:0 var(--spacing-xs)}.setup-phase h2{text-align:center;color:var(--color-text);font-size:1.25rem;margin:var(--spacing-xs) 0;padding:0 var(--spacing-sm)}.ship-placement-controls{display:flex;flex-direction:column;gap:var(--spacing-sm);align-items:center}.ships-to-place{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:center;padding:0 var(--spacing-sm)}.btn-ship{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface);border:2px solid var(--color-primary);border-radius:var(--border-radius);color:var(--color-text);cursor:pointer;transition:all .2s;font-size:.9rem;min-height:44px;display:flex;align-items:center;justify-content:center}.btn-ship:hover,.btn-ship:active,.btn-ship.selected{background:var(--color-primary);color:#fff}.placement-hint{text-align:center;color:var(--color-text);font-style:italic;padding:var(--spacing-sm);font-size:.9rem}.btn-ready{margin:var(--spacing-md) auto;padding:var(--spacing-md) var(--spacing-lg);font-size:1rem;min-height:48px;width:100%;max-width:300px}.ready-status{text-align:center;color:var(--color-primary);font-weight:600;padding:var(--spacing-sm);font-size:.95rem}.boards-container{display:flex;flex-direction:column;gap:var(--spacing-md);margin-top:var(--spacing-sm);width:100%;max-width:100%;align-items:center;box-sizing:border-box;padding:0 var(--spacing-xs)}.battleship-board{background:var(--color-surface);border-radius:var(--border-radius);padding:var(--spacing-sm);box-shadow:0 2px 4px #0000001a;width:100%;max-width:100%;display:flex;flex-direction:column;align-items:center;box-sizing:border-box;overflow:hidden}.board-header{text-align:center;font-size:.95rem;font-weight:600;margin-bottom:var(--spacing-xs);color:var(--color-text);padding:0 var(--spacing-xs)}.board-grid{display:grid;grid-template-columns:20px repeat(10,1fr);gap:1px;width:100%;max-width:100%;margin:0 auto;box-sizing:border-box;padding:0 var(--spacing-xs)}.board-col-header,.board-row-header{display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--color-text);font-size:.7rem;min-width:0}.board-row{display:contents}.board-cell{aspect-ratio:1;background:#e0e7ff;border:1px solid #c7d2fe;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;position:relative;min-height:24px;min-width:0;touch-action:manipulation;box-sizing:border-box}.board-cell:hover{background:#c7d2fe}.board-cell:active{transform:scale(.95)}.board-cell.has-ship{background:#93c5fd}.board-cell.placing{background:#60a5fa;border:2px solid var(--color-primary)}.board-cell.clickable{cursor:pointer}.board-cell.clickable:hover{background:#fbbf24;border-color:#f59e0b}.board-cell.clickable:active{background:#f59e0b}.board-cell.hit{background:#fca5a5;border-color:#ef4444}.board-cell.miss{background:#dbeafe;border-color:#93c5fd}.ship-indicator{color:#1e40af;font-size:.7rem}.hit-indicator{color:#dc2626;font-size:1rem;font-weight:700}.miss-indicator{color:#3b82f6;font-size:.9rem}.turn-indicator{text-align:center;padding:var(--spacing-xs);margin-bottom:var(--spacing-sm);width:100%;box-sizing:border-box}.opponent-turn{background:var(--color-surface);color:var(--color-text);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius);font-weight:600;font-size:.9rem;display:inline-block;width:auto;min-width:120px}.finished-phase h2{text-align:center;font-size:1.75rem;color:var(--color-primary);margin-bottom:var(--spacing-md)}.sunk-ship-message{text-align:center;padding:var(--spacing-sm);background:var(--color-primary);color:#fff;border-radius:var(--border-radius);margin:var(--spacing-sm) 0;animation:fadeIn .3s ease-in}.sunk-ship-message h3{margin:0;font-size:1.1rem;font-weight:700}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.placement-error{background-color:#fee;color:#c33;padding:var(--spacing-sm);border-radius:4px;margin:var(--spacing-sm) 0;border:1px solid #fcc;text-align:center;font-weight:500;font-size:.9rem}.math-problem-section{margin:var(--spacing-sm) 0;padding:var(--spacing-sm);background:var(--color-surface);border-radius:var(--radius-md);border:2px solid var(--color-primary);width:100%;max-width:100%;box-sizing:border-box}.math-problem-title{margin-top:0;margin-bottom:var(--spacing-sm);font-size:1rem;text-align:center;color:var(--color-text)}.math-problem-display{font-size:1.25rem;font-weight:700;margin-bottom:var(--spacing-sm);text-align:center;color:var(--color-text);word-break:break-word;padding:0 var(--spacing-xs)}.math-timer{margin-bottom:var(--spacing-sm);text-align:center;font-size:1rem;color:var(--color-text);font-weight:500}.math-timer-warning{color:#f44;font-weight:600}.math-problem-loading{text-align:center;padding:var(--spacing-lg)}.math-problem-loading-text{font-size:1rem;margin-bottom:var(--spacing-sm);color:var(--color-text)}.math-problem-time-limit{font-size:.9rem;color:var(--color-text-secondary)}.math-answer-input-container{display:flex;flex-direction:column;gap:var(--spacing-sm);align-items:stretch;margin-bottom:var(--spacing-sm)}.math-answer-input{width:100%;padding:var(--spacing-sm);font-size:1.1rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);text-align:center;min-height:44px;box-sizing:border-box}.math-submit-btn{width:100%;min-height:44px;padding:var(--spacing-sm) var(--spacing-lg);font-size:1rem}.math-answer-feedback{padding:var(--spacing-sm);border-radius:var(--radius-sm);text-align:center;font-weight:700;font-size:.95rem}.math-answer-correct{background-color:#d4edda;color:#155724}.math-answer-incorrect{background-color:#f8d7da;color:#721c24}@media (max-width: 375px){.board-grid{grid-template-columns:18px repeat(10,1fr);gap:1px}.board-col-header,.board-row-header{font-size:.65rem}.board-cell{min-height:22px}.math-problem-display{font-size:1.1rem}.battleship-game{padding:var(--spacing-xs)}}@media (min-width: 640px){.battleship-game{padding:var(--spacing-lg)}.setup-phase h2{font-size:1.75rem}.ship-placement-controls{flex-direction:row;justify-content:center}.ships-to-place{gap:var(--spacing-md)}.btn-ship{font-size:1rem}.board-grid{grid-template-columns:30px repeat(10,1fr);gap:3px;max-width:500px}.board-cell{min-height:35px}.board-header{font-size:1.2rem}.board-col-header,.board-row-header{font-size:.9rem}.ship-indicator{font-size:.8rem}.hit-indicator{font-size:1.2rem}.miss-indicator{font-size:1rem}.opponent-turn{font-size:1.1rem;padding:var(--spacing-md)}.finished-phase h2{font-size:2rem}.sunk-ship-message h3{font-size:1.25rem}.math-problem-section{padding:var(--spacing-lg)}.math-problem-title{font-size:1.1rem}.math-problem-display{font-size:1.75rem}.math-timer{font-size:1.1rem}.math-answer-input-container{flex-direction:row;justify-content:center;align-items:center}.math-answer-input{max-width:150px;font-size:1.2rem}.math-submit-btn{width:auto}}@media (min-width: 1024px){.game-container{max-width:1200px}.boards-container{flex-direction:row;gap:var(--spacing-xl);align-items:flex-start}.battleship-board{flex:1;max-width:500px;padding:var(--spacing-lg)}.board-grid{max-width:500px;gap:4px}.board-cell{min-height:40px}.setup-phase,.playing-phase,.finished-phase{gap:var(--spacing-lg)}.math-problem-section{max-width:600px;margin-left:auto;margin-right:auto}.math-problem-section h3{font-size:1.2rem}}@media (min-width: 1280px){.boards-container{gap:var(--spacing-2xl)}.board-grid{max-width:550px}.board-cell{min-height:45px}}.feedback-viewer-container{min-height:100vh;background:var(--color-bg);padding:var(--spacing-lg);color:var(--color-text)}.feedback-viewer-content{max-width:1000px;margin:0 auto;background:var(--color-card);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--spacing-xl);color:var(--color-text)}.feedback-viewer-content h1{color:var(--color-text);margin-bottom:var(--spacing-md)}.refresh-btn{background:var(--color-primary);color:#fff;border:none;padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-sm);cursor:pointer;font-size:1em;margin-bottom:var(--spacing-lg);transition:all .2s ease;font-family:var(--font-display);font-weight:600}.refresh-btn:hover{background:var(--color-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.stats{background:var(--color-bg-secondary);border-radius:var(--radius-sm);padding:var(--spacing-lg);margin:var(--spacing-lg) 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md)}.stat-item{text-align:center}.stat-value{font-size:2em;font-weight:700;color:var(--color-primary)}.stat-label{color:var(--color-text-muted);font-size:.9em}.feedback-list{margin-top:var(--spacing-xl)}.feedback-item{border:1px solid var(--color-surface);border-radius:var(--radius-sm);padding:var(--spacing-lg);margin-bottom:var(--spacing-md);background:var(--color-bg-secondary)}.feedback-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);color:var(--color-text)}.feedback-header strong{color:var(--color-text)}.rating{font-size:1.5em;margin-right:var(--spacing-sm)}.timestamp{color:var(--color-text-muted);font-size:.9em}.feedback-text{margin-top:var(--spacing-md);padding:var(--spacing-md);background:var(--color-card);border-radius:var(--radius-sm);border-left:3px solid var(--color-primary);white-space:pre-wrap;word-wrap:break-word;color:var(--color-text)}.no-feedback{text-align:center;color:var(--color-text-muted);padding:var(--spacing-2xl)}.loading{text-align:center;padding:var(--spacing-lg);color:var(--color-text-muted)}.error-message{text-align:center;padding:var(--spacing-2xl);color:var(--color-text-muted)}.error-message h2{margin-bottom:var(--spacing-md);color:var(--color-danger)}.error-message p{margin:var(--spacing-md) 0;color:var(--color-text)}.error-message a{color:var(--color-primary);text-decoration:underline}.error-link-container{margin-top:var(--spacing-md)}.error-info{margin-top:var(--spacing-md);font-size:.9em;color:var(--color-text)}.feedback-list-title{margin:var(--spacing-xl) 0 var(--spacing-lg) 0;color:var(--color-text)}.feedback-id{color:var(--color-text-muted);margin-left:var(--spacing-md)}.session-code{color:var(--color-text-muted);margin-left:var(--spacing-md);font-family:monospace;font-size:.9em}.feedback-user-email{margin-top:var(--spacing-sm);color:var(--color-text-muted);font-size:.9em}.feedback-empty{color:var(--color-text-muted);font-style:italic}.feedback-modal-overlay{z-index:2000}.feedback-modal{display:flex;flex-direction:column;gap:var(--spacing-lg);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-sizing:border-box}.feedback-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.feedback-header h2{margin:0;font-size:1.5rem;color:var(--color-text)}.close-btn{background:none;border:none;font-size:2rem;color:var(--color-text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:background-color .2s}.close-btn:hover{background-color:var(--color-background-hover)}.feedback-prompt{color:var(--color-text);opacity:.9;margin:0;font-size:1rem}.feedback-rating{display:flex;justify-content:center;gap:var(--spacing-xl);padding:var(--spacing-lg) 0}.rating-btn{background:var(--color-background);border:2px solid var(--color-border);border-radius:var(--radius-lg);font-size:3rem;width:80px;height:80px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;padding:0}.rating-btn:hover{transform:scale(1.1);border-color:var(--color-primary);box-shadow:0 4px 12px #00000026}.rating-btn.selected{border-color:var(--color-primary);background:var(--color-primary-light);box-shadow:0 4px 12px #ffd93d4d}.rating-btn.selected.thumbs-up{background:rgba(76,175,80,.1);border-color:#4caf50}.rating-btn.selected.thumbs-down{background:rgba(244,67,54,.1);border-color:#f44336}.feedback-text{display:flex;flex-direction:column;gap:var(--spacing-xs)}.feedback-text textarea{width:100%;padding:var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--radius-md);font-family:inherit;font-size:1rem;resize:vertical;min-height:100px;background:var(--color-background);color:var(--color-text);transition:border-color .2s}.feedback-text textarea:focus{outline:none;border-color:var(--color-primary)}.feedback-text textarea::placeholder{color:var(--color-text-muted);opacity:.7}.char-count{text-align:right;font-size:.875rem;color:var(--color-text-muted)}.feedback-user-info{margin-top:var(--spacing-md);padding:var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-md)}.checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;color:var(--color-text);font-size:.9rem}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.checkbox-label span{-webkit-user-select:none;user-select:none}.feedback-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-sm)}.btn{padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;min-width:100px}.btn-primary{background:var(--color-primary);color:var(--color-text)}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:0 4px 8px #0003}.btn-secondary{background:var(--color-background);color:var(--color-text);border:2px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-background-hover)}@media (max-width: 600px){.feedback-modal{max-height:95vh;gap:var(--spacing-md)}.feedback-header h2{font-size:1.25rem}.feedback-prompt{font-size:.9rem}.feedback-rating{gap:var(--spacing-lg);padding:var(--spacing-md) 0}.rating-btn{font-size:2.5rem;width:70px;height:70px}.feedback-text textarea{min-height:80px;font-size:.95rem;padding:var(--spacing-sm)}.feedback-actions{flex-direction:column;gap:var(--spacing-sm);width:100%}.feedback-actions .btn{width:100%;min-width:unset;padding:var(--spacing-sm) var(--spacing-lg)}.char-count{font-size:.8rem}}@media (max-width: 400px){.feedback-modal{gap:var(--spacing-sm)}.feedback-header h2{font-size:1.1rem}.rating-btn{font-size:2rem;width:60px;height:60px}.feedback-rating{gap:var(--spacing-md)}}.privacy-policy-page{min-height:100vh;background:var(--color-bg);color:var(--color-text);padding:var(--spacing-xl)}.privacy-policy-container{max-width:800px;margin:0 auto;background:var(--color-card);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md)}.privacy-policy-page h1{color:var(--color-primary);margin-bottom:var(--spacing-sm);font-size:2rem}.privacy-policy-page section{margin-bottom:var(--spacing-xl)}.privacy-policy-page h2{color:var(--color-primary);margin-top:var(--spacing-lg);margin-bottom:var(--spacing-md);font-size:1.5rem}.privacy-policy-page h3{color:var(--color-accent);margin-top:var(--spacing-md);margin-bottom:var(--spacing-sm);font-size:1.2rem}.privacy-policy-page p{line-height:1.6;margin-bottom:var(--spacing-md)}.privacy-policy-page ul{margin-left:var(--spacing-lg);margin-bottom:var(--spacing-md)}.privacy-policy-page li{line-height:1.6;margin-bottom:var(--spacing-sm)}.privacy-policy-page strong{color:var(--color-accent)}.privacy-policy-footer{margin-top:var(--spacing-xl);text-align:center;padding-top:var(--spacing-lg);border-top:2px solid var(--color-surface)}@media (max-width: 768px){.privacy-policy-page{padding:var(--spacing-md)}.privacy-policy-container{padding:var(--spacing-lg)}.privacy-policy-page h1{font-size:1.5rem}.privacy-policy-page h2{font-size:1.3rem}}.terms-of-service-page{min-height:100vh;background:var(--color-bg);color:var(--color-text);padding:var(--spacing-xl)}.terms-of-service-container{max-width:800px;margin:0 auto;background:var(--color-card);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md)}.terms-of-service-page h1{color:var(--color-primary);margin-bottom:var(--spacing-sm);font-size:2rem}.last-updated{color:var(--color-text-muted);font-size:.9rem;margin-bottom:var(--spacing-xl);font-style:italic}.terms-of-service-page section{margin-bottom:var(--spacing-xl)}.terms-of-service-page h2{color:var(--color-primary);margin-top:var(--spacing-lg);margin-bottom:var(--spacing-md);font-size:1.5rem}.terms-of-service-page p{line-height:1.6;margin-bottom:var(--spacing-md)}.terms-of-service-page ul{margin-left:var(--spacing-lg);margin-bottom:var(--spacing-md)}.terms-of-service-page li{line-height:1.6;margin-bottom:var(--spacing-sm)}.terms-of-service-page strong{color:var(--color-accent)}.terms-of-service-footer{margin-top:var(--spacing-xl);text-align:center;padding-top:var(--spacing-lg);border-top:2px solid var(--color-surface)}@media (max-width: 768px){.terms-of-service-page{padding:var(--spacing-md)}.terms-of-service-container{padding:var(--spacing-lg)}.terms-of-service-page h1{font-size:1.5rem}.terms-of-service-page h2{font-size:1.3rem}}:root{--color-bg: #0f1729;--color-bg-secondary: #1a2744;--color-surface: #243352;--color-surface-hover: #2d3f63;--color-card: #1e2a47;--color-b: #ff6b6b;--color-i: #ffd93d;--color-n: #6bcb77;--color-g: #4d96ff;--color-o: #c77dff;--color-primary: #4d96ff;--color-primary-hover: #3a7be0;--color-secondary: #6bcb77;--color-accent: #ffd93d;--color-danger: #ff6b6b;--color-text: #f0f4ff;--color-text-muted: #8b9dc3;--color-text-dark: #1a2744;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .2);--shadow-md: 0 4px 20px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .4);--shadow-glow: 0 0 30px rgba(77, 150, 255, .3)}[data-theme=light]{--color-bg: #ffffff;--color-bg-secondary: #f5f7fa;--color-surface: #e8ecf1;--color-surface-hover: #d1d9e6;--color-card: #dde3ea;--color-b: #ff6b6b;--color-i: #ffd93d;--color-n: #6bcb77;--color-g: #4d96ff;--color-o: #c77dff;--color-primary: #4d96ff;--color-primary-hover: #3a7be0;--color-secondary: #6bcb77;--color-accent: #ffd93d;--color-danger: #ff6b6b;--color-text: #1a2744;--color-text-muted: #5a6c7d;--color-text-dark: #f0f4ff;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .1);--shadow-md: 0 4px 20px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .2);--shadow-glow: 0 0 30px rgba(77, 150, 255, .2)}[data-theme=ocean]{--color-bg: #0d3542;--color-bg-secondary: #155263;--color-surface: #1a5d6f;--color-surface-hover: #1f6b7c;--color-card: #155263;--color-b: #ff6f3c;--color-i: #ff9a3c;--color-n: #ffc93c;--color-g: #ff9a3c;--color-o: #ff6f3c;--color-primary: #ff6f3c;--color-primary-hover: #e85f2c;--color-secondary: #ff9a3c;--color-accent: #ffc93c;--color-danger: #ff6f3c;--color-text: #f0f4ff;--color-text-muted: #8bb3c5;--color-text-dark: #0d3542;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 20px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .5);--shadow-glow: 0 0 30px rgba(255, 111, 60, .3)}[data-theme=sunset]{--color-bg: #5a0a3d;--color-bg-secondary: #8a1253;--color-surface: #9e1a5f;--color-surface-hover: #b21f6b;--color-card: #8a1253;--color-b: #fda403;--color-i: #e8751a;--color-n: #c51350;--color-g: #e8751a;--color-o: #fda403;--color-primary: #e8751a;--color-primary-hover: #d6650a;--color-secondary: #c51350;--color-accent: #fda403;--color-danger: #c51350;--color-text: #f0f4ff;--color-text-muted: #c57ba3;--color-text-dark: #5a0a3d;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 20px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .5);--shadow-glow: 0 0 30px rgba(232, 117, 26, .3)}[data-theme=nature]{--color-bg: #e8ecd6;--color-bg-secondary: #fdfff0;--color-surface: #f5f8e8;--color-surface-hover: #eef0e0;--color-card: #fdfff0;--color-b: #a1dd70;--color-i: #a1dd70;--color-n: #a23131;--color-g: #a1dd70;--color-o: #a23131;--color-primary: #a1dd70;--color-primary-hover: #8fcd5a;--color-secondary: #a23131;--color-accent: #a1dd70;--color-danger: #a23131;--color-text: #2d2d2d;--color-text-muted: #6b6b6b;--color-text-dark: #fdfff0;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .1);--shadow-md: 0 4px 20px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .2);--shadow-glow: 0 0 30px rgba(161, 221, 112, .3)}[data-theme=valentine]{--color-bg: #ffffff;--color-bg-secondary: #ffeef7;--color-surface: #fdd2e8;--color-surface-hover: #fcc0de;--color-card: #ffeef7;--color-b: #ffb7dd;--color-i: #fd9ed0;--color-n: #ffb7dd;--color-g: #fd9ed0;--color-o: #ffb7dd;--color-primary: #fd9ed0;--color-primary-hover: #fc8cc4;--color-secondary: #ffb7dd;--color-accent: #fd9ed0;--color-danger: #ff6b9d;--color-text: #2d2d2d;--color-text-muted: #7a5a6b;--color-text-dark: #ffffff;--free-icon: "💜";--free-bg: linear-gradient(135deg, #ffb7dd, #fd9ed0);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .1);--shadow-md: 0 4px 20px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .2);--shadow-glow: 0 0 30px rgba(253, 158, 208, .3)}:root,[data-theme=light],[data-theme=ocean],[data-theme=sunset],[data-theme=nature],[data-theme=valentine]{--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius: 12px;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 20px;--radius-xl: 28px;--radius-full: 9999px;--font-display: "Fredoka", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-display);background:var(--color-bg);color:var(--color-text);min-height:100vh;line-height:1.5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}input,textarea,select,[contenteditable=true]{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}#root{min-height:100vh}.app{min-height:100vh;padding-bottom:50px;position:relative}.btn{font-family:var(--font-display);font-weight:600;font-size:1rem;padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-full);cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--color-primary),#6366f1);color:#fff;box-shadow:var(--shadow-md),0 0 20px #4d96ff4d}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg),0 0 30px #4d96ff66}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:2px solid var(--color-primary)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-hover);transform:translateY(-2px)}input{font-family:var(--font-display);font-size:1rem;padding:var(--spacing-md) var(--spacing-lg);border:2px solid var(--color-surface);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text);transition:all .2s ease;width:100%}input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #4d96ff33}input::placeholder{color:var(--color-text-muted)}select{font-family:var(--font-display);font-size:.9rem;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--color-surface);border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text);cursor:pointer}select:focus{outline:none;border-color:var(--color-primary)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:var(--spacing-lg)}.spinner{width:48px;height:48px;border:4px solid var(--color-surface);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.waiting-animation{display:flex;gap:6px;justify-content:center}.waiting-animation span{width:10px;height:10px;background:var(--color-primary);border-radius:50%;animation:bounce 1.4s ease-in-out infinite both}.waiting-animation span:nth-child(1){animation-delay:-.32s}.waiting-animation span:nth-child(2){animation-delay:-.16s}.waiting-animation span:nth-child(3){animation-delay:0}@keyframes bounce{0%,80%,to{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--color-surface);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-surface-hover)}.required-asterisk{color:var(--color-danger);font-weight:700;margin-left:2px}
