.lang-toggle{-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:inline-flex}.lang-toggle-label{letter-spacing:.04em;color:var(--text-muted);font-size:.75rem;font-weight:700;transition:color .2s}.lang-toggle-label.active{color:var(--peach-600)}.lang-toggle-switch{cursor:pointer;background:#ffffff73;border:1px solid #ff8f6273;border-radius:999px;width:44px;height:24px;padding:0;transition:background .2s;position:relative}.lang-toggle-switch.is-en{background:#ff8f6259}.lang-toggle-knob{background:linear-gradient(135deg, var(--peach-400), var(--peach-500));border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 2px 6px #2d1f1a33}.lang-toggle-switch.is-en .lang-toggle-knob{transform:translate(20px)}.lang-toggle--on-dark .lang-toggle-label{color:#888}.lang-toggle--on-dark .lang-toggle-label.active{color:#f0d9b5}.lang-toggle--on-dark .lang-toggle-switch{background:#3e3b38;border-color:#5a564f}.auth-page{z-index:1;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative}.auth-container{width:100%;max-width:440px}.auth-brand{text-align:center;margin-bottom:32px}.auth-brand h1{background:linear-gradient(135deg, var(--peach-500) 0%, var(--coral) 50%, var(--rose) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:8px;font-size:2.8rem}.auth-brand p{color:var(--text-secondary);font-size:1.05rem}.auth-card{border-radius:var(--radius-xl);padding:36px}.auth-tabs{border-radius:var(--radius-md);background:#fff3;gap:8px;margin-bottom:28px;padding:4px;display:flex}.auth-tab{border-radius:var(--radius-sm);font-family:var(--font-body);color:var(--text-muted);cursor:pointer;transition:all var(--transition);background:0 0;border:none;flex:1;padding:12px;font-size:.95rem;font-weight:600}.auth-tab.active{color:var(--text-primary);background:#ffffff80;box-shadow:0 2px 8px #ff70431a}.auth-form{display:none}.auth-form.active{display:block}.auth-form .btn-primary{margin-top:8px}.auth-error{color:var(--coral);text-align:center;min-height:1.2em;margin-top:12px;font-size:.9rem}.auth-success{color:var(--emerald);text-align:center;margin-top:12px;font-size:.9rem}.role-select{gap:12px;margin-bottom:18px;display:flex}.role-option{border:1px solid var(--glass-border-soft);border-radius:var(--radius-md);text-align:center;cursor:pointer;transition:all var(--transition);background:#fff3;flex:1;padding:14px;font-size:.9rem;font-weight:500}.role-option:hover{border-color:var(--peach-300);background:#ffffff59}.role-option.selected{border-color:var(--peach-400);background:#ff8f6233;font-weight:600}.role-option .role-icon{margin-bottom:4px;font-size:1.5rem;display:block}.theme-toggle{border:1px solid var(--glass-border);background:var(--glass-bg-strong);border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition);align-items:center;padding:4px;display:inline-flex}.theme-toggle:hover{background:var(--glass-bg)}.theme-toggle__track{justify-content:center;align-items:center;width:44px;height:26px;display:flex}.theme-toggle__thumb{font-size:14px;line-height:1}.theme-toggle--on-dark{background:#00000059;border-color:#fff3}.notify-bell{display:inline-flex;position:relative}.notify-bell__btn{border:1px solid var(--glass-border);background:var(--glass-bg-strong);border-radius:var(--radius-sm);cursor:pointer;width:38px;height:38px;font-size:18px;position:relative}.notify-bell__badge{background:var(--coral);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.notify-bell__panel{border-radius:var(--radius-md);z-index:50000;width:min(320px,90vw);box-shadow:var(--glass-shadow-lg);padding:12px;position:absolute;top:calc(100% + 8px);right:0}.notify-bell__head{justify-content:space-between;align-items:center;margin-bottom:8px;font-size:14px;display:flex}.notify-bell__mark{color:var(--peach-600);cursor:pointer;background:0 0;border:none;font-size:12px}.notify-bell__list{flex-direction:column;gap:6px;max-height:280px;display:flex;overflow-y:auto}.notify-bell__item{text-align:left;border:1px solid var(--glass-border-soft);background:var(--glass-bg);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-primary);flex-direction:column;gap:2px;padding:8px 10px;display:flex}.notify-bell__item.unread{border-color:var(--peach-400);background:#ffb08826}.notify-bell__item strong{font-size:13px}.notify-bell__item span{color:var(--text-secondary);font-size:12px}.notify-bell__empty{color:var(--text-muted);text-align:center;padding:16px 0;font-size:13px}.lobby-container{z-index:1;visibility:hidden;max-width:min(1400px,100%);margin:0 auto;padding:0 24px 48px;position:relative}.lobby-header{justify-content:space-between;align-items:center;padding:28px 0;display:flex}.logo-area{align-items:center;gap:14px;display:flex}.logo-area h1{background:linear-gradient(135deg, var(--peach-600) 0%, var(--coral) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:2rem}.user-info{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-full);align-items:center;gap:12px;padding:10px 20px;font-size:.95rem;display:flex}.user-info strong{color:var(--peach-600)}#logout-btn{color:var(--text-muted);cursor:pointer;font-family:var(--font-body);transition:color var(--transition);background:0 0;border:none;font-size:.85rem;text-decoration:underline}#logout-btn:hover{color:var(--coral)}.lobby-content h2{margin-bottom:8px;font-size:1.75rem}.lobby-content>.subtitle{margin-bottom:32px}.menu-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;margin-bottom:40px;display:grid}.menu-card{cursor:pointer;background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);transition:transform var(--transition-bounce), box-shadow var(--transition);align-items:center;gap:18px;padding:24px;display:flex}.menu-card:hover{box-shadow:var(--glass-shadow-lg);transform:translateY(-6px)scale(1.02)}.menu-card.primary{background:linear-gradient(135deg,#ff8f624d,#ff704333);border-color:#ff8f6266}.menu-card.primary:hover{border-color:#ff8f6299}.card-icon{border-radius:var(--radius-md);background:#ffffff59;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;font-size:2.2rem;display:flex}.card-text h3{margin-bottom:4px;font-size:1.1rem}.card-text p{color:var(--text-secondary);font-size:.85rem}.lobby-section h2{margin-bottom:16px;font-size:1.3rem}.study-card{min-height:80px}.streak-daily-card{position:relative;overflow:hidden;transition:all var(--transition-bounce)!important}.streak-urgent{animation:2s infinite pulse-streak;background:linear-gradient(135deg,#ff9f4380,#ff6b6b73)!important;border-color:#ff8f6280!important}.streak-urgent h3,.streak-urgent p{color:var(--text-primary)!important}.streak-completed{background:#34d39933!important;border-color:#34d39966!important}.streak-broken{opacity:.85;background:#2d1f1a26!important;border:2px dashed #2d1f1a33!important}.streak-broken .card-icon{filter:grayscale();animation:3s infinite shake-broken}.streak-progress-mini{background:#ffffff4d;border-radius:3px;width:100%;height:6px;margin-top:8px}#streak-bar-fill{background:linear-gradient(90deg, var(--peach-400), var(--coral));border-radius:3px;width:0%;height:100%;transition:width .5s}.streak-completed #streak-bar-fill{background:linear-gradient(90deg, var(--emerald), var(--mint))}.win-streak-badge{border-radius:var(--radius-full);padding:2px 10px;font-size:.85em}.streak-active{color:var(--peach-600);background:#ff8f6226;border:1px solid #ff704366}.bot-modal-panel{text-align:left;width:min(480px,94vw);max-width:480px}#bot-game-overlay .modal-glass{text-align:left;flex-direction:column;max-width:480px;height:680px;padding:24px;display:flex}#bot-game-overlay .modal-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}#bot-game-overlay .modal-header h3{margin:0;font-size:1.2rem}#bot-game-overlay .close-btn{color:var(--coral);cursor:pointer;background:0 0;border:none;font-size:28px;line-height:1}#bot-game-iframe{border-radius:var(--radius-md);background:#ffffff1a;border:none;flex:1;width:100%}@keyframes pulse-streak{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes shake-broken{0%,to{transform:rotate(0)}10%,30%,50%{transform:rotate(-5deg)}20%,40%,60%{transform:rotate(5deg)}}@media (width<=600px){.menu-grid{grid-template-columns:1fr}.lobby-header{text-align:center;flex-direction:column;gap:16px}}.lobby-spotlight{margin-bottom:24px;padding:16px}.lobby-spotlight h3{margin:0 0 12px;font-size:1rem}.lobby-spotlight-inner{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.lobby-leaders{flex:1;min-width:200px}.lobby-leader-row{align-items:center;gap:10px;padding:6px 0;font-size:14px;display:flex}.lobby-leader-rank{background:var(--peach-600,#e67e22);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:flex}.lobby-live-board{flex:none}.library-picker-list{max-height:280px;margin-top:12px;overflow-y:auto}.library-picker-item{text-align:left;border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:var(--glass-bg);cursor:pointer;width:100%;margin-bottom:6px;padding:10px;display:block}.group-standings-table{border-collapse:collapse;width:100%;margin-top:8px;font-size:13px}.group-standings-table th,.group-standings-table td{border-bottom:1px solid var(--glass-border-soft);text-align:left;padding:6px 8px}.tournament-league-tabs{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:20px;display:flex}.tournament-league-tabs button{border-radius:var(--radius-full);border:1px solid var(--glass-border);background:var(--glass-bg);cursor:pointer;padding:8px 16px;font-size:13px;font-weight:600}.tournament-league-tabs button.active{background:var(--peach-600,#e67e22);color:#fff;border-color:#0000}.tournament-card-tags span{border-radius:var(--radius-full);padding:2px 8px;font-size:10px;font-weight:700}.tag-league{background:#34d39933}.tag-team{background:#6366f133}.tag-demo{background:#ffb34740}.team-score-card{text-align:center;border-radius:var(--radius-md);background:var(--glass-bg-strong);flex:1;padding:20px}.team-score-card strong{margin-top:8px;font-size:2rem;display:block}.team-score-vs{opacity:.5;font-weight:800}.profile-container{z-index:1;max-width:min(1400px,100%);margin:0 auto;padding:24px 20px 56px;position:relative}.profile-bento{grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(100px,auto);gap:16px;display:grid}.profile-bento__cell{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border-soft);border-radius:var(--radius-lg);min-width:0;padding:22px 24px}.profile-bento__cell h3{font-size:1rem;font-family:var(--font-display);margin:0 0 14px}.profile-bento__cell--hero{background:linear-gradient(145deg, var(--glass-bg-strong), var(--glass-bg));border-color:#ff8f6259;grid-area:span 2/span 8}.profile-bento__cell--hero h1{background:linear-gradient(135deg, var(--peach-600), var(--coral));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 16px;font-size:clamp(1.6rem,3vw,2.2rem)}.profile-bento__cell--stats{flex-direction:column;grid-area:span 2/span 4;justify-content:center;display:flex}.profile-bento__cell--progress,.profile-bento__cell--trophies{grid-column:span 6}.profile-bento__cell--history{grid-column:span 12}.profile-bento__cell--wide{grid-column:span 6}.profile-bento__cell--third{grid-column:span 4}.profile-bento__cell--actions{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none;grid-column:span 12;justify-content:flex-end;padding:8px 0 0;display:flex}.profile-hero-meta{flex-wrap:wrap;align-items:center;gap:16px 24px;margin-bottom:20px;font-size:1rem;display:flex}.stats-grid{grid-template-columns:1fr;gap:12px;margin:0;display:grid}.stat-card{text-align:center;border:1px solid var(--glass-border-soft);border-radius:var(--radius-md);transition:transform var(--transition);background:#fff3;padding:18px 14px}.stat-card:hover{transform:translateY(-2px)}.stat-value{font-family:var(--font-display);color:var(--peach-600);margin-bottom:4px;font-size:2rem;font-weight:800;line-height:1;display:block}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.rating-badge{background:linear-gradient(135deg, var(--peach-400), var(--peach-500));color:#fff;border-radius:var(--radius-full);padding:6px 16px;font-size:1.15rem;font-weight:700;display:inline-block}.progress-container{border-radius:var(--radius-full);background:#ffffff4d;width:100%;height:14px;margin:10px 0;overflow:hidden}#progress-fill-bar{background:linear-gradient(90deg, var(--peach-400), var(--coral));border-radius:var(--radius-full);height:100%;transition:width .6s}.trophy-shelf{flex-wrap:wrap;gap:12px;display:flex}.trophy-shelf .trophy-chip{cursor:help;border:2px solid #00000026;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:26px;display:inline-flex;box-shadow:0 4px 12px #00000026}.history-table{width:100%}.history-table th{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--glass-border-soft);text-align:left;padding:10px 12px;font-size:.72rem}.history-table td{border-bottom:1px solid #ffffff1a;padding:12px}.rooms-list-container{flex-direction:column;gap:10px;display:flex}.room-item{border-radius:var(--radius-md);border:1px solid var(--glass-border-soft);background:#fff3;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex}.pgn-archive-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.pgn-archive-item{border-radius:var(--radius-sm)!important;background:#ffffff26!important;margin-bottom:0!important;padding:10px 12px!important}.password-section input.form-input{margin-bottom:10px}@media (width<=1024px){.profile-bento__cell--hero,.profile-bento__cell--stats,.profile-bento__cell--progress,.profile-bento__cell--trophies,.profile-bento__cell--history,.profile-bento__cell--wide,.profile-bento__cell--third{grid-area:span 1/span 12}.stats-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=600px){.stats-grid{grid-template-columns:1fr}}.game-page{z-index:1;min-height:100vh;padding:24px;position:relative}.game-layout{align-items:flex-start;gap:28px;max-width:min(1400px,100%);margin:0 auto;display:flex}.game-area{flex-direction:column;flex:1;align-items:center;display:flex}.game-area .board-wrap{background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow-lg);padding:16px}#myBoard,#board,.board-wrap>div,.board-wrap [data-board-root],.board-wrap [data-board-root]>div{border-radius:var(--radius-md);max-width:min(560px,100vw - 400px);overflow:hidden;width:100%!important}.board-wrap{width:100%;max-width:min(560px,100vw - 400px)}.game-sidebar{flex-shrink:0;width:320px}.game-sidebar .panel{border-radius:var(--radius-lg);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);margin-bottom:16px;padding:24px}.game-sidebar .panel h3{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:10px;font-size:.85rem}#status,#turn-info{color:var(--text-primary);font-weight:600}#turn-info{text-align:center;background:var(--glass-bg);border-radius:var(--radius-full);border:1px solid var(--glass-border-soft);margin-bottom:16px;padding:10px 20px;font-size:.9rem}.streak-fire{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--peach-400), var(--coral));color:#fff;margin-bottom:12px;padding:8px 18px;font-size:.9rem;font-weight:700;animation:2s infinite pulse-streak;display:none;box-shadow:0 4px 16px #ff704359}.game-controls{flex-direction:column;gap:10px;display:flex}.game-controls .btn{width:100%}.button-link{text-align:center;color:var(--text-secondary);border-radius:var(--radius-md);transition:all var(--transition);padding:12px;font-size:.9rem;font-weight:600;display:block}.button-link:hover{background:var(--glass-bg);color:var(--text-primary)}.debug-box{color:var(--text-muted);font-size:.8rem}.debug-box pre{border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-all;background:#ffffff26;max-height:120px;margin-top:6px;padding:10px;overflow:auto}@media (width<=900px){.game-layout{flex-direction:column}.game-sidebar{width:100%}}.puzzle-page{z-index:1;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative}.puzzle-container{border-radius:var(--radius-xl);grid-template-columns:minmax(320px,1fr) minmax(280px,380px);gap:28px;width:100%;max-width:min(1100px,100%);padding:28px;display:grid}.puzzle-board-wrap{border-radius:var(--radius-lg);border:1px solid var(--glass-border-soft);background:#ffffff26;padding:16px}#board,.puzzle-board-wrap>div{border-radius:var(--radius-md);width:100%;overflow:hidden}.puzzle-board-wrap.shake{animation:.5s puzzle-shake}@keyframes puzzle-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.puzzle-panel{flex-direction:column;justify-content:center;display:flex}.puzzle-streak{text-align:center;border-radius:var(--radius-md);background:linear-gradient(135deg,#ff9f4359,#ff6b6b4d);border:1px solid #ff8f624d;margin-bottom:16px;padding:14px;font-size:1.05rem;font-weight:700}.puzzle-timer{font-family:var(--font-display);text-align:center;color:var(--coral);text-shadow:0 2px 20px #ff6b6b33;margin-bottom:16px;font-size:2.8rem;font-weight:800}.puzzle-progress{border-radius:var(--radius-full);background:#ffffff4d;width:100%;height:10px;margin-bottom:20px;overflow:hidden}#progress-fill{background:linear-gradient(90deg, var(--emerald), var(--mint));border-radius:var(--radius-full);width:0%;height:100%;transition:width .4s cubic-bezier(.175,.885,.32,1.275)}.puzzle-status{text-align:center;min-height:24px;color:var(--text-primary);margin-bottom:16px;font-weight:600}.puzzle-actions{flex-direction:column;gap:10px;display:flex}.puzzle-description{border-radius:var(--radius-md);border:1px solid var(--glass-border-soft);color:var(--text-secondary);background:#fff3;margin-top:16px;padding:16px;font-size:.9rem;line-height:1.5}@media (width<=800px){.puzzle-container{grid-template-columns:1fr;padding:20px}}.play-bot-page{z-index:1;justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex;position:relative}.play-bot-container{text-align:center;width:100%;max-width:420px}.play-bot-badge{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--coral), var(--peach-500));color:#fff;letter-spacing:.03em;margin-bottom:12px;padding:6px 16px;font-size:.8rem;font-weight:700;display:inline-block}.play-bot-container h2{color:var(--text-primary);margin-bottom:16px;font-size:1.2rem}#myBoard{border-radius:var(--radius-md);border:3px solid var(--glass-border);box-shadow:var(--glass-shadow);margin:0 auto 16px;overflow:hidden}.play-bot-status{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:16px;font-weight:500}.tournament-page{z-index:1;min-height:100vh;display:flex;position:relative}.tournament-sidebar{background:linear-gradient(180deg, var(--glass-bg-strong) 0%, var(--glass-bg) 100%);width:320px;-webkit-backdrop-filter:blur(var(--glass-blur-lg));backdrop-filter:blur(var(--glass-blur-lg));border-right:1px solid var(--glass-border);flex-direction:column;flex-shrink:0;gap:0;min-height:100vh;padding:28px 24px;display:flex}.tournament-sidebar-hero{margin-bottom:16px}.tournament-sidebar-hero h1{font-size:1.35rem;line-height:1.25;font-family:var(--font-display);background:linear-gradient(135deg, var(--peach-600), var(--coral));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:10px 0 8px}.tournament-sidebar-desc{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.tournament-detail-status{margin-bottom:4px}.tournament-info-chips{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.user-profile-box{border-radius:var(--radius-md);border:1px solid var(--glass-border-soft);background:#ffffff38;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:14px;padding:14px 16px;font-size:.88rem;display:flex}.tournament-logout-link{color:var(--peach-600);margin-left:auto;font-size:12px;font-weight:600;text-decoration:none}.tournament-logout-link:hover{text-decoration:underline}.status-card{border-radius:var(--radius-md);background:#ffffff26;margin-bottom:20px;padding:16px;font-size:.9rem}.tournament-status-grid{grid-template-columns:1fr 1fr;gap:12px;padding:14px;display:grid}.tournament-status-item{flex-direction:column;gap:4px;display:flex}.tournament-status-item__label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:11px;font-weight:600}.tournament-status-item__value{color:var(--peach-600);font-size:1rem;font-weight:800;font-family:var(--font-display)}.tournament-sidebar .actions{flex-direction:column;gap:8px;margin-bottom:24px;display:flex}.tournament-sidebar .actions .btn{width:100%}.participants-section{flex-direction:column;flex:1;min-height:0;display:flex}.participants-section h3{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px;font-size:11px;font-weight:700}#playerlist{flex:1;max-height:280px;list-style:none;overflow-y:auto}#playerlist li{border-radius:var(--radius-sm);transition:border-color var(--transition), background var(--transition);background:#fff3;border:1px solid #0000;align-items:center;gap:10px;margin-bottom:6px;padding:8px 12px;font-size:.88rem;display:flex}#playerlist li.is-me{background:#ff70431f;border-color:#ff704359}#playerlist li:hover{border-color:var(--glass-border)}.player-avatar{background:linear-gradient(135deg, var(--peach-400), var(--coral));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:800;display:flex}.player-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.player-you-badge{border-radius:var(--radius-full);color:var(--peach-700);background:#ff704333;flex-shrink:0;padding:2px 8px;font-size:10px;font-weight:800}.tournament-main{flex:1;padding:28px 32px;overflow-x:auto}.section-box{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow);margin-bottom:24px;padding:24px 28px;position:relative;overflow:hidden}.section-box:before{content:"";background:linear-gradient(90deg, var(--peach-500), var(--coral), var(--amber));opacity:.7;height:3px;position:absolute;top:0;left:0;right:0}.section-box h2{font-size:1.1rem;font-family:var(--font-display);margin-bottom:18px;font-weight:700}#standingstable tr.rank-gold td{background:#ffd70014}#standingstable tr.rank-silver td{background:#c0c0c01a}#standingstable tr.rank-bronze td{background:#cd7f3214}#standingstable tr.rank-gold .col-rank,#standingstable tr.rank-silver .col-rank,#standingstable tr.rank-bronze .col-rank{font-size:1.1rem}.join-link{background:linear-gradient(135deg, var(--peach-400), var(--peach-500));border-radius:var(--radius-full);transition:transform var(--transition), box-shadow var(--transition);padding:6px 16px;font-size:.8rem;font-weight:700;display:inline-block;box-shadow:0 4px 14px #ff70434d;color:#fff!important}.join-link:hover{transform:translateY(-1px)scale(1.03);box-shadow:0 6px 20px #ff704366;color:#fff!important}.col-rank{text-align:center;width:48px}.col-stat{text-align:center}.tournament-list-page{max-width:min(1400px,100%);margin:0 auto;padding-bottom:60px}.tournament-list-hero{margin-bottom:8px}.tournament-stats-bar{grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 24px;display:grid}.tournament-stat{text-align:center;border-radius:var(--radius-lg);background:var(--glass-bg);border:1px solid var(--glass-border-soft);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));padding:16px 12px}.tournament-stat--live{background:linear-gradient(160deg, #ff6b6b1f, var(--glass-bg));border-color:#ff6b6b59}.tournament-stat__value{font-size:1.75rem;font-weight:800;font-family:var(--font-display);color:var(--peach-600);line-height:1;display:block}.tournament-stat--live .tournament-stat__value{color:var(--coral)}.tournament-stat__label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-top:6px;font-size:11px;font-weight:700;display:block}.tournament-league-tabs{border-radius:var(--radius-full);border:1px solid var(--glass-border-soft);background:#ffffff1f;flex-wrap:wrap;justify-content:center;gap:8px;width:fit-content;margin-bottom:24px;margin-left:auto;margin-right:auto;padding:6px;display:flex}.tournament-league-tabs button{border-radius:var(--radius-full);cursor:pointer;color:var(--text-secondary);transition:all var(--transition);background:0 0;border:1px solid #0000;padding:8px 18px;font-size:13px;font-weight:600}.tournament-league-tabs button:hover{color:var(--text-primary);background:#fff3}.tournament-league-tabs button.active{background:linear-gradient(135deg, var(--peach-500), var(--peach-600));color:#fff;border-color:#0000;box-shadow:0 4px 16px #ff704359}.tournament-schedule-grid{grid-template-columns:1fr;gap:14px;display:grid}@media (width>=720px){.tournament-schedule-grid{grid-template-columns:repeat(2,1fr)}}.tournament-schedule-card{cursor:pointer;transition:transform .2s var(--transition), box-shadow .2s;padding:0;overflow:hidden}.tournament-schedule-card:hover{box-shadow:var(--glass-shadow-lg);transform:translateY(-3px)}.tournament-schedule-card__inner{border-left:4px solid var(--glass-border);padding:18px 18px 16px}.tournament-schedule-card.status-running .tournament-schedule-card__inner{border-left-color:var(--coral)}.tournament-schedule-card.status-registration .tournament-schedule-card__inner,.tournament-schedule-card.status-scheduled .tournament-schedule-card__inner{border-left-color:var(--amber)}.tournament-schedule-card.status-finished .tournament-schedule-card__inner{border-left-color:var(--emerald);opacity:.88}.tournament-schedule-card__head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.tournament-schedule-card__head h3{font-size:1rem;line-height:1.35;font-family:var(--font-display);flex:1;margin:0;font-weight:700}.tournament-schedule-card__foot{border-top:1px solid var(--glass-border-soft);justify-content:flex-end;margin-top:14px;padding-top:12px;display:flex}.tournament-schedule-desc{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 12px;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.tournament-schedule-meta{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.tournament-meta-chip{border-radius:var(--radius-full);border:1px solid var(--glass-border-soft);color:var(--text-secondary);background:#ffffff40;align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.tournament-meta-chip__icon{font-size:12px;line-height:1}.tournament-fill-bar{align-items:center;gap:10px;margin-top:4px;display:flex}.tournament-fill-bar__track{border-radius:var(--radius-full);background:#fff3;flex:1;height:5px;overflow:hidden}.tournament-fill-bar__fill{border-radius:var(--radius-full);background:linear-gradient(90deg, var(--peach-400), var(--peach-600));height:100%;transition:width .4s}.tournament-fill-bar__label{color:var(--text-muted);text-align:right;min-width:28px;font-size:10px;font-weight:700}.tournament-schedule-enter{text-align:center;min-width:110px}.tournament-card-tags{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.tournament-card-tags span{border-radius:var(--radius-full);letter-spacing:.03em;padding:3px 9px;font-size:10px;font-weight:700}.tag-league{color:#047857;background:#34d39933;border:1px solid #34d3994d}.tag-league--novice{color:#4338ca;background:#6366f126;border-color:#6366f14d}.tag-league--advanced{color:#b91c1c;background:#ff6b6b26;border-color:#ff6b6b4d}.tag-league--open{color:#b45309;background:#ffb34733;border-color:#ffb34759}.tag-team{color:#4338ca;background:#6366f133;border:1px solid #6366f14d}.tag-demo{color:#b45309;background:#ffb34740;border:1px solid #ffb34766}.tournament-live-dot{background:var(--coral);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite live-pulse}@keyframes live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.tournament-empty-state{text-align:center;padding:48px 24px}.tournament-empty-state__icon{opacity:.5;margin-bottom:12px;font-size:2.5rem;display:block}.tournament-list-error{text-align:center;color:var(--coral);padding:24px}.tournament-schedule-card--skeleton{cursor:default;background:linear-gradient(110deg, var(--glass-bg) 30%, #ffffff59 50%, var(--glass-bg) 70%);background-size:200% 100%;min-height:180px;animation:1.4s ease-in-out infinite skeleton-shimmer}.tournament-schedule-card--skeleton:hover{transform:none}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.tournament-suggestions-list{color:var(--text-secondary);margin:8px 0 0;padding-left:20px;font-size:14px;line-height:1.6}.team-scores-grid{justify-content:center;align-items:center;gap:20px;display:flex}.team-score-card{text-align:center;border-radius:var(--radius-lg);background:var(--glass-bg-strong);transition:transform var(--transition);flex:1;padding:24px 20px}.team-score-card:hover{transform:translateY(-2px)}.team-score-card.class{border:2px solid #34d39973}.team-score-card.teacher{border:2px solid #6366f173}.team-score-card strong{font-size:2.25rem;font-family:var(--font-display);background:linear-gradient(135deg, var(--peach-500), var(--coral));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-top:8px;display:block}.team-score-vs{opacity:.45;font-size:1.1rem;font-weight:800;font-family:var(--font-display)}.tournament-countdown{color:var(--coral);margin-left:6px;font-weight:700}.lobby-badges-strip{flex-wrap:wrap;justify-content:center;gap:8px;margin:12px 0 20px;display:flex}.lobby-badge-chip{border-radius:var(--radius-full);background:#ffb34733;border:1px solid #ffb34759;padding:4px 10px;font-size:11px;font-weight:700}.journal-weak-topics{margin-bottom:16px;padding:16px}.weak-topics-list{flex-direction:column;gap:8px;list-style:none;display:flex}.weak-topics-list li{justify-content:space-between;align-items:center;gap:12px;display:flex}.journal-parent-link{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.parent-portal .parent-child-card{margin-bottom:20px;padding:20px}.parent-user-bar{justify-content:space-between;align-items:center;margin-bottom:20px;padding:12px 16px;display:flex}.parent-list{font-size:14px;list-style:none}.parent-block{margin-top:16px}.group-poll-panel{margin-bottom:16px;padding:16px}.group-poll-votes{margin:10px 0;list-style:none}.group-teacher-tools{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.puzzle-theme-banner{text-align:center;margin-bottom:12px}@media (width<=900px){.tournament-page{flex-direction:column}.tournament-sidebar{border-right:none;border-bottom:1px solid var(--glass-border);width:100%;min-height:auto}.tournament-main{padding:20px 16px}.tournament-stats-bar{grid-template-columns:repeat(3,1fr);gap:8px}.tournament-stat{padding:12px 8px}.tournament-stat__value{font-size:1.4rem}}@media (width<=480px){.tournament-schedule-grid{grid-template-columns:1fr}.tournament-league-tabs{border-radius:var(--radius-lg);justify-content:stretch;width:100%}.tournament-league-tabs button{flex:1;padding:8px 10px;font-size:12px}}.game-hud{text-align:center;margin:28px 0 24px;position:relative}.game-hud__badge{letter-spacing:.12em;text-transform:uppercase;border-radius:var(--radius-full);color:var(--peach-600);background:linear-gradient(135deg,#ff704340,#ff6b6b33);border:1px solid #ff8f6273;margin-bottom:10px;padding:4px 14px;font-size:11px;font-weight:800;display:inline-block;box-shadow:0 0 20px #ff704326}.game-hud h1{background:linear-gradient(135deg, var(--peach-500) 0%, var(--coral) 50%, var(--amber) 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 8px #ff704340);-webkit-background-clip:text;background-clip:text;margin:0 0 8px;font-size:clamp(1.6rem,4vw,2.2rem)}.game-hud__sub{color:var(--text-secondary);max-width:480px;margin:0 auto;font-size:.95rem}.game-panel{border-radius:var(--radius-lg);background:linear-gradient(160deg, var(--glass-bg-strong) 0%, var(--glass-bg) 100%);box-shadow:var(--glass-shadow-lg), inset 0 1px 0 #ffffff40, 0 0 0 1px #ff704314;border:1px solid #ff8f6259;position:relative;overflow:hidden}.game-panel:before{content:"";background:linear-gradient(90deg, var(--peach-500), var(--coral), var(--amber));opacity:.85;height:3px;position:absolute;top:0;left:0;right:0}.game-panel__head{border-bottom:1px solid var(--glass-border-soft);font-family:var(--font-display);align-items:center;gap:10px;padding:14px 18px;font-size:.95rem;font-weight:700;display:flex}.game-panel__head-icon{filter:drop-shadow(0 2px 4px #00000026);font-size:1.25rem}.game-quest-card{text-align:left;border:1px solid var(--glass-border-soft);border-radius:var(--radius-md);background:var(--glass-bg);cursor:pointer;color:var(--text-primary);transition:transform var(--transition-bounce), box-shadow var(--transition), border-color var(--transition);flex-direction:column;gap:6px;padding:14px 14px 14px 18px;display:flex;position:relative;overflow:hidden}.game-quest-card:before{content:"";background:linear-gradient(180deg, var(--peach-400), var(--peach-600));border-radius:4px 0 0 4px;width:4px;position:absolute;top:0;bottom:0;left:0}.game-quest-card:hover{border-color:#ff8f6266;transform:translateY(-2px);box-shadow:0 8px 24px #ff70432e}.game-quest-card.active{border-color:var(--peach-500);transform:translateY(-1px);box-shadow:0 0 0 2px #ff704340,0 12px 28px #ff704333}.game-quest-card.status-completed:before{background:linear-gradient(180deg, var(--emerald), #059669)}.game-quest-card.status-late:before{background:linear-gradient(180deg, var(--coral), #dc2626)}.game-quest-card__title{font-family:var(--font-display);font-size:.95rem;font-weight:700}.game-quest-card__meta{color:var(--text-muted);font-size:12px}.game-status-pill{letter-spacing:.06em;text-transform:uppercase;border-radius:var(--radius-full);align-items:center;gap:4px;width:fit-content;padding:3px 10px;font-size:10px;font-weight:800;display:inline-flex}.game-status-pill--pending{color:#b45309;background:#ffb34733;border:1px solid #ffb34766}.game-status-pill--completed{color:#047857;background:#34d39933;border:1px solid #34d39966}.game-status-pill--active{color:#b91c1c;background:#ff6b6b33;border:1px solid #ff6b6b73;animation:2s ease-in-out infinite pill-glow}.game-status-pill--scheduled{color:#4338ca;background:#6366f126;border:1px solid #6366f159}@keyframes pill-glow{0%,to{box-shadow:0 0 #ff6b6b00}50%{box-shadow:0 0 12px #ff6b6b59}}.game-status-pill--late{color:#b91c1c;background:#ff6b6b33;border:1px solid #ff6b6b66}.game-xp-bar{border-radius:var(--radius-full);background:#00000014;border:1px solid #ff8f6233;height:8px;margin:16px 0 8px;overflow:hidden}.game-xp-bar__fill{background:linear-gradient(90deg, var(--peach-400), var(--amber), var(--emerald));border-radius:var(--radius-full);height:100%;transition:width .4s cubic-bezier(.4,0,.2,1);box-shadow:0 0 12px #ffb34780}.game-xp-label{color:var(--text-muted);letter-spacing:.05em;font-size:11px;font-weight:700}.onboarding-game{text-align:center;padding:8px 4px 4px}.onboarding-game__icon{filter:drop-shadow(0 4px 12px #ff704359);margin-bottom:12px;font-size:56px;line-height:1;animation:.5s cubic-bezier(.175,.885,.32,1.275) onboarding-pop}@keyframes onboarding-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.onboarding-game h2{margin-bottom:8px;font-size:1.25rem;line-height:1.35}.onboarding-game__step{letter-spacing:.1em;text-transform:uppercase;color:var(--peach-600);margin-bottom:4px;font-size:11px;font-weight:800}.onboarding-game .game-xp-bar{max-width:280px;margin-left:auto;margin-right:auto}.onboarding-dots{justify-content:center;gap:8px;margin:12px 0 20px;display:flex}.onboarding-dots span{width:10px;height:10px;transition:all var(--transition);background:#0000001f;border-radius:50%}.onboarding-dots span.active{background:linear-gradient(135deg, var(--peach-400), var(--peach-600));transform:scale(1.15);box-shadow:0 0 10px #ff704380}.onboarding-dots span.done{background:var(--emerald)}.btn-game{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;border-radius:var(--radius-md);cursor:pointer;background:linear-gradient(135deg, var(--peach-400) 0%, var(--peach-600) 100%);color:#fff;box-shadow:0 4px 0 var(--peach-700), 0 8px 20px #ff704359;border:none;width:100%;padding:14px 24px;font-size:.85rem;font-weight:700;transition:transform .1s,box-shadow .1s}.btn-game:hover{box-shadow:0 5px 0 var(--peach-700), 0 10px 24px #ff704366;transform:translateY(-1px)}.btn-game:active{box-shadow:0 2px 0 var(--peach-700), 0 4px 12px #ff70434d;transform:translateY(2px)}.menu-card.game-feature-card{background:linear-gradient(145deg, #ff8f621f 0%, var(--glass-bg) 60%);border:1px solid #ff8f6259;position:relative;overflow:hidden}.menu-card.game-feature-card:after{content:"NEW";background:linear-gradient(135deg, var(--coral), var(--peach-600));color:#fff;letter-spacing:.08em;padding:4px 32px;font-size:9px;font-weight:800;position:absolute;top:10px;right:-28px;transform:rotate(45deg);box-shadow:0 2px 8px #ff6b6b66}.menu-card.game-feature-card--journal:after{content:"PRO"}.menu-card.game-feature-card .card-icon{filter:drop-shadow(0 3px 8px #ff70434d);font-size:2.2rem}.menu-card.game-feature-card:hover{border-color:var(--peach-400);box-shadow:0 12px 32px #ff704338}.notify-bell__btn{border-radius:var(--radius-sm);background:linear-gradient(145deg, var(--glass-bg-strong), var(--glass-bg));transition:transform var(--transition), box-shadow var(--transition);border:1px solid #ff8f6259}.notify-bell__btn:hover{transform:scale(1.05);box-shadow:0 0 16px #ff704340}.notify-bell__panel{background:linear-gradient(160deg, var(--glass-bg-strong), var(--glass-bg));border:1px solid #ff8f624d}.notify-bell__panel:before{content:"";background:linear-gradient(90deg, var(--peach-500), var(--coral));border-radius:var(--radius-md) var(--radius-md) 0 0;height:3px;margin:-12px -12px 10px;display:block}.journal-page .journal-layout.game-panel{padding:0}.journal-page .journal-layout.game-panel>*{padding:20px}.journal-tabs button.active{font-family:var(--font-display);box-shadow:0 4px 16px #ff704359}.journal-cal-cell.has-entry{box-shadow:inset 0 0 0 2px #34d39980}.journal-entry-card{border-left:3px solid var(--peach-500);transition:transform var(--transition)}.journal-entry-card:hover{transform:translate(4px)}.homework-arena{padding:0}.homework-arena__body{padding:20px}.homework-arena__complete{width:100%;max-width:320px;margin:20px auto 0;display:block}[data-theme=dark] .game-xp-bar{background:#ffffff14}[data-theme=dark] .onboarding-dots span{background:#ffffff26}[data-theme=dark] .game-quest-card{background:#0003}.tournament-game-page{z-index:1;min-height:100vh;padding:24px;position:relative}.tournament-game-layout{gap:28px;max-width:1100px;margin:0 auto;display:flex}.player-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;width:100%;max-width:500px;margin-bottom:8px;padding:14px 20px;display:flex}.player-name{font-size:.95rem;font-weight:600}.timer{font-family:var(--font-display);color:var(--text-primary);border-radius:var(--radius-sm);background:#ffffff40;padding:4px 12px;font-size:1.4rem;font-weight:800}.timer.active-timer{color:var(--peach-600);background:#ff8f6233;animation:1s infinite timer-pulse}.waiting-turn{text-align:center;color:var(--peach-600);margin-top:12px;padding:10px;font-size:.9rem;font-weight:700}.waiting-turn.active-turn{border-radius:var(--radius-full);background:#ff8f6226}.win{color:var(--emerald)}.loss{color:var(--coral)}#promotion-modal{background:var(--glass-bg-strong)!important;-webkit-backdrop-filter:blur(var(--glass-blur-lg))!important;backdrop-filter:blur(var(--glass-blur-lg))!important;border:1px solid var(--glass-border)!important;border-radius:var(--radius-lg)!important}#promotion-modal h3{color:var(--text-primary)!important;font-family:var(--font-display)!important}.promo-choice{cursor:pointer;transition:transform var(--transition);border:1px solid var(--glass-border)!important;border-radius:var(--radius-sm)!important;background:#fff6!important;width:60px!important;height:60px!important;font-size:36px!important}.promo-choice:hover{transform:scale(1.1);background:#fff9!important}@keyframes timer-pulse{0%,to{opacity:1}50%{opacity:.7}}@media (width<=900px){.tournament-game-layout{flex-direction:column}}.admin-page{z-index:1;max-width:1100px;margin:0 auto;padding:32px 24px 48px;position:relative}.admin-container{border-radius:var(--radius-xl);padding:32px}.admin-container header{border-bottom:1px solid var(--glass-border-soft);justify-content:space-between;align-items:center;margin-bottom:28px;padding-bottom:20px;display:flex}.admin-container h1{background:linear-gradient(135deg, var(--coral), var(--peach-600));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.6rem}.admin-controls{border-radius:var(--radius-md);border:1px solid var(--glass-border-soft);background:#ffffff26;align-items:center;gap:12px;margin-bottom:20px;padding:16px 20px;display:flex}.btn-action{border-radius:var(--radius-sm);cursor:pointer;font-size:.8rem;font-weight:600;font-family:var(--font-body);transition:all var(--transition);border:none;margin-right:4px;padding:6px 14px}.btn-reset{color:#b45309;background:#ffb3474d;border:1px solid #ffb34766}.btn-reset:hover{background:#ffb34780}.btn-delete{color:#dc2626;background:#ff6b6b33;border:1px solid #ff6b6b4d}.btn-delete:hover{background:#ff6b6b59}.admin-table-wrap{border-radius:var(--radius-lg);border:1px solid var(--glass-border-soft);background:#ffffff1a;overflow:hidden}.study-video-room{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:14px}.study-video-room--sidebar{background:0 0;border:none;border-radius:0;flex-shrink:0;padding:0}.study-video-room--bar{box-sizing:border-box;width:100%;min-width:0;max-width:100%}.study-video-bar{align-items:stretch;gap:6px;width:100%;min-width:0;display:flex}.study-video-toggle{border:1px solid var(--glass-border-soft);border-radius:var(--radius-sm);cursor:pointer;width:32px;transition:var(--transition);background:#ffffff26;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;line-height:1;display:flex}.study-video-toggle:hover{background:#ff8f6233;border-color:#ff8f6273}.study-video-toggle--on{background:#e74c3c26;border-color:#e74c3c59}.study-video-room--bar .study-video-bar{flex:1;min-width:0}.study-video-room--inline{margin-bottom:16px}.study-video-head{justify-content:space-between;align-items:center;margin-bottom:12px;font-size:13px;font-weight:700;display:flex}.study-video-error{color:#e74c3c;margin:0 0 4px;font-size:11px}.study-video-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;min-width:0;display:grid}.study-video-room--sidebar .study-video-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;min-width:0}.study-video-room--sidebar .study-video-tile{aspect-ratio:4/3;min-height:0;max-height:72px}.study-video-room--group .study-video-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.study-video-room--group .study-video-tile{aspect-ratio:4/3;min-height:140px}.study-video-tile{border-radius:var(--radius-sm);aspect-ratio:4/3;background:#0d0d0d;border:1px solid #ffffff14;position:relative;overflow:hidden}.study-video-tile video{object-fit:cover;width:100%;height:100%;display:block}.study-video-tile span{color:#fff;background:linear-gradient(#0000,#000000d9);padding:8px 10px;font-size:12px;font-weight:600;position:absolute;bottom:0;left:0;right:0}.study-video-room--sidebar .study-video-tile span{white-space:nowrap;text-overflow:ellipsis;padding:2px 5px;font-size:8px;font-weight:600;overflow:hidden}.study-video-tile--placeholder{color:#ffffff73;text-align:center;background:linear-gradient(160deg,#1a1a1a,#2a2220);justify-content:center;align-items:center;padding:16px;font-size:13px;display:flex}.study-video-room--sidebar .study-video-tile--placeholder{padding:4px;font-size:8px;line-height:1.2}.study-video-tile--placeholder span{color:inherit;white-space:normal;background:0 0;padding:0;position:static}.study-video-tile--off video{opacity:.15}.study-video-tile--off:before{content:"📷";opacity:.35;pointer-events:none;justify-content:center;align-items:center;font-size:2rem;display:flex;position:absolute;inset:0}.study-video-room--sidebar .study-video-tile--off:before{font-size:1rem}.study-page{z-index:1;box-sizing:border-box;flex-direction:column;height:100dvh;max-height:100dvh;padding:10px;display:flex;position:relative;overflow:hidden}.study-page .lobby-header{box-sizing:border-box;background:var(--glass-bg);width:100%;max-width:min(1800px,100%);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);flex-shrink:0;justify-content:space-between;align-items:center;max-width:1600px;margin-bottom:12px;margin-left:auto;margin-right:auto;padding:16px 24px;display:flex}.study-page .logo-area h1{background:linear-gradient(135deg, var(--peach-600), var(--coral));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.4rem}.study-page .user-badge-text{border-radius:var(--radius-full);background:#ffffff40;padding:8px 16px;font-size:.9rem}.main-layout{gap:20px;width:100%;max-width:min(1800px,100%);height:calc(100vh - 100px);margin:0 auto;display:flex}.study-studio{box-sizing:border-box;flex:1;grid-template-columns:80px minmax(0,1fr) minmax(0,360px);align-items:stretch;gap:20px;width:100%;max-width:min(1800px,100%);min-height:0;margin:0 auto;display:grid}.study-studio>.board-section{width:100%;height:100%;min-height:0;overflow:visible}.study-board-arena{flex-direction:column;justify-content:center;align-items:center;width:100%;min-width:0;min-height:0;padding-bottom:8px;display:flex;overflow:visible}.study-status-msg{text-transform:uppercase;color:var(--peach-600);text-align:center;flex-shrink:0;width:100%;margin-bottom:8px;font-size:14px;font-weight:800;line-height:1.2}.study-board-shell{box-sizing:border-box;border:1px solid var(--glass-border);border-radius:var(--radius-xl);width:auto;max-width:none;min-height:0;box-shadow:var(--glass-shadow-lg);background:#fff8f4;flex:none;margin:0 auto;padding:12px;position:relative;overflow:visible}.study-board-host{flex-shrink:0;line-height:0;position:relative;overflow:visible}.study-draw-canvas{pointer-events:none;z-index:5;position:absolute;top:0;left:0}.study-board-controls{box-sizing:border-box;flex:none;gap:10px;width:100%;margin:10px auto 0;padding:0 12px;display:flex;max-width:min(880px,100dvh - 250px,100vw - 480px)!important}.study-draw-wrap{width:100%;position:relative}.study-side-rail{box-sizing:border-box;flex-direction:column;gap:0;width:100%;min-width:0;max-width:100%;height:100%;max-height:100%;padding:14px;display:flex;overflow:hidden}.study-side-rail.info-panel{gap:0;width:100%;min-width:0;max-width:100%;padding:14px}.study-side-body{flex-direction:column;flex:1;gap:10px;width:100%;min-width:0;min-height:0;display:flex;overflow:hidden}.study-room-code{color:var(--text-secondary);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.study-room-code strong{color:var(--text-primary);letter-spacing:.04em;font-size:15px}.study-video-rail-slot{box-sizing:border-box;flex-shrink:0;width:100%;min-width:0;margin-bottom:10px}.study-teacher-tools{flex-shrink:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;width:100%;min-width:0;display:grid}.study-teacher-tools .btn-primary-sm,.study-teacher-tools .btn-secondary{white-space:normal;text-align:center;width:100%;min-width:0;padding:8px 6px;font-size:.75rem;line-height:1.2}.study-teacher-tools .study-hw-btn{grid-column:1/-1}.study-history-block{flex-direction:column;flex:1;width:100%;min-width:0;min-height:0;display:flex;overflow:hidden}.study-side-rail .chat-area.study-history-list{box-sizing:border-box;flex:1;width:100%;min-width:0;min-height:0;padding:8px;overflow:hidden auto}.study-side-rail .history-move{padding:5px 8px;font-size:12px}.study-side-rail .history-toolbar{flex-shrink:0;min-height:28px;margin-bottom:4px}.tabs-sidebar{flex-direction:column;align-items:center;gap:15px;width:80px;padding-top:10px;display:flex}#tabs-list{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.tab-item{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border-soft);cursor:pointer;width:60px;height:60px;transition:var(--transition);color:var(--text-secondary);border-radius:15px;flex-direction:column;justify-content:center;align-items:center;font-size:10px;display:flex}.tab-item i{margin-bottom:3px;font-size:20px}.tab-item.active{background:linear-gradient(135deg, var(--peach-400), var(--peach-500));color:#fff;border-color:#0000;transform:scale(1.05)}.tab-item.active i,.tab-item.active span{color:#fff}.add-tab-btn{width:55px;height:55px;color:var(--peach-400);cursor:pointer;transition:var(--transition);background:0 0;border:2px dashed #ff8f6266;border-radius:15px;font-size:24px}.add-tab-btn:hover{border-color:var(--peach-500);color:var(--peach-600);background:#ff8f621a}.board-section{flex-direction:column;flex:1;align-items:center;display:flex}.board-container{background:var(--glass-bg-strong);width:100%;max-width:min(78vh,100vw - 460px,1024px);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow-lg);padding:15px;position:relative}#myBoard,.study-draw-wrap{width:100%}#drawing-canvas{pointer-events:none;z-index:10;position:absolute;top:0;left:0}#status-msg{text-transform:uppercase;color:var(--peach-600);margin-bottom:10px;font-size:14px;font-weight:800}.board-controls{gap:10px;width:100%;max-width:min(78vh,100vw - 460px,1024px);margin-top:15px;display:flex}.info-panel{background:var(--glass-bg);width:100%;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);flex-direction:column;gap:15px;padding:20px;display:flex}.chat-area{border-radius:var(--radius-md);border:1px solid var(--glass-border-soft);background:#ffffff26;flex-grow:1;min-height:200px;padding:12px;overflow-y:auto}.history-toolbar{align-items:center;min-height:32px;margin-bottom:8px;display:flex}.history-reset-btn{border:1px solid var(--glass-border-soft);border-radius:var(--radius-sm);cursor:pointer;width:36px;height:32px;color:var(--text-primary);transition:var(--transition);background:#ffffff59;font-size:14px;line-height:1}.history-reset-btn:hover{background:#ff8f624d;border-color:#ff8f6280}.history-list{flex-direction:column;gap:6px;display:flex}.pgn-container{flex-wrap:wrap;gap:5px;padding:5px;display:flex}.pgn-move,.history-move{cursor:pointer;transition:var(--transition);color:var(--text-primary);text-align:left;width:100%;font-size:13px;font-weight:600;font-family:var(--font-body);background:#ffffff40;border:1px solid #0000;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;display:flex}.pgn-move:hover:not(:disabled),.history-move:hover:not(:disabled){background:#ff8f6240}.history-move.active{background:#ff8f6259;border-color:#ff8f628c}.history-move:disabled{cursor:default;opacity:.9}.history-move-num{color:var(--text-muted);min-width:1.5em}.history-move-label{letter-spacing:.02em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.lib-pos-card{cursor:pointer;color:#333;transition:var(--transition);background:#fff;border:1px solid #ddd;border-radius:10px;padding:8px}.lib-pos-card:hover{border-color:var(--peach-400);transform:translateY(-2px);box-shadow:0 6px 18px #2d1f1a1f}.lib-mini-board{aspect-ratio:1;pointer-events:none;background:#eee;border-radius:6px;width:100%;margin-bottom:6px;overflow:hidden}.lib-mini-board>div,.lib-mini-board [data-board-root],.lib-mini-board [data-board-root]>div{width:100%!important}.lib-pos-title{text-align:center;word-break:break-word;font-size:12px;font-weight:600;line-height:1.3}.btn-primary-sm,.btn-secondary,.btn-danger-light,.btn-logout{border-radius:var(--radius-md);font-family:var(--font-body);cursor:pointer;transition:var(--transition);border:none;padding:10px 16px;font-size:.85rem;font-weight:600}.btn-primary-sm{background:linear-gradient(135deg, var(--peach-400), var(--peach-500));color:#fff}.btn-secondary{color:var(--text-primary);border:1px solid var(--glass-border-soft);background:#ffffff4d}.btn-danger-light{color:#dc2626;background:#ff6b6b33;border:1px solid #ff6b6b4d}.btn-logout{color:var(--text-secondary);border:1px solid var(--glass-border-soft);background:#2d1f1a14;margin-top:auto}.btn-logout:hover{color:var(--coral);background:#ff6b6b26}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10000;background:#2d1f1a73;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.study-editor-modal{text-align:left;width:min(720px,94vw);max-width:720px}.study-lib-modal{text-align:left;width:min(640px,94vw);max-width:640px}.editor-layout{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.editor-tools{flex-direction:column;flex:1;gap:10px;min-width:180px;display:flex}.piece-palette{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.palette-piece{border-radius:var(--radius-sm);border:1px solid var(--glass-border-soft);cursor:pointer;background:#fff;padding:8px 4px;font-size:1.6rem;line-height:1}.palette-piece.active{border-color:var(--peach-500);background:#ff8f6240;box-shadow:0 0 0 2px #ff8f6259}.btn-primary-sm{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--peach-400), var(--peach-500));color:#fff;cursor:pointer;font-weight:700;font-family:var(--font-body);border:none;padding:10px 14px}.close-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;font-size:24px}@media (width<=1100px){.study-studio{grid-template-columns:1fr;height:auto;min-height:0}.study-side-rail{order:3;max-height:none}.study-board-arena{order:2}.tabs-sidebar{flex-direction:row;order:1;width:100%;overflow-x:auto}#tabs-list{flex-direction:row}.main-layout{flex-direction:column;height:auto}.info-panel{width:100%}}.study-board-shell,.study-board-host,.study-board-host #study-board-board{filter:none!important;-webkit-backdrop-filter:none!important;transform:none!important}.library-page{z-index:1;max-width:1600px;margin:0 auto;padding:72px 24px 24px;position:relative}.library-page h1{background:linear-gradient(135deg, var(--peach-600), var(--coral));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:24px;font-size:1.6rem}.editor-container{align-items:flex-start;gap:24px;display:flex}.board-section{background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);flex:0 0 400px;padding:16px;position:sticky;top:24px}.form-section{flex:1;min-width:0}.big-folder-container{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border-soft);border-radius:var(--radius-lg);margin-bottom:14px;overflow:hidden}.big-folder-header{cursor:pointer;border-bottom:1px solid var(--glass-border-soft);background:#ffffff26;align-items:center;padding:14px 18px;font-size:1rem;font-weight:700;display:flex}.big-folder-header i{color:var(--peach-500);margin-right:10px}.big-folder-content{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;padding:16px;display:grid}.folder-card{text-align:center;cursor:pointer;border:1px solid var(--glass-border-soft);border-radius:var(--radius-md);transition:all var(--transition);background:#fff3;padding:16px 8px}.folder-card:hover{border-color:var(--peach-400);background:#ff8f6226;transform:translateY(-2px)}.folder-card div:first-child{margin-bottom:5px;font-size:24px}.folder-card strong{white-space:nowrap;text-overflow:ellipsis;font-size:14px;display:block;overflow:hidden}.folder-card .count{color:var(--text-muted);margin-top:4px;font-size:11px}.positions-sortable-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.pos-sort-item{background:var(--glass-bg);border:1px solid var(--glass-border-soft);border-radius:var(--radius-md);align-items:center;padding:12px;display:flex}.pos-mini-preview{border-radius:var(--radius-sm);border:1px solid var(--glass-border-soft);background:#fff3;flex-shrink:0;width:100px;height:100px;overflow:hidden}.pos-details{flex:1;padding:0 14px;overflow:hidden}.pos-details strong{margin-bottom:4px;font-size:14px;display:block}.lib-modal{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:9999;background:#2d1f1a73;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.lib-modal-content{border-radius:var(--radius-xl);width:400px;max-width:90vw;padding:28px}@media (width<=900px){.editor-container{flex-direction:column}.board-section{flex:none;width:100%;position:static}}.schedule-page-body{background-color:#f4f7f6;min-height:100vh;margin:0;padding:0;font-family:Inter,Outfit,sans-serif}.schedule-page-body .header-area{text-align:center;padding:40px 0 20px}.schedule-page-body .header-area h1{color:#262421;cursor:pointer;margin:0;font-weight:800}.schedule-page-body .main-wrapper{background:#262421;border-radius:16px;width:98%;max-width:1400px;margin:0 auto 50px;padding:25px;position:relative;box-shadow:0 25px 50px #0006}.schedule-content-layout{align-items:flex-start;gap:20px;display:flex}.schedule-page-body .grid-container{flex:1;min-width:0;position:relative;overflow-x:auto}.schedule-page-body .requests-container{background:#1a1917;border:1px solid #3e3b38;border-radius:8px;flex-shrink:0;width:250px;padding:15px}.schedule-page-body .requests-list{flex-direction:column;gap:10px;display:flex}.schedule-page-body .request-item{color:#eee;background:#2d2a27;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:10px;font-size:12px;display:flex}.schedule-page-body .btn-approve{color:#fff;cursor:pointer;background:#5a8a43;border:none;border-radius:4px;padding:5px 10px;font-weight:700}.schedule-page-body .btn-reject{color:#fff;cursor:pointer;background:#b23333;border:none;border-radius:4px;padding:5px 8px}.schedule-page-body .schedule-grid{background:#3e3b38;border:2px solid #3e3b38;border-radius:8px;grid-template-columns:70px repeat(7,minmax(90px,1fr));gap:2px;min-width:760px;display:grid}.schedule-page-body .grid-header,.schedule-page-body .time-label{color:#f0d9b5;text-align:center;background:#2d2a27;padding:15px 5px;font-size:13px;font-weight:700}.schedule-page-body .grid-cell{cursor:pointer;background:#262421;min-height:80px;position:relative}.schedule-page-body .grid-cell:hover{background:#33312e}.schedule-page-body .lesson-slot{color:#fff;z-index:30;text-align:center;cursor:pointer;background:#5a8a43;border-left:4px solid #f0d9b5;border-radius:6px;justify-content:center;align-items:center;padding:8px;font-size:11px;line-height:1.3;display:flex;position:absolute;inset:4px}.schedule-page-body .lesson-slot.mine{background:#3d6b9a;border-left-color:#8ec5ff}.schedule-page-body .week-nav{justify-content:center;align-items:center;gap:16px;margin-bottom:20px;display:flex}.schedule-page-body .week-nav button{color:#f0d9b5;cursor:pointer;background:#3e3b38;border:none;border-radius:8px;padding:8px 14px;font-weight:600}.schedule-page-body .week-nav span{color:#f0d9b5;font-size:14px;font-weight:600}.schedule-modal-panel{width:380px;max-width:92vw;padding:30px}.schedule-modal-panel .checkbox-list,.schedule-page-body .checkbox-list{background:#1a1917;border:1px solid #333;border-radius:8px;max-height:200px;margin-bottom:15px;padding:10px;overflow-y:auto}.schedule-modal-panel .student-label,.schedule-page-body .student-label{cursor:pointer;border-bottom:1px solid #222;align-items:center;gap:8px;padding:8px;font-size:14px;display:flex}.schedule-modal-panel .btn-save,.schedule-page-body .btn-save{color:#fff;cursor:pointer;background:#5a8a43;border:none;border-radius:8px;width:100%;padding:15px;font-weight:700}.schedule-modal-panel .btn-delete,.schedule-page-body .btn-delete{color:#fff;cursor:pointer;background:#b23333;border:none;border-radius:8px;width:100%;padding:15px;font-weight:700}.schedule-modal-panel .btn-cancel,.schedule-page-body .btn-cancel{color:#888;cursor:pointer;background:0 0;border:none;width:100%;margin-top:15px}.schedule-modal-panel .btn-request,.schedule-page-body .btn-request{color:#fff;cursor:pointer;background:#3d6b9a;border:none;border-radius:8px;width:100%;padding:15px;font-weight:700}@media (width<=900px){.schedule-content-layout{flex-direction:column}.schedule-page-body .requests-container{width:100%}}.journal-page{max-width:min(1400px,100%);margin:0 auto;padding:20px 16px 60px}.journal-header{text-align:center;margin:24px 0 16px}.journal-header h1{margin-bottom:12px}.journal-select{max-width:280px;margin:0 auto}.journal-tabs{justify-content:center;gap:8px;margin-bottom:16px;display:flex}.journal-tabs button{border:1px solid var(--glass-border);background:var(--glass-bg);border-radius:var(--radius-full);cursor:pointer;color:var(--text-secondary);padding:8px 18px;font-weight:600}.journal-tabs button.active{background:linear-gradient(135deg, var(--peach-400), var(--peach-500));color:#fff;border-color:#0000}.journal-layout{border-radius:var(--radius-lg);grid-template-columns:1fr 1fr;gap:20px;padding:20px;display:grid}@media (width<=900px){.journal-layout{grid-template-columns:1fr}}.journal-cal-nav{justify-content:space-between;align-items:center;margin-bottom:12px;font-weight:700;display:flex}.journal-cal-nav button{background:var(--glass-bg);border-radius:var(--radius-sm);cursor:pointer;border:none;width:36px;height:36px;font-size:20px}.journal-cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.journal-cal-dow{text-align:center;color:var(--text-muted);padding:4px;font-size:11px;font-weight:700}.journal-cal-cell{aspect-ratio:1;border:1px solid var(--glass-border-soft);border-radius:var(--radius-sm);background:var(--glass-bg);cursor:pointer;color:var(--text-primary);flex-direction:column;justify-content:center;align-items:center;min-height:44px;font-size:13px;display:flex;position:relative}.journal-cal-cell.empty{visibility:hidden;pointer-events:none}.journal-cal-cell.has-entry{border-color:var(--emerald)}.journal-cal-cell.has-plan{box-shadow:inset 0 0 0 2px var(--amber)}.journal-cal-dots{gap:3px;margin-top:2px;display:flex}.journal-cal-dots .dot{border-radius:50%;width:5px;height:5px;display:block}.journal-cal-dots .dot.entry{background:var(--emerald)}.journal-cal-dots .dot.plan{background:var(--amber)}.journal-side h3{margin:0 0 12px;font-size:16px}.journal-side-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.journal-entries-list{flex-direction:column;gap:10px;max-height:420px;display:flex;overflow-y:auto}.journal-entry-card{border:1px solid var(--glass-border-soft);border-radius:var(--radius-md);background:var(--glass-bg);padding:12px}.journal-entry-top{align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.journal-entry-preview{color:var(--text-secondary);margin-bottom:8px;font-size:13px}.journal-tags{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.journal-tags span{border-radius:var(--radius-full);background:#0000000f;padding:3px 8px;font-size:11px}.journal-tags.done span{background:#34d39933}.journal-tags.planned span{background:#ffb34733}.journal-entry-actions{gap:8px;display:flex}.journal-plan-form textarea{resize:vertical;width:100%}.journal-plan-list{flex-direction:column;gap:8px;max-height:300px;margin-top:16px;display:flex;overflow-y:auto}.journal-plan-item{text-align:left;border:1px solid var(--glass-border-soft);border-radius:var(--radius-sm);background:var(--glass-bg);cursor:pointer;gap:4px;padding:10px;display:grid}.journal-plan-item.status-done{opacity:.7;border-color:var(--emerald)}.journal-plan-date{color:var(--text-muted);font-size:11px}.journal-plan-status{color:var(--peach-600);font-size:11px}.journal-label{color:var(--text-muted);margin-bottom:4px;font-size:12px;display:block}.journal-topic-row{gap:8px;display:flex}.journal-topic-row .form-input{flex:1}.homework-page{max-width:min(1400px,100%);margin:0 auto;padding:20px 16px 60px}.homework-title{text-align:center;margin:24px 0 20px}.homework-layout{grid-template-columns:300px 1fr;gap:20px;display:grid}@media (width<=800px){.homework-layout{grid-template-columns:1fr}}.homework-list{border-radius:var(--radius-lg);flex-direction:column;gap:10px;max-height:70vh;padding:16px;display:flex;overflow-y:auto}.homework-card{text-align:left;border:1px solid var(--glass-border-soft);border-radius:var(--radius-md);background:var(--glass-bg);cursor:pointer;color:var(--text-primary);flex-direction:column;gap:4px;padding:12px;display:flex}.homework-card.active{border-color:var(--peach-500);box-shadow:0 0 0 2px #ff704333}.homework-card.status-completed{opacity:.75}.homework-status{color:var(--peach-600);font-size:11px;font-weight:700}.homework-board{border-radius:var(--radius-lg);padding:20px}.homework-board h2{margin-bottom:8px}.homework-instructions{color:var(--text-secondary);margin-bottom:16px;font-size:14px}.homework-board-wrap{width:100%;max-width:min(640px,100vw - 380px);margin:0 auto}.calendar-page{max-width:min(1400px,100%);margin:0 auto;padding:16px 16px 60px}.calendar-week-nav{justify-content:center;align-items:center;gap:16px;margin-bottom:20px;display:flex}.calendar-week-nav button{border:1px solid var(--glass-border);background:var(--glass-bg-strong);border-radius:var(--radius-sm);cursor:pointer;padding:8px 16px;font-weight:700}.calendar-days{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}@media (width<=600px){.calendar-days{grid-template-columns:1fr}}.calendar-day{min-height:120px;padding:0}.calendar-day-head{border-bottom:1px solid var(--glass-border-soft);justify-content:space-between;padding:10px 12px;font-size:13px;display:flex}.calendar-day-events{flex-direction:column;gap:8px;padding:10px;display:flex}.cal-event{border-radius:var(--radius-sm);text-align:left;flex-direction:column;gap:4px;padding:8px;font-size:12px;display:flex}.cal-event--lesson{background:#34d3991f;border:1px solid #34d3994d}.cal-event--hw{cursor:pointer;color:inherit;background:#ffb3471f;border:1px solid #ffb34759;width:100%}.cal-event-time{color:var(--peach-600);font-weight:700}.cal-event-time small{color:var(--text-muted);font-weight:500}.cal-video-link{color:var(--peach-600);font-weight:600}.topic-tags{flex-wrap:wrap;gap:8px;display:flex}.topic-chip{border-radius:var(--radius-full);padding:4px 10px;font-size:12px}.topic-chip.done{background:#34d39933;border:1px solid #34d39966}.topic-chip.planned{background:#ffb34726;border:1px solid #ffb34759}.schedule-dual-time{flex-direction:column;gap:2px;line-height:1.2;display:flex}.schedule-dual-time .tz-primary{color:#f0d9b5;font-weight:700}.schedule-dual-time .tz-secondary{color:#f0d9b5a6;font-size:10px;font-weight:500}.schedule-tz-bar{background:#0003;border-radius:10px;flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:16px;padding:12px;display:flex}.schedule-tz-bar label{color:#aaa;flex-direction:column;gap:4px;font-size:12px;display:flex}.schedule-tz-bar select{color:#eee;background:#2d2a27;border:1px solid #444;border-radius:6px;padding:6px 10px;font-size:12px}.lesson-slot .video-icon{opacity:.9;margin-top:4px;font-size:10px;display:block}.group-study-page{min-height:100vh;padding:12px}.group-teacher-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin:16px 0;display:grid}.group-mini-board{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:8px}.group-mini-board h4{text-align:center;margin:0 0 8px;font-size:12px}.group-toolbar{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.group-broadcast-overlay{z-index:9000;background:#000000bf;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.group-broadcast-panel{background:var(--glass-bg-strong);border-radius:var(--radius-lg);width:100%;max-width:480px;padding:20px}.group-pairings{flex-direction:column;gap:8px;margin-top:12px;display:flex}.group-pair-item{background:var(--glass-bg);border-radius:var(--radius-sm);text-align:center;padding:10px;font-size:14px}.group-phase-bar{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px;display:flex}.group-phase-pill{border-radius:var(--radius-full);border:1px solid var(--glass-border-soft);opacity:.6;background:#ffffff14;padding:4px 10px;font-size:11px}.group-phase-pill.active{opacity:1;background:#34d39933;border-color:#34d39980;font-weight:700}.group-teacher-tabs{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.group-teacher-tabs button{border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:var(--glass-bg);cursor:pointer;padding:8px 14px;font-size:13px;font-weight:600}.group-teacher-tabs button.active{background:var(--peach-600,#e67e22);color:#fff;border-color:#0000}.group-panel{margin-bottom:20px}.group-board-row{max-width:min(560px,100vw - 120px);margin:12px auto}.group-student-main{max-width:min(640px,100vw - 80px);margin-left:auto;margin-right:auto}.group-action-btn{width:auto;min-width:200px;margin:16px auto 0;padding:12px 20px;display:block}.group-move-badge{opacity:.75;margin-left:6px;font-size:10px;font-weight:500}.group-mini-click{cursor:pointer;border-radius:var(--radius-sm);transition:box-shadow .15s}.group-mini-click:hover{box-shadow:0 0 0 2px var(--peach-600,#e67e22)}.group-live-bc{cursor:pointer;align-items:center;gap:8px;margin-bottom:12px;font-size:13px;display:flex}.group-pair-result,.group-pair-live{color:var(--text-muted);font-size:12px}:root{--peach-50:#fff8f4;--peach-100:#ffe8dc;--peach-200:#ffd0b8;--peach-300:#ffb088;--peach-400:#ff8f62;--peach-500:#ff7043;--peach-600:#e85a2e;--peach-700:#c44420;--coral:#ff6b6b;--rose:#ff8fa3;--amber:#ffb347;--mint:#6ee7b7;--emerald:#34d399;--text-primary:#2d1f1a;--text-secondary:#2d1f1ab8;--text-muted:#2d1f1a80;--text-on-glass:#3d2a22;--glass-bg:#ffffff38;--glass-bg-strong:#ffffff61;--glass-bg-dark:#ffc8aa26;--glass-border:#ffffff73;--glass-border-soft:#ffffff40;--glass-shadow:0 8px 32px #ff70431f;--glass-shadow-lg:0 20px 60px #ff70432e;--glass-blur:20px;--glass-blur-lg:32px;--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--radius-xl:32px;--radius-full:9999px;--font-display:"Syne", system-ui, sans-serif;--font-body:"Outfit", system-ui, sans-serif;--transition:.25s cubic-bezier(.4, 0, .2, 1);--transition-bounce:.4s cubic-bezier(.175, .885, .32, 1.275)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--text-primary);-webkit-font-smoothing:antialiased;background:linear-gradient(135deg,#fff5f0 0%,#ffe4d6 25%,#ffd4c4 50%,#ffc9b0 75%,#ffb8a0 100%) fixed;min-height:100vh;line-height:1.6;position:relative;overflow-x:hidden}body:before,body:after{content:"";filter:blur(80px);opacity:.5;pointer-events:none;z-index:0;border-radius:50%;position:fixed}body:before{background:radial-gradient(circle,#ff8f6266 0%,#0000 70%);width:600px;height:600px;animation:20s ease-in-out infinite float-orb;top:-200px;right:-100px}body:after{background:radial-gradient(circle,#ff6b6b4d 0%,#0000 70%);width:500px;height:500px;animation:25s ease-in-out infinite reverse float-orb;bottom:-150px;left:-100px}@keyframes float-orb{0%,to{transform:translate(0)scale(1)}33%{transform:translate(30px,-20px)scale(1.05)}66%{transform:translate(-20px,30px)scale(.95)}}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.02em;font-weight:700;line-height:1.2}a{color:var(--peach-600);transition:color var(--transition);text-decoration:none}a:hover{color:var(--peach-700)}code,pre{font-family:JetBrains Mono,Fira Code,monospace;font-size:.85em}::selection{color:var(--text-primary);background:#ff70434d}.swal2-container{z-index:300000!important;background:#2d1f1a8c!important}.swal2-popup{-webkit-backdrop-filter:none!important;border-radius:var(--radius-lg)!important;color:var(--text-primary)!important;font-family:var(--font-body)!important;opacity:1!important;background:#fff8f4!important;border:1px solid #ffb08899!important;box-shadow:0 20px 50px #2d1f1a47!important}.swal2-title{font-family:var(--font-display)!important;color:var(--text-primary)!important}.swal2-html-container{color:var(--text-secondary)!important}.swal2-confirm{background:linear-gradient(135deg, var(--peach-400), var(--peach-500))!important;border-radius:var(--radius-sm)!important;font-family:var(--font-body)!important;color:#fff!important;font-weight:600!important}.swal2-cancel{color:var(--text-secondary)!important;border-radius:var(--radius-sm)!important;background:#f0e4dc!important;border:1px solid #2d1f1a1f!important}[data-theme=dark]{--text-primary:#f5ebe6;--text-secondary:#f5ebe6c7;--text-muted:#f5ebe680;--text-on-glass:#f0e4dc;--glass-bg:#1e18168c;--glass-bg-strong:#28201cb8;--glass-bg-dark:#14100ea6;--glass-border:#ffffff1f;--glass-border-soft:#ffffff14;--glass-shadow:0 8px 32px #00000059;--glass-shadow-lg:0 20px 60px #00000080}[data-theme=dark] body{color:var(--text-primary);background:linear-gradient(135deg,#1a1412 0%,#261e1a 30%,#2d2420 60%,#1f1815 100%)}[data-theme=dark] body:before{background:radial-gradient(circle,#ff704326 0%,#0000 70%)}[data-theme=dark] body:after{background:radial-gradient(circle,#c8503c1f 0%,#0000 70%)}[data-theme=dark] .swal2-popup{color:var(--text-primary)!important;background:#2a2220!important;border-color:#ffffff1a!important}[data-theme=dark] .swal2-cancel{color:var(--text-secondary)!important;background:#3a302c!important}.profile-check{cursor:pointer;align-items:center;gap:8px;margin-top:8px;font-size:14px;display:flex}.parent-report{justify-content:center;align-items:center;min-height:100vh;padding:40px 16px;display:flex}.parent-report-card{border-radius:var(--radius-lg);width:100%;max-width:640px;padding:32px}.parent-report-body{white-space:pre-wrap;margin:20px 0;line-height:1.7}.study-notes-block{margin-bottom:10px}.study-notes-label{color:var(--text-muted);margin-bottom:6px;font-size:12px;font-weight:700;display:block}.study-notes-input{border:1px solid var(--glass-border-soft);border-radius:var(--radius-sm);width:100%;font-family:var(--font-body);resize:vertical;background:var(--glass-bg);color:var(--text-primary);min-height:80px;padding:10px;font-size:13px}.study-pgn-actions{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.page-wrap{z-index:1;min-height:100vh;position:relative}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-strong{background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(var(--glass-blur-lg));border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-lg)}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);transition:transform var(--transition-bounce), box-shadow var(--transition), border-color var(--transition)}.glass-card:hover{box-shadow:var(--glass-shadow-lg);border-color:#fff9;transform:translateY(-4px)}.btn{border-radius:var(--radius-md);font-family:var(--font-body);cursor:pointer;transition:all var(--transition);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--peach-400) 0%, var(--peach-500) 50%, var(--coral) 100%);color:#fff;box-shadow:0 4px 20px #ff704359}.btn-primary:hover{color:#fff;transform:translateY(-2px);box-shadow:0 8px 28px #ff704373}.btn-secondary{background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--text-primary);border:1px solid var(--glass-border)}.btn-secondary:hover{color:var(--text-primary);background:#ffffff80}.btn-danger{color:#fff;background:linear-gradient(135deg,#ff6b6b,#ee5a5a);box-shadow:0 4px 16px #ff6b6b4d}.btn-danger:hover{color:#fff;transform:translateY(-2px)}.btn-ghost{color:var(--text-secondary);background:0 0;border:1px solid #0000;padding:8px 16px}.btn-ghost:hover{background:var(--glass-bg);border-color:var(--glass-border-soft);color:var(--text-primary)}.btn-sm{border-radius:var(--radius-sm);padding:8px 16px;font-size:.85rem}.btn-block{width:100%}.badge{border-radius:var(--radius-full);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:4px;padding:4px 12px;font-size:.75rem;font-weight:700;display:inline-flex}.badge-online{color:#059669;background:#34d39933;border:1px solid #34d39966}.badge-streak{color:var(--peach-700);background:linear-gradient(135deg,#ff9f4340,#ff6b6b40);border:1px solid #ff704359}.form-group{margin-bottom:18px}.form-group label{color:var(--text-secondary);margin-bottom:6px;font-size:.85rem;font-weight:600;display:block}.form-input{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--glass-border-soft);border-radius:var(--radius-md);width:100%;font-family:var(--font-body);color:var(--text-primary);transition:border-color var(--transition), box-shadow var(--transition), background var(--transition);background:#ffffff59;padding:14px 18px;font-size:1rem}.form-input::placeholder{color:var(--text-muted)}.form-input:focus{border-color:var(--peach-400);background:#ffffff80;outline:none;box-shadow:0 0 0 4px #ff8f6226}select.form-input{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23e85a2e' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:40px}.app-modal-overlay,.modal-overlay{-webkit-backdrop-filter:blur(6px);z-index:200000;background:#2d1f1ab8;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.app-modal-overlay--dark{background:#000000e0}.modal-overlay{display:none}.modal-overlay.open,.modal-overlay[style*=flex]{display:flex!important}.app-modal-panel,.modal-glass{border-radius:var(--radius-xl);text-align:center;width:100%;max-width:440px;animation:modal-in .35s var(--transition-bounce);color:var(--text-primary);background:#fff8f4;border:1px solid #ffb0888c;padding:32px;box-shadow:0 24px 64px #2d1f1a47}.app-modal-panel--dark{color:#fff;text-align:left;background:#262421;border:1px solid #3e3b38}@keyframes modal-in{0%{opacity:0;transform:scale(.92)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-glass h2{margin-bottom:8px;font-size:1.5rem}.modal-glass p{color:var(--text-secondary);margin-bottom:24px;line-height:1.5}.modal-icon{margin-bottom:12px;font-size:3rem;display:block}.table-glass{border-collapse:separate;border-spacing:0;width:100%}.table-glass th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--glass-border-soft);padding:14px 16px;font-size:.8rem;font-weight:700}.table-glass td{color:var(--text-primary);border-bottom:1px solid #ffffff26;padding:14px 16px}.table-glass tr:hover td{background:#ffffff1a}.table-wrapper{border-radius:var(--radius-md);overflow-x:auto}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;padding:20px 32px;display:flex}.page-header h1{background:linear-gradient(135deg, var(--peach-600), var(--coral));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.75rem}.back-link{color:var(--text-secondary);border-radius:var(--radius-full);background:var(--glass-bg);border:1px solid var(--glass-border-soft);transition:all var(--transition);align-items:center;gap:6px;padding:8px 16px;font-size:.9rem;font-weight:600;display:inline-flex}.back-link:hover{background:var(--glass-bg-strong);color:var(--text-primary)}.back-btn-fixed{color:#333;z-index:10000;background:#fff;border:1px solid #2d1f1a1f;border-radius:10px;justify-content:center;align-items:center;width:45px;height:45px;font-size:24px;line-height:1;text-decoration:none;transition:transform .15s,box-shadow .15s,color .15s;display:flex;position:fixed;top:20px;left:20px;box-shadow:0 4px 16px #2d1f1a1a}.back-btn-fixed:hover{color:var(--peach-600);transform:translateY(-1px);box-shadow:0 6px 20px #2d1f1a24}.status-msg{min-height:1.2em;margin-top:10px;font-size:.9rem}.status-msg.success{color:var(--emerald)}.status-msg.error{color:var(--coral)}.subtitle{color:var(--text-secondary);font-size:1rem}.badge-role{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.04em;padding:4px 10px;font-size:.7rem;font-weight:700;display:inline-block}.role-admin{color:#dc2626;background:#ff6b6b33}.role-teacher{color:#2563eb;background:#60a5fa33}.role-student{color:#059669;background:#34d39933}.text-center{text-align:center}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mb-2{margin-bottom:16px}.hidden{display:none!important}body.modal-open{overflow:hidden}@media (width<=768px){.page-header{text-align:center;flex-direction:column;gap:12px;padding:16px 20px}.lobby-header{flex-direction:column;align-items:flex-start;gap:12px}.lobby-header .user-info{flex-wrap:wrap;gap:8px}.menu-grid{grid-template-columns:1fr!important}.study-page .main-layout{flex-direction:column}.study-page .tabs-sidebar{flex-direction:row;width:100%;max-height:120px;overflow-x:auto}.homework-layout{flex-direction:column}.homework-list{max-height:200px}.journal-layout{flex-direction:column}.journal-calendar{width:100%}.group-teacher-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.group-toolbar{flex-direction:column}.group-toolbar .btn-game,.group-toolbar .btn{width:100%}.schedule-page-body .schedule-grid{min-width:600px}.schedule-tz-bar{flex-direction:column;align-items:stretch}.profile-container .profile-grid{grid-template-columns:1fr!important}.game-hud h1{font-size:1.25rem}.page-wrap{padding-left:12px;padding-right:12px}}@media (width<=480px){.calendar-days{grid-template-columns:1fr}.group-broadcast-panel{padding:12px}}@media (width>=1024px){.page-wrap{padding-left:24px;padding-right:24px}.lobby-container,.calendar-page,.homework-page,.journal-page,.admin-page,.profile-container,.tournament-list-page,.library-page,.group-study-page{max-width:min(1680px,100%);margin-left:auto;margin-right:auto}.lobby-container{padding-left:32px;padding-right:32px}.lobby-content h2{font-size:2rem}.menu-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.menu-card{padding:28px}.card-icon{width:64px;height:64px;font-size:2.5rem}.game-hud__sub{max-width:720px;font-size:1.05rem}.game-hud h1{font-size:clamp(1.8rem,2.5vw,2.6rem)}.study-page{padding:12px 20px 16px}.study-page .lobby-header,.main-layout,.study-studio{max-width:min(1800px,100%)}.study-studio{grid-template-columns:80px minmax(0,1fr) minmax(0,380px);gap:20px}.study-board-shell{max-width:none;padding:14px}.study-board-controls{max-width:min(900px,100dvh - 260px,100vw - 460px)!important}.main-layout{gap:24px;height:calc(100vh - 110px);min-height:640px}.info-panel:not(.study-side-rail){width:min(400px,26vw);min-width:340px;padding:22px}.chat-area{min-height:280px}.study-editor-modal{width:min(880px,92vw);max-width:880px}.study-lib-modal{width:min(800px,92vw);max-width:800px}.group-board-row{max-width:min(640px,42vw);margin-left:0;margin-right:auto}.group-student-main{max-width:min(720px,48vw);margin-left:auto;margin-right:auto}.group-broadcast-panel{max-width:min(720px,55vw)}.group-teacher-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.group-panel{padding:4px 0}.homework-layout{grid-template-columns:minmax(320px,360px) 1fr;gap:28px}.homework-board-wrap{max-width:min(720px,100%)}.journal-layout{grid-template-columns:minmax(360px,1fr) minmax(400px,1.2fr);gap:28px}.puzzle-page .puzzle-container{max-width:min(1100px,100%);padding:32px 40px}.puzzle-board-wrap{max-width:min(640px,50vw);margin-left:auto;margin-right:auto}.game-layout{gap:36px;max-width:min(1400px,100%)}.game-page .board-wrap,.game-page .board-wrap [data-board-root],.game-page .board-wrap [data-board-root]>div,.tournament-game-page .board-wrap,.play-bot-page .board-wrap{max-width:min(640px,100vw - 420px)!important}.game-page .board-wrap,.tournament-game-page .board-wrap{width:100%;max-width:min(640px,100vw - 420px)}.game-sidebar{width:min(360px,28vw)}.tournament-sidebar{width:min(360px,26vw);min-width:300px}.tournament-main{padding:32px 40px}.tournament-schedule-grid{grid-template-columns:repeat(2,1fr);gap:18px}@media (width>=1400px){.tournament-schedule-grid{grid-template-columns:repeat(3,1fr)}}.schedule-page-body{max-width:min(1680px,98%);margin:0 auto}.profile-container{max-width:min(1200px,100%)}.profile-grid{gap:28px!important}.modal-content{max-width:min(560px,90vw)}}@media (width>=1440px){.board-container{max-width:min(1024px,100vh - 120px,100vw - 540px)}.study-board-shell{max-width:none}.study-board-controls{max-width:min(920px,100dvh - 240px,100vw - 500px)!important}.info-panel:not(.study-side-rail){width:420px}}
