@charset "UTF-8";@import"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap";:root{--font-primary: "Open Sans", "Helvetica Neue", -apple-system, BlinkMacSystemFont, sans-serif;--color-bg-darkest: #110D0A;--color-bg-dark: #1C1410;--color-bg-medium: #2E1F18;--color-bg-board: #3A2820;--color-bg-surface: #261A14;--color-text-primary: #E6DFC6;--color-text-accent: #D2B48C;--color-text-muted: rgba(230, 223, 198, .6);--color-text-dim: rgba(230, 223, 198, .3);--color-text-dark: #1C1410;--color-gold: #D2B48C;--color-gold-light: #E8D4B8;--color-gold-dark: #A67F51;--color-gold-50: rgba(210, 180, 140, .45);--color-success: #6ABF69;--color-danger: #D94040;--color-warning: #E8A838;--color-info: #5B9BD5;--color-online: #2ECC71;--border-subtle: rgba(210, 180, 140, .08);--border-medium: rgba(210, 180, 140, .18);--border-gold: rgba(210, 180, 140, .45);--shadow-sm: 0 2px 6px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .6);--shadow-gold: 0 0 12px rgba(210, 180, 140, .25);--shadow-gold-strong: 0 0 20px rgba(210, 180, 140, .4);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--transition-fast: .15s ease;--transition-normal: .25s ease}body{font-family:var(--font-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-bg-darkest);color:var(--color-text-primary);min-height:100vh;line-height:1.55;font-size:15px;font-weight:400}code{font-family:Courier New,monospace}::selection{background:#d2b48c4d;color:#fff}button{font-family:var(--font-primary);cursor:pointer;border:none;background:none;color:inherit;font-size:inherit;line-height:1.4}.btn-gold,button.btn-primary{font-family:var(--font-primary);background:linear-gradient(180deg,var(--color-gold) 0%,var(--color-gold-dark) 100%);color:var(--color-text-dark);border:none;padding:12px 28px;border-radius:var(--radius-xl);font-size:14px;font-weight:700;cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm);letter-spacing:.3px}.btn-gold:hover,button.btn-primary:hover{background:linear-gradient(180deg,var(--color-gold-light) 0%,var(--color-gold) 100%);box-shadow:var(--shadow-gold-strong)}.btn-gold:active,button.btn-primary:active{background:linear-gradient(180deg,var(--color-gold-dark) 0%,#8A6840 100%);box-shadow:0 2px 4px #00000080;transform:translateY(1px)}.btn-gold:disabled,button.btn-primary:disabled{background:var(--color-gold-50);color:#1c141080;cursor:not-allowed;box-shadow:none;transform:none}.btn-outline{font-family:var(--font-primary);background-color:var(--color-bg-darkest);color:var(--color-text-primary);border:2px solid var(--color-gold);padding:10px 26px;border-radius:var(--radius-xl);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);letter-spacing:.3px}.btn-outline:hover{background-color:var(--color-bg-medium);box-shadow:var(--shadow-gold)}.btn-outline:active{background-color:var(--color-bg-medium);box-shadow:var(--shadow-gold-strong)}.btn-outline:disabled{border-color:var(--color-gold-50);color:var(--color-text-dim);cursor:not-allowed}.card{background:var(--color-bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-md);color:var(--color-text-primary)}.flex-between{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}input[type=range]{width:100%;cursor:pointer;accent-color:var(--color-gold)}input[type=text],input[type=email],input[type=password],input[type=number],textarea,select{font-family:var(--font-primary);width:100%;padding:11px 15px;background:var(--color-bg-darkest);border:1px solid var(--border-medium);border-radius:var(--radius-md);font-size:14px;color:var(--color-text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);caret-color:var(--color-gold)}input::placeholder,textarea::placeholder{color:var(--color-text-dim)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-gold);box-shadow:0 0 0 3px #d2b48c1f}select option{background:var(--color-bg-darkest);color:var(--color-text-primary)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d2b48c26;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#d2b48c4d}@media(max-width:768px){body{font-size:14px}.card{padding:15px}}.filters-row{display:flex;gap:10px;flex-wrap:nowrap}.filters-row input,.filters-row input[type=text],.filters-row select,.filters-row textarea{flex:1;width:0;min-width:0;max-width:none;margin:0}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#f5f5f5;color:#333;line-height:1.6;min-height:100vh}#root{min-height:100vh}h1{font-size:32px;margin-bottom:20px;font-weight:600}h2{font-size:24px;margin-bottom:15px;margin-top:30px;font-weight:600}h3{font-size:20px;margin-bottom:12px;font-weight:500}p{margin-bottom:15px}.page-container h1{color:#2c3e50}.page-container h2,.page-container h3{color:#34495e}.page-container p{color:#555}strong{font-weight:600;color:#2c3e50}.navigation{background:#2c3e50;padding:20px 0;box-shadow:0 2px 8px #00000026;position:sticky;top:0;z-index:1000;width:100%;margin:0}.navigation ul{list-style:none;display:flex;gap:40px;margin:0 auto;padding:0;max-width:1200px;justify-content:center}.navigation li{margin:0;padding:0}.navigation a{color:#fff;text-decoration:none;font-size:18px;font-weight:500;padding:10px 20px;border-radius:6px;transition:all .3s ease;display:block}.navigation a:hover{background:#ffffff1a;color:#3498db;transform:translateY(-2px)}.navigation a.active{background:#3498db;color:#fff}button{padding:10px 20px;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .3s ease;margin-right:10px;font-family:inherit}button[type=submit],.btn-primary{background:#3498db;color:#fff}button[type=submit]:hover,.btn-primary:hover{background:#2980b9;transform:translateY(-2px);box-shadow:0 4px 8px #3498db4d}.btn-secondary{background:#95a5a6;color:#fff}.btn-secondary:hover{background:#7f8c8d}.btn-danger{background:#e74c3c;color:#fff}.btn-danger:hover{background:#c0392b}.btn-success{background:#27ae60;color:#fff}.btn-success:hover{background:#229954}button:disabled{background:#bdc3c7;cursor:not-allowed;opacity:.6}.page-container form{background:#fff;padding:30px;border-radius:12px;box-shadow:0 4px 12px #00000014;margin-bottom:30px}.page-container input,.page-container textarea,.page-container select{padding:12px;border:1px solid #ddd;border-radius:6px;font-size:14px;margin-right:10px;margin-bottom:15px;width:100%;max-width:300px;font-family:inherit;transition:all .3s ease}.page-container input:focus,.page-container textarea:focus,.page-container select:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.page-container input::placeholder,.page-container textarea::placeholder{color:#999}.page-container label{display:block;margin-bottom:8px;font-weight:500;color:#34495e}.page-container{max-width:1200px;margin:0 auto;padding:40px 20px}.card{background:#fff;padding:25px;border-radius:12px;box-shadow:0 2px 8px #00000014;margin-bottom:20px;transition:all .3s ease}.card:hover{box-shadow:0 4px 16px #0000001f}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.flex{display:flex;gap:20px}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-center{display:flex;justify-content:center;align-items:center}ul{list-style:none}.list-item{background:#fff;padding:20px;margin-bottom:15px;border-radius:8px;box-shadow:0 2px 8px #00000014;transition:all .3s ease;border-left:4px solid transparent}.list-item:hover{transform:translate(5px);box-shadow:0 4px 16px #0000001f;border-left-color:#3498db}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:#7f8c8d}.text-small{font-size:14px}.mt-10{margin-top:10px}.mt-20{margin-top:20px}.mt-30{margin-top:30px}.mb-10{margin-bottom:10px}.mb-20{margin-bottom:20px}.mb-30{margin-bottom:30px}.p-10{padding:10px}.p-20{padding:20px}.p-30{padding:30px}.text-primary{color:#3498db}.text-success{color:#27ae60}.text-danger{color:#e74c3c}.text-warning{color:#f39c12}.bg-primary{background:#3498db;color:#fff}.bg-success{background:#27ae60;color:#fff}.bg-danger{background:#e74c3c;color:#fff}.bg-light{background:#ecf0f1}.hidden{display:none}.loading{text-align:center;padding:60px 20px;color:#7f8c8d}.empty-state{text-align:center;padding:60px 20px;color:#95a5a6;font-size:18px;background:#fff;border-radius:12px;border:2px dashed #bdc3c7}.empty-state-icon{font-size:48px;margin-bottom:20px}.error-message{background:#ffe6e6;border:1px solid #e74c3c;color:#c0392b;padding:15px;border-radius:6px;margin-bottom:20px}.success-message{background:#d5f4e6;border:1px solid #27ae60;color:#1e8449;padding:15px;border-radius:6px;margin-bottom:20px}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .5s ease}.spin{animation:spin 1s linear infinite}@media(max-width:768px){.navigation ul{flex-direction:column;gap:10px;align-items:center}input,textarea,select{max-width:100%}button{width:100%;margin-right:0;margin-bottom:10px}.page-container{padding:20px 15px}form{padding:20px}.grid-2,.grid-3{grid-template-columns:1fr}h1{font-size:24px}h2{font-size:20px}}@media print{.navigation,button,.no-print{display:none}body{background:#fff}.card{box-shadow:none;border:1px solid #ddd}}.login-modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px;animation:fadeIn .2s ease}.login-modal{background:linear-gradient(135deg,#1a1a2e,#16213e);border:1px solid rgba(255,255,255,.1);border-radius:16px;width:100%;max-width:400px;animation:slideUp .3s ease;overflow:hidden;position:relative;z-index:10001}.login-modal-header{position:relative;text-align:center;padding:25px 20px 15px;border-bottom:1px solid rgba(255,255,255,.1)}.login-logo{font-size:40px;margin-bottom:10px}.login-modal-header h2{color:#fff;font-size:20px;margin:0;font-weight:600}.login-modal-header .close-btn{position:absolute;top:15px;right:15px;background:none;border:none;color:#ffffff80;font-size:28px;cursor:pointer;line-height:1;padding:0;transition:color .2s}.login-modal-header .close-btn:hover{color:#fff}.login-tabs{display:flex;padding:15px 20px 0;gap:10px}.login-tab{flex:1;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#fff9;padding:10px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.login-tab:hover{background:#ffffff1a;color:#fff}.login-tab.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:transparent;color:#fff}.login-error{background:#e74c3c33;border:1px solid rgba(231,76,60,.3);color:#e74c3c;padding:10px 15px;margin:15px 20px 0;border-radius:8px;font-size:13px}.login-form{padding:20px;display:flex;flex-direction:column;gap:15px;background:transparent;border-radius:0;box-shadow:none;margin-bottom:0}.login-form .form-group{display:flex;flex-direction:column;gap:6px}.login-form .form-group label{color:var(--color-text-muted, rgba(230,223,198,.6));font-size:12px;font-weight:600}.login-form .form-group input[type=text],.login-form .form-group input[type=email],.login-form .form-group input[type=password]{background:var(--color-bg-darkest, #110D0A);border:1px solid var(--border-medium, rgba(210,180,140,.18));color:var(--color-text-primary, #E6DFC6);padding:12px 14px;border-radius:var(--radius-md, 10px);font-size:14px;transition:all .2s;max-width:100%;width:100%;margin:0;box-sizing:border-box;box-shadow:none;font-family:var(--font-primary);caret-color:var(--color-gold, #D2B48C)}.login-form .form-group input::placeholder{color:var(--color-text-dim, rgba(230,223,198,.3))}.login-form .form-group input:focus{outline:none;border-color:var(--color-gold, #D2B48C);box-shadow:0 0 0 3px #d2b48c1f}.login-submit{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:14px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;margin-top:5px;display:flex;align-items:center;justify-content:center;min-height:48px}.login-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #667eea66}.login-submit:disabled{opacity:.7;cursor:not-allowed}.loading-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.login-switch{text-align:center;padding:15px 20px 20px;border-top:1px solid rgba(255,255,255,.1)}.login-switch p{color:#fff9;margin:0;font-size:13px}.login-switch button{background:none;border:none;color:#667eea;font-weight:600;cursor:pointer;padding:0;font-size:13px}.login-switch button:hover{text-decoration:underline}@media(max-width:480px){.login-modal{max-width:100%;margin:10px}.login-form{padding:15px}}.notification-bell-container{position:relative;display:flex;align-items:center}.notification-bell-btn{background:none;border:none;font-size:20px;cursor:pointer;position:relative;padding:6px 8px;border-radius:var(--radius-sm);transition:background .15s;line-height:1}.notification-bell-btn:hover{background:#e4d5b11a}.notification-badge{position:absolute;top:2px;right:2px;background:#d94040;color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1;font-family:var(--font-primary);box-shadow:0 1px 3px #0006;animation:notifPulse 2s ease infinite}@keyframes notifPulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.notification-dropdown{position:absolute;top:100%;right:0;margin-top:8px;width:340px;max-height:420px;background:var(--color-bg-darkest, #110D0A);border:1px solid var(--border-medium, rgba(210,180,140,.18));border-radius:var(--radius-lg, 14px);box-shadow:0 8px 32px #0009,0 0 12px #d2b48c1a;overflow:hidden;z-index:2000;animation:notifDropIn .2s ease;display:flex;flex-direction:column}@keyframes notifDropIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.notification-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 10px;border-bottom:1px solid var(--border-subtle, rgba(210,180,140,.08));font-size:14px;font-weight:700;color:var(--color-text-accent, #D2B48C)}.notif-clear-btn{font-family:var(--font-primary);background:none;border:none;color:var(--color-text-dim, rgba(230,223,198,.3));font-size:12px;cursor:pointer}.notif-clear-btn:hover{color:var(--color-text-muted)}.notification-list{overflow-y:auto;max-height:360px;flex:1}.notification-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:var(--color-text-dim);gap:8px}.notification-empty span{font-size:32px;opacity:.4}.notification-empty p{font-size:13px;margin:0}.notification-item{display:flex;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border-subtle, rgba(210,180,140,.06));transition:background .15s}.notification-item:last-child{border-bottom:none}.notification-item:hover{background:#e4d5b10a}.notification-item.unread{background:#d2b48c0f}.notif-icon{font-size:20px;flex-shrink:0;width:28px;text-align:center;padding-top:2px}.notif-content{flex:1;min-width:0}.notif-title{color:var(--color-text-primary, #E6DFC6);font-size:13px;font-weight:600;line-height:1.3;margin-bottom:2px}.notif-body{color:var(--color-text-muted, rgba(230,223,198,.6));font-size:12px;line-height:1.4;margin-bottom:4px}.notif-time{color:var(--color-text-dim, rgba(230,223,198,.3));font-size:11px}.notif-actions{display:flex;gap:6px;margin-top:8px}.notif-accept-btn,.notif-reject-btn{font-family:var(--font-primary);padding:5px 12px;border-radius:var(--radius-sm, 6px);font-size:12px;font-weight:600;cursor:pointer;border:none;transition:all .15s}.notif-accept-btn{background:#6abf6926;color:#6abf69}.notif-accept-btn:hover{background:#6abf6940}.notif-reject-btn{background:#d940401f;color:#ef9a9a}.notif-reject-btn:hover{background:#d9404033}.notif-status-label{font-size:11px;font-weight:600;margin-top:6px}.notif-status-label.accepted{color:#6abf69}.notif-status-label.rejected{color:#ef9a9a}@media(max-width:768px){.notification-dropdown{width:calc(100vw - 20px);right:-60px}}.main-navigation{background:var(--color-bg-darkest);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:1000}.nav-container{max-width:100%;padding:0;display:grid;grid-template-columns:auto 1fr auto;align-items:center;height:48px}.nav-logo{background:var(--color-bg-medium);height:48px;display:flex;align-items:center;padding:0 24px}.nav-logo a{font-family:var(--font-primary);color:var(--color-text-accent);text-decoration:none;font-weight:700;font-size:18px;letter-spacing:.5px}.nav-menu{display:flex;gap:2px;padding-left:8px}.nav-item{font-family:var(--font-primary);color:var(--color-text-primary);text-decoration:none;padding:12px 20px;font-weight:500;font-size:14px;transition:all var(--transition-fast);border-radius:var(--radius-sm);display:inline-flex;align-items:center;gap:6px}.nav-item:hover{background:#e4d5b11a}.nav-item.active{background:#e4d5b133;color:var(--color-text-accent);font-weight:600}.nav-item.school-link:hover{background:#e4d5b11a}.nav-item.school-link.active{background:#e4d5b133;color:var(--color-text-accent)}.nav-profile{padding:0 15px;position:relative}.login-button{font-family:var(--font-primary);background-color:var(--color-gold);border:none;color:var(--color-text-dark);padding:8px 18px;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.login-button:hover{background-color:var(--color-gold-light);transform:translateY(-1px)}.login-button:active{background-color:var(--color-gold-dark);transform:translateY(0)}.user-menu-container{position:relative;display:flex;align-items:center;gap:4px}.profile-button{font-family:var(--font-primary);background:#e4d5b114;border:1px solid var(--border-medium);color:var(--color-text-primary);padding:6px 12px;border-radius:var(--radius-sm);font-size:13px;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all var(--transition-fast)}.profile-button:hover{background:#e4d5b124}.profile-button.logged-in{border-color:var(--border-gold)}.user-avatar{width:26px;height:26px;background:var(--color-gold-dark);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--color-text-dark);overflow:hidden}.user-avatar img{width:100%;height:100%;object-fit:cover}.profile-text{font-weight:500;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-primary)}.user-dropdown{position:absolute;top:100%;right:0;margin-top:8px;background:var(--color-bg-darkest);border:1px solid var(--border-medium);border-radius:var(--radius-md);min-width:170px;box-shadow:var(--shadow-lg);overflow:hidden;z-index:1001;animation:dropdownFadeIn .2s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{display:flex;align-items:center;gap:10px;padding:12px 16px;color:var(--color-text-primary);text-decoration:none;font-size:14px;transition:background var(--transition-fast);border:none;background:none;width:100%;cursor:pointer;text-align:left;font-family:var(--font-primary)}.dropdown-item:hover{background:#e4d5b11a}.dropdown-item.logout{border-top:1px solid var(--border-subtle);color:var(--color-danger)}.dropdown-item.logout:hover{background:#e539351a}@media(max-width:1024px){.nav-item{padding:10px 14px;font-size:13px}.nav-logo{padding:0 18px}}@media(max-width:768px){.nav-container{grid-template-columns:1fr;height:auto;gap:6px;padding:8px}.nav-logo{justify-content:center;padding:8px;height:auto}.nav-menu{flex-wrap:wrap;justify-content:center;padding:0}.nav-item{padding:6px 12px;font-size:12px}.nav-profile{text-align:center;padding:0;display:flex;justify-content:center}.profile-text{display:none}.user-dropdown{right:auto;left:50%;transform:translate(-50%)}}.modal-overlay{position:fixed;inset:0;width:100vw;height:100vh;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s}.modal-box{background:#fff;padding:40px;border-radius:16px;box-shadow:0 8px 32px #0000004d;max-width:450px;width:90%;position:relative;animation:slideIn .3s;z-index:10000}.modal-box h2{margin:0;padding:0;font-size:24px;color:#333}.color-selection{display:flex;gap:15px;justify-content:center;margin:30px 0}.color-btn{width:80px;height:80px;border:3px solid #ddd;border-radius:12px;background:#fff;font-size:45px;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;padding:0;box-shadow:none}.color-btn:hover{border-color:#999;transform:scale(1.05);box-shadow:0 4px 12px #00000026}.color-btn.active{border-color:#d4956a;background:#fff5e6;border-width:4px;box-shadow:0 4px 16px #d4956a66;transform:scale(1.05)}.bot-selection{display:flex;gap:15px;justify-content:center;margin:20px 0}.bot-btn{width:110px;height:80px;border:3px solid #ddd;border-radius:12px;background:#fff!important;cursor:pointer;transition:all .3s;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:15px;box-shadow:none!important;color:#333!important}.bot-btn:hover{border-color:#999;transform:scale(1.05);box-shadow:0 4px 12px #00000026!important;background:#fff!important}.bot-btn.active{border-color:#d4956a!important;background:#fff!important;border-width:4px;box-shadow:0 4px 16px #d4956a66!important;transform:scale(1.05)}.bot-label{font-size:16px;font-weight:700;color:#333;margin-bottom:6px}.bot-elo{font-size:13px;color:#666;font-weight:500}.play-btn{width:100%;padding:16px;font-size:20px;font-weight:700;background:#d4956a;color:#fff;border:none;border-radius:10px;cursor:pointer;margin-top:30px;transition:all .3s;box-shadow:0 4px 12px #d4956a4d}.play-btn:hover{background:#e0a578;transform:translateY(-2px);box-shadow:0 6px 16px #d4956a66}.play-btn:active{transform:translateY(0)}.modal-box button[style*="position: absolute"]{background:transparent!important;box-shadow:none!important;padding:0!important;width:auto!important}.modal-box button[style*="position: absolute"]:hover{color:#333!important;transform:none!important}@media(max-width:600px){.modal-box{padding:30px 20px;width:95%}.color-btn{width:70px;height:70px;font-size:40px}.modal-box h2{font-size:20px}.bot-btn{width:95px;height:75px;padding:12px}.bot-label{font-size:14px}.bot-elo{font-size:12px}}.game-end-overlay{position:fixed;inset:0;width:100vw;height:100vh;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s}.game-end-box{background:#fff;padding:40px;border-radius:16px;box-shadow:0 8px 32px #0000004d;max-width:450px;width:90%;text-align:center;animation:slideIn .3s}@keyframes slideIn{0%{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}.game-end-title{margin:0 0 8px;font-size:48px;font-weight:700;color:#333}.game-end-subtitle{font-size:14px;color:#888;margin:0 0 20px}.move-stats{display:flex;justify-content:center;gap:20px;margin:20px 0}.stat-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:80px;animation:statAppear .6s ease-out;animation-fill-mode:both}@keyframes statAppear{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}.stat-number{font-size:32px;font-weight:700;width:60px;height:60px;border-radius:8px;display:flex;align-items:center;justify-content:center;animation:popIn .3s ease-out}@keyframes popIn{0%{transform:scale(.8);opacity:.5}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.stat-label{font-size:12px;color:#666;font-weight:500}.stat-brilliant .stat-number{background:#1abc9c;color:#fff}.stat-great .stat-number{background:#5dade2;color:#fff}.stat-best .stat-number{background:#58d68d;color:#fff}.stat-excellent .stat-number{background:#7dcea0;color:#fff}.stat-good .stat-number{background:#82e0aa;color:#fff}.stat-inaccuracy .stat-number{background:#f39c12;color:#fff}.stat-mistake .stat-number{background:#e67e22;color:#fff}.stat-blunder .stat-number{background:#e74c3c;color:#fff}.stat-item:nth-child(1){animation-delay:0s}.stat-item:nth-child(2){animation-delay:.3s}.stat-item:nth-child(3){animation-delay:.6s}.guest-notice{background:linear-gradient(135deg,#f5f7fa,#e4e8ec);border:1px solid #ddd;border-radius:12px;padding:25px 20px;margin:20px 0}.guest-icon{font-size:40px;margin-bottom:10px}.guest-text{color:#555;font-size:14px;line-height:1.5;margin:0 0 15px}.login-btn{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea4d}.login-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.game-end-btn{padding:16px 24px;font-size:18px;font-weight:600;border:none;border-radius:10px;cursor:pointer;transition:all .3s}.analysis-btn{width:100%;background:#4caf50;color:#fff;margin-bottom:15px;box-shadow:0 4px 12px #4caf504d}.analysis-btn:hover{background:#45a049;transform:translateY(-2px);box-shadow:0 6px 16px #4caf5066}.game-end-actions{display:flex;gap:10px;justify-content:space-between}.small-btn{flex:1;background:#999;color:#fff;box-shadow:0 2px 8px #9999994d}.small-btn:hover{background:#777;transform:translateY(-2px);box-shadow:0 4px 12px #9996}.small-btn:active,.analysis-btn:active,.login-btn:active{transform:translateY(0)}@media(max-width:600px){.game-end-box{padding:30px 20px;width:95%}.game-end-title{font-size:36px}.game-end-btn{font-size:16px;padding:14px 20px}.move-stats{gap:15px}.stat-item{min-width:70px}.stat-number{width:50px;height:50px;font-size:24px}.guest-notice{padding:20px 15px}.guest-icon{font-size:32px}.guest-text{font-size:13px}}.move-stats.analyzing{display:flex;flex-direction:column;align-items:center;gap:16px;padding:30px 0}.spinner{border:4px solid #f3f3f3;border-top:4px solid #4CAF50;border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.analyzing-text{font-size:16px;color:#666;font-weight:500}.play-layout{display:flex;gap:20px;align-items:flex-start;justify-content:center;max-width:1200px;margin:0 auto;padding:16px 20px;min-height:calc(100vh - 56px)}.play-board{flex:0 0 auto;background:var(--color-bg-dark);padding:8px;border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.play-sidebar{width:320px;flex-shrink:0;background:var(--color-bg-darkest);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.play-menu-panel{padding:20px;display:flex;flex-direction:column;gap:12px}.play-main-btn{font-family:var(--font-primary);width:100%;padding:18px 24px;font-size:17px;font-weight:700;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.play-main-btn.online{background:linear-gradient(180deg,var(--color-gold) 0%,var(--color-gold-dark) 100%);color:var(--color-text-dark);border:none;box-shadow:var(--shadow-sm)}.play-main-btn.online:hover{background:linear-gradient(180deg,var(--color-gold-light) 0%,var(--color-gold) 100%);box-shadow:var(--shadow-gold)}.play-main-btn.online:active{background:linear-gradient(180deg,var(--color-gold-dark) 0%,#8A6840 100%);transform:translateY(1px)}.play-main-btn.bot{background:linear-gradient(180deg,var(--color-gold) 0%,var(--color-gold-dark) 100%);color:var(--color-text-dark);border:none;box-shadow:var(--shadow-sm)}.play-main-btn.bot:hover{background:linear-gradient(180deg,var(--color-gold-light) 0%,var(--color-gold) 100%);box-shadow:var(--shadow-gold)}.play-main-btn.bot:active{background:linear-gradient(180deg,var(--color-gold-dark) 0%,#8A6840 100%);transform:translateY(1px)}.panel-header{display:flex;align-items:center;gap:15px;padding:14px 20px;background:var(--color-bg-dark);border-bottom:1px solid var(--border-subtle)}.panel-header span{font-family:var(--font-primary);color:var(--color-text-accent);font-weight:600;font-size:16px}.back-btn{font-family:var(--font-primary);background:none;border:none;color:var(--color-text-muted);font-size:14px;cursor:pointer;padding:5px 10px;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.back-btn:hover{background:#e4d5b11a;color:var(--color-text-primary)}.play-online-panel{display:flex;flex-direction:column}.time-dropdown-container{padding:20px}.time-dropdown{font-family:var(--font-primary);width:100%;padding:14px 20px;font-size:15px;font-weight:600;background:var(--color-bg-dark);color:var(--color-text-primary);border:2px solid var(--border-medium);border-radius:var(--radius-md);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23D2B48C' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center}.time-dropdown:hover{border-color:var(--color-gold)}.time-dropdown:focus{outline:none;border-color:var(--color-gold)}.time-dropdown optgroup{font-weight:700;color:var(--color-text-muted)}.time-dropdown option{padding:10px;background:var(--color-bg-darkest);color:var(--color-text-primary)}.start-game-btn{font-family:var(--font-primary);margin:0 20px 20px;padding:16px 24px;font-size:17px;font-weight:700;background:var(--color-gold);color:var(--color-text-dark);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.start-game-btn:hover{background:var(--color-gold-light)}.start-game-btn:active{background:var(--color-gold-dark);transform:translateY(1px)}.play-searching-panel{padding:40px 20px;text-align:center}.searching-spinner{width:50px;height:50px;border:4px solid var(--border-subtle);border-top-color:var(--color-gold);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px}.searching-text{color:var(--color-text-accent);font-size:17px;font-weight:600;margin-bottom:15px}.searching-info{display:flex;justify-content:center;gap:15px;color:var(--color-text-muted);font-size:13px;margin-bottom:20px}.cancel-btn{font-family:var(--font-primary);padding:12px 30px;background:var(--color-bg-dark);color:var(--color-text-primary);border:1px solid var(--border-medium);border-radius:var(--radius-md);cursor:pointer;font-size:14px;transition:all var(--transition-fast)}.cancel-btn:hover{background:var(--color-bg-medium)}.play-bot-panel{display:flex;flex-direction:column}.bot-list{padding:10px 15px;display:flex;flex-direction:column;gap:10px}.bot-tier-label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--color-text-muted);padding:0 4px 6px;font-weight:600}.bot-tier-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.bot-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;background:var(--color-bg-dark);border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.bot-card:hover{background:var(--color-bg-medium)}.bot-card.selected{border-color:var(--color-gold);background:var(--color-bg-medium)}.bot-card .bot-name{color:var(--color-text-primary);font-size:14px;font-weight:600}.bot-card.selected .bot-name{color:#fff}.bot-card .bot-elo{color:var(--color-text-muted);font-size:12px;font-weight:600}.bot-card.selected .bot-elo{color:var(--color-gold)}.color-select{padding:15px 20px;border-top:1px solid var(--border-subtle)}.color-select>span{color:var(--color-text-muted);font-size:13px;display:block;margin-bottom:10px}.color-options{display:flex;gap:10px;justify-content:center}.color-btn{width:50px;height:50px;border:2px solid var(--border-medium);border-radius:var(--radius-md);font-size:24px;cursor:pointer;transition:all var(--transition-fast)}.color-btn.white{background:#f0d9b5;color:#333}.color-btn.black{background:#333;color:#f0d9b5}.color-btn.random{background:linear-gradient(135deg,#f0d9b5 50%,#333 50%);color:var(--color-gold);font-weight:700}.color-btn:hover{border-color:var(--color-gold)}.color-btn.selected{border-color:var(--color-gold);box-shadow:0 0 0 2px #d2b48c4d}.play-board-area{display:flex;flex-direction:column;flex:0 0 auto}.bot-material-row{height:34px;display:flex;align-items:center;gap:2px;padding:2px 10px}.bot-captured-pieces{display:flex;gap:1px;flex-wrap:wrap}.bot-captured-piece{font-size:22px;line-height:1;opacity:.85}.bot-material-diff{font-size:15px;font-weight:700;color:var(--color-gold, #d4a843);margin-left:6px}.bot-game-sidebar{display:flex;flex-direction:column;overflow:hidden}.bot-game-header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border-subtle)}.bot-game-avatar{width:38px;height:38px;background:var(--color-bg-medium);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;color:var(--color-gold);border:2px solid var(--color-gold);flex-shrink:0}.bot-game-info{display:flex;flex-direction:column;flex:1;min-width:0}.bot-game-name{color:#fff;font-weight:700;font-size:15px}.bot-game-elo{color:var(--color-text-muted);font-size:12px}.bot-thinking-dot{display:flex;gap:3px;align-items:center;margin-left:auto}.bot-thinking-dot span{width:6px;height:6px;border-radius:50%;background:var(--color-gold);animation:botDotPulse 1.2s infinite}.bot-thinking-dot span:nth-child(2){animation-delay:.2s}.bot-thinking-dot span:nth-child(3){animation-delay:.4s}@keyframes botDotPulse{0%,80%,to{opacity:.25;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.bot-game-chat{padding:12px 14px;min-height:90px;max-height:180px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;border-bottom:1px solid var(--border-subtle)}.bot-chat-empty{color:var(--color-text-muted);font-size:14px;text-align:center;padding:15px 0}.bot-chat-bubble{background:#ffffff12;color:#ffffff8c;padding:10px 14px;border-radius:12px 12px 12px 2px;font-size:14px;max-width:90%;align-self:flex-start;transition:all .3s;line-height:1.4}.bot-chat-bubble.latest{background:#d2b48c26;color:wheat}.bot-game-moves{flex:1;padding:8px 14px;overflow-y:auto;min-height:60px;border-bottom:1px solid var(--border-subtle)}.bot-moves-empty{color:var(--color-text-muted);text-align:center;padding:15px 0;font-size:14px}.bot-moves-list{display:flex;flex-direction:column;gap:2px}.bot-move-pair{display:flex;align-items:center;gap:4px;padding:3px 6px;border-radius:4px;font-family:Courier New,monospace;font-size:13px}.bot-move-pair:nth-child(odd){background:#ffffff08}.bot-move-num{color:var(--color-text-muted);min-width:28px;font-size:11px}.bot-move{min-width:50px;color:#fffc}.bot-move.white-move{color:wheat}.bot-move.black-move{color:#fff9}.bot-game-actions{display:flex;gap:6px;padding:12px 14px}.bot-act-btn{flex:1;padding:10px 8px;border:1px solid rgba(255,255,255,.15);border-radius:8px;background:#ffffff14;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .18s;white-space:nowrap}.bot-act-btn:hover:not(:disabled){background:#ffffff26;border-color:#ffffff4d}.bot-act-btn:disabled{opacity:.35;cursor:not-allowed}.bot-act-btn.hint{flex:0 0 auto;padding:10px 14px;background:#ffc1071f;border-color:#ffc10740}.bot-act-btn.hint:hover:not(:disabled){background:#ffc10738}.bot-act-btn.resign{flex:0 0 auto;padding:10px 14px;background:#ef44441f;border-color:#ef444440}.bot-act-btn.resign:hover:not(:disabled){background:#ef444438}@media(max-width:900px){.play-layout{flex-direction:column;align-items:center;padding:10px;min-height:auto}.play-board{padding:4px}.play-sidebar{width:100%;max-width:500px}.bot-game-sidebar{max-height:none}.bot-game-moves{max-height:150px}}.game-layout{display:grid;grid-template-columns:130px 1fr 250px;grid-template-rows:1fr;min-height:calc(100vh - 48px)}.left-sidebar{background:var(--color-bg-dark);border-right:1px solid var(--border-subtle);padding:0}.sidebar-empty{height:100%}.game-main{background:var(--color-bg-board);padding:30px 20px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.right-sidebar{background:var(--color-bg-dark);border-left:1px solid var(--border-subtle);padding:100px 20px 20px;display:flex;flex-direction:column}.bottom-buttons{display:none;background:var(--color-bg-dark)}.game-mode-buttons{display:flex;flex-direction:column;gap:12px;width:100%}.mode-button{font-family:var(--font-primary);background:var(--color-gold);color:var(--color-text-dark);border:none;padding:14px 24px;border-radius:var(--radius-md);font-size:15px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm);width:100%}.mode-button:hover{background:var(--color-gold-light);transform:translateY(-2px);box-shadow:var(--shadow-md)}.mode-button:active{background:var(--color-gold-dark);transform:translateY(0)}@media(max-width:1200px){.game-layout{grid-template-columns:100px 1fr 200px}.right-sidebar{padding:60px 15px 15px}}@media(max-width:900px){.game-layout{grid-template-columns:80px 1fr;grid-template-rows:1fr auto}.right-sidebar{display:none}.bottom-buttons{display:flex;gap:10px;padding:15px;grid-column:1 / -1}.bottom-buttons .mode-button{flex:1;padding:12px 20px;font-size:14px}}@media(max-width:600px){.game-layout{grid-template-columns:1fr}.left-sidebar{display:none}.game-main{padding:20px 10px}.bottom-buttons{flex-direction:column;gap:10px}.bottom-buttons .mode-button{width:100%}}.puzzle-player{min-height:calc(100vh - 60px);padding:20px;display:flex;flex-direction:column}.puzzle-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:10px;max-width:600px;margin-left:auto;margin-right:auto;width:100%}.back-btn{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2);padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s}.back-btn:hover{background:#fff3}.puzzle-title{flex:1;text-align:center}.puzzle-title h2{margin:0;color:#fff;font-size:20px}.puzzle-name{font-size:12px;color:#fff9}.puzzle-stats{display:flex;gap:10px}.puzzle-stats .stat{padding:6px 12px;border-radius:20px;font-size:14px;font-weight:600}.stat.solved{background:#2ecc7133;color:#2ecc71}.stat.failed{background:#e74c3c33;color:#e74c3c}.stat.streak{background:#f39c1233;color:#f39c12}.puzzle-content{display:flex;flex-direction:row;align-items:flex-start;gap:20px;flex:1;min-height:calc(100vh - 136px)}.puzzle-board-wrapper{flex:1;display:flex;justify-content:center;position:relative}.puzzle-board-container{position:relative}.turn-indicator{text-align:center;margin-bottom:10px;padding:8px 20px;background:#0000004d;border-radius:20px;color:#fff;font-size:16px;font-weight:600;display:inline-block;width:100%}.puzzle-board{background:#0000004d;padding:8px;border-radius:12px;position:relative}.delete-puzzle-btn{background:#e74c3c33;color:#e74c3c;border:1px solid rgba(231,76,60,.3);width:40px;height:40px;border-radius:8px;cursor:pointer;font-size:18px;transition:all .2s;display:flex;align-items:center;justify-content:center}.delete-puzzle-btn:hover{background:#e74c3c66;transform:scale(1.1)}.correct-flash{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;background:#2ecc71e6;border-radius:50%;display:flex;align-items:center;justify-content:center;animation:flashPop .6s ease forwards;z-index:20}.correct-flash span{font-size:40px;color:#fff}@keyframes flashPop{0%{transform:translate(-50%,-50%) scale(.5);opacity:0}50%{transform:translate(-50%,-50%) scale(1.2);opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:0}}.puzzle-result{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:20px 40px;border-radius:12px;text-align:center;animation:resultPop .3s ease;z-index:10}@keyframes resultPop{0%{transform:translate(-50%,-50%) scale(.8);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.puzzle-result.success{background:#2ecc71f2;color:#fff}.puzzle-result.fail{background:#e74c3cf2;color:#fff}.puzzle-result.shown{background:#3498dbf2;color:#fff}.result-icon{font-size:48px;margin-bottom:10px}.result-text{font-size:20px;font-weight:600}.puzzle-side-panel{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:16px;max-height:calc(100vh - 136px);overflow-y:auto}.puzzle-side-panel .turn-indicator{margin:0;padding:10px 14px}.puzzle-meta{display:flex;flex-direction:column;gap:4px;padding:10px 14px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:8px;font-size:12px;color:#ffffff80}.puzzle-controls{display:flex;flex-direction:column;align-items:stretch;gap:10px;width:100%}.control-buttons{display:flex;flex-direction:column;gap:8px;width:100%}.hint-btn{background:#f39c1233;color:#f39c12;border:1px solid rgba(243,156,18,.3);padding:12px 24px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s;flex:1}.hint-btn:hover:not(:disabled){background:#f39c124d}.hint-btn.active,.hint-btn:disabled{background:#f39c1266;cursor:default}.solution-btn{background:#3498db33;color:#3498db;border:1px solid rgba(52,152,219,.3);padding:12px 24px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s;flex:1}.solution-btn:hover{background:#3498db4d}.skip-btn{background:#ffffff1a;color:#fffc;border:1px solid rgba(255,255,255,.2);padding:12px 24px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s;flex:1}.skip-btn:hover{background:#fff3;color:#fff}.showing-solution{display:flex;align-items:center;gap:10px;color:#ffffffb3;font-size:14px}.spinner.small{width:20px;height:20px;border-width:2px}.result-actions{display:flex;gap:15px;flex-wrap:wrap;justify-content:center}.retry-btn{background:#e74c3c33;color:#e74c3c;border:1px solid rgba(231,76,60,.3);padding:12px 24px;border-radius:8px;cursor:pointer;font-size:15px;font-weight:600;transition:all .2s}.retry-btn:hover{background:#e74c3c4d}.next-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 30px;border-radius:8px;cursor:pointer;font-size:15px;font-weight:600;transition:all .2s}.next-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #667eea66}.solution-preview{background:#0000004d;border-radius:8px;padding:15px 20px;width:100%;max-width:450px}.solution-label{font-size:12px;color:#ffffff80;text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:10px}.solution-moves{display:flex;flex-wrap:wrap;gap:8px}.solution-step{background:#ffffff1a;padding:6px 12px;border-radius:6px;font-family:monospace;font-size:14px;color:#ffffffb3}.solution-step.done{background:#2ecc7133;color:#2ecc71}.solution-step.current{background:#667eea4d;color:#667eea;border:1px solid rgba(102,126,234,.5)}.solution-step .counter{color:#ffffff80}.puzzle-loading,.puzzle-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center;color:#fff}.spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.1);border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}.puzzle-error h2{margin-bottom:10px}.puzzle-error p{color:#fff9;margin-bottom:20px}@media(max-width:800px){.puzzle-content{flex-direction:column;align-items:center}.puzzle-side-panel{width:100%;max-width:560px}.puzzle-header{flex-direction:column;gap:10px}.back-btn{align-self:flex-start}.puzzle-stats{width:100%;justify-content:center}.control-buttons{flex-direction:row}.result-actions{flex-direction:column;width:100%}.retry-btn,.next-btn{width:100%}}.puzzles-page{min-height:calc(100vh - 60px);padding:30px 20px;overflow-y:auto}.puzzles-container{max-width:960px;margin:0 auto}.puzzle-section{margin-bottom:40px}.section-title{color:#ffffffe6;font-size:18px;font-weight:600;margin:0 0 15px;padding-left:5px}.tags-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.tag-card{background:#d4d4d4;border:1px solid #bbb;border-radius:8px;padding:20px 12px;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80px;text-align:center;overflow:hidden;word-break:break-word}.tag-card:hover{background:#e8e8e8;transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.tag-card:active{transform:translateY(0)}.tag-icon{font-size:28px;margin-bottom:8px;flex-shrink:0}.tag-name{font-size:14px;font-weight:600;color:#333;line-height:1.3;word-break:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;max-width:100%}@media(max-width:900px){.tags-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.puzzles-page{padding:20px 15px}.tags-grid{grid-template-columns:repeat(2,1fr);gap:10px}.tag-card{padding:15px 10px;min-height:70px}.tag-name{font-size:13px}.section-title{font-size:16px}}@media(max-width:400px){.tags-grid{grid-template-columns:repeat(2,1fr)}}.analysis-layout{min-height:calc(100vh - 45px);background:var(--color-bg, #3e2723)}.analysis-center{background:var(--color-bg, #3e2723);display:flex;align-items:flex-start;justify-content:center;padding:16px;overflow:hidden}.center-content{display:flex;gap:16px;align-items:flex-start;max-width:1200px;width:100%}.board-area{display:flex;flex-direction:column;flex-shrink:0}.board-and-eval{display:flex;align-items:stretch;gap:6px}.board-container{background:#0003;padding:8px;border-radius:10px}.analysis-player-row{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 40px;height:28px}.analysis-player-name{color:wheat;font-weight:700;font-size:15px}.analysis-player-rating{color:#ffffff73;font-size:13px}.analysis-captured{display:flex;align-items:center;gap:0px;margin-left:6px}.analysis-adv{font-size:13px;font-weight:700;color:var(--color-gold, #d4a843);margin-left:4px}.captured-fig{font-size:16px;line-height:1;margin-left:-2px}.captured-fig.white{color:#fff;text-shadow:0 0 3px rgba(0,0,0,.7),0 1px 2px rgba(0,0,0,.5)}.captured-fig.black{color:#1a1a1a;text-shadow:-1px -1px 0 rgba(255,255,255,.6),1px -1px 0 rgba(255,255,255,.6),-1px 1px 0 rgba(255,255,255,.6),1px 1px 0 rgba(255,255,255,.6),0 0 3px rgba(255,255,255,.4)}.eval-bar{width:28px;flex-shrink:0;background:#333;border-radius:6px;overflow:hidden;position:relative;display:flex;flex-direction:column-reverse}.eval-bar-fill{background:#e8e0d0;width:100%;transition:height .4s ease}.eval-bar.eval-bar-black{flex-direction:column}.eval-bar-mid{position:absolute;top:50%;left:0;right:0;height:1px;background:#80808080;pointer-events:none}.eval-bar-value{position:absolute;bottom:4px;left:50%;transform:translate(-50%);font-size:9px;font-weight:700;color:#333;background:#ffffffd9;padding:1px 4px;border-radius:3px;line-height:1.2;white-space:nowrap}.eval-bar.eval-bar-black .eval-bar-value{color:#e8e0d0;background:#000000b3}.moves-panel{width:340px;background:var(--color-bg-darkest, #1a1008);border:1px solid var(--border-subtle, rgba(255,255,255,.08));border-radius:10px;display:flex;flex-direction:column;overflow:hidden;max-height:calc(100vh - 100px)}.current-move-panel{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--color-bg-dark, #2a1f14);border-bottom:1px solid var(--border-subtle, rgba(255,255,255,.08));min-height:48px;flex-shrink:0}.current-move-left{display:flex;align-items:center;gap:8px;flex:1}.current-move-icon{font-size:18px;min-width:24px;text-align:center}.current-move-notation{font-size:16px;font-weight:700;color:wheat}.current-move-quality-name{font-size:13px;font-weight:600;color:#ffffff80}.current-move-eval{display:flex;align-items:center}.eval-value{font-size:16px;font-weight:700;padding:5px 10px;border-radius:5px}.eval-value.white-advantage{background:#ffffffe6;color:#333;border:2px solid rgba(255,255,255,.3)}.eval-value.black-advantage{background:#333;color:#fff;border:2px solid rgba(255,255,255,.15)}.moves-list-container{flex:1;overflow-y:auto;overflow-x:hidden;padding:8px;min-height:120px;max-height:400px}.no-moves-message,.analyzing-message{text-align:center;padding:20px;color:#fff6;font-size:13px}.moves-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}.move-item{padding:6px 8px;border-radius:4px;cursor:pointer;transition:all .15s;background:#ffffff0a;display:flex;align-items:center;gap:4px;position:relative;min-height:32px;font-size:13px}.move-item:hover{background:#ffffff14}.move-item.active{background:#ffffff1a;font-weight:600;box-shadow:0 0 0 2px #64a0ff80 inset}.move-item.brilliant{background:#75e6da1f;border-left:3px solid #75e6da}.move-item.brilliant.active{background:#75e6da33;box-shadow:0 0 0 2px #75e6da inset}.move-item.great{background:#94c9731f;border-left:3px solid #94C973}.move-item.great.active{background:#94c97333;box-shadow:0 0 0 2px #94c973 inset}.move-item.best{background:#94c9731f;border-left:3px solid #94C973}.move-item.best.active{background:#94c97333;box-shadow:0 0 0 2px #94c973 inset}.move-item.excellent{background:#94c9731a;border-left:3px solid #94C973}.move-item.excellent.active{background:#94c9732e;box-shadow:0 0 0 2px #94c973 inset}.move-item.good{background:#b2d2a41a;border-left:3px solid #B2D2A4}.move-item.good.active{background:#b2d2a42e;box-shadow:0 0 0 2px #b2d2a4 inset}.move-item.inaccuracy{background:#ffc55c1f;border-left:3px solid #FFC55C}.move-item.inaccuracy.active{background:#ffc55c33;box-shadow:0 0 0 2px #ffc55c inset}.move-item.mistake{background:#fd7f201f;border-left:3px solid #FD7F20}.move-item.mistake.active{background:#fd7f2033;box-shadow:0 0 0 2px #fd7f20 inset}.move-item.blunder{background:#fc2e201f;border-left:3px solid #FC2E20}.move-item.blunder.active{background:#fc2e2033;box-shadow:0 0 0 2px #fc2e20 inset}.move-number{font-size:11px;color:#fff6;font-weight:600;margin-right:2px}.move-item.active .move-number{color:#6ea8fe}.move-notation{font-size:13px;font-weight:500;color:#ffffffd9;flex:1}.move-quality-icon{font-size:12px;position:absolute;right:6px;top:50%;transform:translateY(-50%)}.move-item.brilliant .move-quality-icon{color:#75e6da}.move-item.great .move-quality-icon,.move-item.best .move-quality-icon,.move-item.excellent .move-quality-icon,.move-item.good .move-quality-icon{color:#94c973}.move-item.inaccuracy .move-quality-icon{color:#ffc55c}.move-item.mistake .move-quality-icon{color:#fd7f20}.move-item.blunder .move-quality-icon{color:#fc2e20}.moves-list-container::-webkit-scrollbar{width:5px}.moves-list-container::-webkit-scrollbar-track{background:#ffffff08}.moves-list-container::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.sidebar-nav-controls{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--border-subtle, rgba(255,255,255,.08));background:var(--color-bg-dark, #2a1f14);justify-content:center;flex-shrink:0}.sidebar-nav-controls button{background:var(--color-bg-medium, #4a3728);color:#fffc;border:1px solid var(--border-subtle, rgba(255,255,255,.12));width:50px;height:40px;border-radius:6px;font-size:18px;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.sidebar-nav-controls button:hover:not(:disabled){background:#ffffff1f}.sidebar-nav-controls button:disabled{opacity:.3;cursor:not-allowed}.bottom-buttons{display:flex;gap:6px;padding:10px 14px;border-top:1px solid var(--border-subtle, rgba(255,255,255,.08));background:var(--color-bg-darkest, #1a1008);flex-shrink:0;flex-wrap:wrap}.analysis-btn-bottom{flex:1;padding:9px 8px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;border:1px solid var(--border-subtle, rgba(255,255,255,.12));background:var(--color-bg-medium, #4a3728);color:#fffc;min-width:0;white-space:nowrap}.analysis-btn-bottom:hover{background:#ffffff1f}.analysis-btn-green{background:#4caf50!important;color:#fff!important;border-color:#4caf50!important}.analysis-btn-green:hover{background:#45a049!important}.share-game-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:9px 14px;border:1px solid rgba(102,126,234,.25);border-top:1px solid var(--border-subtle, rgba(255,255,255,.08));background:var(--color-bg-dark, #2a1f14);color:#ffffffb3;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;flex-shrink:0}.share-game-btn .share-icon{font-size:14px;line-height:1}.share-game-btn .share-label{font-size:13px}.share-game-btn:hover{background:#667eea26;border-color:#667eea66;color:#a8b8ff}.share-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#22c55ef2;color:#fff;padding:10px 22px;border-radius:8px;font-size:14px;font-weight:600;box-shadow:0 4px 16px #0000004d;z-index:9999;display:flex;align-items:center;gap:8px;animation:toast-slide-up .3s ease,toast-fade-out .4s 2s ease forwards;pointer-events:none}@keyframes toast-slide-up{0%{transform:translate(-50%) translateY(20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}@keyframes toast-fade-out{0%{opacity:1}to{opacity:0}}.analysis-loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px}.analysis-loading-state p{color:#ffffff80;font-size:15px}.analysis-loading-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:wheat;border-radius:50%;animation:spin-analysis .8s linear infinite}@keyframes spin-analysis{to{transform:rotate(360deg)}}.analysis-login-gate{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:50px 30px;text-align:center;min-height:400px}.gate-icon{font-size:48px;margin-bottom:15px}.analysis-login-gate h3{color:wheat;margin:0 0 8px;font-size:20px}.analysis-login-gate p{color:#ffffff80;margin:0 0 20px;font-size:14px;max-width:260px}.gate-login-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:14px 32px;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 4px 12px #667eea4d}.gate-login-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}@media(max-width:1100px){.moves-panel{width:280px}.center-content{gap:12px}.current-move-notation{font-size:14px}.eval-value{font-size:14px;padding:4px 8px}}@media(max-width:900px){.center-content{flex-direction:column;align-items:center;gap:12px}.analysis-center{padding:12px 8px}.eval-bar{display:none}.moves-panel{width:100%;max-width:500px;max-height:350px}.moves-list-container{max-height:180px;min-height:80px;padding:6px}.move-item{padding:5px 6px;min-height:28px;font-size:12px}.moves-grid{gap:3px}.move-number{font-size:10px}.move-notation{font-size:12px}.move-quality-icon{font-size:10px;right:4px}.sidebar-nav-controls{padding:8px 10px;gap:6px}.sidebar-nav-controls button{width:42px;height:34px;font-size:16px}.bottom-buttons{padding:8px 10px;gap:5px}.analysis-btn-bottom{padding:7px 6px;font-size:11px}.current-move-panel{padding:8px 10px;min-height:40px}.current-move-icon{font-size:14px}.current-move-notation{font-size:13px}.current-move-quality-name{font-size:11px}.eval-value{font-size:13px;padding:3px 7px}.share-toast{font-size:13px;padding:8px 18px;bottom:16px}}@media(max-width:600px){.analysis-player-name{font-size:12px}.moves-panel{max-height:300px}.moves-list-container{max-height:140px}.move-item{padding:4px 5px;min-height:26px}.sidebar-nav-controls button{width:38px;height:30px;font-size:14px}.bottom-buttons{gap:4px;padding:8px}.analysis-btn-bottom{padding:7px 4px;font-size:10px}}.rbc-btn{color:inherit;font:inherit;margin:0}button.rbc-btn{overflow:visible;text-transform:none;-webkit-appearance:button;-moz-appearance:button;appearance:button;cursor:pointer}button[disabled].rbc-btn{cursor:not-allowed}button.rbc-input::-moz-focus-inner{border:0;padding:0}.rbc-calendar{-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.rbc-m-b-negative-3{margin-bottom:-3px}.rbc-h-full{height:100%}.rbc-calendar *,.rbc-calendar *:before,.rbc-calendar *:after{-webkit-box-sizing:inherit;box-sizing:inherit}.rbc-abs-full,.rbc-row-bg{overflow:hidden;position:absolute;inset:0}.rbc-ellipsis,.rbc-show-more,.rbc-row-segment .rbc-event-content,.rbc-event-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rbc-rtl{direction:rtl}.rbc-off-range{color:#999}.rbc-off-range-bg{background:#e6e6e6}.rbc-header{overflow:hidden;-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;text-overflow:ellipsis;white-space:nowrap;padding:0 3px;text-align:center;vertical-align:middle;font-weight:700;font-size:90%;min-height:0;border-bottom:1px solid #ddd}.rbc-header+.rbc-header{border-left:1px solid #ddd}.rbc-rtl .rbc-header+.rbc-header{border-left-width:0;border-right:1px solid #ddd}.rbc-header>a,.rbc-header>a:active,.rbc-header>a:visited{color:inherit;text-decoration:none}.rbc-button-link{color:inherit;background:none;margin:0;padding:0;border:none;cursor:pointer;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.rbc-row-content{position:relative;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none;z-index:4}.rbc-row-content-scrollable{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%}.rbc-row-content-scrollable .rbc-row-content-scroll-container{height:100%;overflow-y:scroll;-ms-overflow-style:none;scrollbar-width:none}.rbc-row-content-scrollable .rbc-row-content-scroll-container::-webkit-scrollbar{display:none}.rbc-today{background-color:#eaf6ff}.rbc-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:10px;font-size:16px}.rbc-toolbar .rbc-toolbar-label{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding:0 10px;text-align:center}.rbc-toolbar button{color:#373a3c;display:inline-block;margin:0;text-align:center;vertical-align:middle;background:none;background-image:none;border:1px solid #ccc;padding:.375rem 1rem;border-radius:4px;line-height:normal;white-space:nowrap}.rbc-toolbar button:active,.rbc-toolbar button.rbc-active{background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px #00000020;background-color:#e6e6e6;border-color:#adadad}.rbc-toolbar button:active:hover,.rbc-toolbar button:active:focus,.rbc-toolbar button.rbc-active:hover,.rbc-toolbar button.rbc-active:focus{color:#373a3c;background-color:#d4d4d4;border-color:#8c8c8c}.rbc-toolbar button:focus{color:#373a3c;background-color:#e6e6e6;border-color:#adadad}.rbc-toolbar button:hover{color:#373a3c;cursor:pointer;background-color:#e6e6e6;border-color:#adadad}.rbc-btn-group{display:inline-block;white-space:nowrap}.rbc-btn-group>button:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.rbc-btn-group>button:last-child:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.rbc-rtl .rbc-btn-group>button:first-child:not(:last-child){border-radius:0 4px 4px 0}.rbc-rtl .rbc-btn-group>button:last-child:not(:first-child){border-radius:4px 0 0 4px}.rbc-btn-group>button:not(:first-child):not(:last-child){border-radius:0}.rbc-btn-group button+button{margin-left:-1px}.rbc-rtl .rbc-btn-group button+button{margin-left:0;margin-right:-1px}.rbc-btn-group+.rbc-btn-group,.rbc-btn-group+button{margin-left:10px}@media(max-width:767px){.rbc-toolbar{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.rbc-event,.rbc-day-slot .rbc-background-event{border:none;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none;margin:0;padding:2px 5px;background-color:#3174ad;border-radius:5px;color:#fff;cursor:pointer;width:100%;text-align:left}.rbc-slot-selecting .rbc-event,.rbc-slot-selecting .rbc-day-slot .rbc-background-event,.rbc-day-slot .rbc-slot-selecting .rbc-background-event{cursor:inherit;pointer-events:none}.rbc-event.rbc-selected,.rbc-day-slot .rbc-selected.rbc-background-event{background-color:#265985}.rbc-event:focus,.rbc-day-slot .rbc-background-event:focus{outline:5px auto #3b99fc}.rbc-event-label{font-size:80%}.rbc-event-overlaps{-webkit-box-shadow:-1px 1px 5px 0px rgba(51,51,51,.5);box-shadow:-1px 1px 5px #33333380}.rbc-event-continues-prior{border-top-left-radius:0;border-bottom-left-radius:0}.rbc-event-continues-after{border-top-right-radius:0;border-bottom-right-radius:0}.rbc-event-continues-earlier{border-top-left-radius:0;border-top-right-radius:0}.rbc-event-continues-later{border-bottom-left-radius:0;border-bottom-right-radius:0}.rbc-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.rbc-row-segment{padding:0 1px 1px}.rbc-selected-cell{background-color:#0000001a}.rbc-show-more{background-color:#ffffff4d;z-index:4;font-weight:700;font-size:85%;height:auto;line-height:normal;color:#3174ad}.rbc-show-more:hover,.rbc-show-more:focus{color:#265985}.rbc-month-view{position:relative;border:1px solid #ddd;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;width:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none;height:100%}.rbc-month-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.rbc-month-row{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;-ms-flex-preferred-size:0px;flex-basis:0px;overflow:hidden;height:100%}.rbc-month-row+.rbc-month-row{border-top:1px solid #ddd}.rbc-date-cell{-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;min-width:0;padding-right:5px;text-align:right}.rbc-date-cell.rbc-now{font-weight:700}.rbc-date-cell>a,.rbc-date-cell>a:active,.rbc-date-cell>a:visited{color:inherit;text-decoration:none}.rbc-row-bg{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;overflow:hidden;right:1px}.rbc-day-bg{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%}.rbc-day-bg+.rbc-day-bg{border-left:1px solid #ddd}.rbc-rtl .rbc-day-bg+.rbc-day-bg{border-left-width:0;border-right:1px solid #ddd}.rbc-overlay{position:absolute;z-index:5;border:1px solid #e5e5e5;background-color:#fff;-webkit-box-shadow:0 5px 15px rgba(0,0,0,.25);box-shadow:0 5px 15px #00000040;padding:10px}.rbc-overlay>*+*{margin-top:1px}.rbc-overlay-header{border-bottom:1px solid #e5e5e5;margin:-10px -10px 5px;padding:2px 10px}.rbc-agenda-view{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;overflow:auto}.rbc-agenda-view table.rbc-agenda-table{width:100%;border:1px solid #ddd;border-spacing:0;border-collapse:collapse}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td{padding:5px 10px;vertical-align:top}.rbc-agenda-view table.rbc-agenda-table .rbc-agenda-time-cell{padding-left:15px;padding-right:15px;text-transform:lowercase}.rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left:1px solid #ddd}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table tbody>tr>td+td{border-left-width:0;border-right:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table tbody>tr+tr{border-top:1px solid #ddd}.rbc-agenda-view table.rbc-agenda-table thead>tr>th{padding:3px 5px;text-align:left;border-bottom:1px solid #ddd}.rbc-rtl .rbc-agenda-view table.rbc-agenda-table thead>tr>th{text-align:right}.rbc-agenda-time-cell{text-transform:lowercase}.rbc-agenda-time-cell .rbc-continues-after:after{content:" »"}.rbc-agenda-time-cell .rbc-continues-prior:before{content:"« "}.rbc-agenda-date-cell,.rbc-agenda-time-cell{white-space:nowrap}.rbc-agenda-event-cell{width:100%}.rbc-time-column{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:100%}.rbc-time-column .rbc-timeslot-group{-webkit-box-flex:1;-ms-flex:1;flex:1}.rbc-timeslot-group{border-bottom:1px solid #ddd;min-height:40px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.rbc-time-gutter,.rbc-header-gutter{-webkit-box-flex:0;-ms-flex:none;flex:none}.rbc-label{padding:0 5px}.rbc-day-slot{position:relative}.rbc-day-slot .rbc-events-container{inset:0;position:absolute;margin-right:10px}.rbc-day-slot .rbc-events-container.rbc-rtl{left:10px;right:0}.rbc-day-slot .rbc-event,.rbc-day-slot .rbc-background-event{border:1px solid #265985;display:-webkit-box;display:-ms-flexbox;display:flex;max-height:100%;min-height:20px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column wrap;flex-flow:column wrap;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;overflow:hidden;position:absolute}.rbc-day-slot .rbc-background-event{opacity:.75}.rbc-day-slot .rbc-event-label{-webkit-box-flex:0;-ms-flex:none;flex:none;padding-right:5px;width:auto}.rbc-day-slot .rbc-event-content{width:100%;-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;word-wrap:break-word;line-height:1;height:100%;min-height:1em}.rbc-day-slot .rbc-time-slot{border-top:1px solid #f7f7f7}.rbc-time-view-resources .rbc-time-gutter,.rbc-time-view-resources .rbc-time-header-gutter{position:sticky;left:0;background-color:#fff;border-right:1px solid #ddd;z-index:10;margin-right:-1px}.rbc-time-view-resources .rbc-time-header{overflow:hidden}.rbc-time-view-resources .rbc-time-header-content{min-width:auto;-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0;-ms-flex-preferred-size:0px;flex-basis:0px}.rbc-time-view-resources .rbc-time-header-cell-single-day{display:none}.rbc-time-view-resources .rbc-day-slot{min-width:140px}.rbc-time-view-resources .rbc-header,.rbc-time-view-resources .rbc-day-bg{width:140px;-webkit-box-flex:1;-ms-flex:1 1 0px;flex:1 1 0;-ms-flex-preferred-size:0 px;flex-basis:0 px}.rbc-time-header-content+.rbc-time-header-content{margin-left:-1px}.rbc-time-slot{-webkit-box-flex:1;-ms-flex:1 0 0px;flex:1 0 0}.rbc-time-slot.rbc-now{font-weight:700}.rbc-day-header{text-align:center}.rbc-slot-selection{z-index:10;position:absolute;background-color:#00000080;color:#fff;font-size:75%;width:100%;padding:3px}.rbc-slot-selecting{cursor:move}.rbc-time-view{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;border:1px solid #ddd;min-height:0}.rbc-time-view .rbc-time-gutter{white-space:nowrap;text-align:right}.rbc-time-view .rbc-allday-cell{-webkit-box-sizing:content-box;box-sizing:content-box;width:100%;height:100%;position:relative}.rbc-time-view .rbc-allday-cell+.rbc-allday-cell{border-left:1px solid #ddd}.rbc-time-view .rbc-allday-events{position:relative;z-index:4}.rbc-time-view .rbc-row{-webkit-box-sizing:border-box;box-sizing:border-box;min-height:20px}.rbc-time-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.rbc-time-header.rbc-overflowing{border-right:1px solid #ddd}.rbc-rtl .rbc-time-header.rbc-overflowing{border-right-width:0;border-left:1px solid #ddd}.rbc-time-header>.rbc-row:first-child{border-bottom:1px solid #ddd}.rbc-time-header>.rbc-row.rbc-row-resource{border-bottom:1px solid #ddd}.rbc-time-header-cell-single-day{display:none}.rbc-time-header-content{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;min-width:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;border-left:1px solid #ddd}.rbc-rtl .rbc-time-header-content{border-left-width:0;border-right:1px solid #ddd}.rbc-time-header-content>.rbc-row.rbc-row-resource{border-bottom:1px solid #ddd;-ms-flex-negative:0;flex-shrink:0}.rbc-time-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;width:100%;border-top:2px solid #ddd;overflow-y:auto;position:relative}.rbc-time-content>.rbc-time-gutter{-webkit-box-flex:0;-ms-flex:none;flex:none}.rbc-time-content>*+*>*{border-left:1px solid #ddd}.rbc-rtl .rbc-time-content>*+*>*{border-left-width:0;border-right:1px solid #ddd}.rbc-time-content>.rbc-day-slot{width:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.rbc-current-time-indicator{position:absolute;z-index:3;left:0;right:0;height:1px;background-color:#74ad31;pointer-events:none}.rbc-resource-grouping.rbc-time-header-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.rbc-resource-grouping .rbc-row .rbc-header{width:141px}.modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px;animation:fadeIn .2s ease}.school-modal{background:linear-gradient(135deg,#1e293b,#0f172a);border:1px solid rgba(255,255,255,.1);border-radius:16px;width:100%;max-width:680px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease;box-shadow:0 20px 60px #00000080}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.school-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.school-modal .modal-header h2{margin:0;color:#ffc107;font-size:18px;font-weight:700}.school-modal .modal-close{background:#ffffff14;border:1px solid rgba(255,255,255,.25);color:#e2e8f0;width:32px;height:32px;aspect-ratio:1;padding:0;border-radius:50%;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;line-height:0;flex-shrink:0;box-sizing:border-box}.school-modal .modal-close:hover{background:#ffffff26;border-color:#fff6;color:#fff}.school-modal form{padding:18px 24px}.school-modal .form-group{margin-bottom:14px}.school-modal .form-group label{display:block;color:var(--color-text-muted, rgba(230,223,198,.6));font-size:12px;font-weight:700;margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.school-modal .form-group input[type=text],.school-modal .form-group input[type=email],.school-modal .form-group input[type=password],.school-modal .form-group input[type=number],.school-modal .form-group input[type=tel],.school-modal .form-group input[type=url],.school-modal .form-group input[type=date],.school-modal .form-group input[type=time],.school-modal .form-group select,.school-modal .form-group textarea{width:100%;background:var(--color-bg-darkest, #110D0A);border:1px solid var(--border-medium, rgba(210,180,140,.18));border-radius:var(--radius-md, 10px);padding:9px 12px;color:var(--color-text-primary, #E6DFC6);font-size:14px;font-weight:500;transition:all .2s;box-sizing:border-box;max-width:100%;margin:0;font-family:var(--font-primary);caret-color:var(--color-gold, #D2B48C)}.school-modal .form-group input:focus,.school-modal .form-group select:focus,.school-modal .form-group textarea:focus{outline:none;border-color:var(--color-gold, #D2B48C);box-shadow:0 0 0 3px #d2b48c1f}.school-modal .form-group input::placeholder,.school-modal .form-group textarea::placeholder{color:var(--color-text-dim, rgba(230,223,198,.3))}.school-modal .form-group select option{background:var(--color-bg-darkest, #110D0A);color:var(--color-text-primary, #E6DFC6)}.school-modal .form-group textarea{resize:vertical;min-height:80px}.school-modal .form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.school-modal .color-picker{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.school-modal .color-option{width:32px;height:32px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:all .2s}.school-modal .color-option:hover{transform:scale(1.1)}.school-modal .color-option.active{border-color:#fff;box-shadow:0 0 0 2px #ffffff4d}.school-modal .color-input{width:32px;height:32px;border:none;border-radius:50%;cursor:pointer;padding:0;background:none}.school-modal .color-input::-webkit-color-swatch-wrapper{padding:0}.school-modal .color-input::-webkit-color-swatch{border:2px solid rgba(255,255,255,.3);border-radius:50%}.school-modal .avatar-preview{margin-top:10px;display:flex;justify-content:center}.school-modal .avatar-preview img{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.2)}.school-modal .modal-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);margin-top:10px}.school-modal .btn-cancel,.school-modal .btn-save{padding:12px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;border:none}.school-modal .btn-cancel{background:#ffffff14;color:#fff;border:2px solid rgba(255,255,255,.45);font-weight:600}.school-modal .btn-cancel:hover{background:#ffffff26;color:#fff;border-color:#fff9}.school-modal .btn-save{background:linear-gradient(135deg,#ffc107,#ff9800);color:#1a1a2e;box-shadow:0 4px 12px #ffc1074d}.school-modal .btn-save:hover{transform:translateY(-2px);box-shadow:0 6px 16px #ffc10766}.school-modal .multi-select-list{max-height:180px;overflow-y:auto;background:#0006;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:8px;margin-top:8px}.school-modal .multi-select-list.students-list{max-height:200px}.school-modal .multi-select-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:6px;cursor:pointer;transition:background .2s;color:#fff;font-weight:500;font-size:14px}.school-modal .multi-select-item:hover{background:#ffffff1a}.school-modal .multi-select-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#ffc107}.school-modal .multi-select-item .color-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.school-modal .multi-select-item .item-count{font-size:12px;color:#94a3b8;margin-left:auto}.school-modal .multi-select-item .item-info{font-size:12px;color:#94a3b8;margin-left:auto;background:#ffffff1a;padding:2px 8px;border-radius:10px}.school-modal .no-items{color:#ffffff80;text-align:center;padding:20px;font-size:14px}.school-modal .selected-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.school-modal .selected-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:15px;font-size:12px;font-weight:600}.school-modal .selected-tag.group-tag{background:#3498db4d;color:#5dade2;border:1px solid rgba(52,152,219,.4)}.school-modal .selected-tag.teacher-tag{background:#9b59b64d;color:#bb8fce;border:1px solid rgba(155,89,182,.4)}.school-modal .quick-group-select{background:#fffffff2;border:2px solid rgba(100,100,100,.3);border-radius:6px;padding:6px 10px;color:#1a1a2e;font-size:13px;font-weight:500;cursor:pointer;flex:1}.school-modal .quick-group-select option{background:#fff;color:#1a1a2e;font-weight:500}.school-modal .group-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;color:#fff}.school-modal .no-group{color:#64748b;font-size:13px;font-style:italic}.school-modal .notes-row{flex-direction:column;align-items:flex-start!important}.school-modal .notes-text{color:#94a3b8;font-size:13px;line-height:1.4;margin-top:4px}.school-modal .student-info-header{display:flex;align-items:baseline;gap:10px}.school-modal .student-age{color:#64748b;font-size:13px}.school-modal .teacher-card .card-header{display:flex;align-items:flex-start;gap:15px}.school-modal .teacher-avatar{width:50px;height:50px;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center;font-size:24px;overflow:hidden;flex-shrink:0}.school-modal .teacher-avatar img{width:100%;height:100%;object-fit:cover}.school-modal .teacher-name-info{flex:1}.school-modal .teacher-specialization{color:#ffc107;font-size:13px;display:block;margin-top:4px}.school-modal .elo-badge{background:#ffc10733;color:#ffc107;padding:4px 10px;border-radius:4px;font-weight:600;font-size:13px}.school-modal .bio-row{margin-top:8px}.school-modal .bio-text{color:#94a3b8;font-size:13px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.school-modal.lesson-modal{max-width:600px}.school-modal .btn-link{background:none;border:none;color:#ffc107;font-size:12px;font-weight:600;cursor:pointer;margin-left:10px;text-decoration:underline}.school-modal .btn-link:hover{color:#ffd54f}.school-modal .students-select-list{max-height:200px;overflow-y:auto;background:#0006;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:10px;margin-top:8px}.school-modal .student-checkbox{display:flex;align-items:center;gap:10px;padding:8px;border-radius:4px;cursor:pointer;transition:background .2s;color:#fff;font-weight:500}.school-modal .student-checkbox:hover{background:#ffffff26}.school-modal .student-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.school-modal .student-group-tag{font-size:11px;background:#ffffff26;padding:2px 8px;border-radius:10px;margin-left:auto}.school-modal .no-students{color:#ffffff80;text-align:center;padding:20px;font-size:14px}.school-modal .coming-soon-badge{font-size:10px;background:#ffc107;color:#1a1a2e;padding:2px 6px;border-radius:10px;margin-left:8px;font-weight:600}.school-modal .lesson-room-input{display:flex;gap:10px}.school-modal .lesson-room-input input{flex:1}.school-modal .btn-generate{background:#ffffff26;border:2px solid rgba(255,255,255,.3);color:#fff;padding:10px 15px;border-radius:8px;cursor:pointer;white-space:nowrap;font-weight:600;transition:all .2s}.school-modal .btn-generate:hover{background:#ffffff40;border-color:#ffc107}.school-modal .field-hint{font-size:12px;color:#94a3b8;margin-top:5px;font-weight:500}.school-modal .checkbox-label{display:flex;align-items:center;gap:10px;margin-top:10px;cursor:pointer;color:#fff;font-weight:500}.school-modal .checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.school-modal.details-modal{max-width:500px}.school-modal .details-content{padding:0 30px 20px}.school-modal .detail-section{display:flex;gap:15px;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.1)}.school-modal .detail-section:last-child{border-bottom:none}.school-modal .detail-icon{font-size:24px;width:40px;text-align:center;flex-shrink:0}.school-modal .detail-info{flex:1}.school-modal .detail-label{font-size:12px;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-weight:600}.school-modal .detail-primary{color:#fff;font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px}.school-modal .detail-secondary{color:#cbd5e1;font-size:14px;margin-top:2px;font-weight:500}.school-modal .detail-text{color:#e2e8f0;font-size:14px;line-height:1.5;font-weight:500}.school-modal .group-color-dot{width:12px;height:12px;border-radius:50%;display:inline-block}.school-modal .students-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.school-modal .student-tag{background:#ffffff26;padding:4px 10px;border-radius:15px;font-size:13px;color:#fff;font-weight:500;border:1px solid rgba(255,255,255,.2)}.school-modal .room-link{color:#d4956a;text-decoration:none;font-weight:500}.school-modal .room-link:hover{text-decoration:underline}.school-modal .online-badge{background:#27ae60;color:#fff;font-size:11px;padding:3px 8px;border-radius:10px;font-weight:600}.school-modal .btn-delete{background:#e74c3c33;color:#e74c3c;border:1px solid rgba(231,76,60,.3);padding:12px 20px;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s}.school-modal .btn-delete:hover{background:#e74c3c4d}.school-modal .btn-edit{background:#ffffff26;color:#fff;border:2px solid rgba(255,255,255,.3);padding:12px 20px;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s}.school-modal .btn-edit:hover{background:#ffffff40;border-color:#ffc107}.school-modal .btn-join{background:linear-gradient(135deg,#27ae60,#2ecc71);color:#fff;border:none;padding:12px 20px;border-radius:8px;cursor:pointer;font-weight:600;text-decoration:none;display:inline-block;transition:all .2s}.school-modal .btn-join:hover{transform:translateY(-2px);box-shadow:0 4px 12px #27ae604d}@media(max-width:600px){.school-modal{max-width:100%;max-height:100vh;border-radius:12px 12px 0 0;margin-top:auto}.modal-header,.school-modal form{padding:20px}.form-row{grid-template-columns:1fr;gap:0}.modal-actions{flex-direction:column}.btn-cancel,.btn-save{width:100%;padding:14px}.multi-select-list{max-height:150px}.selected-tags{gap:4px}.selected-tag{font-size:11px;padding:3px 8px}}.school-modal .guardian-children-section{margin:8px 0;padding:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:10px}.school-modal .guardian-children-section>label{display:block;color:#fff;font-size:14px;font-weight:600;margin-bottom:10px;text-transform:none}.school-modal .linked-children-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.school-modal .linked-child-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#e4d5b10a;border:1px solid var(--border-subtle, rgba(210,180,140,.08));border-radius:6px;font-size:13px;color:var(--color-text-primary, #E6DFC6)}.school-modal .child-status{font-size:11px;font-weight:600}.school-modal .child-status.pending{color:#d97706}.school-modal .child-status.confirmed{color:#16a34a}.school-modal .child-status.rejected{color:#dc2626}.school-modal .child-search-box{position:relative}.school-modal .child-search-input{font-family:inherit;width:100%;padding:8px 12px;background:var(--color-bg-darkest, #110D0A);border:1px solid var(--border-medium, rgba(210,180,140,.18));border-radius:6px;color:var(--color-text-primary, #E6DFC6);font-size:13px;box-sizing:border-box}.school-modal .child-search-input:focus{border-color:var(--color-gold, #D2B48C);outline:none;box-shadow:0 0 0 3px #d2b48c1f}.school-modal .child-search-input::placeholder{color:#6b7280}.school-modal .child-search-loading{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:12px}.school-modal .child-search-results{margin-top:6px;border:1px solid var(--border-subtle, rgba(210,180,140,.08));border-radius:6px;overflow:hidden;max-height:150px;overflow-y:auto;background:var(--color-bg-darkest, #110D0A)}.school-modal .child-search-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:13px;color:var(--color-text-primary, #E6DFC6);transition:background .1s}.school-modal .child-search-item:hover{background:#e4d5b114}.school-modal .child-username{color:#6b7280;font-size:11px}.school-modal .child-link-btn{margin-left:auto;font-family:inherit;background:#16a34a26;color:#22c55e;border:none;padding:4px 10px;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer}.school-modal .child-link-btn:hover{background:#16a34a40}.school-modal .btn-remove-school{font-family:inherit;background:transparent;color:#f87171;border:1px solid rgba(248,113,113,.3);padding:8px 14px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.school-modal .btn-remove-school:hover{background:#f871711a;border-color:#f8717180}.school-modal .remove-confirm-inline{display:flex;align-items:center;gap:6px}.school-modal .remove-confirm-text{color:#f87171;font-size:13px;font-weight:600}.school-modal .btn-remove-yes{font-family:inherit;background:#dc2626;color:#fff;border:none;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer}.school-modal .btn-remove-yes:hover{background:#b91c1c}.school-modal .btn-remove-no{font-family:inherit;background:#ffffff26;color:#cbd5e1;border:1px solid rgba(255,255,255,.25);padding:6px 12px;border-radius:6px;font-size:12px;cursor:pointer}.school-modal .btn-remove-no:hover{background:#ffffff40;color:#fff}.school-modal .role-select{font-family:inherit;background:var(--color-bg-darkest, #110D0A);border:1px solid var(--color-gold, #D2B48C);color:var(--color-gold, #D2B48C);padding:8px 12px;border-radius:var(--radius-md, 10px);font-size:14px;font-weight:600;cursor:pointer;width:100%;box-sizing:border-box}.school-modal .role-select option{background:var(--color-bg-darkest, #110D0A);color:var(--color-text-primary, #E6DFC6)}.school-modal .multi-select-item input[type=checkbox]{width:18px;min-width:18px;height:18px;flex-shrink:0;margin-right:2px}.calendar-tab{height:100%}.calendar-container{background:#fffffff2;border-radius:12px;padding:15px;box-shadow:0 4px 12px #0003}.rbc-toolbar{margin-bottom:15px;flex-wrap:wrap;gap:10px}.rbc-toolbar button{color:#1a1a1a;background:#e0e0e0;border:1px solid #999;padding:8px 16px;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s}.rbc-toolbar button:hover{background:#c8c8c8;border-color:#777}.rbc-toolbar button.rbc-active{background:#d4956a;color:#fff;border-color:#d4956a}.rbc-toolbar-label{font-size:18px;font-weight:700;color:#1a1a1a}.rbc-header{padding:10px 5px;font-weight:700;color:#1a1a1a;background:#e8e8e8;border-bottom:2px solid #999!important}.rbc-date-cell{padding:5px 8px;font-weight:600;color:#1a1a1a}.rbc-off-range-bg{background:#e0e0e0}.rbc-today{background:#d4956a26!important}.rbc-current-time-indicator{background-color:#e74c3c}.rbc-event{border-radius:4px!important;padding:2px 6px!important;font-size:12px!important;font-weight:600!important}.rbc-event:focus{outline:2px solid #d4956a}.rbc-event-content{overflow:hidden;text-overflow:ellipsis}.rbc-month-view{border:1px solid #999;border-radius:8px;overflow:hidden}.rbc-month-row{border-bottom:1px solid #bbb}.rbc-day-bg{border-left:1px solid #bbb}.rbc-time-view{border:1px solid #999;border-radius:8px;overflow:hidden}.rbc-time-header{border-bottom:2px solid #999}.rbc-time-content{border-top:none}.rbc-timeslot-group{border-bottom:1px solid #ccc}.rbc-time-slot{border-top:1px dotted #999}.rbc-time-gutter{background:#e8e8e8}.rbc-label{font-size:11px;color:#333;font-weight:600;padding:0 8px}.rbc-overlay{border-radius:8px;box-shadow:0 4px 20px #0003;border:none;padding:10px}.rbc-overlay-header{font-weight:600;padding:8px;border-bottom:1px solid #e0e0e0;margin-bottom:8px}.rbc-agenda-view{border:1px solid #999;border-radius:8px;overflow:hidden}.rbc-agenda-table{border:none}.rbc-agenda-date-cell,.rbc-agenda-time-cell{padding:12px;font-weight:600;color:#1a1a1a}.rbc-agenda-event-cell{padding:12px;color:#1a1a1a}.rbc-slot-selection{background:#d4956a4d;border:2px dashed #d4956a}.rbc-addons-dnd-resizable{border:none}.calendar-event{display:flex;flex-direction:column;gap:2px;line-height:1.3}.event-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-teacher{font-size:10px;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:768px){.calendar-container{padding:10px}.rbc-toolbar{flex-direction:column;align-items:stretch}.rbc-toolbar-label{text-align:center;margin:10px 0}.rbc-btn-group{display:flex;justify-content:center}.rbc-toolbar button{padding:6px 12px;font-size:13px}}.lesson-packs-tab{padding:0}.lp-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;flex-wrap:wrap}.lp-header-left{display:flex;flex-direction:column;gap:4px}.lp-header-right{display:flex;gap:8px;align-items:center}.lp-title{color:var(--color-text-accent, #E8D5B5);font-size:20px;font-weight:700;margin:0}.lp-subtitle{color:var(--color-text-muted, #8a7a6a);font-size:13px;margin:0}.lp-back-btn{font-family:var(--font-primary, inherit);background:transparent;border:none;color:var(--color-text-muted, #8a7a6a);cursor:pointer;font-size:13px;padding:0;margin-bottom:4px}.lp-back-btn:hover{color:var(--color-text-accent, #E8D5B5)}.lp-generate-btn{font-family:var(--font-primary, inherit);background:#d2b48c1f;border:1px solid rgba(210,180,140,.3);color:var(--color-gold, #C9A84C);padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}.lp-generate-btn:hover:not(:disabled){background:#d2b48c33}.lp-generate-btn:disabled{opacity:.5;cursor:not-allowed}.lp-error{background:#d940401a;border:1px solid rgba(217,64,64,.3);color:#ef9a9a;padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:16px}.lp-two-column{display:grid;grid-template-columns:280px 1fr;gap:20px;min-height:500px}.lp-left-panel{background:#e4d5b108;border:2px dashed var(--border-subtle, rgba(228,213,177,.1));border-radius:12px;display:flex;flex-direction:column;transition:border-color .2s,background-color .2s,box-shadow .2s;position:sticky;top:20px;max-height:calc(100vh - 180px);overflow:hidden}.lp-left-panel.drag-over{border-color:var(--color-gold, #C9A84C);background:#c9a84c14;box-shadow:0 0 20px #c9a84c26}.lp-panel-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border-subtle, rgba(228,213,177,.08))}.lp-panel-title{color:var(--color-text-accent, #E8D5B5);font-size:14px;font-weight:700}.lp-panel-count{color:var(--color-gold, #C9A84C);font-size:13px;font-weight:700;background:#c9a84c26;padding:2px 10px;border-radius:10px}.lp-panel-empty{padding:30px 16px;text-align:center;color:var(--color-text-dim, #6a5a4a);font-size:13px}.lp-panel-empty p{margin:0}.lp-fav-list{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:4px}.lp-fav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;background:#c9a84c0d;border:1px solid rgba(201,168,76,.1);cursor:pointer;transition:background .15s}.lp-fav-item:hover{background:#c9a84c1f;border-color:#c9a84c40}.lp-fav-icon{font-size:16px;flex-shrink:0}.lp-fav-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.lp-fav-name{color:var(--color-text-primary, #E8D5B5);font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lp-fav-count{color:var(--color-text-dim, #6a5a4a);font-size:11px}.lp-fav-remove{font-family:var(--font-primary, inherit);background:transparent;border:none;color:var(--color-text-dim, #6a5a4a);cursor:pointer;font-size:13px;padding:2px 6px;border-radius:4px;flex-shrink:0}.lp-fav-remove:hover{color:#ef9a9a;background:#d940401a}.lp-fav-list::-webkit-scrollbar{width:4px}.lp-fav-list::-webkit-scrollbar-thumb{background:#e4d5b126;border-radius:2px}.lp-right-panel{display:flex;flex-direction:column;gap:24px}.lp-category-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.lp-category-header .lp-category-title{margin:0}.lp-category-title{color:var(--color-text-accent, #E8D5B5);font-size:15px;font-weight:700;margin:0 0 10px}.lp-category-tags{display:flex;flex-direction:column;gap:2px}.lp-tag-header{font-family:var(--font-primary, inherit);width:100%;display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;background:#e4d5b10a;border:1px solid transparent;cursor:pointer;transition:background .15s;text-align:left;color:var(--color-text-primary, #E8D5B5)}.lp-tag-header:hover{background:#e4d5b11a;border-color:var(--border-subtle, rgba(228,213,177,.08))}.lp-tag-icon{font-size:16px;flex-shrink:0}.lp-tag-name{font-size:14px;font-weight:500;flex:1}.lp-tag-stats{color:var(--color-text-dim, #6a5a4a);font-size:11px;flex-shrink:0}.lp-tag-arrow{color:var(--color-text-dim, #6a5a4a);font-size:10px;transition:transform .2s;flex-shrink:0}.lp-tag-arrow.open{transform:rotate(90deg)}.lp-tag-packs{padding:4px 0 8px 38px;display:flex;flex-direction:column;gap:2px}.lp-pack-loading{color:var(--color-text-dim, #6a5a4a);font-size:12px;padding:8px 0}.lp-pack-row{display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:6px;cursor:pointer;transition:background .12s;font-size:13px}.lp-pack-row:hover{background:#e4d5b114}.lp-pack-row.in-fav{opacity:.6}.lp-pack-drag{color:#e4d5b133;cursor:grab;font-size:14px;-webkit-user-select:none;user-select:none;flex-shrink:0}.lp-pack-drag:active{cursor:grabbing}.lp-pack-label{color:var(--color-text-primary, #E8D5B5);font-weight:500;flex:1}.lp-pack-count{color:var(--color-text-dim, #6a5a4a);font-size:11px;flex-shrink:0}.lp-pack-added{font-size:14px;flex-shrink:0}.lp-pack-add-btn{font-family:var(--font-primary, inherit);background:#c9a84c26;border:1px solid rgba(201,168,76,.25);color:var(--color-gold, #C9A84C);width:26px;height:26px;border-radius:6px;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s;line-height:1}.lp-pack-add-btn:hover{background:#c9a84c4d;transform:scale(1.1)}.lp-opening-search{position:relative;flex-shrink:0}.lp-opening-search-input{font-family:var(--font-primary, inherit);background:var(--color-bg-darkest, #110D0A);border:1px solid rgba(228,213,177,.12);color:var(--color-text-primary, #E8D5B5);padding:6px 28px 6px 10px;border-radius:6px;font-size:12px;width:180px}.lp-opening-search-input::placeholder{color:var(--color-text-dim, #6a5a4a)}.lp-opening-search-input:focus{outline:none;border-color:var(--color-gold, #C9A84C)}.lp-opening-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--color-text-dim, #6a5a4a);cursor:pointer;font-size:12px;padding:0}.lp-play-btn{font-family:var(--font-primary, inherit);background:var(--color-gold, #C9A84C);color:var(--color-bg-darkest, #110D0A);border:none;padding:8px 18px;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer}.lp-play-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.lp-puzzles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.lp-puzzle-card{background:#e4d5b10f;border:1px solid rgba(228,213,177,.1);border-radius:8px;overflow:hidden;cursor:pointer;transition:background .15s,transform .15s}.lp-puzzle-card:hover{background:#e4d5b124;border-color:#d2b48c4d;transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.lp-mini-board{display:flex;justify-content:center;padding:8px 8px 4px;pointer-events:none}.lp-puzzle-card-info{display:flex;justify-content:space-between;align-items:center;padding:6px 10px 8px}.lp-puzzle-card-name{color:var(--color-text-primary, #E8D5B5);font-size:12px;font-weight:500}.lp-puzzle-card-rating{color:var(--color-text-dim, #6a5a4a);font-size:11px}.lp-play-header{display:flex;align-items:center;gap:16px;margin-bottom:8px}.lp-play-progress-info{flex:1;display:flex;flex-direction:column;gap:2px}.lp-play-pack-name{color:var(--color-text-accent, #E8D5B5);font-size:14px;font-weight:600}.lp-play-counter{color:var(--color-text-muted, #8a7a6a);font-size:12px}.lp-play-stats{display:flex;gap:8px}.lp-stat-mini{font-size:13px;font-weight:600}.lp-stat-mini.solved{color:#6abf69}.lp-stat-mini.failed{color:#ef9a9a}.lp-progress-bar{height:4px;background:#e4d5b114;border-radius:2px;margin-bottom:20px;overflow:hidden}.lp-progress-fill{height:100%;background:var(--color-gold, #C9A84C);border-radius:2px;transition:width .3s ease}.lp-play-content{display:flex;gap:24px;justify-content:center;align-items:flex-start}.lp-play-board{position:relative;flex-shrink:0}.lp-play-result{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;padding:12px 24px;border-radius:12px;font-weight:700;font-size:18px;animation:lpFadeIn .3s ease;pointer-events:none}.lp-play-result.success{background:#6abf69e6;color:#fff}.lp-play-result.fail{background:#d94040e6;color:#fff}@keyframes lpFadeIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.lp-play-side{display:flex;flex-direction:column;gap:16px;min-width:160px;max-width:200px}.lp-turn-indicator{color:var(--color-text-primary, #E8D5B5);font-size:16px;font-weight:600;padding:10px 14px;background:#e4d5b10f;border-radius:8px;text-align:center}.lp-puzzle-info{display:flex;flex-direction:column;gap:4px;color:var(--color-text-muted, #8a7a6a);font-size:13px}.lp-puzzle-rating{font-size:12px;color:var(--color-text-dim, #6a5a4a)}.lp-play-actions{display:flex;flex-direction:column;gap:8px}.lp-retry-btn,.lp-next-btn{font-family:var(--font-primary, inherit);border:none;padding:10px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}.lp-retry-btn{background:#e4d5b114;color:var(--color-text-primary, #E8D5B5);border:1px solid rgba(228,213,177,.08)}.lp-retry-btn:hover{background:#e4d5b126}.lp-next-btn{background:var(--color-gold, #C9A84C);color:var(--color-bg-darkest, #110D0A)}.lp-next-btn:hover{filter:brightness(1.1)}.lp-completed{display:flex;flex-direction:column;align-items:center;padding:60px 20px;text-align:center}.lp-completed-icon{font-size:56px;margin-bottom:12px}.lp-completed h2{color:var(--color-text-accent, #E8D5B5);font-size:22px;margin:0 0 16px}.lp-completed-stats{display:flex;gap:20px;margin-bottom:24px}.lp-stat-solved{color:#6abf69;font-size:16px;font-weight:600}.lp-stat-failed{color:#ef9a9a;font-size:16px;font-weight:600}.lp-completed-actions{display:flex;gap:12px}.lp-back-large-btn,.lp-replay-btn{font-family:var(--font-primary, inherit);border:none;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}.lp-back-large-btn{background:#e4d5b114;color:var(--color-text-primary, #E8D5B5);border:1px solid rgba(228,213,177,.08)}.lp-replay-btn{background:var(--color-gold, #C9A84C);color:var(--color-bg-darkest, #110D0A)}@media(max-width:768px){.lp-two-column{grid-template-columns:1fr}.lp-left-panel{position:static;max-height:250px}.lp-play-content{flex-direction:column;align-items:center}.lp-play-side{max-width:100%;min-width:100%;flex-direction:row;flex-wrap:wrap;justify-content:center}}.lp-opening-variant{padding-left:12px}.lp-variant-header{font-family:var(--font-primary, inherit);width:100%;display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:6px;background:transparent;border:none;cursor:pointer;transition:background .12s;text-align:left;color:var(--color-text-muted, #8a7a6a);font-size:13px}.lp-variant-header:hover{background:#e4d5b10f;color:var(--color-text-primary, #E8D5B5)}.lp-variant-name{flex:1;font-weight:500}.lp-variant-packs{padding-left:20px}.school-page{min-height:100vh;background:var(--color-bg-board)}.school-layout{display:grid;grid-template-columns:140px 1fr 200px;min-height:calc(100vh - 48px)}.school-sidebar{background:var(--color-bg-darkest);border-right:1px solid var(--border-subtle);padding:15px 10px}.sidebar-nav{display:flex;flex-direction:column;gap:6px}.sidebar-btn{font-family:var(--font-primary);background:transparent;border:none;color:var(--color-text-primary);padding:10px 15px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;text-align:left;width:100%}.sidebar-btn:hover{background:#e4d5b11a}.sidebar-btn.active{background:#e4d5b133;color:var(--color-text-accent);font-weight:600}.school-main{background:var(--color-bg-board);padding:20px;overflow-y:auto}.school-right-panel{background:var(--color-bg-darkest);border-left:1px solid var(--border-subtle);padding:20px}.section-container{background:#e4d5b108;border-radius:var(--radius-lg);padding:20px;min-height:100%}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid var(--border-subtle)}.section-title{color:var(--color-text-accent);font-size:22px;font-weight:700;margin:0;display:flex;align-items:center;gap:10px}.section-actions{display:flex;gap:10px}.btn-primary{font-family:var(--font-primary);background:var(--color-gold);color:var(--color-text-dark);border:none;padding:10px 20px;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--color-gold-light);transform:translateY(-1px)}.btn-primary:active{background:var(--color-gold-dark);transform:translateY(0)}.btn-secondary{font-family:var(--font-primary);background:#e4d5b114;color:var(--color-text-primary);border:1px solid var(--border-medium);padding:10px 20px;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-secondary:hover{background:#e4d5b124}.filters-row{display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap}.filter-input,.filter-select{font-family:var(--font-primary);background:var(--color-bg-dark);border:1px solid var(--border-medium);color:var(--color-text-primary);padding:10px 15px;border-radius:var(--radius-md);font-size:14px;min-width:180px}.filter-input::placeholder{color:var(--color-text-dim)}.filter-select option{background:var(--color-bg-darkest);color:var(--color-text-primary)}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:15px}.item-card{background:#e4d5b10f;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:15px;transition:all var(--transition-fast);position:relative}.item-card:hover{background:#e4d5b11a;transform:translateY(-2px)}.item-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--card-color, var(--color-gold));border-radius:var(--radius-lg) var(--radius-lg) 0 0}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.card-title{color:var(--color-text-accent);font-size:16px;font-weight:600;margin:0}.card-badge{font-size:11px;padding:3px 8px;border-radius:12px;font-weight:600}.badge-beginner{background:#7cb34226;color:var(--color-success)}.badge-intermediate{background:#42a5f526;color:var(--color-info)}.badge-advanced{background:#ab47bc26;color:#ab47bc}.card-body{margin-bottom:12px}.card-info{display:flex;flex-direction:column;gap:6px}.info-row{display:flex;align-items:center;gap:8px;color:var(--color-text-muted);font-size:13px}.card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid var(--border-subtle)}.card-actions{display:flex;gap:6px}.action-btn{font-family:var(--font-primary);background:#e4d5b114;border:none;color:var(--color-text-muted);padding:6px 10px;border-radius:var(--radius-sm);font-size:12px;cursor:pointer;transition:all var(--transition-fast)}.action-btn:hover{background:#e4d5b124;color:var(--color-text-primary)}.action-btn.delete:hover{background:#e5393526;color:var(--color-danger)}.students-count{color:var(--color-text-muted);font-size:13px}.empty-state{text-align:center;padding:60px 20px;color:var(--color-text-muted)}.empty-icon{font-size:48px;margin-bottom:15px;opacity:.5}.empty-state h3{color:var(--color-text-accent);margin-bottom:10px;font-size:18px}.empty-state p{margin-bottom:20px;font-size:14px}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px;color:var(--color-text-muted)}.spinner{width:40px;height:40px;border:3px solid var(--border-subtle);border-top-color:var(--color-gold);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:15px}@keyframes spin{to{transform:rotate(360deg)}}.placeholder-content{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;color:var(--color-text-muted);text-align:center}.placeholder-icon{font-size:64px;margin-bottom:20px;opacity:.6}.placeholder-content h2{color:var(--color-text-accent);margin-bottom:10px;font-size:24px}.placeholder-content p{font-size:14px;max-width:300px}@media(max-width:1024px){.school-layout{grid-template-columns:120px 1fr 150px}.sidebar-btn{padding:8px 10px;font-size:13px}}@media(max-width:768px){.school-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr}.school-sidebar{flex-direction:row;overflow-x:auto;padding:10px}.sidebar-nav{flex-direction:row;gap:6px;width:max-content}.sidebar-btn{white-space:nowrap;padding:8px 15px}.school-right-panel{display:none}.cards-grid{grid-template-columns:1fr}}.school-empty-state{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 48px);padding:20px}.empty-state-card{text-align:center;padding:60px 40px;max-width:420px}.empty-state-icon{font-size:56px;margin-bottom:16px;opacity:.8}.empty-state-card h2,.school-choice-header h2{color:var(--color-text-accent);font-size:24px;font-weight:700;margin:0 0 10px}.empty-state-card p,.school-choice-header p{color:var(--color-text-muted);font-size:14px;margin:0;line-height:1.5}.school-choice-container{text-align:center;max-width:540px;width:100%}.school-choice-header{margin-bottom:32px}.school-choice-buttons{display:flex;gap:16px}.school-choice-btn{flex:1;background:var(--color-bg-dark);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:28px 20px;cursor:pointer;transition:all var(--transition-fast);display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.school-choice-btn:hover{background:var(--color-bg-medium);border-color:var(--border-gold);transform:translateY(-2px);box-shadow:var(--shadow-md),var(--shadow-gold)}.school-choice-btn .choice-icon{font-size:32px}.school-choice-btn .choice-title{color:var(--color-text-accent);font-size:16px;font-weight:700}.school-choice-btn .choice-desc{color:var(--color-text-muted);font-size:12px}.school-choice-btn.create{border-color:#d2b48c33}.school-choice-btn.create:hover{border-color:var(--color-gold)}.school-form-container{background:var(--color-bg-dark);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:32px;max-width:520px;width:100%;box-shadow:var(--shadow-lg)}.form-header{display:flex;align-items:center;gap:12px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border-subtle)}.form-header h2{color:var(--color-text-accent);font-size:20px;font-weight:700;margin:0}.form-back-btn{font-family:var(--font-primary);background:none;border:none;color:var(--color-text-muted);font-size:14px;cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm)}.form-back-btn:hover{color:var(--color-text-accent);background:#e4d5b114}.school-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{color:var(--color-text-muted);font-size:13px;font-weight:600}.required{color:var(--color-danger)}.form-input{font-family:var(--font-primary);background:var(--color-bg-darkest);border:1px solid var(--border-medium);color:var(--color-text-primary);padding:11px 14px;border-radius:var(--radius-md);font-size:14px;width:100%;box-sizing:border-box}.form-input::placeholder{color:var(--color-text-dim)}.form-input:focus{border-color:var(--color-gold);outline:none}.form-divider{display:flex;align-items:center;gap:12px;margin:8px 0}.form-divider:before,.form-divider:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.form-divider span{color:var(--color-text-dim);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.form-error{background:#d940401a;border:1px solid rgba(217,64,64,.3);color:#ef9a9a;padding:10px 14px;border-radius:var(--radius-md);font-size:13px}.form-submit{margin-top:8px;padding:12px 24px;font-size:15px}.form-submit:disabled{opacity:.6;cursor:not-allowed}.logo-preview{margin-top:8px;display:flex;justify-content:center}.logo-preview img{max-width:120px;max-height:80px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);padding:4px;object-fit:contain}.school-sidebar-header{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 4px 14px;border-bottom:1px solid var(--border-subtle);margin-bottom:6px}.school-sidebar-logo{width:48px;height:48px;border-radius:var(--radius-md);object-fit:contain;border:1px solid var(--border-subtle);padding:3px}.school-sidebar-initials{width:48px;height:48px;border-radius:var(--radius-md);background:var(--color-bg-medium);border:2px solid var(--border-gold);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:var(--color-gold);letter-spacing:1px}.school-sidebar-name{color:var(--color-text-accent);font-size:12px;font-weight:700;text-align:center}.school-sidebar-role{color:var(--color-text-dim);font-size:10px;text-transform:uppercase;letter-spacing:1px}.administration-tab{max-width:700px}.admin-card{background:#e4d5b108;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:24px;margin-bottom:20px}.admin-card-title{color:var(--color-text-accent);font-size:16px;font-weight:700;margin:0 0 6px}.admin-card-desc{color:var(--color-text-muted);font-size:13px;margin:0 0 16px}.invite-code-row{display:flex;align-items:center;gap:10px}.invite-code-display{display:flex;align-items:center;gap:10px;background:var(--color-bg-darkest);border:1px dashed var(--border-gold);border-radius:var(--radius-md);padding:10px 16px;cursor:pointer;flex:1}.invite-code-display:hover{box-shadow:var(--shadow-gold)}.invite-code-text{color:var(--color-gold);font-size:18px;font-weight:700;letter-spacing:2px;font-family:Courier New,monospace}.copy-icon{color:var(--color-text-muted);font-size:16px;margin-left:auto}.admin-form{display:flex;flex-direction:column;gap:16px}.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-form-grid .full-width{grid-column:1 / -1}.admin-form-actions{padding-top:12px;border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-end}.admin-message{padding:10px 14px;border-radius:var(--radius-md);font-size:13px;margin-bottom:8px}.admin-message.success{background:#6abf691a;border:1px solid rgba(106,191,105,.3);color:var(--color-success)}.admin-message.error{background:#d940401a;border:1px solid rgba(217,64,64,.3);color:#ef9a9a}.quick-role-select,.role-select{font-family:var(--font-primary);background:var(--color-bg-darkest);border:1px solid var(--color-gold);color:var(--color-gold);padding:4px 8px;border-radius:var(--radius-sm);font-size:12px;cursor:pointer;font-weight:600}.quick-role-select option,.role-select option{background:var(--color-bg-darkest);color:var(--color-text-primary)}.lessons-log{display:flex;flex-direction:column;gap:20px}.lessons-log-section{display:flex;flex-direction:column;gap:6px}.log-section-label{color:var(--color-text-dim);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;padding:0 4px;margin-bottom:4px}.lesson-log-item{display:flex;align-items:center;gap:14px;padding:12px 14px;background:#e4d5b10a;border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.lesson-log-item:hover{background:#e4d5b114}.lesson-log-item.highlighted{background:#d2b48c1a;border-color:var(--border-gold);box-shadow:var(--shadow-gold)}.lesson-log-item.past{opacity:.6}.lesson-log-date{display:flex;flex-direction:column;align-items:center;min-width:50px;gap:1px}.lesson-day{font-size:20px;font-weight:700;color:var(--color-text-accent);line-height:1}.lesson-month{font-size:11px;color:var(--color-text-muted);text-transform:uppercase}.lesson-time{font-size:11px;color:var(--color-text-dim);margin-top:2px}.lesson-log-info{flex:1;display:flex;flex-direction:column;gap:3px}.lesson-log-title{color:var(--color-text-primary);font-size:14px;font-weight:600}.lesson-log-meta{display:flex;gap:12px}.lesson-meta-group{color:var(--color-text-muted);font-size:12px}.lesson-meta-teacher{color:var(--color-text-dim);font-size:12px}.lesson-log-payment{flex-shrink:0}.nearest-section{padding:12px;background:#d2b48c0a;border-radius:var(--radius-lg);border:1px solid var(--border-subtle)}.payment-badge{font-size:12px;font-weight:600;padding:3px 8px;border-radius:10px}.payment-badge.paid{color:var(--color-success);background:#6abf691a}.payment-badge.unpaid{color:var(--color-danger);background:#d940401a}.pay-subtabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border-subtle);padding-bottom:8px;flex-wrap:wrap}.pay-subtab{font-family:var(--font-primary);background:transparent;border:none;color:var(--color-text-muted);padding:8px 14px;border-radius:var(--radius-sm) var(--radius-sm) 0 0;font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px}.pay-subtab:hover{background:#e4d5b114;color:var(--color-text-primary)}.pay-subtab.active{background:#e4d5b126;color:var(--color-text-accent);font-weight:600;border-bottom:2px solid var(--color-gold)}.pay-subtab-close{margin-left:6px;font-size:16px;opacity:.6;cursor:pointer}.pay-status-badge{font-size:12px;font-weight:600;padding:3px 10px;border-radius:10px;white-space:nowrap}.pay-table{border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}.pay-table-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#e4d5b10f;border-bottom:1px solid var(--border-subtle);font-size:11px;font-weight:700;color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.5px}.pay-table-row{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border-subtle);font-size:13px}.pay-table-row:last-child{border-bottom:none}.pay-table-row:hover{background:#e4d5b10a}.pay-table-row.clickable{cursor:pointer}.pay-table-row.clickable:hover{background:#e4d5b114}.pay-col-student{flex:2;color:var(--color-text-primary);font-weight:500}.pay-col-student.clickable{cursor:pointer;color:var(--color-text-accent)}.pay-col-student.clickable:hover{text-decoration:underline}.pay-col-lesson{flex:2;color:var(--color-text-muted)}.pay-col-date{flex:1;color:var(--color-text-muted)}.pay-col-amount{flex:1;color:var(--color-text-primary);font-weight:600}.pay-col-amount.overdue-text{color:var(--color-danger)}.pay-col-status{flex:1.2}.pay-col-paiddate{flex:1;color:var(--color-text-dim);font-size:12px}.pay-col-actions{flex:1.5;display:flex;gap:4px;justify-content:flex-end}.pay-col-count{flex:.8;color:var(--color-text-muted);text-align:center}.pay-dashboard{display:flex;flex-direction:column;gap:24px}.pay-finance-summary h3,.pay-top-debts h3{color:var(--color-text-accent);font-size:16px;font-weight:700;margin:0 0 12px}.pay-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.pay-summary-card{background:#e4d5b10a;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:16px;display:flex;flex-direction:column;gap:4px}.pay-summary-card.paid{border-left:3px solid #6ABF69}.pay-summary-card.pending{border-left:3px solid #E8A838}.pay-summary-card.overdue{border-left:3px solid #D94040}.pay-summary-label{font-size:12px;color:var(--color-text-dim);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.pay-summary-value{font-size:22px;font-weight:700;color:var(--color-text-accent)}.pay-summary-card.paid .pay-summary-value{color:#6abf69}.pay-summary-card.pending .pay-summary-value{color:#e8a838}.pay-summary-card.overdue .pay-summary-value{color:#d94040}.pay-student-balance{display:flex;gap:12px;margin-bottom:20px}.pay-balance-item{flex:1;background:#e4d5b10a;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:14px 16px;display:flex;flex-direction:column;gap:4px;text-align:center}.pay-balance-label{font-size:12px;color:var(--color-text-dim);font-weight:600}.pay-balance-value{font-size:20px;font-weight:700}.pay-balance-value.paid{color:#6abf69}.pay-balance-value.pending{color:#e8a838}.pay-balance-value.overdue{color:#d94040}.pay-overdue-summary{color:var(--color-text-muted);font-size:14px;margin-bottom:16px;padding:10px 14px;background:#d940400f;border:1px solid rgba(217,64,64,.15);border-radius:var(--radius-md)}.pay-overdue-summary strong{color:var(--color-danger)}.compose-box{background:#e4d5b10a;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:16px;margin-bottom:16px}.compose-form{display:flex;flex-direction:column;gap:10px}.compose-row{display:flex;gap:10px}.compose-textarea{font-family:var(--font-primary);background:var(--color-bg-darkest);border:1px solid var(--border-medium);color:var(--color-text-primary);padding:10px 14px;border-radius:var(--radius-md);font-size:14px;resize:vertical}.compose-textarea:focus{border-color:var(--color-gold);outline:none}.compose-actions{display:flex;gap:8px;justify-content:flex-end}.messages-list{display:flex;flex-direction:column;gap:8px}.message-item{padding:12px 14px;background:#e4d5b10a;border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.message-item.sent{border-left:3px solid var(--color-gold)}.message-item.received{border-left:3px solid var(--color-info)}.message-header{display:flex;justify-content:space-between;margin-bottom:6px}.message-from{color:var(--color-text-accent);font-size:13px;font-weight:600}.message-date{color:var(--color-text-dim);font-size:11px}.message-body{color:var(--color-text-primary);font-size:14px;line-height:1.5}.message-to{color:var(--color-text-dim);font-size:11px;margin-top:6px}@media(max-width:768px){.school-choice-buttons{flex-direction:column}.school-form-container{padding:20px}.admin-form-grid{grid-template-columns:1fr}.admin-form-grid .full-width{grid-column:1}.invite-code-row{flex-direction:column}.school-sidebar-header{display:none}.pay-summary-grid{grid-template-columns:repeat(2,1fr)}.pay-student-balance{flex-direction:column}.pay-table-header{display:none}.pay-table-row{flex-wrap:wrap;gap:4px}.compose-row{flex-direction:column}}.join-role-choice{display:flex;gap:10px}.join-role-btn{flex:1;font-family:var(--font-primary);background:var(--color-bg-darkest, #110D0A);border:2px solid var(--border-subtle, rgba(210,180,140,.08));border-radius:var(--radius-md, 10px);padding:14px 16px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--color-text-muted);font-size:14px;font-weight:500;transition:all .15s}.join-role-btn:hover{border-color:var(--border-medium);background:var(--color-bg-medium, #2E1F18)}.join-role-btn.active{border-color:var(--color-gold, #D2B48C);color:var(--color-text-accent);background:#d2b48c0f}.join-role-icon{font-size:24px}.guardian-join-note{display:flex;gap:8px;align-items:flex-start;padding:10px 14px;background:#e8a83814;border:1px solid rgba(232,168,56,.2);border-radius:var(--radius-md, 10px);font-size:13px;color:var(--color-text-muted);line-height:1.4}.guardian-children-section{margin:8px 0;padding:12px;background:#e4d5b10a;border:1px solid var(--border-subtle);border-radius:var(--radius-md, 10px)}.guardian-children-section>label{display:block;color:var(--color-text-accent);font-size:14px;font-weight:600;margin-bottom:10px}.linked-children-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.linked-child-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#e4d5b10a;border-radius:var(--radius-sm, 6px);font-size:13px;color:var(--color-text-primary)}.child-status{font-size:11px;font-weight:600}.child-status.pending{color:#e8a838}.child-status.confirmed{color:#6abf69}.child-status.rejected{color:#ef9a9a}.child-search-box{position:relative}.child-search-input{font-family:var(--font-primary);width:100%;padding:8px 12px;background:var(--color-bg-darkest, #110D0A);border:1px solid var(--border-medium);border-radius:var(--radius-sm, 6px);color:var(--color-text-primary);font-size:13px;box-sizing:border-box}.child-search-input:focus{border-color:var(--color-gold);outline:none}.child-search-loading{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--color-text-dim);font-size:12px}.child-search-results{margin-top:6px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm, 6px);overflow:hidden;max-height:150px;overflow-y:auto}.child-search-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:13px;color:var(--color-text-primary);transition:background .1s}.child-search-item:hover{background:#e4d5b114}.child-username{color:var(--color-text-dim);font-size:11px}.child-link-btn{margin-left:auto;font-family:var(--font-primary);background:#6abf6926;color:#6abf69;border:none;padding:4px 10px;border-radius:var(--radius-sm);font-size:11px;font-weight:600;cursor:pointer}.child-link-btn:hover{background:#6abf6940}.students-table{border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}.st-header{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#e4d5b10f;border-bottom:1px solid var(--border-subtle);font-size:11px;font-weight:700;color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.5px}.st-row{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border-subtle);font-size:13px;cursor:pointer;transition:background .15s}.st-row:last-child{border-bottom:none}.st-row:hover{background:#e4d5b10f}.st-col-name{flex:2.5;display:flex;align-items:center;gap:10px;color:var(--color-text-primary);font-weight:500}.st-col-age{flex:.6;color:var(--color-text-muted);text-align:center}.st-col-group,.st-col-lesson{flex:1.5;color:var(--color-text-muted)}.st-col-pay{flex:1}.st-col-actions{flex:.5;display:flex;justify-content:flex-end}.st-avatar{width:32px;height:32px;border-radius:50%;background:var(--color-bg-medium, #2E1F18);border:1px solid var(--border-medium);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--color-text-accent);flex-shrink:0}.st-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-group-badge{font-size:12px}.st-next-lesson{font-size:12px;color:var(--color-text-primary)}.st-pay-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:8px}.st-pay-badge.paid{color:#6abf69;background:#6abf691f}.st-pay-badge.pending{color:#e8a838;background:#e8a8381f}.st-pay-badge.overdue{color:#d94040;background:#d940401f}.invite-modal{max-width:420px}.invite-msg{padding:8px 12px;border-radius:var(--radius-sm);font-size:13px;margin-top:4px}@media(max-width:768px){.st-header{display:none}.st-row{flex-wrap:wrap;gap:4px}.st-col-name{flex:100%}.st-col-age,.st-col-lesson{display:none}.st-col-group,.st-col-pay{flex:1}}.settings-tab{max-width:600px}.settings-card{background:#e4d5b108;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:24px;margin-bottom:20px}.settings-card-title{color:var(--color-text-accent);font-size:16px;font-weight:700;margin:0 0 16px}.settings-info-grid{display:flex;flex-direction:column;gap:12px}.settings-info-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border-subtle)}.settings-info-row:last-child{border-bottom:none}.settings-label{color:var(--color-text-muted);font-size:13px;font-weight:500}.settings-value{color:var(--color-text-primary);font-size:14px;font-weight:600}.settings-role-badge{background:#d2b48c1f;color:var(--color-gold);padding:3px 10px;border-radius:8px;font-size:12px}.settings-danger-zone{border-color:#d9404033;background:#d9404008}.settings-danger-desc{color:var(--color-text-muted);font-size:13px;line-height:1.5;margin:0 0 16px}.btn-leave-school{font-family:var(--font-primary);background:transparent;color:#d94040;border:2px solid rgba(217,64,64,.3);padding:10px 20px;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}.btn-leave-school:hover{background:#d940401a;border-color:#d9404080}.leave-confirm-box{background:#d940400f;border:1px solid rgba(217,64,64,.2);border-radius:var(--radius-md);padding:16px}.leave-confirm-text{color:var(--color-text-primary);font-size:14px;margin:0 0 12px}.leave-confirm-text strong{color:var(--color-text-accent)}.leave-confirm-actions{display:flex;gap:10px}.btn-leave-cancel{font-family:var(--font-primary);background:var(--color-gold);color:var(--color-text-dark);border:none;padding:8px 20px;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer}.btn-leave-confirm{font-family:var(--font-primary);background:#d94040;color:#fff;border:none;padding:8px 20px;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer}.btn-leave-confirm:disabled{opacity:.6;cursor:not-allowed}.admin-danger-zone{border-color:#d9404033;background:#d9404008;margin-top:20px}.admin-danger-zone .admin-card-title{color:#ef9a9a}.school-status-badge{font-size:13px;padding:3px 10px;border-radius:8px;font-weight:700}.school-status-badge.active{color:#6abf69;background:#6abf691f}.school-status-badge.inactive{color:#e8a838;background:#e8a8381f}.status-actions{display:flex;flex-direction:column;gap:12px}.status-action-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;background:#e4d5b108;border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.status-action-row.danger{border-color:#d9404033;background:#d9404008}.status-action-info{display:flex;flex-direction:column;gap:4px;flex:1}.status-action-title{color:var(--color-text-primary);font-size:14px;font-weight:600}.status-action-desc{color:var(--color-text-muted);font-size:12px;line-height:1.4}.btn-status-warn{font-family:var(--font-primary);background:transparent;color:#e8a838;border:2px solid rgba(232,168,56,.3);padding:8px 18px;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s}.btn-status-warn:hover{background:#e8a8381a;border-color:#e8a83880}.btn-status-danger{font-family:var(--font-primary);background:transparent;color:#d94040;border:2px solid rgba(217,64,64,.3);padding:8px 18px;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s}.btn-status-danger:hover{background:#d940401a;border-color:#d9404080}.status-confirm-box{padding:20px;border-radius:var(--radius-md);animation:statusConfirmIn .2s ease}.status-confirm-box.warn{background:#e8a8380f;border:1px solid rgba(232,168,56,.25)}.status-confirm-box.danger{background:#d940400f;border:1px solid rgba(217,64,64,.25)}@keyframes statusConfirmIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.status-confirm-title{color:var(--color-text-primary);font-size:15px;font-weight:700;margin:0 0 8px}.status-confirm-desc{color:var(--color-text-muted);font-size:13px;line-height:1.5;margin:0 0 16px}.status-confirm-desc strong{color:var(--color-text-accent)}.status-confirm-actions{display:flex;gap:10px}.btn-status-cancel{font-family:var(--font-primary);background:var(--color-bg-darkest);color:var(--color-text-primary);border:1px solid var(--border-medium);padding:9px 20px;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.btn-status-cancel:hover{background:var(--color-bg-medium)}.btn-status-confirm{font-family:var(--font-primary);border:none;padding:9px 20px;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.btn-status-confirm.warn{background:#e8a838;color:#1c1410}.btn-status-confirm.warn:hover{background:#d49a2e}.btn-status-confirm.danger{background:#d94040;color:#fff}.btn-status-confirm.danger:hover{background:#c03030}.btn-status-confirm:disabled{opacity:.6;cursor:not-allowed}.inactive-overlay{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 120px);padding:20px}.inactive-modal{text-align:center;max-width:400px;padding:48px 36px;background:var(--color-bg-dark);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.inactive-icon{font-size:56px;margin-bottom:16px;opacity:.8}.inactive-title{color:var(--color-text-accent);font-size:22px;font-weight:700;margin:0 0 12px}.inactive-desc{color:var(--color-text-muted);font-size:14px;line-height:1.5;margin:0 0 24px}.btn-activate{font-family:var(--font-primary);background:var(--color-gold);color:var(--color-text-dark);border:none;padding:14px 32px;border-radius:var(--radius-md);font-size:16px;font-weight:700;cursor:pointer;transition:all .15s;box-shadow:var(--shadow-sm)}.btn-activate:hover{background:var(--color-gold-light);transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-activate:disabled{opacity:.6;cursor:not-allowed;transform:none}.inactive-note{color:var(--color-text-dim);font-size:13px;margin:0;font-style:italic}.pvp-end-overlay{position:fixed;inset:0;background:#000000b8;display:flex;align-items:center;justify-content:center;z-index:9999;animation:pvpFadeIn .2s ease}@keyframes pvpFadeIn{0%{opacity:0}to{opacity:1}}.pvp-end-modal{background:#e8e8e8;border-radius:14px;box-shadow:0 12px 48px #00000073;max-width:420px;width:92%;padding:32px 28px 24px;text-align:center;position:relative;animation:pvpSlideIn .3s ease}@keyframes pvpSlideIn{0%{transform:translateY(-40px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.pvp-end-close{position:absolute;top:12px;right:14px;background:none;border:none;font-size:18px;color:#888;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .15s;line-height:1}.pvp-end-close:hover{background:#00000014;color:#333}.pvp-end-title{margin:0 0 4px;font-size:28px;font-weight:800;color:#333;letter-spacing:-.5px}.pvp-end-title.win{color:#222}.pvp-end-title.lose{color:#555}.pvp-end-title.draw{color:#444}.pvp-end-subtitle{font-size:13px;color:#888;margin:0 0 20px;font-weight:500}.pvp-end-players{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:18px}.pvp-end-player{display:flex;flex-direction:column;align-items:center;gap:6px;transition:all .3s}.pvp-player-avatar{width:68px;height:68px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:all .3s;border:3px solid transparent}.pvp-player-avatar svg{width:46px;height:46px}.pvp-end-player.winner .pvp-player-avatar{background:#fff;border-color:#4caf50;color:#333;box-shadow:0 2px 12px #4caf504d}.pvp-end-player.loser .pvp-player-avatar{background:#d5d5d5;border-color:#bbb;color:#999;opacity:.7}.pvp-end-player.drawn .pvp-player-avatar{background:#f0f0f0;border-color:#ccc;color:#666}.pvp-player-name{font-size:13px;font-weight:600;color:#555;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pvp-end-player.winner .pvp-player-name{color:#333;font-weight:700}.pvp-end-score{font-size:22px;font-weight:800;color:#333;min-width:50px;letter-spacing:1px}.pvp-end-rank{margin-bottom:16px}.rank-label{display:block;font-size:11px;font-weight:700;color:#888;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:2px}.rank-value{display:flex;align-items:baseline;justify-content:center;gap:8px}.rank-number{font-size:34px;font-weight:800;color:#222;letter-spacing:-1px}.rank-change{font-size:18px;font-weight:700}.rank-change.positive{color:#4caf50}.rank-change.negative{color:#e53935}.pvp-end-analyze{width:100%;padding:14px 24px;font-size:20px;font-weight:700;border:none;border-radius:10px;cursor:pointer;background:#4caf50;color:#fff;margin-bottom:16px;box-shadow:0 4px 14px #4caf5059;transition:all .2s;letter-spacing:.3px}.pvp-end-analyze:hover{background:#43a047;transform:translateY(-2px);box-shadow:0 6px 18px #4caf5073}.pvp-end-analyze:active{transform:translateY(0)}.pvp-end-stats{display:flex;justify-content:center;gap:18px;margin-bottom:18px}.pvp-end-stats.analyzing{flex-direction:column;align-items:center;gap:12px;padding:14px 0;color:#888;font-size:14px}.pvp-stat-spinner{width:32px;height:32px;border:3px solid #ddd;border-top-color:#4caf50;border-radius:50%;animation:pvpSpin .8s linear infinite}@keyframes pvpSpin{to{transform:rotate(360deg)}}.pvp-stat-item{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:75px;animation:pvpStatPop .5s ease-out both}.pvp-stat-item:nth-child(1){animation-delay:.1s}.pvp-stat-item:nth-child(2){animation-delay:.35s}.pvp-stat-item:nth-child(3){animation-delay:.6s}@keyframes pvpStatPop{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}.pvp-stat-number{font-size:26px;font-weight:800;width:52px;height:52px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff}.pvp-stat-label{font-size:11px;color:#777;font-weight:600}.stat-brilliant .pvp-stat-number{background:#1abc9c}.stat-great .pvp-stat-number{background:#5dade2}.stat-best .pvp-stat-number{background:#58d68d}.stat-excellent .pvp-stat-number{background:#7dcea0}.stat-good .pvp-stat-number{background:#82e0aa}.stat-inaccuracy .pvp-stat-number{background:#f4b942}.stat-mistake .pvp-stat-number{background:#e67e22}.stat-blunder .pvp-stat-number{background:#e74c3c}.pvp-end-guest{background:linear-gradient(135deg,#f5f7fa,#e4e8ec);border:1px solid #ddd;border-radius:10px;padding:22px 18px;margin-bottom:16px}.pvp-guest-icon{font-size:36px;margin-bottom:8px}.pvp-guest-text{color:#555;font-size:13px;line-height:1.5;margin:0 0 14px}.pvp-end-login-btn{width:100%;padding:13px 20px;font-size:15px;font-weight:600;border:none;border-radius:8px;cursor:pointer;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea4d;transition:all .2s}.pvp-end-login-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.pvp-rematch-request{background:#fff3cd;border:1px solid #ffc107;border-radius:8px;padding:12px 16px;margin-bottom:14px;animation:pvpFadeIn .3s ease}.pvp-rematch-request p{margin:0 0 10px;font-size:14px;font-weight:600;color:#856404}.pvp-rematch-btns{display:flex;gap:8px;justify-content:center}.pvp-rematch-accept{padding:7px 18px;background:#4caf50;color:#fff;border:none;border-radius:6px;font-weight:600;font-size:13px;cursor:pointer;transition:background .15s}.pvp-rematch-accept:hover{background:#43a047}.pvp-rematch-decline{padding:7px 18px;background:#ccc;color:#555;border:none;border-radius:6px;font-weight:600;font-size:13px;cursor:pointer;transition:background .15s}.pvp-rematch-decline:hover{background:#bbb}.pvp-rematch-declined{font-size:12px;color:#e53935;margin:8px 0 0;font-weight:500}.pvp-end-actions{display:flex;gap:12px}.pvp-end-btn{flex:1;padding:14px 16px;font-size:16px;font-weight:700;border:none;border-radius:8px;cursor:pointer;transition:all .2s;color:#fff}.pvp-end-btn.rematch{background:#888;box-shadow:0 2px 8px #00000026}.pvp-end-btn.rematch:hover:not(:disabled){background:#777;transform:translateY(-2px);box-shadow:0 4px 12px #0003}.pvp-end-btn.rematch.sent{background:#aaa;cursor:not-allowed;opacity:.7}.pvp-end-btn.nextgame{background:#666;box-shadow:0 2px 8px #00000026}.pvp-end-btn.nextgame:hover{background:#555;transform:translateY(-2px);box-shadow:0 4px 12px #0003}.pvp-end-btn:active{transform:translateY(0)!important}.pvp-end-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:480px){.pvp-end-modal{padding:24px 18px 20px;width:96%}.pvp-end-title{font-size:24px}.pvp-player-avatar{width:56px;height:56px}.pvp-player-avatar svg{width:36px;height:36px}.pvp-end-score{font-size:18px}.rank-number{font-size:28px}.rank-change{font-size:15px}.pvp-end-analyze{font-size:17px;padding:12px 20px}.pvp-stat-number{width:44px;height:44px;font-size:22px}.pvp-end-btn{padding:12px;font-size:14px}.pvp-end-players{gap:12px}}.pvp-game-page{min-height:100vh;background:var(--color-bg-board)}.pvp-loading{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 48px);color:var(--color-text-primary);font-size:18px}.pvp-connecting{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 48px);color:var(--color-text-primary);gap:20px}.pvp-connect-spinner{width:50px;height:50px;border:4px solid var(--border-subtle);border-top-color:var(--color-gold);border-radius:50%;animation:pvp-spin 1s linear infinite}@keyframes pvp-spin{to{transform:rotate(360deg)}}.leave-confirm-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:9998}.leave-confirm-box{background:var(--color-bg-dark);border:1px solid var(--border-gold);border-radius:var(--radius-lg);padding:28px 24px;text-align:center;max-width:340px;width:90%;box-shadow:var(--shadow-lg),var(--shadow-gold)}.leave-confirm-box p{color:var(--color-text-primary);font-size:15px;margin-bottom:8px;font-weight:600}.leave-confirm-box .leave-warn{color:var(--color-danger);font-size:13px;margin-bottom:20px}.leave-confirm-btns{display:flex;gap:10px}.leave-confirm-btns button{flex:1;padding:11px 16px;border-radius:var(--radius-md);font-weight:600;font-size:14px;cursor:pointer;font-family:var(--font-primary)}.leave-stay-btn{background:var(--color-gold)!important;color:var(--color-text-dark)!important;border:none!important}.leave-stay-btn:hover{background:var(--color-gold-light)!important}.leave-go-btn{background:transparent!important;color:var(--color-danger)!important;border:1px solid var(--color-danger)!important}.leave-go-btn:hover{background:#d940401a!important}.pvp-game-layout{display:flex;gap:20px;max-width:1200px;margin:0 auto;padding:16px 20px;align-items:flex-start;min-height:calc(100vh - 48px)}.pvp-side-panel{width:300px;display:flex;flex-direction:column;gap:4px;flex-shrink:0;overflow:hidden}.pvp-panel-spacer{flex:1}.pvp-panel-middle{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.player-box{background:var(--color-bg-darkest);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:10px 12px;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.player-box.me{border-color:var(--border-gold);background:linear-gradient(135deg,var(--color-bg-darkest) 0%,rgba(210,180,140,.06) 100%)}.player-box.opponent{border-color:var(--border-subtle)}.player-info-left{display:flex;align-items:center;gap:10px}.player-avatar-circle{width:36px;height:36px;border-radius:8px;background:var(--color-bg-medium);border:2px solid var(--border-medium);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:var(--color-text-muted);flex-shrink:0}.player-avatar-circle.me-avatar{border-color:var(--color-gold);color:var(--color-text-accent);background:#d2b48c1a}.player-details{display:flex;flex-direction:column;gap:1px}.player-name{color:var(--color-text-accent);font-weight:600;font-size:14px}.player-rating{color:var(--color-text-muted);font-size:12px;font-weight:500}.disconnect-countdown{color:var(--color-danger);font-size:10px;font-weight:600;animation:dc-blink 1s ease infinite;margin-top:1px}@keyframes dc-blink{0%,to{opacity:1}50%{opacity:.4}}.clock{font-family:Courier New,monospace;font-size:18px;font-weight:700;color:var(--color-text-dim);background:var(--color-bg-dark);padding:5px 10px;border-radius:var(--radius-md);min-width:65px;text-align:center;border:1px solid var(--border-subtle)}.clock.active{color:var(--color-gold);background:#d2b48c14;border-color:var(--color-gold);box-shadow:0 0 8px #d2b48c26}.material-row{display:flex;align-items:center;gap:2px;padding:2px 8px;min-height:22px;flex-shrink:0}.captured-pieces{display:flex;align-items:center}.captured-piece{font-size:20px;line-height:1;margin-left:-4px;opacity:1;text-shadow:-1px -1px 0 rgba(255,255,255,.7),1px -1px 0 rgba(255,255,255,.7),-1px 1px 0 rgba(255,255,255,.7),1px 1px 0 rgba(255,255,255,.7),0 0 4px rgba(255,255,255,.3)}.captured-piece:first-child{margin-left:0}.material-diff{font-size:14px;font-weight:700;margin-left:6px}.material-diff.opp-diff{color:var(--color-text-muted)}.material-diff.my-diff{color:var(--color-gold)}.game-status{background:var(--color-bg-dark);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:10px 12px;text-align:center;color:var(--color-text-muted);font-size:14px}.game-status .your-turn{color:var(--color-gold);font-weight:700;font-size:15px}.waiting-status{display:flex;flex-direction:column;align-items:center;gap:8px;padding:4px 0}.waiting-spinner{width:22px;height:22px;border:3px solid var(--border-subtle);border-top-color:var(--color-gold);border-radius:50%;animation:pvp-spin 1s linear infinite}.waiting-status span{color:var(--color-gold);font-size:13px;font-weight:500}.result-box{display:flex;flex-direction:column;gap:6px}.result-main{font-size:16px;font-weight:700;color:var(--color-text-accent)}.show-modal-btn{font-family:var(--font-primary);background:var(--color-bg-darkest);border:1px solid var(--border-gold);color:var(--color-text-accent);padding:6px 14px;border-radius:var(--radius-md);cursor:pointer;font-size:12px;font-weight:600}.show-modal-btn:hover{background:var(--color-bg-medium);box-shadow:var(--shadow-gold)}.move-history-box{background:var(--color-bg-darkest);border:1px solid var(--border-subtle);border-radius:var(--radius-md);max-height:90px;overflow-y:auto;flex-shrink:0}.move-history-list{display:flex;flex-direction:column;gap:1px;padding:4px 8px;font-size:12px}.move-pair{display:flex;align-items:center;gap:4px;padding:2px 4px;border-radius:3px}.move-pair:nth-child(odd){background:#ffffff08}.move-num{color:var(--color-text-dim);min-width:22px;font-size:11px;font-weight:600}.move-white{color:wheat;min-width:46px;font-weight:600}.move-black{color:#c4b99a;min-width:46px;font-weight:500}.draw-offer{background:#d2b48c0f;border:1px solid var(--border-gold);border-radius:var(--radius-md);padding:10px;text-align:center}.draw-offer p{color:var(--color-gold);margin-bottom:8px;font-size:13px}.draw-btns{display:flex;gap:8px;justify-content:center}.draw-btns button{font-family:var(--font-primary);padding:6px 14px;border-radius:var(--radius-md);font-weight:600;cursor:pointer;font-size:12px;border:none}.draw-btns .accept{background:var(--color-gold);color:var(--color-text-dark)}.draw-btns .decline{background:var(--color-bg-darkest);color:var(--color-text-primary);border:1px solid var(--border-medium)}.game-actions{display:flex;gap:8px}.game-actions button{font-family:var(--font-primary);flex:1;padding:10px 8px;border-radius:var(--radius-md);font-weight:600;cursor:pointer;font-size:12px;background:var(--color-bg-darkest);color:var(--color-text-primary);border:1px solid var(--border-medium)}.game-actions button:hover{background:var(--color-bg-medium);border-color:var(--border-gold)}.game-actions button:disabled{opacity:.5;cursor:not-allowed}.game-actions .resign-btn{border-color:#d940404d;color:#ef9a9a}.game-actions .resign-btn:hover{background:#d940401f;border-color:var(--color-danger)}.game-actions .play-again-btn{background:var(--color-gold);color:var(--color-text-dark);border-color:var(--color-gold)}.chat-box{background:var(--color-bg-dark);border:1px solid var(--border-subtle);border-radius:var(--radius-md);display:flex;flex-direction:column;height:130px;flex-shrink:0}.chat-messages{flex:1;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:3px;min-height:0}.chat-msg{font-size:11px;padding:3px 6px;border-radius:var(--radius-sm);max-width:90%}.chat-msg.me{background:#d2b48c1f;color:var(--color-gold-light);align-self:flex-end}.chat-msg.opponent{background:#e6dfc60f;color:var(--color-text-muted);align-self:flex-start}.chat-msg.system{background:transparent;color:var(--color-text-dim);align-self:center;font-style:italic;font-size:10px}.chat-input-area{position:relative}.chat-form{display:flex;gap:3px;padding:5px 6px;border-top:1px solid var(--border-subtle);align-items:center}.chat-form input{flex:1;background:var(--color-bg-darkest);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:5px 8px;color:var(--color-text-primary);font-size:11px;font-family:var(--font-primary)}.chat-form input::placeholder{color:var(--color-text-dim)}.chat-form input:focus{border-color:var(--color-gold);outline:none}.chat-form button[type=submit]{font-family:var(--font-primary);background:var(--color-gold);border:none;color:var(--color-text-dark);padding:5px 10px;border-radius:var(--radius-sm);cursor:pointer;font-size:12px;font-weight:700}.quick-chat-btn{background:#e6dfc60f!important;color:var(--color-text-primary)!important;padding:4px 7px!important;font-size:14px!important;border-radius:var(--radius-sm)!important;border:1px solid var(--border-subtle)!important;flex-shrink:0;line-height:1}.quick-chat-btn:hover{background:#e6dfc624!important;border-color:var(--border-gold)!important}.emoji-btn{font-size:13px!important}.quick-chat-popup{position:absolute;bottom:100%;left:0;right:0;background:var(--color-bg-darkest);border:1px solid var(--border-gold);border-radius:var(--radius-md);padding:6px;margin-bottom:4px;display:flex;flex-wrap:wrap;gap:4px;box-shadow:0 -4px 16px #00000080,var(--shadow-gold);animation:quickChatIn .15s ease;z-index:10;max-height:130px;overflow-y:auto}@keyframes quickChatIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.quick-chat-option{font-family:var(--font-primary);background:var(--color-bg-dark);border:1px solid var(--border-subtle);color:var(--color-text-primary);padding:5px 10px;border-radius:14px;font-size:11px;cursor:pointer;white-space:nowrap}.quick-chat-option:hover{background:#d2b48c1f;border-color:var(--color-gold);color:var(--color-text-accent)}.emoji-popup{gap:2px!important;padding:8px!important}.emoji-option{background:transparent;border:none;font-size:20px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);cursor:pointer;padding:0}.emoji-option:hover{background:#e6dfc61a;transform:scale(1.2)}.pvp-board{flex:1;display:flex;justify-content:center;align-items:flex-start}@media(max-width:900px){.pvp-game-layout{flex-direction:column-reverse;align-items:center;padding:10px;gap:12px}.pvp-side-panel{width:100%;max-width:480px;height:auto!important;overflow:visible}.pvp-panel-spacer{display:none}.chat-box{max-height:60px}}@media(max-width:600px){.player-avatar-circle{width:30px;height:30px;font-size:13px}.player-name{font-size:13px}.clock{font-size:16px;padding:4px 8px;min-width:58px}.captured-piece{font-size:12px}}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.edit-profile-modal{background:linear-gradient(135deg,#1a1a2e,#16213e);border:1px solid rgba(255,255,255,.1);border-radius:16px;width:100%;max-width:450px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.edit-profile-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;border-bottom:1px solid rgba(255,255,255,.1)}.edit-profile-modal .modal-header h2{color:#fff;font-size:20px;margin:0}.close-btn{background:none;border:none;color:#ffffff80;font-size:28px;cursor:pointer;padding:0;line-height:1;transition:color .2s}.close-btn:hover{color:#fff}.modal-error{background:#e74c3c33;border:1px solid rgba(231,76,60,.3);color:#e74c3c;padding:12px 20px;margin:15px 25px 0;border-radius:8px;font-size:14px}.edit-profile-modal form{padding:25px}.form-section{margin-bottom:25px}.form-section label{display:block;color:#fffc;font-size:13px;font-weight:500;margin-bottom:10px}.avatar-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.avatar-option{aspect-ratio:1;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:10px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.avatar-option:hover{background:#ffffff1a;border-color:#fff3}.avatar-option.selected{background:#667eea33;border-color:#667eea}.avatar-icon{font-size:28px}.form-section input{width:100%;background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#fff;padding:14px 16px;border-radius:10px;font-size:15px;transition:all .2s}.form-section input::placeholder{color:#ffffff4d}.form-section input:focus{outline:none;border-color:#667eea;background:#ffffff1f}.input-hint{display:block;color:#fff6;font-size:12px;margin-top:8px}.edit-profile-modal .modal-actions{display:flex;gap:12px;margin-top:30px}.cancel-btn{flex:1;background:#ffffff1a;color:#fffc;border:1px solid rgba(255,255,255,.2);padding:14px;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.cancel-btn:hover{background:#ffffff26;color:#fff}.save-btn{flex:1;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:14px;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.save-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #667eea66}.save-btn:disabled{opacity:.7;cursor:not-allowed}.language-select{display:flex;gap:10px}.language-option{flex:1;padding:12px 16px;border:2px solid rgba(255,255,255,.15);border-radius:10px;background:#ffffff0d;color:#ffffffb3;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;text-align:center}.language-option:hover{border-color:#ffffff4d;background:#ffffff1a;color:#fff}.language-option.selected{border-color:#667eea;background:#667eea33;color:#fff}@media(max-width:480px){.edit-profile-modal{border-radius:12px}.modal-header,.edit-profile-modal form{padding:20px}.avatar-grid{grid-template-columns:repeat(4,1fr)}.avatar-icon{font-size:24px}.modal-actions{flex-direction:column}}.guardian-section{margin-top:30px;padding:24px;background:var(--color-bg-dark, #1a1510);border:1px solid var(--border-subtle, rgba(210,180,140,.08));border-radius:var(--radius-lg, 14px)}.guardian-title{color:var(--color-text-accent, #E8D5B5);font-size:18px;font-weight:700;margin:0 0 20px}.guardian-add-card{background:#e4d5b108;border:1px solid var(--border-subtle);border-radius:var(--radius-md, 10px);padding:16px;margin-bottom:20px}.guardian-add-card h3{color:var(--color-text-primary);font-size:14px;margin:0 0 6px}.guardian-add-desc{color:var(--color-text-muted);font-size:12px;margin:0 0 12px}.guardian-add-form{display:flex;flex-direction:row;gap:8px;background:transparent;padding:0;box-shadow:none;margin:0;border-radius:0}.guardian-add-form .guardian-email-input{flex:1;width:0;min-width:0;max-width:none;margin:0;font-family:var(--font-primary);background:var(--color-bg-darkest);border:1px solid var(--border-medium);color:var(--color-text-primary);padding:8px 12px;border-radius:var(--radius-md);font-size:13px}.guardian-add-form .guardian-email-input:focus{border-color:var(--color-gold);outline:none}.guardian-add-btn{font-family:var(--font-primary);background:var(--color-gold, #D2B48C);color:var(--color-text-dark, #1C1410);border:none;padding:8px 16px;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.guardian-add-btn:hover{opacity:.9}.guardian-add-btn:disabled{opacity:.5;cursor:not-allowed}.guardian-msg{margin-top:8px;padding:8px 12px;border-radius:var(--radius-sm);font-size:12px;font-weight:600}.guardian-msg.success{background:#6abf6926;color:#6abf69}.guardian-msg.error{background:#d9404026;color:#ef9a9a}.guardian-children-list,.guardian-pending{margin-bottom:16px}.guardian-children-list h3,.guardian-pending h3{color:var(--color-text-primary);font-size:14px;margin:0 0 10px}.guardian-child-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:6px;cursor:pointer;transition:background .15s}.guardian-child-row:hover{background:#e4d5b10f}.guardian-child-row.active{background:#e4d5b114;border-color:var(--color-gold)}.guardian-child-row.pending{opacity:.6;cursor:default}.child-avatar{font-size:20px;flex-shrink:0}.child-info{flex:1;min-width:0}.child-name{color:var(--color-text-primary);font-weight:600;font-size:14px}.child-surname{color:var(--color-text-muted);font-size:12px;display:block}.child-status-label{color:var(--color-text-dim);font-size:12px;font-style:italic}.child-actions{flex-shrink:0}.btn-remove-child{background:transparent;border:1px solid rgba(217,64,64,.3);color:#ef9a9a;width:26px;height:26px;border-radius:50%;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:all .15s}.btn-remove-child:hover{background:#d9404026}.remove-inline{display:flex;gap:4px}.btn-confirm-yes{font-family:var(--font-primary);background:#d94040;color:#fff;border:none;padding:4px 10px;border-radius:var(--radius-sm);font-size:11px;font-weight:600;cursor:pointer}.btn-confirm-no{font-family:var(--font-primary);background:var(--color-bg-darkest);color:var(--color-text-muted);border:1px solid var(--border-medium);padding:4px 10px;border-radius:var(--radius-sm);font-size:11px;cursor:pointer}.guardian-empty{color:var(--color-text-dim);font-size:13px;text-align:center;padding:20px 0}.child-dashboard{margin-top:20px;padding:20px;background:#e4d5b105;border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.dash-header h3{color:var(--color-text-accent);font-size:16px;margin:0 0 16px}.dash-kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}.dash-kpi{background:var(--color-bg-darkest);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px;text-align:center}.kpi-label{display:block;color:var(--color-text-dim);font-size:11px;margin-bottom:4px}.kpi-value{display:block;color:var(--color-text-accent);font-size:20px;font-weight:700}.kpi-change{display:block;font-size:12px;font-weight:700;margin-top:2px}.kpi-change.positive{color:#6abf69}.kpi-change.negative{color:#ef5350}.dash-section{margin-bottom:16px}.dash-section h4{color:var(--color-text-primary);font-size:14px;margin:0 0 8px;font-weight:600}.dash-empty{color:var(--color-text-dim);font-size:12px;font-style:italic}.dash-list{display:flex;flex-direction:column;gap:4px}.dash-item{display:flex;align-items:center;gap:12px;padding:8px 10px;background:var(--color-bg-darkest);border-radius:var(--radius-sm);font-size:13px}.dash-item-date{color:var(--color-text-dim);font-size:11px;min-width:80px}.dash-item-title{color:var(--color-text-primary);flex:1}.dash-item-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px}.dash-item-badge.paid,.dash-item-badge.win{background:#6abf691f;color:#6abf69}.dash-item-badge.pending,.dash-item-badge.draw{background:#e8a8381f;color:#e8a838}.dash-item-badge.overdue,.dash-item-badge.loss{background:#d940401f;color:#ef9a9a}@media(max-width:600px){.dash-kpi-grid{grid-template-columns:repeat(2,1fr)}.guardian-add-form{flex-direction:column}}.profile-page{min-height:calc(100vh - 60px);padding:30px 20px}.profile-container{max-width:800px;margin:0 auto}.profile-loading,.profile-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;color:var(--color-text-muted)}.profile-error h2{color:var(--color-text-primary);margin-bottom:16px}.profile-error button{background:linear-gradient(180deg,var(--color-gold) 0%,var(--color-gold-dark) 100%);color:var(--color-text-dark);border:none;padding:10px 24px;border-radius:8px;cursor:pointer;font-weight:600}.profile-header{display:flex;align-items:center;gap:20px;padding:24px;background:var(--color-bg-dark);border-radius:12px;margin-bottom:24px}.profile-avatar{position:relative;width:80px;height:80px;flex-shrink:0}.profile-avatar-img{position:absolute;top:0;left:0;width:80px;height:80px;border-radius:50%;object-fit:cover;z-index:1}.avatar-placeholder{width:80px;height:80px;border-radius:50%;background:#3a2820;color:tan;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;border:3px solid #D2B48C;box-shadow:0 0 0 2px #d2b48c26}.profile-info{flex:1}.profile-name{font-size:28px;font-weight:700;color:var(--color-text-primary);margin:0;display:flex;align-items:center;gap:10px}.profile-flag{font-size:24px}.profile-school{color:var(--color-text-muted);font-size:14px;margin-top:4px}.edit-profile-btn{background:var(--color-bg-medium);color:var(--color-text-accent);border:1px solid rgba(210,180,140,.2);padding:8px 20px;border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s}.edit-profile-btn:hover{background:var(--color-bg-board);border-color:var(--color-gold-dark)}.profile-friend-btn-area{flex-shrink:0}.friend-request-btn{font-family:var(--font-primary);background:var(--color-gold);color:var(--color-text-dark);border:none;padding:8px 18px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s}.friend-request-btn:hover{background:var(--color-gold-light)}.friend-request-btn:disabled{opacity:.6;cursor:not-allowed}.friend-request-btn.sent{background:var(--color-bg-medium);color:var(--color-text-muted);border:1px solid var(--border-medium)}.friend-status-badge{color:var(--color-gold);font-size:13px;font-weight:600;padding:8px 16px;background:#d2b48c14;border:1px solid var(--border-gold);border-radius:8px}.profile-ratings{margin-bottom:24px}.profile-ratings .section-title{color:var(--color-text-primary);font-size:18px;font-weight:600;margin-bottom:16px}.ratings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.rating-card{background:var(--color-bg-dark);border-radius:12px;padding:20px;border:1px solid rgba(210,180,140,.08)}.rating-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}.rating-type{color:var(--color-text-muted);font-size:14px;text-transform:capitalize}.rating-value{color:var(--color-text-primary);font-size:22px;font-weight:700}.rating-change{font-size:13px;margin-left:6px;font-weight:600}.rating-change.positive{color:#4caf50}.rating-change.negative{color:#ef5350}.rating-chart{height:50px;overflow:hidden}.chart-placeholder{width:100%;height:100%}.chart-placeholder svg{width:100%;height:100%}.chart-placeholder path{stroke:var(--color-gold);stroke-width:2;opacity:.6}.profile-games{margin-bottom:24px}.games-list{display:flex;flex-direction:column;gap:4px}.game-entry{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-bg-dark);border-radius:8px;cursor:pointer;transition:background .15s}.game-entry:hover{background:var(--color-bg-medium)}.game-type-icon{font-size:18px;width:28px;text-align:center;flex-shrink:0}.opponent-avatar{position:relative;width:32px;height:32px;flex-shrink:0}.opponent-avatar img{position:absolute;top:0;left:0;width:32px;height:32px;border-radius:50%;object-fit:cover;z-index:1}.avatar-small{width:32px;height:32px;border-radius:50%;background:var(--color-bg-board);color:var(--color-text-accent);border:2px solid var(--color-gold-dark);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600}.opponent-info{flex:1;min-width:0}.opponent-name{color:var(--color-text-primary);font-weight:600;font-size:14px}.opponent-rating{color:var(--color-text-muted);font-size:13px;margin-left:6px}.game-result{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0}.game-result.win{background:#4caf5026;color:#4caf50}.game-result.loss{background:#ef535026;color:#ef5350}.game-result.draw{background:#d2b48c26;color:var(--color-text-muted)}.game-accuracy{width:40px;text-align:right;flex-shrink:0}.accuracy-value{color:var(--color-text-accent);font-size:13px;font-weight:600}.accuracy-pending{font-size:14px;opacity:.5}.no-games{text-align:center;padding:40px;color:var(--color-text-muted)}.load-more-btn{width:100%;padding:12px;background:var(--color-bg-medium);color:var(--color-text-accent);border:1px solid rgba(210,180,140,.15);border-radius:8px;cursor:pointer;font-size:14px;margin-top:8px;transition:all .2s}.load-more-btn:hover{background:var(--color-bg-board);border-color:var(--color-gold-dark)}.load-more-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:700px){.ratings-grid{grid-template-columns:1fr}.profile-header{flex-direction:column;text-align:center}.profile-name{justify-content:center}.edit-profile-btn{width:100%}}@media(max-width:500px){.profile-page{padding:16px 12px}.profile-header{padding:16px}.rating-card{padding:14px}.profile-language{margin-bottom:24px}.profile-language .section-title{font-size:16px;color:#d4a843;margin-bottom:12px;padding:0 4px}.language-buttons{display:flex;gap:10px}.lang-btn{flex:1;padding:12px 16px;border:2px solid #555;border-radius:10px;background:#2a2219;color:#ddd;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.lang-btn:hover{border-color:#888;background:#3a3025;color:#fff}.lang-btn.active{border-color:#d4a843;background:#3a3020;color:#fff}.game-entry{padding:10px 12px;gap:8px}}.friends-page{min-height:calc(100vh - 60px);padding:30px 20px}.friends-container{max-width:600px;margin:0 auto}.friends-title{color:var(--color-text-accent);font-size:24px;font-weight:700;margin:0 0 24px}.friends-loading{display:flex;justify-content:center;padding:60px 0}.friends-spinner{width:36px;height:36px;border:3px solid var(--border-subtle);border-top-color:var(--color-gold);border-radius:50%;animation:fspin .8s linear infinite}@keyframes fspin{to{transform:rotate(360deg)}}.friends-search-section{margin-bottom:24px}.friends-search-bar{display:flex;gap:8px}.friends-search-bar input{flex:1;font-family:var(--font-primary);background:var(--color-bg-darkest);border:1px solid var(--border-medium);color:var(--color-text-primary);padding:10px 14px;border-radius:var(--radius-md);font-size:14px}.friends-search-bar input::placeholder{color:var(--color-text-dim)}.friends-search-bar input:focus{border-color:var(--color-gold);outline:none}.friends-search-bar button{font-family:var(--font-primary);background:var(--color-gold);color:var(--color-text-dark);border:none;padding:10px 16px;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer}.friends-search-bar button:hover{background:var(--color-gold-light)}.friends-search-bar button:disabled{opacity:.5;cursor:not-allowed}.search-results{margin-top:10px;background:var(--color-bg-dark);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}.search-result-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border-subtle)}.search-result-item:last-child{border-bottom:none}.friends-section{margin-bottom:28px}.friends-section-title{color:var(--color-text-accent);font-size:16px;font-weight:600;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border-subtle)}.friends-list{display:flex;flex-direction:column;gap:6px}.friend-card{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--color-bg-dark);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.friend-card.pending{border-color:var(--border-gold);background:linear-gradient(135deg,var(--color-bg-dark) 0%,rgba(210,180,140,.04) 100%)}.friend-avatar{width:40px;height:40px;border-radius:50%;background:var(--color-bg-board);border:2px solid var(--color-gold);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:var(--color-gold);flex-shrink:0}.friend-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.friend-name{color:var(--color-text-accent);font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.friend-rating{color:var(--color-text-muted);font-size:12px}.friend-actions{display:flex;gap:6px;flex-shrink:0}.friend-action-btn{font-family:var(--font-primary);padding:6px 12px;border-radius:var(--radius-sm);font-size:12px;font-weight:600;cursor:pointer;border:1px solid var(--border-medium);background:var(--color-bg-darkest);color:var(--color-text-primary);transition:all .15s}.friend-action-btn:hover{background:var(--color-bg-medium);border-color:var(--border-gold)}.friend-action-btn:disabled{opacity:.5;cursor:not-allowed}.friend-action-btn.add{background:var(--color-gold);color:var(--color-text-dark);border-color:var(--color-gold)}.friend-action-btn.add:hover{background:var(--color-gold-light)}.friend-action-btn.accept{background:#6abf6926;color:#6abf69;border-color:#6abf694d}.friend-action-btn.accept:hover{background:#6abf6940}.friend-action-btn.decline{background:#d940401a;color:#ef9a9a;border-color:#d9404033}.friend-action-btn.decline:hover{background:#d9404033}.friend-action-btn.profile{background:#e4d5b114;border-color:var(--border-medium)}.friend-action-btn.remove{background:transparent;border-color:transparent;color:var(--color-text-dim);padding:6px 8px}.friend-action-btn.remove:hover{color:var(--color-danger);background:#d940401a}.friends-empty{text-align:center;padding:40px 20px;color:var(--color-text-muted)}.friends-empty-icon{font-size:48px;display:block;margin-bottom:12px;opacity:.5}.friends-empty p{margin:0 0 6px;font-size:14px}.friends-empty-hint{font-size:12px;color:var(--color-text-dim)}@media(max-width:600px){.friends-page{padding:20px 12px}.friend-card{padding:10px 12px;gap:10px}.friend-avatar{width:34px;height:34px;font-size:14px}.friend-name{font-size:13px}.friend-actions{flex-direction:column;gap:4px}.friend-action-btn{padding:5px 8px;font-size:11px}}.room-page{min-height:100vh;background:var(--color-bg-main, #1C1410)}.room-page.no-nav{padding:0}.lobby-container{max-width:800px;margin:0 auto;padding:40px 20px;text-align:center}.lobby-title{color:var(--color-text-accent, #E8D5B5);font-size:24px;margin:0 0 6px}.lobby-subtitle{color:var(--color-text-muted);font-size:14px;margin:0 0 30px}.lobby-body{display:flex;gap:30px;align-items:flex-start;text-align:left}.lobby-preview{flex:1}.lobby-video-wrapper{position:relative;width:100%;aspect-ratio:4/3;background:var(--color-bg-darkest, #110D0A);border:2px solid var(--border-subtle);border-radius:14px;overflow:hidden}.lobby-video-wrapper video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1);display:block}.lobby-video-wrapper video.hidden-video{display:none}.camera-off-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--color-text-dim);font-size:16px}.lobby-controls{display:flex;gap:8px;margin-top:12px;justify-content:center}.lobby-btn{font-family:var(--font-primary);padding:8px 14px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all .15s}.lobby-btn.on{background:#6abf691f;color:#6abf69;border-color:#6abf6940}.lobby-btn.off{background:#d940401f;color:#ef9a9a;border-color:#d9404040}.lobby-settings{width:260px;flex-shrink:0;display:flex;flex-direction:column;gap:16px}.lobby-setting{display:flex;flex-direction:column;gap:4px}.lobby-setting label{color:var(--color-text-muted);font-size:12px;font-weight:600}.lobby-setting select{font-family:var(--font-primary);background:var(--color-bg-darkest);border:1px solid var(--border-medium);color:var(--color-text-primary);padding:8px 10px;border-radius:8px;font-size:13px}.lobby-room-info{padding:12px;background:#e4d5b10a;border:1px solid var(--border-subtle);border-radius:8px;text-align:center}.lobby-room-label{color:var(--color-text-dim);font-size:12px}.lobby-room-id{color:var(--color-text-accent);font-family:monospace;font-size:14px;font-weight:700;margin-left:6px}.lobby-join-btn{font-family:var(--font-primary);background:var(--color-gold, #D2B48C);color:var(--color-text-dark, #1C1410);border:none;padding:14px 24px;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;transition:all .15s}.lobby-join-btn:hover{opacity:.9;transform:translateY(-1px)}.lobby-back-btn{font-family:var(--font-primary);background:transparent;color:var(--color-text-muted);border:1px solid var(--border-medium);padding:10px 20px;border-radius:8px;font-size:13px;cursor:pointer}.room-layout{display:flex;height:100vh;overflow:hidden}.room-left{width:220px;flex-shrink:0;display:flex;flex-direction:column;gap:6px;padding:10px;background:var(--color-bg-dark, #1a1510);border-right:1px solid var(--border-subtle);overflow-y:auto}.video-tile{position:relative;background:var(--color-bg-darkest);border:1px solid var(--border-subtle);border-radius:8px;overflow:hidden;aspect-ratio:4/3}.video-tile video{width:100%;height:100%;object-fit:cover;display:block}.video-tile.local{border-color:var(--color-gold, #D2B48C)}.video-tile.local video{transform:scaleX(-1)}.video-tile.no-video{display:flex;align-items:center;justify-content:center;min-height:80px;aspect-ratio:auto}.no-video-avatar{color:var(--color-text-muted);font-size:12px;text-align:center}.video-label{position:absolute;bottom:4px;left:4px;background:#000000a6;color:#fff;padding:1px 6px;border-radius:3px;font-size:10px;font-weight:600}.room-controls-bar{display:flex;gap:6px;padding:8px 0;margin-top:auto;border-top:1px solid var(--border-subtle);justify-content:center;flex-wrap:wrap}.ctrl-btn{font-family:var(--font-primary);padding:6px 12px;border-radius:6px;font-size:16px;cursor:pointer;border:none;transition:all .15s}.ctrl-btn.on{background:#6abf6926;color:#6abf69}.ctrl-btn.off{background:#d9404026;color:#ef9a9a}.ctrl-btn.leave{background:#d94040;color:#fff;font-size:12px}.ctrl-btn.leave:hover{background:#c03030}.room-center{flex:1;display:flex;flex-direction:row;align-items:flex-start;justify-content:center;padding:12px 10px;min-width:0;overflow-y:auto;gap:12px}.center-board-area{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.center-control-panel{width:320px;flex-shrink:0;display:flex;flex-direction:column;gap:8px;background:#00000040;border:1px solid var(--border-subtle, rgba(228,213,177,.08));border-radius:10px;padding:10px;max-height:calc(100vh - 40px);overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.center-control-panel::-webkit-scrollbar{display:none}.tcp-nav{display:flex;align-items:center;gap:4px}.tcp-nav-info{flex:1;text-align:center;color:var(--color-text-primary, #E8D5B5);font-size:13px;font-weight:700}.tcp-actions{display:flex;gap:4px}.tcp-btn{font-family:var(--font-primary);background:#c9a84c1f;border:1px solid rgba(201,168,76,.25);color:var(--color-gold, #C9A84C);padding:7px 12px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap;flex:1}.tcp-btn:hover:not(:disabled){background:#c9a84c40}.tcp-btn:disabled{opacity:.3;cursor:not-allowed}.tcp-btn.start{background:#6abf6933;border-color:#6abf6966;color:#6abf69}.tcp-btn.solve{background:#6495ed26;border-color:#6495ed4d;color:#6495ed;flex:1}.tcp-btn.stop-solve{background:#d9404026;border-color:#d940404d;color:#ef9a9a;flex:1}.tcp-btn.list{background:#ffffff0f;border-color:#ffffff1a;color:var(--color-text-muted);flex:none}.tcp-puzzle-list{max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:1px;border:1px solid var(--border-subtle, rgba(228,213,177,.08));border-radius:6px;padding:2px;scrollbar-width:none;-ms-overflow-style:none}.tcp-puzzle-item{display:flex;align-items:center;gap:5px;padding:6px 8px;border-radius:4px;cursor:pointer;font-size:12px;transition:background .1s}.tcp-puzzle-item:hover{background:#ffffff0f}.tcp-puzzle-item.active{background:#c9a84c26}.tcp-puzzle-item.dragging{opacity:.3}.tcp-item-num{color:var(--color-text-dim);font-weight:600;min-width:18px}.tcp-item-name{color:var(--color-text-primary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tcp-item-active{color:var(--color-gold);font-weight:700}.tcp-puzzle-list::-webkit-scrollbar{display:none}.tcp-toggle{font-family:var(--font-primary);background:#c9a84c14;border:1px solid rgba(201,168,76,.15);color:var(--color-gold);padding:5px 8px;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;text-align:left;width:100%}.tcp-toggle:hover{background:#c9a84c26}.tcp-solution{display:flex;flex-wrap:wrap;gap:3px;padding:6px;background:#0003;border-radius:6px}.tcp-solve-results{border:1px solid rgba(100,149,237,.2);border-radius:6px;padding:6px;background:#00000026}.tcp-solve-header{color:var(--color-text-accent);font-size:12px;font-weight:700;margin-bottom:4px}.tcp-solve-empty{color:var(--color-text-dim);font-size:11px;font-style:italic;text-align:center;padding:6px}.tcp-student-row{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:4px;font-size:12px}.tcp-student-row.solved{background:#6abf690f}.tcp-student-name{color:var(--color-text-primary);font-weight:600;min-width:60px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tcp-student-moves{display:flex;gap:3px;flex:1;flex-wrap:wrap}.tcp-move-dot{font-size:11px;padding:1px 4px;border-radius:3px}.tcp-move-dot.correct{background:#6abf6933;color:#6abf69}.tcp-move-dot.wrong{background:#d9404033;color:#ef9a9a}.tcp-move-retry{color:var(--color-text-dim, #6a5a4a);font-size:12px;font-weight:700;padding:0 2px}.tcp-student-status{font-size:13px;flex-shrink:0}.puzzle-status-bar{display:flex;align-items:center;gap:12px;margin-bottom:8px;flex-wrap:wrap;justify-content:center}.puzzle-side-indicator{color:var(--color-text-accent, #E8D5B5);font-size:14px;font-weight:600;padding:4px 12px;background:#e4d5b10f;border-radius:6px}.puzzle-name-label{color:var(--color-text-muted, #8a7a6a);font-size:12px}.puzzle-tag-label{background:#c9a84c26;color:var(--color-gold, #C9A84C);font-size:11px;font-weight:700;padding:3px 10px;border-radius:10px}.solve-mode-badge{background:#6abf6926;color:#6abf69;font-size:11px;font-weight:700;padding:3px 10px;border-radius:10px}.puzzle-area{display:flex;flex-direction:column;align-items:center;gap:10px}.puzzle-feedback{display:flex;align-items:center;gap:10px;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:600}.puzzle-feedback.success{background:#6abf6926;color:#6abf69}.puzzle-feedback.fail{background:#d9404026;color:#ef9a9a}.puzzle-feedback button{font-family:var(--font-primary);background:#ffffff1a;color:inherit;border:1px solid rgba(255,255,255,.2);padding:4px 12px;border-radius:6px;font-size:12px;cursor:pointer}.puzzle-info{color:var(--color-text-dim);font-size:12px}.puzzle-loading{color:var(--color-text-dim);font-size:14px;padding:40px}.room-right{width:300px;flex-shrink:0;display:flex;flex-direction:column;background:var(--color-bg-dark);border-left:1px solid var(--border-subtle)}.room-chat-section{display:flex;flex-direction:column;flex:1;min-height:0}.room-chat-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border-subtle);color:var(--color-text-primary);font-size:13px;font-weight:600}.room-dot{width:8px;height:8px;border-radius:50%}.room-dot.on{background:#6abf69}.room-dot.off{background:#ef5350}.chat-messages{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:4px}.chat-msg{padding:4px 8px;border-radius:6px;font-size:12px}.chat-msg.system{text-align:center}.msg-system{color:var(--color-text-dim);font-size:10px;font-style:italic}.chat-msg.user{background:#e4d5b10a;border:1px solid var(--border-subtle)}.chat-msg.user.own{background:#d2b48c14;border-color:#d2b48c26}.msg-author{color:var(--color-text-accent);font-size:10px;font-weight:700;margin-right:6px}.msg-body{color:var(--color-text-primary)}.msg-time{color:var(--color-text-dim);font-size:9px;float:right;margin-top:2px}.chat-input-form{display:flex;gap:6px;padding:8px 10px;border-top:1px solid var(--border-subtle);background:transparent;box-shadow:none;margin:0}.chat-input{flex:1;width:0;min-width:0;max-width:none;margin:0;font-family:var(--font-primary);background:var(--color-bg-darkest);border:1px solid var(--border-medium);color:var(--color-text-primary);padding:6px 10px;border-radius:6px;font-size:12px}.chat-input:focus{border-color:var(--color-gold);outline:none}.chat-input::placeholder{color:var(--color-text-dim)}.chat-send-btn{font-family:var(--font-primary);background:var(--color-gold);color:var(--color-text-dark);border:none;width:32px;height:32px;border-radius:6px;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center}.chat-send-btn:disabled{opacity:.3;cursor:not-allowed}.room-center h2{color:var(--color-text-accent)}.teacher-nav-bar{width:100%;max-width:520px;display:flex;align-items:center;gap:6px;background:#0006;border:1px solid rgba(201,168,76,.2);border-radius:8px;padding:6px 10px;margin-bottom:8px;flex-wrap:wrap}.tnav-btn{font-family:var(--font-primary);background:#c9a84c1f;border:1px solid rgba(201,168,76,.25);color:var(--color-gold, #C9A84C);padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.tnav-btn:hover:not(:disabled){background:#c9a84c40}.tnav-btn:disabled{opacity:.3;cursor:not-allowed}.tnav-btn.start{background:#6abf6933;border-color:#6abf6966;color:#6abf69}.tnav-btn.start:hover{background:#6abf6959}.tnav-btn.solve{background:#6495ed26;border-color:#6495ed4d;color:#6495ed}.tnav-btn.solve:hover{background:#6495ed4d}.tnav-btn.stop-solve{background:#d9404026;border-color:#d940404d;color:#ef9a9a}.tnav-btn.stop-solve:hover{background:#d940404d}.tnav-btn.list{margin-left:auto;background:#ffffff0f;border-color:#ffffff1a;color:var(--color-text-muted)}.tnav-btn.list:hover{background:#ffffff1f;color:var(--color-text-primary)}.tnav-info{color:var(--color-text-primary, #E8D5B5);font-size:12px;font-weight:600;flex:1;text-align:center;white-space:nowrap}.teacher-puzzle-panel{width:100%;max-width:520px;background:#00000059;border:1px solid rgba(201,168,76,.15);border-radius:0 0 10px 10px;margin-bottom:12px;margin-top:-9px;overflow:hidden}.panel-puzzle-list{max-height:200px;overflow-y:auto;padding:4px}.panel-puzzle-item{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:6px;cursor:pointer;transition:all .12s;font-size:12px}.panel-puzzle-item:hover{background:#ffffff0f}.panel-puzzle-item.active{background:#c9a84c26;border-left:3px solid var(--color-gold)}.panel-puzzle-item.dragging{opacity:.4}.drag-handle{color:#fff3;cursor:grab;font-size:14px;-webkit-user-select:none;user-select:none;flex-shrink:0;width:16px}.item-number{color:var(--color-text-dim);font-weight:600;min-width:22px;flex-shrink:0}.item-name{color:var(--color-text-primary);font-weight:500;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-rating{color:var(--color-text-dim);font-size:10px;flex-shrink:0}.item-active-mark{color:var(--color-gold);font-weight:700;flex-shrink:0}.panel-puzzle-list::-webkit-scrollbar{width:4px}.panel-puzzle-list::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.teacher-right-panel{border-top:1px solid var(--border-subtle);padding:8px;display:flex;flex-direction:column;gap:6px;max-height:50vh;overflow-y:auto}.trp-toggle{font-family:var(--font-primary);background:#c9a84c14;border:1px solid rgba(201,168,76,.2);color:var(--color-gold, #C9A84C);padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;text-align:left;width:100%}.trp-toggle:hover{background:#c9a84c26}.teacher-cheatsheet{background:#0003;border-radius:6px;padding:8px}.cheat-moves{display:flex;flex-wrap:wrap;gap:3px}.cheat-move{font-family:monospace;font-size:11px;padding:2px 5px;border-radius:3px;white-space:nowrap}.cheat-move.opponent{background:#ffffff0d;color:var(--color-text-dim)}.cheat-move.player{background:#6abf6926;color:#6abf69;font-weight:600}.solve-results-panel{background:#0003;border:1px solid rgba(100,149,237,.2);border-radius:8px;padding:8px}.solve-results-header{color:var(--color-text-accent);font-size:13px;font-weight:700;margin-bottom:6px}.solve-results-list{display:flex;flex-direction:column;gap:4px}.solve-empty{color:var(--color-text-dim);font-size:12px;font-style:italic;padding:8px;text-align:center}.solve-student-row{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:6px;background:#ffffff08;font-size:12px}.solve-student-row.solved{background:#6abf6914}.solve-student-name{color:var(--color-text-primary);font-weight:600;min-width:70px}.solve-student-moves{display:flex;gap:2px;flex:1;flex-wrap:wrap}.solve-move-dot{font-size:11px;padding:1px 4px;border-radius:3px}.solve-move-dot.correct{background:#6abf6933;color:#6abf69}.solve-move-dot.wrong{background:#d9404033;color:#ef9a9a}.solve-student-status{font-size:14px;flex-shrink:0}@media(max-width:1100px){.room-center{flex-direction:column;align-items:center}.center-control-panel{width:100%;max-width:480px;max-height:none}}@media(max-width:900px){.room-layout{flex-direction:column;height:auto}.room-left{width:100%;flex-direction:row;flex-wrap:wrap;height:auto;border-right:none;border-bottom:1px solid var(--border-subtle)}.video-tile{width:120px;aspect-ratio:4/3}.room-right{width:100%;max-height:300px;border-left:none;border-top:1px solid var(--border-subtle)}.lobby-body{flex-direction:column;align-items:center}.lobby-settings{width:100%}}
