@import"https://fonts.googleapis.com/css2?family=Fredoka:wght@500;600;700&family=Nunito:wght@400;600;700;800&family=VT323&display=swap";:root{--bg-0: #fbf6f0;--bg-1: #f7f0ff;--surface: #ffffff;--surface-2: #fff8f1;--surface-3: #f3eaff;--border: rgba(63, 46, 96, .1);--border-strong: rgba(63, 46, 96, .18);--text: #3a2b4d;--text-2: #6e6188;--text-3: #9b8fb3;--accent: #ff6f61;--accent-soft: rgba(255, 111, 97, .12);--accent-2: #ffb84d;--accent-2-soft: rgba(255, 184, 77, .16);--teal: #22a593;--teal-soft: rgba(34, 165, 147, .14);--teal-border: rgba(34, 165, 147, .3);--purple: #7c6be6;--purple-soft: rgba(124, 107, 230, .12);--green: #43a96c;--red: #ff5f6d;--red-soft: rgba(255, 95, 109, .12);--radius: 20px;--radius-lg: 26px;--radius-sm: 12px;--shadow: 0 20px 46px rgba(0, 0, 0, .4);--shadow-sm: 0 8px 22px rgba(0, 0, 0, .28);--font-body: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Fredoka", "Nunito", sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{scrollbar-color:#d8cfe6 transparent}body{font-family:var(--font-body);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#2b2040;background-image:linear-gradient(#2b20406b,#2b20409e),radial-gradient(1000px 700px at 15% -5%,rgba(255,150,110,.4),transparent 60%),radial-gradient(900px 650px at 108% 6%,rgba(255,120,120,.3),transparent 55%),radial-gradient(1200px 800px at 50% 125%,rgba(150,110,230,.44),transparent 62%),radial-gradient(700px 520px at 88% 55%,rgba(70,190,175,.3),transparent 60%),url(/bg.png);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed}button{font-family:inherit}.app{max-width:1280px;margin:0 auto;padding:0 28px 96px}header{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 10px 8px 14px;border-radius:16px;background:#ffffffc7;border:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.tabs{display:flex;gap:4px;padding:4px;background:var(--bg-1);border-radius:12px}.tab-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border:none;border-radius:9px;background:transparent;color:var(--text-2);font-weight:700;font-size:.9em;cursor:pointer;transition:all .2s ease}.tab-btn svg{width:18px;height:18px;opacity:.8}.tab-btn:hover{color:var(--text);background:#7c6be61a}.tab-btn.active{color:#fff;background:linear-gradient(135deg,var(--accent),#ff9c6e);box-shadow:0 4px 14px #ff6f6159}.user-info{position:relative;display:flex;align-items:center;gap:10px;flex-shrink:0}.user-info .username{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:.92em;font-family:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);padding:8px 14px;border-radius:999px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.user-info .username:hover,.user-info .username.open{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px var(--accent-soft)}.user-info .username svg{width:16px;height:16px;color:var(--accent);flex-shrink:0}.user-info .username .username-chevron{width:14px;height:14px;color:var(--text-3);transition:transform .2s ease}.user-info .username.open .username-chevron{transform:rotate(180deg)}.user-info .username .username-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.user-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:60;width:220px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:8px;animation:popIn .15s ease}.user-menu-head{padding:8px 12px 10px;border-bottom:1px solid var(--border);margin-bottom:6px}.user-menu-name{display:block;font-weight:800;font-size:.95em;color:var(--text)}.user-menu-sub{display:block;font-size:.78em;font-weight:700;color:var(--text-3);margin-top:2px}.user-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border:none;background:transparent;border-radius:9px;color:var(--text);font-size:.95em;font-weight:700;cursor:pointer;transition:background .15s ease,color .15s ease}.user-menu-item svg{width:18px;height:18px;color:var(--text-2);transition:color .15s ease}.user-menu-item:hover,.user-menu-item:focus-visible{background:var(--red-soft);color:var(--red);outline:none}.user-menu-item:hover svg,.user-menu-item:focus-visible svg{color:var(--red)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border:none;border-radius:var(--radius-sm);font-size:1em;font-weight:800;cursor:pointer;transition:all .2s ease}.btn svg{width:18px;height:18px}.btn-primary{background:linear-gradient(135deg,var(--accent),#ff9c6e);color:#fff;box-shadow:0 6px 18px #ff6f6152}.btn-primary:hover,.btn-primary:focus-visible{transform:translateY(-2px);box-shadow:0 10px 24px #ff6f6166}.btn-secondary{background:var(--surface-3);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:#e9ddfc;transform:translateY(-2px)}.btn-danger{background:linear-gradient(135deg,#ff5f7a,#ff8a6b);color:#fff;box-shadow:0 6px 18px #ff5f7a33}.btn-danger:hover{transform:translateY(-2px);box-shadow:0 10px 24px #ff5f7a4d}.btn-small{padding:8px 14px;font-size:.88em;border-radius:10px}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.form-container{max-width:720px;margin:40px auto 0;background:#ffffffd1;border:1px solid rgba(255,255,255,.4);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:var(--radius-lg);padding:36px 40px;box-shadow:0 24px 54px #10091e66}.form-container h2{font-family:var(--font-display);font-size:1.9em;font-weight:700;margin-bottom:8px;display:flex;align-items:center;gap:12px}.form-container h2 .page-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--accent-soft);color:var(--accent);flex-shrink:0}.page-sub{color:var(--text-2);margin-bottom:28px;font-size:1.02em}.form-group{margin-bottom:22px}label{display:block;margin-bottom:9px;font-weight:800;color:var(--text);font-size:.92em}.req{color:var(--accent)}input[type=text],input[type=number],input[type=url],select,textarea{width:100%;padding:13px 15px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:1em;font-family:var(--font-body);color:var(--text);background:#fdfbf7;transition:all .2s ease}input::placeholder,textarea::placeholder{color:var(--text-3)}input[type=text]:focus,input[type=number]:focus,input[type=url]:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:#fff}select{cursor:pointer}textarea{min-height:110px;resize:vertical}input[type=file]{width:100%;padding:14px;border:2px dashed var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-2);background:#fdfbf7;transition:all .2s ease}input[type=file]:hover{border-color:var(--accent);background:var(--accent-soft)}input[type=checkbox]{accent-color:var(--accent);width:17px;height:17px}.field-hint{color:var(--text-3);font-weight:600;font-size:.82em;margin-left:8px}.range-strip{display:flex;gap:8px;flex-wrap:wrap;padding:6px 0}.range-chip{min-width:44px;padding:10px 6px;border-radius:12px;border:2px solid var(--border);background:#fff8f1;color:var(--text);font-family:var(--font-display);font-size:1.15em;font-weight:600;cursor:pointer;transition:all .2s ease}.range-chip:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-2px)}.range-chip.active{background:linear-gradient(135deg,var(--accent),#ff9c6e);border-color:transparent;color:#fff;box-shadow:0 5px 14px #ff6f6159}.range-chip.start,.range-chip.end{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--accent),0 6px 16px #ff6f6166;z-index:1}.range-readout{margin-top:10px;color:var(--text-2);font-weight:800;font-size:.95em}.split-field{display:flex;align-items:stretch;gap:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fdfbf7;padding:12px}.split-half{flex:1;display:flex;flex-direction:column;gap:8px;justify-content:center}.split-divider{align-self:center;color:var(--text-3);font-weight:800;font-size:.8em;text-transform:uppercase;letter-spacing:.5px}.split-half input[type=text],.split-half input[type=url]{background:#fff}.browse-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border-radius:10px;border:2px dashed var(--border-strong);background:#fff;color:var(--text-2);font-weight:800;font-size:.95em;cursor:pointer;transition:all .2s ease}.browse-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.browse-btn svg{width:18px;height:18px}.url-add-row{display:flex;gap:8px}.url-add-row input{flex:1}.img-remove{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:none;background:#140e22bf;color:#fff;cursor:pointer;display:grid;place-items:center;transition:background .2s ease}.img-remove:hover{background:var(--red)}.img-remove svg{width:13px;height:13px}.add-flash{margin-top:10px;color:var(--green);font-weight:800;font-size:.9em;min-height:1.2em;opacity:0;transition:opacity .25s ease}.add-flash.show{opacity:1}.photo-form-strip{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px}.photo-form-card{position:relative;width:110px;height:110px;border-radius:14px;overflow:hidden;border:2px solid var(--border);cursor:pointer;transition:all .2s ease}.photo-form-card img{width:100%;height:100%;object-fit:cover;display:block}.photo-form-card:hover{border-color:var(--purple);transform:translateY(-3px);box-shadow:var(--shadow-sm)}.photo-form-card.is-cover{border-color:transparent;box-shadow:0 0 0 3px var(--accent),0 6px 18px #ff6f6166}.cover-tag{position:absolute;bottom:6px;left:50%;transform:translate(-50%);padding:3px 10px;border-radius:999px;background:linear-gradient(135deg,var(--accent),#ff9c6e);color:#fff;font-weight:800;font-size:.72em;letter-spacing:.3px;box-shadow:0 3px 10px #0000004d}.teacher-chips{display:flex;flex-wrap:wrap;gap:10px;padding:4px 0}.teacher-chip{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:999px;border:2px solid var(--border);background:#fff8f1;color:var(--text);font-weight:800;font-size:.95em;cursor:pointer;transition:all .2s ease}.teacher-chip:hover{border-color:var(--purple);background:var(--purple-soft);transform:translateY(-2px)}.teacher-chip.selected{background:linear-gradient(135deg,var(--purple),#7c5ce0);border-color:transparent;color:#fff;box-shadow:0 6px 16px #7c6be666}.teacher-chip-count{display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#00000024;color:#fff;font-size:.75em;font-weight:700}.teacher-chip:not(.selected) .teacher-chip-count{background:var(--accent-soft);color:var(--accent)}.inline-hint{display:flex;align-items:center;gap:8px;font-size:.9em;color:var(--text-2);font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none;width:fit-content}.form-actions{display:flex;gap:12px;margin-top:28px}.filters{padding:0 4px 4px;margin-bottom:18px}.filters-row{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}.filter-group{flex:1;min-width:170px}.filter-group label{font-size:.82em;color:var(--text-2);letter-spacing:.3px}.filter-search{flex:1 1 260px;min-width:220px}.filter-search-box{display:flex;align-items:center;gap:10px;background:#ffffffb3;border:1px solid rgba(255,255,255,.32);border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:0 14px;transition:all .2s ease}.filter-search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:#ffffffe6}.filter-search-box svg{width:20px;height:20px;color:var(--text-3);flex-shrink:0}.filter-search-box input{border:none;background:transparent;padding:12px 0;width:100%}.filter-search-box input:focus{outline:none;box-shadow:none;transform:none}.filter-players{flex:0 1 auto;min-width:0}.filter-players-label{display:flex;align-items:center;gap:6px;font-size:.82em;color:#cfc5e4;letter-spacing:.3px;font-weight:700;margin-bottom:9px}.filter-players-label svg{width:15px;height:15px;color:var(--accent)}.player-chips{display:flex;gap:8px;flex-wrap:wrap}.player-chip{min-width:46px;padding:9px 6px;border-radius:12px;border:2px solid rgba(255,255,255,.28);background:#fff9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text);font-family:var(--font-display);font-size:1.15em;font-weight:600;cursor:pointer;transition:all .2s ease}.player-chip:hover{border-color:var(--accent);background:#ffffffd1;transform:translateY(-2px)}.player-chip.active{background:linear-gradient(135deg,var(--accent),#ff9c6e);border-color:transparent;color:#fff;box-shadow:0 5px 16px #ff6f6152;transform:translateY(-2px)}.filter-sort{position:relative;flex:0 1 auto;align-self:flex-end}.sort-trigger{display:inline-flex;align-items:center;gap:8px;padding:11px 14px;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.32);background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text);font-weight:700;font-size:.95em;cursor:pointer;transition:all .2s ease}.sort-trigger svg{width:18px;height:18px}.sort-trigger .sort-chevron{width:15px;height:15px;color:var(--text-3)}.sort-trigger:hover,.sort-trigger.open{border-color:var(--accent);background:#ffffffe0;box-shadow:0 0 0 3px var(--accent-soft)}.sort-popover{position:absolute;right:0;top:calc(100% + 8px);z-index:40;width:230px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;animation:popIn .16s ease}.sort-section{margin-bottom:14px}.sort-section:last-child{margin-bottom:0}.sort-section-label{font-size:.76em;text-transform:uppercase;letter-spacing:.5px;color:var(--text-3);margin-bottom:8px;font-weight:800}.sort-radio-list{display:flex;flex-direction:column;gap:6px}.sort-radio-list.sort-radio-row{flex-direction:row;gap:8px}.sort-radio{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:11px;border:1px solid var(--border);background:#fdfbf7;cursor:pointer;font-weight:700;font-size:.95em;color:var(--text);transition:all .18s ease;-webkit-user-select:none;user-select:none}.sort-radio-row .sort-radio{flex:1;justify-content:center;flex-direction:column;gap:6px;text-align:center;padding:12px 8px}.sort-radio input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.sort-radio .sort-radio-check{width:20px;height:20px;border-radius:50%;border:2px solid var(--border-strong);background:#fff;position:relative;flex-shrink:0;transition:all .18s ease}.sort-radio-row .sort-radio .sort-radio-check{width:18px;height:18px}.sort-radio:hover{border-color:var(--accent);background:#fff}.sort-radio.checked{border-color:var(--accent);background:var(--accent-soft)}.sort-radio.checked .sort-radio-check{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 3px #fff}.sort-divider{height:1px;background:var(--border);margin:4px 0 14px}.home{max-width:560px;margin:0 auto;padding:90px 20px 40px;text-align:center}.home-brand{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:30px}.home-logo{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:linear-gradient(135deg,var(--accent),#ff9c6e);color:#fff;box-shadow:0 12px 30px #ff6f6166}.home-logo svg{width:34px;height:34px}.home-word{font-family:var(--font-display);font-size:3.4rem;font-weight:700;line-height:1;background:linear-gradient(120deg,var(--accent),var(--accent-2) 60%,var(--purple));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.home-greeting{font-family:var(--font-display);font-size:1.9rem;font-weight:600;color:#fffdf8;margin-bottom:8px}.home-hint{color:#cfc5e4;font-size:1.1em;margin-bottom:44px}.home-actions{display:flex;flex-direction:column;gap:16px;margin-bottom:34px}.home-door{display:flex;align-items:center;gap:18px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .2s ease}.home-door:hover,.home-door:focus-visible{transform:translateY(-4px);border-color:var(--accent-2);box-shadow:var(--shadow);outline:none}.home-door-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;flex-shrink:0}.home-door-icon svg{width:28px;height:28px}.home-door-body{display:flex;flex-direction:column;gap:3px;flex:1}.home-door-title{font-family:var(--font-display);font-size:1.35em;font-weight:600;color:var(--text)}.home-door-sub{color:var(--text-2);font-size:.96em}.home-door-arrow{display:grid;place-items:center;color:var(--text-3);transition:transform .2s ease,color .2s ease;flex-shrink:0}.home-door-arrow svg{width:24px;height:24px}.home-door:hover .home-door-arrow{transform:translate(4px);color:var(--accent)}.home-add{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;margin-top:6px;background:transparent;border:none;border-radius:999px;color:#cfc5e4;font-weight:700;font-size:1em;cursor:pointer;transition:color .2s ease,background .2s ease}.home-add svg{width:18px;height:18px;color:var(--accent-2);transition:color .2s ease}.home-add:hover,.home-add:focus-visible{color:#fffdf8;background:#ffffff1f;outline:none}.home-add:hover svg,.home-add:focus-visible svg{color:var(--accent-2)}.page-head{text-align:left;padding:36px 4px 24px}.page-head-title{font-family:var(--font-display);font-size:2.1em;font-weight:700;color:#fffdf8;margin-bottom:6px}.page-head-sub{color:#cfc5e4;font-size:1.05em}.games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:26px 22px;padding:14px 4px 8px;position:relative}.grid-wrap{position:relative}.grid-count{font-size:.9em;font-weight:700;color:#cfc5e4;letter-spacing:.3px;padding:2px 6px 12px}.filtering-badge{position:absolute;top:8px;left:50%;transform:translate(-50%,-6px);z-index:6;display:inline-flex;align-items:center;gap:8px;padding:6px 15px;border-radius:999px;background:#2a1f3de6;color:#fff;font-weight:700;font-size:.85em;box-shadow:0 6px 18px #00000059;border:1px solid rgba(255,201,77,.4);pointer-events:none;opacity:0;transition:opacity .18s ease,transform .18s ease}.filtering-badge.show{opacity:1;transform:translate(-50%)}.filtering-badge svg{width:16px;height:16px;color:var(--accent-2);animation:spin-badge .8s linear infinite}@keyframes spin-badge{0%,to{transform:rotate(0)}25%{transform:rotate(90deg)}50%{transform:rotate(180deg)}75%{transform:rotate(270deg)}}.game-flip{width:100%;will-change:transform,opacity}.game-flip .game-card{width:100%}.game-ghost{position:absolute;pointer-events:none;z-index:3;animation:card-out .3s ease forwards}.game-ghost .game-card{transform:none!important;cursor:default;box-shadow:0 10px 24px #00000080}@keyframes card-in{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}@keyframes card-out{0%{opacity:1}to{opacity:0}}.game-card{position:relative;background:#fff;border-radius:19px;padding:11px 11px 15px;border:1.5px solid rgba(214,178,138,.65);box-shadow:0 16px 34px #00000073;cursor:pointer;transform:translateY(var(--rise, 0px)) rotate(var(--tilt, 0deg));transition:transform .35s cubic-bezier(.2,.8,.3,1.1),box-shadow .3s ease}.game-card:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:14px;border:1.5px dashed rgba(190,140,90,.35);pointer-events:none}.game-card:hover,.game-card:focus-visible{transform:translateY(var(--rise, 0px)) scale(1.02) rotate(0);box-shadow:0 0 0 2px var(--accent),0 0 24px #ff6f6166,0 18px 40px #00000080;z-index:2;outline:none}.sticker-cover{position:relative;width:100%;aspect-ratio:4 / 3;border-radius:11px;overflow:hidden;display:grid;place-items:center;background:radial-gradient(120% 130% at 22% 0%,#4a3d6e,#262040 60%);box-shadow:inset 0 0 0 1px #ffffff0f}.sticker-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}.game-card:hover .sticker-cover img{transform:scale(1.06)}.sticker-placeholder{display:flex;flex-direction:column;align-items:center;gap:8px;color:#b9a6d6;font-weight:800;font-size:.9em}.sticker-placeholder svg{width:44px;height:44px;opacity:.55}.players-badge{position:absolute;top:9px;right:9px;display:inline-flex;align-items:center;gap:5px;background:#fffdf8;border-radius:999px;padding:4px 9px;font-weight:800;font-size:.76em;color:#b4653a;box-shadow:0 2px 6px #0000002e}.players-badge svg{width:13px;height:13px}.sticker-info{padding:13px 4px 0}.sticker-title{font-family:var(--font-display);font-size:1.18em;font-weight:600;color:#4b3626;line-height:1.25;margin-bottom:6px}.sticker-teachers{display:flex;flex-wrap:wrap;gap:5px}.sticker-teacher{font-size:.74em;font-weight:700;color:#9b7355;background:#b4653a14;border:1px solid rgba(180,101,58,.2);border-radius:999px;padding:2px 8px}.sticker-teacher-more{background:transparent;border:none;color:#c4945f}.empty-state{text-align:center;padding:90px 30px;color:#cfc5e4}.empty-state .empty-icon{display:grid;place-items:center;width:86px;height:86px;margin:0 auto 22px;border-radius:28px;background:var(--surface);border:1px solid var(--border);color:var(--accent-2)}.empty-state .empty-icon svg{width:42px;height:42px}.empty-state h2{font-family:var(--font-display);font-size:1.8em;color:#fffdf8;margin-bottom:8px}.empty-state p{font-size:1.05em}.empty-state .btn{margin-top:22px}.radio-live,.radio-welcome{--lcd-font: "VT323", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", monospace;--lcd-accent: #d95646;--lcd-dim: #6a5990;--lcd-faint: #9d8fba;--lcd-amber: #c07f1f}.player-screen{--lcd-accent: #ffc3a8;--lcd-dim: rgba(255, 190, 166, .96);--lcd-faint: rgba(255, 186, 160, .66);--lcd-amber: #ffd27a}.radio-live{display:flex;gap:22px;width:100%;margin-inline:auto;padding:0 4px 30px}.radio-main{flex:1 1 auto;min-width:0;display:grid;gap:22px}.radio-side{flex:0 0 360px;min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:22px}@media (max-width: 980px){.radio-live{flex-direction:column;align-items:stretch}.radio-main,.radio-side{flex:1 1 auto;max-width:none}}.radio-player{display:flex;flex-direction:column;gap:10px;padding:10px;background:radial-gradient(120% 70% at 50% 0%,rgba(255,122,99,.1),transparent 60%),linear-gradient(160deg,#fffcf7db,#fff5efeb);border:1px solid rgba(255,255,255,.55);border-radius:24px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:inset 0 1px #fffc,0 0 0 1px #ff8c7014,var(--shadow);overflow:hidden}.player-screen{border:1px solid rgba(255,173,148,.18);border-radius:16px;background:radial-gradient(140% 120% at 50% -20%,rgba(255,122,99,.16),transparent 60%),#00000080;box-shadow:inset 0 1px #ffffff0d}.player-face,.player-section{border:1px solid var(--border);border-radius:16px;background:#ffffff9e;box-shadow:inset 0 1px #ffffffd9,0 1px #3f2e600a}.player-screen{padding:18px 20px 16px}.player-screen-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.player-screen-top-right{display:flex;align-items:center;gap:10px;min-width:0}.lcd-long-badge{font-family:var(--lcd-font);font-size:.82em;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--lcd-amber);background:#ffd27a1f;border:1px solid rgba(255,210,122,.45);border-radius:999px;padding:3px 11px;white-space:nowrap;flex-shrink:0;box-shadow:0 0 14px #ffd27a47,inset 0 0 6px #ffd27a1f}.player-screen-kicker{display:flex;align-items:center;gap:8px;font-family:var(--lcd-font);font-size:.86em;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--lcd-dim)}.player-live-dot{width:7px;height:7px;border-radius:50%;background:var(--lcd-accent);box-shadow:0 0 8px var(--lcd-accent);animation:pulse 2s ease-in-out infinite}.player-screen-meta{display:block;min-width:0;font-family:var(--lcd-font);font-size:.94em;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--lcd-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lcd-ticker{margin-top:12px;font-family:var(--lcd-font);font-size:1.8em;font-weight:600;line-height:1.3;letter-spacing:.04em;text-transform:uppercase;color:#ffd8cd;text-shadow:0 0 10px rgba(255,140,112,.6),0 0 32px rgba(255,140,112,.28);min-height:1.3em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:opacity .32s ease}.lcd-ticker.is-resetting{opacity:0}.lcd-ticker.is-scrolling{overflow-x:hidden;overflow-y:hidden;scrollbar-width:none;text-overflow:clip}.lcd-ticker.is-scrolling::-webkit-scrollbar{display:none}.lcd-ticker-inner{display:inline-block;white-space:nowrap}.player-screen-sub{margin-top:12px;font-family:var(--lcd-font);font-size:1.05em;line-height:1.55;letter-spacing:.03em;color:var(--lcd-dim)}.radio-accent-text{font-weight:700;background:linear-gradient(120deg,var(--accent),var(--accent-2) 60%,var(--purple));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.radio-head-accent{font-family:var(--font-display);font-size:1.32em;letter-spacing:.2px;white-space:nowrap}.player-face{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 18px}.player-volume{display:flex;align-items:center;gap:12px;flex:1;min-width:240px}.player-mute{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;border:1px solid var(--border-strong);background:#fff;color:var(--text-2);cursor:pointer;flex-shrink:0;transition:all .2s ease}.player-mute svg{width:19px;height:19px}.player-mute:hover,.player-mute:focus-visible{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);transform:translateY(-1px);outline:none}.player-mute.is-muted{background:linear-gradient(135deg,var(--accent),#ff9c6e);border-color:transparent;color:#fff;box-shadow:0 3px 12px #ff6f6159}.player-volume input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;border-radius:999px;background:linear-gradient(to right,var(--lcd-accent) 0%,var(--lcd-accent) var(--fill, 10%),rgba(217,86,70,.28) var(--fill, 10%),rgba(217,86,70,.28) 100%);outline:none;cursor:pointer}.player-volume input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--lcd-accent);box-shadow:0 0 0 2px #fffc,0 2px 8px #3f2e6033;cursor:pointer}.player-volume input[type=range]::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid var(--lcd-accent);box-shadow:0 0 0 2px #fffc,0 2px 8px #3f2e6033;cursor:pointer}.player-volume input[type=range]::-moz-range-progress{height:6px;border-radius:999px;background:var(--lcd-accent)}.player-volume-cap{display:inline-flex;align-items:baseline;gap:5px;padding:4px 11px;border:1px solid rgba(217,86,70,.28);border-radius:999px;background:transparent;font-family:var(--lcd-font);font-size:.85em;letter-spacing:.06em;text-transform:uppercase;color:var(--lcd-dim);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s ease}.player-volume-cap.is-capped{color:var(--lcd-accent);border-color:#d956468c}.player-volume-cap:hover,.player-volume-cap:focus-visible{color:var(--lcd-accent);border-color:var(--lcd-accent);background:#d9564614;outline:none}.player-volume-cap-word{opacity:.65}.player-transport{display:flex;gap:10px}.player-key{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;border:1px solid var(--border);background:#fff;color:var(--text-2);cursor:pointer;transition:all .2s ease}.player-key svg{width:20px;height:20px}.player-key:hover:not(:disabled){border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);transform:translateY(-1px)}.player-key:disabled{opacity:.35;cursor:not-allowed}.player-key-stop:hover:not(:disabled){border-color:var(--red);color:var(--red);background:var(--red-soft);box-shadow:0 0 0 3px var(--red-soft)}.player-unmute{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:12px;padding:13px 12px;border:none;border-radius:10px;background:linear-gradient(135deg,var(--accent),#ff9c6e);color:#fff;font-family:var(--lcd-font);font-size:1em;font-weight:700;letter-spacing:.04em;cursor:pointer;box-shadow:0 6px 18px #ff6f6159;animation:unmute-pulse 1.6s ease-out infinite}.player-unmute svg{width:18px;height:18px}.player-unmute:hover,.player-unmute:focus-visible{transform:translateY(-1px);box-shadow:0 10px 26px #ff6f618c;outline:none}@keyframes unmute-pulse{0%{box-shadow:0 0 #ff6f6199,0 6px 18px #ff6f6159}70%{box-shadow:0 0 0 9px #ff6f6100,0 6px 18px #ff6f6159}to{box-shadow:0 0 #ff6f6100,0 6px 18px #ff6f6159}}.radio-panel{background:radial-gradient(120% 70% at 50% 0%,rgba(255,122,99,.08),transparent 60%),linear-gradient(160deg,#fffcf7db,#fff5efeb);border:1px solid rgba(255,255,255,.55);border-radius:18px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:inset 0 1px #fffc,0 0 0 1px #ff8c700f,0 20px 46px #0000004d;padding:18px 18px 20px}.radio-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.radio-panel-title{font-family:var(--lcd-font);font-size:.92em;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--lcd-dim)}.radio-queue-search{background:#ffffffb3;border:1px solid var(--border);border-radius:10px;margin-bottom:16px;padding:0 12px}.radio-queue-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:#ffffffe6}.radio-queue-search svg{width:16px;height:16px;color:var(--text-3)}.radio-queue-search input{font-family:var(--lcd-font);font-size:1.02em;letter-spacing:.04em;color:var(--text)}.radio-queue-search input::placeholder{color:var(--text-3)}.radio-list{list-style:none;display:grid;grid-template-columns:minmax(0,1fr);align-content:start}.radio-list-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 8px;background:transparent;border:none;border-bottom:1px solid rgba(63,46,96,.08);border-radius:8px;transition:background .15s ease;animation:radio-row-in .22s ease}.radio-list-row:last-child{border-bottom:none}.radio-list-row:hover{background:#ff8c7014;border-radius:8px}.radio-row-main{min-width:0;flex:1;display:flex;flex-direction:column}.radio-row-name{display:block;font-family:var(--lcd-font);font-size:1.05em;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.radio-row-hint{font-family:var(--lcd-font);font-size:.86em;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);margin-top:2px}.radio-row-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.radio-row-btn{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--lcd-dim);cursor:pointer;transition:all .15s ease}.radio-row-btn svg{width:16px;height:16px}.radio-row-btn:hover:not(:disabled){background:#ff8c701f;color:var(--lcd-accent)}.radio-row-btn:disabled{opacity:.3;cursor:not-allowed}.radio-row-remove:hover:not(:disabled){background:#ff5a6e24;color:#ff9db4}.radio-row-btn:focus-visible,.player-key:focus-visible,.player-row-btn:focus-visible,.player-mute:focus-visible{outline:none;box-shadow:0 0 0 3px #ff6f6147}.player-volume input[type=range]:focus-visible{box-shadow:0 0 0 3px #ff6f6147}.radio-queue-empty{display:flex;align-items:flex-start;gap:12px;padding:18px 4px 4px;font-family:var(--font-body);font-size:1.04em;line-height:1.55;color:var(--text-2)}.radio-queue-empty svg{width:26px;height:26px;color:var(--lcd-faint);flex-shrink:0}.radio-queue-empty p{font-size:1em}.radio-queue-note{color:var(--text-2);font-size:.95em;opacity:.85;margin-top:4px}@keyframes radio-row-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.radio-row-btn,.radio-list-row,.lcd-channel-row,.radio-pill,.player-key,.player-mute,.player-row-btn,.player-unmute,.player-live-dot{transition:none;animation:none}.radio-pill.is-muted .radio-pill-song{animation:none}}.player-section{padding:16px 18px 18px}.player-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.player-section-title{font-family:var(--lcd-font);font-size:.95em;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--lcd-dim)}.player-section-history .player-section-title{color:var(--lcd-amber)}.player-section-count{font-family:var(--lcd-font);font-size:.9em;letter-spacing:.06em;text-transform:uppercase;color:var(--lcd-dim)}.player-search{display:flex;align-items:center;gap:8px;margin-top:12px;padding:8px 12px;border-radius:9px;border:1px solid var(--border);background:#ffffffb3;color:var(--text);transition:border-color .2s ease,box-shadow .2s ease}.player-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:#ffffffe6}.player-search svg{width:16px;height:16px;color:var(--text-3);flex-shrink:0}.player-search input{flex:1;min-width:0;border:none;background:transparent;outline:none;color:var(--text);font-family:var(--lcd-font);font-size:1.05em;letter-spacing:.04em}.player-search input::placeholder{color:var(--text-3)}.player-list{list-style:none;margin-top:12px;display:grid;grid-template-columns:minmax(0,1fr);align-content:start;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(106,89,144,.35) transparent}.player-list::-webkit-scrollbar{width:8px}.player-list::-webkit-scrollbar-thumb{background:#6a59904d;border-radius:999px}.player-list-upnext{max-height:330px}.player-list-history{max-height:250px}.player-row{display:flex;align-items:center;gap:12px;padding:8px;border:none;border-bottom:1px solid rgba(63,46,96,.08);border-radius:8px;background:transparent;animation:player-row-in .2s ease;transition:background .15s ease}.player-row:last-child{border-bottom:none}.player-row:hover{background:#ff8c7014}.player-row-num{font-family:var(--lcd-font);font-size:.95em;color:var(--lcd-dim);min-width:2ch;flex-shrink:0}.player-row-main{min-width:0;flex:1;display:flex;flex-direction:column}.player-row-name{display:block;font-family:var(--lcd-font);font-size:1.08em;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--lcd-accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-section-history .player-row-name{color:var(--lcd-amber)}.player-row-hint{font-family:var(--lcd-font);font-size:.86em;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);margin-top:2px}.player-row-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.player-row-btn{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--lcd-dim);cursor:pointer;transition:all .15s ease}.player-row-btn svg{width:15px;height:15px}.player-row-btn:hover:not(:disabled){background:#ff8c7024;color:var(--lcd-accent)}.player-row-btn:disabled{opacity:.3;cursor:not-allowed}.player-row-remove:hover:not(:disabled){background:#ff5a6e29;color:#ff9db4}.player-replay:hover:not(:disabled){background:#ffd27a29;color:var(--lcd-amber)}.lcd-broken{font-family:var(--lcd-font);font-size:.8em;letter-spacing:.06em;text-transform:uppercase;color:#ff5f78;border:1px solid rgba(255,95,109,.4);background:var(--red-soft);border-radius:999px;padding:1px 8px;margin-top:3px;width:fit-content}.player-long-chip{font-family:var(--lcd-font);font-size:.8em;letter-spacing:.08em;text-transform:uppercase;color:var(--lcd-amber);border:1px solid rgba(192,127,31,.4);background:#ffd27a24;border-radius:999px;padding:1px 9px;margin-top:3px;width:fit-content}.player-empty{display:flex;align-items:flex-start;gap:12px;padding:18px 4px 4px;font-family:var(--font-body);font-size:1.06em;line-height:1.55;color:var(--text-2)}.player-empty svg{width:26px;height:26px;color:var(--lcd-faint);flex-shrink:0}.player-empty-note{color:var(--text-2);font-size:.95em;opacity:.85;margin-top:4px}@keyframes player-row-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media (max-width: 600px){.player-screen{padding:14px 14px 12px}.lcd-ticker{font-size:1.35em}}.radio-welcome{max-width:860px;margin-inline:auto;padding-bottom:30px}.player-welcome-screen{padding-bottom:14px}.lcd-channels{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:6px}.lcd-channel-row{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;text-align:left;border-radius:10px;border:1px solid var(--border);background:#fffc;font-family:var(--lcd-font);cursor:pointer;transition:background .15s ease,border-color .15s ease}.lcd-channel-row:hover,.lcd-channel-row:focus-visible{background:#fff;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.lcd-channel-name{display:block;flex:1;min-width:0;font-size:1.24em;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lcd-channel-count{font-size:.9em;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);white-space:nowrap}.lcd-channel-row.is-empty{opacity:.55;cursor:not-allowed}.lcd-channel-row.is-empty:hover,.lcd-channel-row.is-empty:focus-visible{background:#fffc;border-color:var(--border);box-shadow:none}.lcd-channel-empty{font-size:.82em;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);white-space:nowrap}.lcd-channel-arrow{display:grid;place-items:center;color:var(--lcd-faint);transition:transform .2s ease,color .2s ease;flex-shrink:0}.lcd-channel-arrow svg{width:18px;height:18px}.lcd-channel-row:hover .lcd-channel-arrow{transform:translate(3px);color:var(--lcd-accent)}.player-screen-sub code{font-family:var(--lcd-font);color:var(--lcd-dim)}.radio-cap-meter{font-family:var(--lcd-font);font-size:.85em;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--lcd-accent);background:#ff8c701a;border:1px solid rgba(217,86,70,.3);border-radius:999px;padding:4px 11px;white-space:nowrap}.radio-cap-meter.is-full{color:#ff9db4;background:#ff5a6e1f;border-color:#ff5a6e66}.radio-upload-note{font-family:var(--font-body);font-size:.98em;line-height:1.5;letter-spacing:.01em;color:#e0506a;border:1px solid rgba(255,90,110,.42);background:#ff5a6e1a;border-radius:10px;padding:10px 12px;margin-bottom:14px}.radio-upload-btn{position:relative;overflow:hidden;width:100%;margin-bottom:10px;border-radius:10px;background:linear-gradient(135deg,var(--accent),#ff9c6e);color:#fff;box-shadow:0 4px 16px #ff6f6159}.radio-upload-btn:not(:disabled):hover,.radio-upload-btn:focus-visible{box-shadow:0 8px 22px #ff6f6180}.radio-upload-btn:disabled{background:#ffffff14;color:var(--lcd-faint);box-shadow:none}.radio-upload-btn input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.radio-upload-hint{font-family:var(--lcd-font);font-size:.86em;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);margin-bottom:16px}.radio-add-btn:hover:not(:disabled){background:#ff8c7029;color:var(--lcd-accent)}.radio-queued-chip{font-family:var(--lcd-font);font-size:.82em;letter-spacing:.06em;text-transform:uppercase;color:var(--lcd-dim);background:#ff8c701a;border:1px solid rgba(217,86,70,.3);border-radius:999px;padding:2px 9px;margin-top:3px;width:fit-content}.radio-listeners{padding:14px 16px}.radio-listeners-chips{display:flex;flex-wrap:nowrap;gap:6px;margin-top:10px;padding-bottom:4px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:rgba(106,89,144,.35) transparent;-webkit-overflow-scrolling:touch}.radio-listeners-chips::-webkit-scrollbar{height:7px}.radio-listeners-chips::-webkit-scrollbar-thumb{background:#6a59904d;border-radius:999px}.radio-listen-chip{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;font-family:var(--lcd-font);font-size:.94em;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--lcd-dim);background:#ffffffb3;border:1px solid var(--border);border-radius:999px;padding:5px 11px}.radio-listen-chip.is-you{color:#fff;background:linear-gradient(135deg,var(--accent),#ff9c6e);border-color:transparent;box-shadow:0 2px 10px #ff6f614d}.radio-listen-count{opacity:.8;font-size:.9em}.radio-side .radio-panel{display:flex;flex-direction:column;min-height:0}.radio-side .radio-panel .radio-list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(106,89,144,.35) transparent;padding-right:2px}.radio-side .radio-panel .radio-list::-webkit-scrollbar{width:8px}.radio-side .radio-panel .radio-list::-webkit-scrollbar-thumb{background:#6a59904d;border-radius:999px}.radio-popover-wrap{position:relative}.radio-popover-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:210px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:6px;animation:popIn .15s ease}.radio-popover-item{display:flex;align-items:center;gap:9px;width:100%;padding:9px 11px;border:none;background:transparent;border-radius:9px;font-size:.92em;font-weight:800;color:var(--red);cursor:pointer;text-align:left;transition:background .15s ease,color .15s ease}.radio-popover-item svg{width:17px;height:17px}.radio-popover-item:hover,.radio-popover-item:focus-visible{background:var(--red-soft);outline:none}.radio-stop-modal{max-width:440px}.radio-pill{position:fixed;left:24px;bottom:24px;z-index:900;display:flex;align-items:center;gap:13px;padding:10px 18px 10px 13px;border-radius:999px;border:1px solid rgba(255,111,97,.3);background:#2b2040e0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fffdf8;box-shadow:var(--shadow);cursor:pointer;text-align:left;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;animation:pill-in .28s ease}.radio-pill:hover,.radio-pill:focus-visible{transform:translateY(-3px);border-color:var(--accent);box-shadow:var(--shadow);outline:none}.radio-pill-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--accent-soft);color:var(--accent);flex-shrink:0}.radio-pill-icon svg{width:22px;height:22px}.radio-pill.is-muted .radio-pill-icon{background:var(--teal-soft);color:var(--teal)}.radio-pill-text{display:flex;flex-direction:column;gap:1px;min-width:0}.radio-pill-title{font-family:var(--font-display);font-size:1.02em;font-weight:600;letter-spacing:.3px}.radio-pill-song{font-size:.9em;font-weight:700;color:#cfc5e4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.radio-pill.is-muted .radio-pill-song{color:var(--teal);animation:pulse 1.7s ease-in-out infinite}@keyframes pill-in{0%{transform:translateY(16px) scale(.98);opacity:0}to{transform:none;opacity:1}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e163273;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .18s ease}.game-modal{background:var(--surface);border-radius:var(--radius-lg);max-width:740px;width:100%;max-height:92vh;overflow-y:auto;box-shadow:var(--shadow);animation:popIn .2s ease;outline:none}.delete-confirm{display:flex;flex-direction:column;align-items:center;text-align:center;padding:44px 40px 40px}.delete-confirm-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:var(--red-soft);color:var(--red);margin-bottom:18px}.delete-confirm-icon svg{width:30px;height:30px}.delete-confirm-title{font-family:var(--font-display);font-size:1.7em;font-weight:700;color:var(--text);margin-bottom:10px}.delete-confirm-sub{color:var(--text-2);font-size:1.02em;line-height:1.55;max-width:380px;margin-bottom:26px}.delete-confirm-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.game-hero{position:relative;height:320px;overflow:hidden;display:flex;align-items:flex-end}.game-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.game-hero-bg-placeholder{background:radial-gradient(120% 130% at 22% 0%,#554680,#2a2146 65%)}.game-hero-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#00000040,#0000 30%,#0c0816c7)}.game-hero-top{position:absolute;top:0;left:0;right:0;padding:16px 18px;display:flex;justify-content:flex-end}.game-hero-actions{display:flex;align-items:center;gap:10px}.icon-btn{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:none;background:#140e228c;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 4px 14px #0000004d;transition:all .2s ease}.icon-btn svg{width:20px;height:20px}.icon-btn:hover,.icon-btn.active{background:#ffffff38;transform:translateY(-2px)}.icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.more-menu{position:relative}.more-popover{position:absolute;top:calc(100% + 8px);right:0;width:190px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:6px;z-index:10;animation:popIn .15s ease;overflow:hidden}.more-item{display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border:none;background:transparent;border-radius:9px;color:var(--text);font-weight:700;font-size:.95em;cursor:pointer;transition:background .15s ease}.more-item svg{width:18px;height:18px;color:var(--text-2)}.more-item:hover{background:var(--surface-2)}.more-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.more-item.danger{color:var(--red)}.more-item.danger svg{color:var(--red)}.more-item.danger:hover{background:var(--red-soft)}.game-hero-content{position:relative;padding:20px 26px 22px;width:100%}.game-modal-title{font-family:var(--font-display);font-size:2.4em;font-weight:700;color:#fff;line-height:1.1;text-shadow:0 2px 14px rgba(0,0,0,.5);margin-bottom:12px}.game-hero-chips{display:flex;flex-wrap:wrap;gap:8px}.hero-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:999px;font-weight:800;font-size:.85em;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hero-chip svg{width:15px;height:15px}.chip-players{background:linear-gradient(135deg,#7c6be6eb,#5c4ac0eb)}.chip-teacher{background:linear-gradient(135deg,#22a593eb,#128272eb)}.game-modal-body{padding:26px}.md-row{margin-bottom:22px}.md-label{display:flex;align-items:center;gap:8px;font-size:.8em;text-transform:uppercase;letter-spacing:.6px;color:var(--text-3);font-weight:800;margin-bottom:10px}.md-label svg{width:15px;height:15px;color:var(--accent)}.md-meta-line{display:inline-flex;align-items:center;gap:7px;color:var(--text-3);font-size:.9em;font-weight:700;margin-bottom:8px}.md-meta-line svg{width:15px;height:15px}.game-note{margin:0 0 20px;padding:14px 18px;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--purple-soft),transparent);border-left:3px solid var(--purple);color:var(--text-2);font-size:1.02em;line-height:1.6}.photo-stickers{display:flex;flex-wrap:wrap;gap:18px 14px;padding:8px}.photo-sticker{width:132px;padding:7px 7px 6px;background:#fff;border-radius:8px;border:1px solid rgba(190,140,90,.35);box-shadow:0 8px 18px #0000004d;cursor:zoom-in;transform:translateY(var(--prise, 0px)) rotate(var(--ptilt, 0deg));transition:transform .28s cubic-bezier(.2,.8,.3,1.1),box-shadow .28s ease}.photo-sticker img{width:100%;aspect-ratio:1 / 1;object-fit:cover;border-radius:4px;display:block}.photo-sticker:hover,.photo-sticker:focus-visible{transform:translateY(var(--prise, 0px)) scale(1.05) rotate(0);box-shadow:0 12px 26px #00000073;outline:none;z-index:2}.photo-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#080510eb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;animation:fadeIn .18s ease}.pv-stage img{max-width:86vw;max-height:84vh;border-radius:10px;box-shadow:var(--shadow);animation:popIn .2s ease}.pv-close{position:absolute;top:20px;right:20px}.pv-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:none;background:#ffffff1f;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:all .2s ease}.pv-nav:hover{background:#ffffff3d;transform:translateY(-50%) scale(1.06)}.pv-nav:focus-visible,.pv-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pv-nav svg{width:26px;height:26px}.pv-prev{left:22px}.pv-next{right:22px}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;position:relative;background:radial-gradient(800px 600px at 16% -10%,rgba(255,150,110,.4),transparent 60%),radial-gradient(800px 620px at 110% 18%,rgba(255,120,120,.3),transparent 55%),radial-gradient(900px 640px at 50% 122%,rgba(150,110,230,.44),transparent 62%),linear-gradient(180deg,#372b52,#231b3d)}.login-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:48px 44px;max-width:430px;width:100%;text-align:center;box-shadow:var(--shadow)}.login-brand{display:grid;place-items:center;width:76px;height:76px;margin:0 auto 22px;border-radius:24px;background:linear-gradient(135deg,var(--accent),#ff9c6e);color:#fff;box-shadow:0 12px 28px #ff6f6166}.login-brand svg{width:40px;height:40px}.login-box h2{font-family:var(--font-display);font-size:2.2em;font-weight:700;margin-bottom:8px;color:var(--text)}.login-box p{color:var(--text-2);margin-bottom:32px;font-size:1.05em}.login-box form{text-align:left}.login-box .btn{width:100%;margin-top:14px;font-size:1.05em;padding:14px}.error-message{background:var(--red-soft);color:var(--red);border:1px solid rgba(255,95,109,.35);padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:16px;text-align:center;font-weight:700;font-size:.95em}.picker{max-width:820px;margin:0 auto}.picker-setup{display:flex;flex-direction:column;align-items:center;gap:44px;text-align:center}.picker-q-title{display:flex;align-items:center;justify-content:center;gap:10px;font-family:var(--font-display);font-size:1.5em;font-weight:600;color:#fffdf8;margin-bottom:18px}.picker-q-title svg{width:22px;height:22px;color:var(--accent-2)}.picker-options{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}.picker-option{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:110px;padding:18px 20px;border-radius:18px;background:#ffffff0f;border:2px solid rgba(255,255,255,.16);color:#fff;font-family:var(--font-display);font-size:1.9em;font-weight:600;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:all .2s ease}.picker-options-count .picker-option{min-width:96px;font-size:1.6em}.picker-option .picker-option-cap{font-family:var(--font-body);font-size:.52em;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:#cfc5e4}.picker-option:hover{border-color:var(--accent);transform:translateY(-3px);background:#ff6f6124}.picker-option.active{background:linear-gradient(135deg,var(--accent),#ff9c6e);border-color:transparent;color:#fff;box-shadow:0 10px 26px #ff6f6166;transform:translateY(-2px)}.picker-option.active .picker-option-cap{color:#ffffffeb}.picker-cta{display:flex;justify-content:center;padding-top:8px}.picker-go{font-family:var(--font-display);font-size:1.7em;font-weight:600;padding:18px 60px;border-radius:18px;letter-spacing:.5px}.picking-screen{min-height:460px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.picking-dice{position:relative;margin-bottom:26px}.picking-dice-mark{display:grid;place-items:center;width:84px;height:84px;border-radius:26px;background:linear-gradient(135deg,var(--accent),#ff9c6e);color:#fff;box-shadow:0 14px 34px #ff6f6173;animation:picking-float 2.4s ease-in-out infinite}.picking-dice-mark svg{width:44px;height:44px}.picking-dice-marks{position:absolute;width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--purple),#7c5ce0);color:#fff;display:grid;place-items:center;box-shadow:0 8px 22px #00000059;animation:picking-float 2.4s ease-in-out infinite;animation-delay:.3s}.picking-dice-marks svg{width:22px;height:22px}.picking-dice-marks-2{top:-12px;right:-28px}.picking-dice-marks-3{bottom:-10px;left:-30px}@keyframes picking-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.picking-title{font-family:var(--font-display);font-size:1.9em;font-weight:600;color:#fffdf8;margin-bottom:26px}.picking-progress{width:min(420px,78vw);height:8px;border-radius:999px;background:#ffffff1f;overflow:hidden;margin-bottom:22px}.picking-progress-fill{height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-2));animation:picking-fill 2.15s ease-out forwards}@keyframes picking-fill{0%{width:0}to{width:100%}}.picking-msg{color:#cfc5e4;font-size:1.05em;font-weight:700;min-height:1.5em;animation:pulse 1.5s infinite}.picker-result-kicker{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:1.6em;font-weight:600;color:#fffdf8;margin-bottom:26px}.picker-result-kicker svg{width:28px;height:28px;color:var(--accent-2)}.picker-result-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px}.result-card{display:flex;flex-direction:column;text-align:left;background:#fff;border:none;border-radius:18px;padding:10px 10px 14px;cursor:pointer;box-shadow:0 16px 34px #00000073;transform:rotate(var(--tilt, 0deg));transition:transform .3s cubic-bezier(.2,.8,.3,1.1),box-shadow .3s ease}.result-card:hover,.result-card:focus-visible{transform:rotate(0) scale(1.03);box-shadow:0 0 0 2px var(--accent),0 0 24px #ff6f6166,0 18px 40px #00000080;outline:none}.result-cover{width:100%;aspect-ratio:4 / 3;border-radius:12px;overflow:hidden;background:radial-gradient(120% 130% at 22% 0%,#4a3d6e,#262040 60%);display:grid;place-items:center}.result-cover img{width:100%;height:100%;object-fit:cover}.result-cover-ph{display:flex;flex-direction:column;align-items:center;gap:8px;color:#b9a6d6;font-weight:800;font-size:.9em}.result-cover-ph svg{width:40px;height:40px;opacity:.55}.result-info{padding:14px 4px 0}.result-title{font-family:var(--font-display);font-size:1.2em;font-weight:600;color:#4b3626;margin-bottom:8px}.result-players{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:.8em;color:#7158a8;background:#7c6be61f;border:1px solid rgba(124,107,230,.25);padding:4px 10px;border-radius:999px}.result-players svg{width:13px;height:13px}.result-teachers{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.result-teacher{font-size:.72em;font-weight:700;color:#0e6f61;background:#22a5931f;border:1px solid rgba(34,165,147,.28);border-radius:999px;padding:2px 8px}.picker-result-actions{display:flex;justify-content:center;gap:14px;margin-top:34px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.toast-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:10px;z-index:9999}.toast{display:flex;align-items:center;gap:10px;padding:13px 18px;border-radius:14px;color:#fff;font-weight:700;min-width:220px;max-width:360px;box-shadow:var(--shadow);animation:toastIn .25s ease}@keyframes toastIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.toast-neutral{background:linear-gradient(135deg,#7c6be6,#a78bfa)}.toast-success{background:linear-gradient(135deg,#2eb872,#27ae8a)}.toast-warning{background:linear-gradient(135deg,#ffb84d,#ff9a1f)}.toast-error{background:linear-gradient(135deg,#ff5f7a,#ee5a6f)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 860px){header{flex-wrap:wrap}.tabs{order:3;width:100%;margin-left:0;justify-content:stretch}.tab-btn{flex:1;justify-content:center}.user-info{margin-left:auto}}@media (max-width: 520px){.app{padding:0 16px 80px}.form-container,.login-box{padding:26px 22px}.tab-label,.username-label{display:none}.tab-btn{padding:9px;font-size:0;justify-content:center}.tab-btn svg{width:22px;height:22px;opacity:1;margin:0}.user-info .username{padding:9px;border-radius:11px}.sort-trigger-label{display:none}}.search-clear{display:grid;place-items:center;width:26px;height:26px;border:none;background:transparent;color:var(--text-3);border-radius:8px;cursor:pointer;flex-shrink:0;transition:color .15s ease,background .15s ease}.search-clear:hover,.search-clear:focus-visible{color:var(--accent);background:var(--accent-soft);outline:none}.search-clear svg{width:14px;height:14px}.filters-row .filter-reset{display:inline-flex;align-items:center;gap:7px;padding:10px 14px;border:1px solid rgba(255,255,255,.32);border-radius:var(--radius-sm);background:#ffffffb3;color:var(--text-2);font-weight:700;font-size:.92em;cursor:pointer;flex-shrink:0;transition:all .2s ease}.filters-row .filter-reset:hover,.filters-row .filter-reset:focus-visible{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.filters-row .filter-reset svg{width:16px;height:16px}.lcd-queue-only .lcd-channel-name{color:var(--teal)}.played-chip{position:absolute;top:9px;left:9px;display:inline-flex;align-items:center;gap:4px;background:#fffdf8;border-radius:999px;padding:4px 9px;font-weight:800;font-size:.72em;letter-spacing:.02em;color:var(--teal);box-shadow:0 2px 6px #0000002e}.played-chip svg{width:12px;height:12px}.sticker-cover .fav-btn{position:absolute;bottom:9px;right:9px;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:none;background:#140e2273;color:#fffdf8;cursor:pointer;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-shadow:0 3px 10px #00000040;transition:all .2s ease}.sticker-cover .fav-btn svg{width:19px;height:19px}.sticker-cover .fav-btn:hover{background:#ffffff47;transform:translateY(-1px) scale(1.06)}.sticker-cover .fav-btn.on{background:#fffdf8;color:var(--accent)}.sticker-cover .fav-btn.on svg,.game-hero-actions .icon-btn.fav-btn.on svg{filter:drop-shadow(0 1px 3px rgba(255,111,97,.6))}.sticker-cover .fav-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.game-hero-actions .icon-btn.fav-btn.on{background:#fffdf8;color:var(--accent)}.played-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.played-row .btn-played{border-radius:10px}.played-hint{display:inline-flex;align-items:center;gap:6px;color:var(--text-2);font-size:.92em;font-weight:600}.played-hint svg{width:15px;height:15px}.group-roster{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;padding:18px 22px;border-radius:20px;background:#ffffff0d;border:1.5px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);margin-bottom:40px}.group-roster-head{display:flex;align-items:center;gap:8px;flex-basis:100%;justify-content:center;color:#fffdf8;font-family:var(--font-display);font-size:1.05em;font-weight:600;margin-bottom:2px}.group-roster-head svg{width:19px;height:19px;color:var(--accent-2)}.roster-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:999px;background:#ffffff14;border:1.5px solid rgba(255,255,255,.14);color:#cfc5e4;font-weight:800;font-size:.92em;transition:all .25s ease}.roster-chip .roster-count{font-style:normal;font-size:.82em;color:#a89ac4}.roster-chip.in-room{border-color:var(--teal);color:#fffdf8}.roster-chip.ready{background:linear-gradient(135deg,var(--accent),#ff9c6e);border-color:transparent;color:#fff;box-shadow:0 6px 18px #ff6f6173;transform:translateY(-1px)}.roster-chip.me{outline:1.5px dashed rgba(255,255,255,.5);outline-offset:2px}.group-setup{gap:26px}.group-line{display:flex;align-items:center;gap:10px;color:#fffdf8;font-family:var(--font-display);font-size:1.15em;font-weight:600}.group-line svg{width:22px;height:22px;color:var(--accent-2)}.group-hint{max-width:440px;color:#cfc5e4;font-size:.98em;line-height:1.55}.group-waiting{display:flex;flex-direction:column;align-items:center;gap:18px;color:#fffdf8;font-weight:700}.picking-dice-mini{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:#ffffff14;color:var(--accent-2);animation:dice-bounce 1.1s ease-in-out infinite}.picking-dice-mini svg{width:28px;height:28px}.group-nudge{border-radius:12px}.players-auto{font-family:var(--font-body);font-size:.5em;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--teal);background:#22a5931f;border:1px solid rgba(34,165,147,.3);border-radius:999px;padding:3px 10px;vertical-align:middle}.group-result{text-align:center}.result-teacher{display:inline-flex;align-items:center;gap:6px}.result-teacher svg{width:14px;height:14px}.teach-online{color:var(--teal);border-color:#22a59359;background:#22a5931f}.teach-none{color:#b8abc8;border-color:#ffffff24;background:#ffffff0d}
