.notification-system{position:fixed;top:20px;left:0;right:0;z-index:1000;display:flex;flex-direction:column;align-items:center;gap:12px;pointer-events:none}.notification{background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px;padding:.6rem .9rem .4rem;box-shadow:0 2px 8px #0000001a,0 4px 16px #00000014;border:1px solid;animation:fadeIn .3s ease;transition:opacity .3s ease,transform .3s ease;position:relative;overflow:hidden;min-width:min(300px,calc(100vw - 2rem));max-width:min(450px,calc(100vw - 2rem));pointer-events:auto}.notification.fading{opacity:0;transform:translateY(-20px)}.notification-info{border-color:var(--info)}.notification-success{border-color:var(--success)}.notification-error{border-color:var(--danger)}.notification-warning{border-color:var(--warning)}.notification-timer{border-color:var(--accent)}.notification-timer:active{pointer-events:none}.notification-timer:hover{background:var(--glass-bg-dim);-webkit-backdrop-filter:none;backdrop-filter:none}.notification-content{font-size:.9rem;text-align:center;color:var(--text-primary);padding:.1rem 0;line-height:1.4;overflow-wrap:anywhere}.notification-dismiss{position:absolute;top:2px;right:4px;background:none;border:none;font-size:1.1rem;line-height:1;padding:6px 8px;cursor:pointer;color:var(--text-muted);opacity:.6;transition:opacity .2s}.notification-dismiss:hover{opacity:1;color:var(--text-primary)}.notification-progress{position:absolute;bottom:0;left:0;height:2px;background:currentColor;opacity:.3;width:100%;animation-name:progressShrink;animation-timing-function:linear;animation-fill-mode:forwards}.notification-info .notification-progress{color:var(--info)}.notification-success .notification-progress{color:var(--success)}.notification-error .notification-progress{color:var(--danger)}.notification-warning .notification-progress{color:var(--warning)}.notification-timer .notification-progress{color:var(--accent)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes progressShrink{0%{width:100%}to{width:0%}}:root{color-scheme:light;--bg-1: #f3eee8;--bg-2: #f3efe4;--surface: #ffffff;--surface-alt: #f8f9fa;--glass-bg: rgba(250, 250, 250, .8);--glass-bg-dim: rgba(250, 250, 250, .2);--title: #3f4044;--heading: #2c3e50;--text-primary: #333333;--text-secondary: #555555;--text-muted: #999999;--border: #e0e0e0;--border-soft: #ecf0f1;--scrollbar-track: #e0e0e0;--accent: #667eea;--accent-hover: #5568d3;--accent-glow: rgba(102, 126, 234, .3);--accent-glow-strong: rgba(102, 126, 234, .4);--accent-2: #764ba2;--accent-2-hover: #633d8a;--success: #2ecc71;--success-2: #27ae60;--success-soft: #e8f8f5;--danger: #e74c3c;--danger-hover: #c0392b;--warning: #f39c12;--warning-border: #ffc107;--info: #3498db;--warning-soft: #fff3cd;--warning-text: #856404;--danger-soft: #fdecea;--danger-soft-border: #f5c6cb;--danger-soft-text: #721c24;--neutral: #95a5a6;--neutral-hover: #7f8c8d;--ink: #34495e;--ink-hover: #2c3e50}[data-theme=dark]{color-scheme:dark;--bg-1: #121418;--bg-2: #191c22;--surface: #1d2027;--surface-alt: #262a33;--glass-bg: rgba(29, 32, 39, .85);--glass-bg-dim: rgba(29, 32, 39, .35);--title: #f2f3f5;--heading: #eef0f4;--text-primary: #e6e8ec;--text-secondary: #b7bcc5;--text-muted: #8b919c;--border: #363c48;--border-soft: #2a2f3a;--scrollbar-track: #2a2f3a;--success-soft: rgba(46, 204, 113, .15);--warning-soft: rgba(243, 156, 18, .18);--warning-text: #ffc766;--danger-soft: rgba(231, 76, 60, .15);--danger-soft-border: rgba(231, 76, 60, .45);--danger-soft-text: #f1948a}body{color:var(--text-primary)}input,select,textarea{background-color:var(--surface);color:var(--text-primary)}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:2rem}.login-box{background:var(--surface);padding:2.5rem;border-radius:16px;box-shadow:0 10px 40px #0003;width:100%;max-width:400px}.login-box h1{text-align:center;margin-bottom:.5rem}.login-box h2{text-align:center;color:var(--text-primary);margin-bottom:1.5rem;font-size:1.5rem}.toggle-auth{text-align:center;margin-top:1.5rem;color:var(--text-secondary)}.login-lang-row{display:flex;justify-content:flex-end;gap:.5rem;margin-bottom:.75rem}.login-notice{background:var(--danger-soft);border:1px solid var(--danger-soft-border);color:var(--danger-soft-text);padding:.6rem .8rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem;text-align:center}.field-hint{font-size:.85rem;color:var(--text-primary);font-style:italic;margin-top:.25rem;display:block}.field-description{font-weight:400;color:var(--text-primary);font-size:.9em}.input-with-unit{display:flex;align-items:center;gap:.5rem}.input-with-unit input{flex:1}.input-unit{color:var(--accent);font-weight:700;font-size:1rem;min-width:24px}.gamemode-settings-readonly p{margin:.5rem 0}.gamemode-settings-edit{display:flex;flex-direction:column;gap:1rem}.room-list-container{max-width:1200px;margin:0 auto;background:var(--surface);padding:1rem;border-radius:12px;box-shadow:0 4px 12px #0000001a}.room-list-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem}.room-list-header h2{color:var(--text-primary)}.warning{background:var(--warning-soft);color:var(--warning-text);padding:1rem;border-radius:8px;margin-bottom:1rem;text-align:center}.rooms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.no-rooms{grid-column:1 / -1;text-align:center;padding:3rem;color:var(--text-primary);font-size:1.1rem}.room-card{background:var(--surface);border-radius:12px;padding:1.5rem;box-shadow:0 4px 12px #0000001a;transition:transform .3s ease,box-shadow .3s ease}.room-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000026}.room-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.room-card-header h3{color:var(--text-primary);font-size:1.3rem;flex:1;min-width:0;overflow-wrap:anywhere}.lock-icon{font-size:1.2rem}.room-card-body{margin-bottom:1rem;color:var(--text-primary)}.room-dictionary-badge{display:inline-block;margin-left:.5rem;padding:.1rem .5rem;border-radius:10px;background:var(--ink);color:#fff;font-size:.75rem;vertical-align:middle}.room-card button{width:100%}.room-header{background:var(--surface);padding:1rem 1.5rem;border-radius:12px;box-shadow:0 2px 8px #00000014;margin-bottom:1.5rem}.room-header-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem}.room-title-section{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;flex:1 1 auto;min-width:0}.room-title{margin:0;font-size:1.25rem;color:var(--text-primary);font-weight:600;min-width:0;overflow-wrap:anywhere}.gamemode-badge{padding:.25rem .75rem;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);color:#fff;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.room-actions{display:flex;gap:.5rem}.btn-compact{padding:.4rem .8rem;font-size:.85rem}.room-players{display:flex;flex-wrap:wrap;gap:.5rem}.player-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .75rem;background:var(--surface-alt);border:1.5px solid var(--border);border-radius:16px;font-size:.85rem;transition:all .2s ease}.player-badge:hover{border-color:var(--accent)}.player-name{color:var(--text-primary);font-weight:500}.player-progress{color:var(--accent);font-weight:600;font-size:.8rem}.player-status{color:var(--success);font-weight:700}.btn-kick-small{padding:.2rem .5rem;min-width:26px;min-height:26px;font-size:.8rem;background:var(--danger);color:#fff;border:none;border-radius:3px;cursor:pointer;line-height:1;transition:background .2s ease}.btn-kick-small:hover{background:var(--danger-hover)}.leaderboard-list{display:flex;flex-direction:column;gap:.5rem}.leaderboard-entry{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--surface-alt);border-radius:8px;font-size:.9rem;border:2px solid var(--border)}.leaderboard-entry .rank{font-weight:700;color:var(--accent-2)}.leaderboard-entry .name{color:var(--text-primary);flex:1}.leaderboard-entry .stats{color:var(--text-primary);font-size:.85rem}.no-stats{color:var(--text-muted);font-style:italic;margin:0}.victory-modal{text-align:center;max-width:500px}.victory-modal h2{color:var(--accent);margin-bottom:1.5rem;font-size:2rem}.victory-content{margin:2rem 0}.victory-content p{font-size:1.3rem;color:var(--text-primary)}.victory-leaderboard{margin-top:2rem;text-align:left}.victory-leaderboard h3{margin-bottom:1rem;color:var(--text-primary);font-size:1.2rem;text-align:center}.game-room-container{max-width:1400px;margin:0 auto}.game-room-content{display:flex;flex-direction:column}.game-area{background:var(--surface);border-radius:12px;box-shadow:0 4px 12px #0000001a;width:100%;overflow:hidden}.waiting-area{text-align:center;padding:3rem 2rem}.room-info{margin:1rem 0}.loading-gamemode{text-align:center;padding:4rem 2rem;color:var(--accent);font-size:1.2rem;font-weight:500}.lobby-leaderboard-section{background:var(--surface);padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #00000014;margin-bottom:1.5rem}.lobby-leaderboard-section h3{margin-bottom:1rem;color:var(--text-primary);font-size:1.1rem;font-weight:600}.lobby-leaderboard-section .leaderboard-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem}.admin-page{max-width:1100px;margin:0 auto;padding:1.5rem;color:var(--text-primary)}.admin-page h1{color:var(--heading);margin-bottom:1rem}.admin-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.admin-header h1{margin-bottom:0}.admin-actions{display:flex;gap:.5rem;align-items:center}.admin-error{background:var(--danger-soft);border:1px solid var(--danger-soft-border);color:var(--danger-soft-text);padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem}.admin-section{margin-bottom:2rem}.admin-section h2{color:var(--heading);margin-bottom:.75rem;font-size:1.2rem}.admin-empty{color:var(--text-muted);font-style:italic}.admin-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #00000014;font-size:.9rem}.admin-table th{background:var(--ink);color:#fff;text-align:left;padding:.6rem .8rem;font-weight:600}.admin-table td{padding:.55rem .8rem;border-bottom:1px solid var(--border-soft)}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover{background:var(--surface-alt)}.admin-row-banned{opacity:.7}.admin-cell-actions{white-space:nowrap}.admin-cell-actions button{margin-right:.4rem;padding:.25rem .6rem;font-size:.8rem}.admin-self{color:var(--text-muted)}.admin-badge{display:inline-block;margin-left:.4rem;padding:.1rem .5rem;border-radius:10px;font-size:.72rem;color:#fff;vertical-align:middle}.admin-badge-waiting{background:var(--neutral-hover)}.admin-badge-playing{background:var(--success-2)}.admin-badge-finished{background:var(--ink)}.admin-badge-banned{background:var(--danger-hover)}.admin-badge-verified{background:var(--success-2)}.admin-badge-unverified{background:var(--warning)}.admin-page a.btn-primary,.admin-page a.btn-secondary{display:inline-block;padding:.6rem 1.2rem;border-radius:8px;color:#fff;text-decoration:none;transition:all .3s ease}.admin-page a.btn-primary{background:var(--accent)}.admin-page a.btn-primary:hover{background:var(--accent-hover)}.admin-page a.btn-secondary{background:var(--accent-2)}.admin-page a.btn-secondary:hover{background:var(--accent-2-hover)}@media (max-width: 768px){.admin-cell-actions button{padding:.45rem .8rem;font-size:.85rem}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,var(--bg-1),var(--bg-2),var(--bg-1));min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:var(--glass-bg);padding:1rem 2rem;box-shadow:0 2px 10px #0000004d;display:flex;justify-content:space-between;align-items:center}.app-title{color:var(--title);font-size:1.8rem;font-family:Cinzel}.user-info{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:.5rem 1rem}.app-main{flex:1;padding:2rem;overflow:auto}button{padding:.6rem 1.2rem;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .3s ease;font-weight:500}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 4px 12px var(--accent-glow-strong)}.btn-secondary{background:var(--accent-2);color:#fff}.btn-secondary:hover:not(:disabled){background:var(--accent-2-hover);transform:translateY(-2px);box-shadow:0 4px 12px #764ba266}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-logout{background:var(--neutral);color:#fff}.btn-logout:hover{background:var(--neutral-hover)}.btn-dashboard{background:var(--ink);color:#fff;padding:.6rem 1.2rem;border-radius:8px;text-decoration:none;font-weight:500;transition:all .3s ease}.btn-dashboard:hover{background:var(--ink-hover)}.btn-link{background:none;color:var(--accent);text-decoration:underline;padding:.2rem .5rem}button:disabled{opacity:.5;cursor:not-allowed}.form-group{margin-bottom:1.2rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-secondary);font-weight:500}.form-group input{width:100%;padding:.75rem;border:2px solid var(--border);border-radius:8px;font-size:1rem;transition:border-color .3s}.form-group input:focus{outline:none;border-color:var(--accent)}.form-group select{width:100%;padding:.75rem;border:2px solid var(--border);border-radius:8px;font-size:1rem;background:var(--surface);cursor:pointer;transition:border-color .3s}.form-group select:focus{outline:none;border-color:var(--accent)}.checkbox-group label{display:flex;align-items:center;gap:.5rem}.checkbox-group input[type=checkbox]{width:auto}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:var(--surface);padding:2rem;border-radius:16px;box-shadow:0 10px 40px #0000004d;max-width:500px;width:90%}.modal-content h3{margin-bottom:1.5rem;color:var(--text-primary)}.modal-actions{display:flex;gap:1rem;margin-top:1.5rem}.modal-actions button{flex:1}@media (max-width: 768px){.app-main{padding:1rem}.rooms-grid{grid-template-columns:1fr}.app-header{flex-direction:column;gap:.75rem;text-align:center;padding:1rem}.app-title{font-size:1.3rem}.app-header .user-info>span{display:none}.modal-content{margin:0 1rem}}.lang-switcher{background:var(--ink);color:#fff;min-width:44px}.lang-switcher:hover{background:var(--ink-hover)}
