:root{--color-background: #f4cd54;--color-background-accent: #efbc39;--color-surface: #fffdf3;--color-surface-muted: #fff7d8;--color-surface-hover: #fff4c5;--color-primary: #b45309;--color-primary-hover: #a95012;--color-primary-active: #8f3d08;--color-primary-border: #793306;--color-text: #4f3b0d;--color-text-muted: #7c6841;--color-border: #d7b243;--color-border-soft: rgba(133, 96, 18, .2);--color-success: #2f8a4b;--color-warning: #b86d15;--color-danger: #bc3f35;--color-info: #28729d;--color-focus: #1b6fb1;--radius-small: 6px;--radius-medium: 8px;--radius-large: 16px;--radius-pill: 999px;--shadow-small: 0 2px 8px rgba(79, 59, 13, .1);--shadow-medium: 0 8px 24px rgba(79, 59, 13, .16);--shadow-modal: 0 22px 64px rgba(58, 38, 4, .3);--shadow-button: 0 3px 0 var(--color-primary-border), 0 7px 14px rgba(79, 59, 13, .18);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--control-height: 44px;--control-height-large: 50px;--cheese-dark: var(--color-border);--cheese-main: var(--color-background);--cheese-light: #f8dc78;--cheese-cream: var(--color-surface);--cheese-hole: rgba(139, 99, 13, .16);--crust: var(--color-primary);--text: var(--color-text);--text-light: var(--color-text-muted);--white: #fff;--shadow: rgba(79, 59, 13, .18);--theme-bg: linear-gradient(180deg, #f8dc78 0%, var(--color-background) 100%);--theme-btn: linear-gradient(180deg, #bc6218 0%, var(--color-primary) 100%);--theme-btn-hover: linear-gradient(180deg, #ad520d 0%, var(--color-primary-hover) 100%);--theme-btn-active: linear-gradient(180deg, var(--color-primary) 0%, var(--color-primary-active) 100%);--theme-btn-border: var(--color-primary-border);--theme-btn-shadow: var(--color-primary-border)}*{margin:0;padding:0;box-sizing:border-box}html{min-width:320px;min-height:100%;background-color:#f8dc78;overscroll-behavior:none}body{min-width:320px;min-height:100vh;min-height:100dvh;overflow-x:hidden;overscroll-behavior:none;color:var(--color-text);background:radial-gradient(circle 34px at 7% 15%,var(--cheese-hole) 48%,transparent 52%),radial-gradient(circle 50px at 94% 8%,var(--cheese-hole) 48%,transparent 52%),radial-gradient(circle 28px at 87% 76%,var(--cheese-hole) 48%,transparent 52%),radial-gradient(circle 42px at 9% 82%,var(--cheese-hole) 48%,transparent 52%),var(--theme-bg);background-color:var(--color-background);background-attachment:scroll;font-family:Comfortaa,system-ui,sans-serif;font-size:16px;line-height:1.5;transition:background-color .3s ease}#root{min-height:100vh;min-height:100dvh}button,input,select,textarea{font:inherit;letter-spacing:0}button{color:inherit}button,[role=button],select{-webkit-tap-highlight-color:transparent}button:focus-visible,[role=button]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.55}.app-container{position:relative;z-index:1;width:min(100%,1080px);min-height:100vh;margin:0 auto;padding:var(--space-5)}.app-container.wheel-active .nav{margin-bottom:var(--space-3)}.page{display:none;animation:fadeIn .28s ease}.page.active{display:block}.page-loading{display:flex;min-height:220px;align-items:center;justify-content:center;gap:var(--space-3);color:var(--color-text-muted);font-size:.9rem;font-weight:700}.page-loading .skeleton{width:28px;height:28px;border-radius:50%}.surface{border:1px solid var(--color-border-soft);border-radius:var(--radius-large);background:var(--color-surface);box-shadow:var(--shadow-small)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:var(--control-height);height:var(--control-height);padding:0;border:1px solid var(--color-border-soft);border-radius:var(--radius-medium);background:var(--color-surface);cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease}.icon-button:hover:not(:disabled){border-color:var(--color-border);background:var(--color-surface-hover)}.icon-button:active:not(:disabled){transform:translateY(1px)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.empty-state{display:grid;justify-items:center;gap:var(--space-3);padding:var(--space-10) var(--space-5);color:var(--color-text-muted);text-align:center}.empty-state-icon{font-size:2.75rem;line-height:1}.empty-state-title{color:var(--color-text);font-weight:700}.inline-status{display:inline-flex;align-items:center;gap:var(--space-2);min-height:32px;color:var(--color-text-muted);font-size:.85rem}.skeleton{overflow:hidden;border-radius:var(--radius-small);background:#eadfbf}.skeleton:after{display:block;width:42%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);content:"";animation:skeletonMove 1.2s infinite}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes dropIn{0%{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:translateY(0)}}@keyframes riseUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes skeletonMove{0%{transform:translate(-120%)}to{transform:translate(340%)}}@media(max-width:720px),(max-width:960px)and (max-height:560px){body{background:radial-gradient(circle 25px at 5% 18%,var(--cheese-hole) 48%,transparent 52%),radial-gradient(circle 34px at 96% 8%,var(--cheese-hole) 48%,transparent 52%),var(--theme-bg)}.app-container{padding:var(--space-3);padding-bottom:84px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body.theme-newyear{--theme-btn: linear-gradient(135deg, #c41e3a 0%, #8b0000 100%);--theme-btn-hover: linear-gradient(135deg, #d42a4c 0%, #a00000 100%);--theme-btn-active: linear-gradient(135deg, #228b22 0%, #145214 100%);--theme-btn-border: #ffd700;--theme-btn-shadow: #ffd700;background-color:#2d5a3d;background:radial-gradient(ellipse 80px 70px at 5% 10%,var(--cheese-hole) 40%,transparent 70%),radial-gradient(ellipse 120px 100px at 90% 5%,var(--cheese-hole) 40%,transparent 70%),radial-gradient(ellipse 60px 50px at 80% 80%,var(--cheese-hole) 40%,transparent 70%),radial-gradient(ellipse 100px 80px at 15% 75%,var(--cheese-hole) 40%,transparent 70%),radial-gradient(ellipse 50px 60px at 50% 90%,var(--cheese-hole) 40%,transparent 70%),radial-gradient(ellipse 70px 60px at 95% 45%,var(--cheese-hole) 40%,transparent 70%),radial-gradient(ellipse 40px 50px at 3% 45%,var(--cheese-hole) 40%,transparent 70%),linear-gradient(180deg,#1a472a 0%,#2d5a3d 50%,var(--cheese-main) 100%)}.snowflakes{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1000;overflow:hidden;display:none}body.theme-newyear .snowflakes{display:block}.snowflake{position:absolute;top:-10px;color:#fff;font-size:1rem;text-shadow:0 0 5px rgba(255,255,255,.8);animation:fall linear infinite;opacity:.9}@keyframes fall{0%{transform:translateY(-10px) rotate(0)}to{transform:translateY(100vh) rotate(360deg)}}.garland{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:hidden;display:none}body.theme-newyear .garland{display:block}.light{position:absolute;width:10px;height:10px;border-radius:50%;animation:glow 1.5s ease-in-out infinite alternate;box-shadow:0 0 15px currentColor,0 0 30px currentColor}.light:nth-child(5n+1){color:red;background:red;animation-delay:0s}.light:nth-child(5n+2){color:#0f0;background:#0f0;animation-delay:.3s}.light:nth-child(5n+3){color:#0080ff;background:#0080ff;animation-delay:.6s}.light:nth-child(5n+4){color:#ff0;background:#ff0;animation-delay:.9s}.light:nth-child(5n+5){color:#f0f;background:#f0f;animation-delay:1.2s}@keyframes glow{0%{opacity:.3;transform:scale(.8)}to{opacity:1;transform:scale(1.2)}}body.theme-newyear .nav-btn,body.theme-newyear .auth-btn,body.theme-newyear .add-movie-btn,body.theme-newyear .auth-password-btn{background:linear-gradient(135deg,#c41e3a,#8b0000);border-color:gold}body.theme-newyear .nav-btn:hover,body.theme-newyear .auth-btn:hover,body.theme-newyear .add-movie-btn:hover,body.theme-newyear .auth-password-btn:hover{background:linear-gradient(135deg,#d42a4c,#a00000)}body.theme-newyear .nav-btn.active,body.theme-newyear .auth-btn.selected{background:linear-gradient(135deg,#228b22,#145214)}body.theme-newyear .watched-table th{background:linear-gradient(135deg,#c41e3a,#8b0000);border-bottom-color:gold}body.theme-newyear .watched-table th:hover{background:linear-gradient(135deg,#d42a4c,#a00000)}body.theme-newyear .wheel-center{background:linear-gradient(135deg,#c41e3a,#8b0000);border-color:gold}body.theme-newyear .wheel-outer{background:conic-gradient(from 0deg,#c41e3a,#8b0000,#c41e3a,#8b0000,#c41e3a,#8b0000,#c41e3a,#8b0000,#c41e3a,#8b0000,#c41e3a,#8b0000,#c41e3a,#8b0000,#c41e3a,#8b0000,#c41e3a,#8b0000,#c41e3a,#8b0000,#c41e3a,#8b0000,#c41e3a,#8b0000,#c41e3a,#8b0000,#c41e3a,#8b0000,#c41e3a,#8b0000,#c41e3a,#8b0000,#c41e3a,#8b0000,#c41e3a,#8b0000,#c41e3a 360deg);box-shadow:0 0 0 4px gold,0 0 25px #c41e3a66,0 15px 40px #00000059}body.theme-newyear .nav-user-btn,body.theme-newyear .nav-dropdown,body.theme-newyear .nav-user,body.theme-newyear .spin-duration,body.theme-newyear .auth-password-input,body.theme-newyear .add-movie,body.theme-newyear .add-movie-input,body.theme-newyear .watched-table-wrapper,body.theme-newyear .watched-add-movie,body.theme-newyear .stat-card,body.theme-newyear .search-bar,body.theme-newyear .rating-select,body.theme-newyear .movie-tag,body.theme-newyear .drawer,body.theme-newyear .drawer-add-input,body.theme-newyear .drawer-header,body.theme-newyear .drawer-add-form,body.theme-newyear .drawer-movie-item,body.theme-newyear .drawer-footer,body.theme-newyear .drawer-center-section{border-color:gold}body.theme-newyear .stat-card-value,body.theme-newyear .stats-user-avg{color:#c41e3a}body.theme-newyear .connection-status{border-color:gold}body.theme-newyear .modal-content{box-shadow:0 0 50px #c41e3a66,0 20px 60px #0000004d}body.theme-newyear .admin-btn{background:linear-gradient(135deg,#c41e3a,#8b0000);border-color:gold}body.theme-spring{--theme-btn: linear-gradient(135deg, #66bb6a 0%, #43a047 100%);--theme-btn-hover: linear-gradient(135deg, #81c784 0%, #66bb6a 100%);--theme-btn-active: linear-gradient(135deg, #ec407a 0%, #d81b60 100%);--theme-btn-border: #2e7d32;--theme-btn-shadow: #2e7d32;background-color:#c8e6c9;background:radial-gradient(ellipse 80px 70px at 5% 10%,rgba(144,238,144,.3) 40%,transparent 70%),radial-gradient(ellipse 120px 100px at 90% 5%,rgba(255,182,193,.3) 40%,transparent 70%),radial-gradient(ellipse 60px 50px at 80% 80%,rgba(144,238,144,.3) 40%,transparent 70%),radial-gradient(ellipse 100px 80px at 15% 75%,rgba(255,182,193,.3) 40%,transparent 70%),radial-gradient(ellipse 50px 60px at 50% 90%,rgba(144,238,144,.3) 40%,transparent 70%),radial-gradient(ellipse 70px 60px at 95% 45%,rgba(255,218,185,.3) 40%,transparent 70%),radial-gradient(ellipse 40px 50px at 3% 45%,rgba(255,182,193,.3) 40%,transparent 70%),linear-gradient(180deg,#e8f5e9,#c8e6c9 30%,#fff9c4 70%,#ffe0b2)}.petals{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1000;overflow:hidden;display:none}body.theme-spring .petals{display:block}.petal{position:absolute;top:-30px;font-size:1.2rem;animation:petalFall linear infinite;opacity:.8;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}@keyframes petalFall{0%{transform:translateY(-30px) translate(0) rotate(0)}25%{transform:translateY(25vh) translate(20px) rotate(90deg)}50%{transform:translateY(50vh) translate(-15px) rotate(180deg)}75%{transform:translateY(75vh) translate(25px) rotate(270deg)}to{transform:translateY(100vh) translate(-10px) rotate(360deg)}}body.theme-spring .nav-btn,body.theme-spring .auth-btn,body.theme-spring .add-movie-btn,body.theme-spring .auth-password-btn{background:linear-gradient(135deg,#66bb6a,#43a047);border-color:#2e7d32}body.theme-spring .nav-btn:hover,body.theme-spring .auth-btn:hover,body.theme-spring .add-movie-btn:hover,body.theme-spring .auth-password-btn:hover{background:linear-gradient(135deg,#81c784,#66bb6a)}body.theme-spring .nav-btn.active,body.theme-spring .auth-btn.selected{background:linear-gradient(135deg,#ec407a,#d81b60)}body.theme-spring .watched-table th{background:linear-gradient(135deg,#66bb6a,#43a047);border-bottom-color:#2e7d32}body.theme-spring .watched-table th:hover{background:linear-gradient(135deg,#81c784,#66bb6a)}body.theme-spring .wheel-center{background:linear-gradient(135deg,#ec407a,#d81b60);border-color:#fff}body.theme-spring .wheel-outer{background:conic-gradient(from 0deg,#66bb6a,#43a047,#66bb6a,#43a047,#66bb6a,#43a047,#66bb6a,#43a047,#66bb6a,#43a047,#66bb6a,#43a047,#66bb6a,#43a047,#66bb6a,#43a047,#66bb6a,#43a047,#66bb6a,#43a047,#66bb6a,#43a047,#66bb6a,#43a047,#66bb6a,#43a047,#66bb6a,#43a047,#66bb6a,#43a047,#66bb6a,#43a047,#66bb6a,#43a047,#66bb6a,#43a047,#66bb6a 360deg);box-shadow:0 0 0 4px #fff,0 0 25px #66bb6a66,0 15px 40px #0003}body.theme-spring .nav-user-btn,body.theme-spring .nav-dropdown,body.theme-spring .nav-user,body.theme-spring .spin-duration,body.theme-spring .auth-password-input,body.theme-spring .add-movie,body.theme-spring .add-movie-input,body.theme-spring .watched-table-wrapper,body.theme-spring .watched-add-movie,body.theme-spring .stat-card,body.theme-spring .search-bar,body.theme-spring .rating-select,body.theme-spring .movie-tag,body.theme-spring .drawer,body.theme-spring .drawer-add-input,body.theme-spring .drawer-header,body.theme-spring .drawer-add-form,body.theme-spring .drawer-movie-item,body.theme-spring .drawer-footer,body.theme-spring .drawer-center-section{border-color:#66bb6a}body.theme-spring .stat-card-value,body.theme-spring .stats-user-avg{color:#2e7d32}body.theme-spring .connection-status{border-color:#66bb6a}body.theme-spring .modal-content{box-shadow:0 0 50px #66bb6a66,0 20px 60px #0003}body.theme-spring .admin-btn{background:linear-gradient(135deg,#66bb6a,#43a047);border-color:#2e7d32}.toast-container{position:fixed;top:20px;right:20px;z-index:3000;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast{background:#fffffff7;border-radius:14px;padding:14px 22px;box-shadow:0 8px 32px #0000002e;border-left:5px solid var(--cheese-dark);font-size:.95rem;color:var(--text);pointer-events:auto;animation:toastIn .35s ease,toastOut .35s ease 2.65s forwards;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);max-width:340px;display:flex;align-items:center;gap:10px}.toast.toast-success{border-left-color:#27ae60}.toast.toast-error{border-left-color:#e74c3c}.toast.toast-info{border-left-color:#3498db}.toast-icon{font-size:1.2rem;flex-shrink:0}@keyframes toastIn{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes toastOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(40px)}}.nav{position:relative;z-index:100;display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-8)}.nav-pages{display:flex;flex:1 1 auto;align-items:center;gap:var(--space-1);min-width:0;overflow:hidden;padding:var(--space-1);border:1px solid var(--color-border-soft);border-radius:var(--radius-large);background:#fffdf3e0;box-shadow:var(--shadow-small);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.nav-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-width:0;min-height:var(--control-height);padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-medium);background:transparent;color:var(--color-text-muted);font-weight:700;white-space:nowrap;cursor:pointer;transition:color .15s ease,background .15s ease,border-color .15s ease}.nav-btn:hover{border-color:var(--color-border-soft);background:var(--color-surface-hover);color:var(--color-text)}.nav-btn.active{border-color:var(--color-primary-border);background:var(--theme-btn);color:#fff;box-shadow:inset 0 -3px #532b033d}.nav-label-short{display:none}.nav-user{position:relative;flex:0 1 auto;min-width:0;margin-left:auto}.nav-user-btn{display:flex;align-items:center;gap:var(--space-2);min-width:0;min-height:var(--control-height);max-width:210px;padding:4px 12px 4px 6px;border:1px solid var(--color-border-soft);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-small);cursor:pointer;transition:background .15s ease,border-color .15s ease}.nav-user-btn:hover{border-color:var(--color-border);background:var(--color-surface-hover)}.nav-user-avatar{display:grid;flex:0 0 34px;width:34px;height:34px;place-items:center;border-radius:50%;background:var(--color-background);color:var(--color-text);font-weight:800}.nav-user-name{overflow:hidden;min-width:0;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.nav-role-badge{padding:2px 6px;border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-primary);font-size:.72rem;font-weight:800;text-transform:uppercase}.nav-user-caret{color:var(--color-text-muted);font-size:.8rem}.nav-dropdown{position:absolute;top:calc(100% + var(--space-2));right:0;display:flex;min-width:240px;padding:var(--space-2);flex-direction:column;gap:2px;border:1px solid var(--color-border-soft);border-radius:var(--radius-large);background:var(--color-surface);box-shadow:var(--shadow-modal)}.nav-dropdown-wide{width:min(360px,calc(100vw - 24px))}.nav-dropdown-item{min-height:42px;padding:0 var(--space-3);border:0;border-radius:var(--radius-medium);background:transparent;color:var(--color-text);text-align:left;cursor:pointer}.nav-dropdown-item:hover{background:var(--color-surface-hover)}.nav-dropdown-logout{margin-top:var(--space-1);border-top:1px solid var(--color-border-soft);border-radius:0 0 var(--radius-medium) var(--radius-medium);color:var(--color-danger);font-weight:700}.nav-password-form{display:grid;gap:var(--space-2);padding:var(--space-2)}.nav-password-form input{width:100%;min-height:42px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-medium);background:#fff;color:var(--color-text)}.nav-pwd-error{color:var(--color-danger);font-size:.84rem}.nav-pwd-submit{background:var(--theme-btn);color:#fff;font-weight:700;text-align:center}.nav-submenu-back{justify-self:start;padding:4px 0;border:0;background:transparent;color:var(--color-text-muted);font-size:.84rem;font-weight:700;cursor:pointer}.nav-submenu-back:hover{color:var(--color-text)}.nav-security-panel,.nav-security-form{display:grid;gap:var(--space-3)}.nav-security-panel{padding:var(--space-2)}.nav-security-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.nav-security-heading>span{padding:3px 8px;border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-text-muted);font-size:.78rem;font-weight:800}.nav-security-heading>span.is-enabled{background:#178e501f;color:var(--color-success)}.nav-security-note,.nav-recovery-codes p{margin:0;color:var(--color-text-muted);font-size:.84rem;line-height:1.45}.nav-security-form input{width:100%;min-height:42px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-medium);background:#fff;color:var(--color-text)}.nav-security-actions{display:grid;gap:var(--space-2)}.nav-two-factor-qr{width:176px;height:176px;margin:0 auto;border:8px solid #fff;border-radius:var(--radius-medium);object-fit:contain}.nav-two-factor-secret{display:grid;gap:4px;padding:var(--space-2);border-radius:var(--radius-medium);background:var(--color-surface-muted);text-align:center}.nav-two-factor-secret span{color:var(--color-text-muted);font-size:.78rem}.nav-two-factor-secret code{overflow-wrap:anywhere;font-size:.82rem;-webkit-user-select:all;user-select:all}.nav-recovery-codes{display:grid;gap:var(--space-3)}.nav-recovery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.nav-recovery-grid code{padding:6px;border:1px solid var(--color-border-soft);border-radius:var(--radius-small);background:var(--color-surface-muted);font-size:.78rem;text-align:center;-webkit-user-select:all;user-select:all}@media(min-width:721px)and (max-width:1120px){.nav-btn{flex:1 1 auto;gap:6px;padding:0 clamp(7px,1vw,12px);font-size:clamp(.74rem,1.35vw,.86rem)}.nav-btn .nav-label-full{display:none}.nav-btn .nav-label-short{display:inline}.nav-user-btn{max-width:190px}}@media(max-width:720px),(max-width:960px)and (max-height:560px){.nav{justify-content:flex-end;min-height:48px;margin-bottom:var(--space-4)}.nav-pages{position:fixed;right:var(--space-3);bottom:var(--space-3);left:var(--space-3);z-index:900;display:grid;grid-template-columns:repeat(var(--nav-page-count, 3),minmax(0,1fr));padding:var(--space-1);padding-bottom:max(var(--space-1),env(safe-area-inset-bottom));box-shadow:var(--shadow-modal)}.nav-btn{min-width:0;min-height:52px;padding:4px 6px;flex-direction:column;gap:1px;font-size:.78rem;line-height:1.2}.nav-btn>span:first-child{font-size:1.15rem}.nav-label-full{display:none}.nav-label-short{display:inline}.nav-user{margin-left:0}.nav-user-btn{max-width:min(62vw,210px)}.nav-dropdown{right:0;min-width:min(280px,calc(100vw - 24px));max-height:calc(100dvh - 160px);overflow-y:auto}}.auth-page{display:none;min-height:100dvh;padding:var(--space-6);align-items:center;justify-content:center;flex-direction:column;text-align:center}.auth-page.active{display:flex}.auth-logo{margin-bottom:var(--space-2);font-size:4.25rem;line-height:1;animation:authFloat 2.4s ease-in-out infinite}.auth-title{color:var(--color-text);font-family:Caveat,Comfortaa,sans-serif;font-size:3rem;line-height:1.1}.auth-subtitle{margin:var(--space-1) 0 var(--space-8);color:var(--color-text-muted);font-size:.95rem;font-weight:700}.auth-users{display:grid;width:min(100%,430px);grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.auth-btn-center{grid-column:1 / -1;width:calc(50% - 6px);justify-self:center}.auth-btn{min-height:76px;padding:var(--space-4);border:1px solid var(--color-primary-border);border-radius:var(--radius-medium);background:var(--theme-btn);color:#fff;box-shadow:var(--shadow-button);font-size:1.05rem;font-weight:800;cursor:pointer;transition:background .15s ease,box-shadow .15s ease,transform .15s ease}.auth-btn:hover{background:var(--theme-btn-hover);transform:translateY(-2px)}.auth-btn:active{box-shadow:0 1px 0 var(--color-primary-border),var(--shadow-small);transform:translateY(2px)}.auth-btn.selected{background:var(--theme-btn-active);box-shadow:0 0 0 3px var(--color-surface),0 0 0 6px var(--color-primary-border)}.auth-password-container{display:grid;width:min(100%,320px);gap:var(--space-3);margin-top:var(--space-6)}.auth-password-input{width:100%;min-height:var(--control-height-large);padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface);color:var(--color-text);text-align:center}.auth-password-btn{min-height:var(--control-height-large);border:1px solid var(--color-primary-border);border-radius:var(--radius-medium);background:var(--theme-btn);color:#fff;box-shadow:var(--shadow-button);font-weight:800;cursor:pointer}.auth-error{min-height:20px;color:var(--color-danger);font-size:.82rem;font-weight:700}.auth-two-factor-hint{margin:0;color:var(--color-text-muted);font-size:.86rem;line-height:1.5}.auth-code-input{font-size:1.15rem;font-weight:800;letter-spacing:.12em}.auth-back-btn{min-height:var(--control-height);border:0;background:transparent;color:var(--color-text-muted);font-weight:700;cursor:pointer}.auth-back-btn:hover{color:var(--color-text)}.auth-guest-btn{min-height:var(--control-height);margin-top:var(--space-6);padding:0 var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:#fffdf3b8;color:var(--color-text);font-weight:700;cursor:pointer}.auth-guest-btn:hover{background:var(--color-surface)}@keyframes authFloat{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(2deg)}}.wheel-page-layout{position:relative;display:grid;min-height:calc(100dvh - 100px);place-items:center}.wheel-container{display:flex;width:100%;align-items:center;flex-direction:column}.wheel-wrapper{position:relative;width:min(100%,650px,calc(100dvh - 100px));aspect-ratio:1;animation:riseUp .45s ease-out}.cheese-wheel-stage{position:relative;width:100%;aspect-ratio:1;filter:drop-shadow(0 12px 24px rgba(100,60,0,.2))}.cheese-wheel-stage canvas{display:block;width:100%;height:100%}.cheese-wheel-stage.is-spinning{animation:wheelGlow .48s ease-in-out infinite}.cheese-wheel-stage.is-spinning canvas{animation:wheelPulse .48s ease-in-out infinite}.wheel-pointer{position:absolute;top:7px;left:50%;z-index:8;width:0;height:0;border-top:30px solid #d9473d;border-right:15px solid transparent;border-left:15px solid transparent;filter:drop-shadow(0 2px 2px rgba(81,24,10,.32));transform:translate(-50%);transform-origin:50% 0}.wheel-pointer:before{position:absolute;top:-34px;left:-5px;width:10px;height:10px;border-radius:50%;background:#8f271f;content:""}.wheel-pointer.bounce{animation:pointerBounce .16s ease}.wheel-center-btn{position:absolute;top:50%;left:50%;z-index:10;isolation:isolate;display:grid;width:clamp(72px,18%,96px);min-width:44px;min-height:44px;aspect-ratio:1;padding:0;place-items:center;overflow:hidden;border:3px solid var(--color-primary-border);border-radius:50%;background:#fff;box-shadow:0 0 0 4px #ffffff9e,var(--shadow-medium);cursor:pointer;opacity:1;transform:translate(-50%,-50%);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.wheel-center-btn:hover:not(:disabled){border-color:var(--color-primary-hover);box-shadow:0 0 0 5px #ffffffc7,0 10px 28px #4f3b0d47;transform:translate(-50%,-50%) scale(1.06)}.wheel-center-btn:active:not(:disabled){box-shadow:0 0 0 3px #ffffffb8,var(--shadow-small);transform:translate(-50%,-50%) scale(.96)}.wheel-center-btn:focus-visible{outline-offset:5px}.wheel-center-btn:disabled{cursor:not-allowed;opacity:1}.wheel-center-btn.is-pending,.wheel-center-btn.is-spinning{border-color:var(--color-warning);box-shadow:0 0 0 5px #ffffffc7,0 0 24px #b86d1561;cursor:progress}.wheel-center-img{position:relative;z-index:1;display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;opacity:1;filter:none;mix-blend-mode:normal}.wheel-center-fallback{position:relative;z-index:1;font-size:clamp(2rem,6vw,3rem);line-height:1}.wheel-readiness{position:absolute;top:0;left:50%;z-index:12;display:inline-flex;align-items:center;gap:var(--space-2);min-height:34px;max-width:min(90vw,480px);padding:0 var(--space-3);border:1px solid rgba(184,109,21,.28);border-radius:var(--radius-pill);background:#fffdf3e0;color:var(--color-warning);box-shadow:var(--shadow-small);font-size:.78rem;font-weight:700;text-align:center;transform:translate(-50%)}.wheel-readiness>span{flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:currentColor}.wheel-readiness.is-spinning{color:var(--color-success)}.wheel-readiness.is-info{border-color:#28729d4d;color:var(--color-info)}.wheel-readiness.is-spinning>span{animation:spinDot .9s ease-in-out infinite}.wheel-not-ready{display:grid;width:min(100%,650px,calc(100dvh - 100px));aspect-ratio:1;padding:var(--space-8);place-items:center;align-content:center;gap:var(--space-3);border:3px dashed rgba(156,103,17,.42);border-radius:50%;background:#ffe56a7a;color:var(--color-text-muted);text-align:center}.wheel-not-ready-icon{font-size:4rem;line-height:1}.wheel-not-ready strong{color:var(--color-text);font-size:1.15rem}.wheel-not-ready>span:last-of-type{max-width:300px;font-size:.84rem}.button-primary{display:inline-flex;align-items:center;justify-content:center;min-height:var(--control-height);padding:0 var(--space-5);border:1px solid var(--color-primary-border);border-radius:var(--radius-medium);background:var(--theme-btn);color:#fff;box-shadow:var(--shadow-button);font-weight:800;cursor:pointer;transition:background .15s ease,box-shadow .15s ease,transform .15s ease}.button-primary:hover:not(:disabled){background:var(--theme-btn-hover);transform:translateY(-1px)}.button-primary:active:not(:disabled){box-shadow:0 1px 0 var(--color-primary-border),var(--shadow-small);transform:translateY(2px)}.button-secondary,.button-ghost,.button-danger{display:inline-flex;align-items:center;justify-content:center;min-height:var(--control-height);padding:0 var(--space-4);border-radius:var(--radius-medium);font-weight:700;cursor:pointer}.button-secondary{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-small)}.button-secondary:hover:not(:disabled),.button-ghost:hover:not(:disabled){background:var(--color-surface-hover)}.button-ghost{border:1px solid transparent;background:transparent;color:var(--color-text-muted)}.button-ghost.danger{color:var(--color-danger)}.button-danger{border:1px solid #963129;background:var(--color-danger);color:#fff}@keyframes pointerBounce{0%,to{transform:translate(-50%) rotate(0)}45%{transform:translate(-50%) rotate(7deg)}}@keyframes spinDot{0%,to{opacity:.45;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}@keyframes wheelGlow{0%,to{filter:drop-shadow(0 12px 24px rgba(100,60,0,.2))}50%{filter:drop-shadow(0 16px 36px rgba(196,105,18,.28))}}@keyframes wheelPulse{0%,to{transform:scale(1)}50%{transform:scale(1.008)}}@media(prefers-reduced-motion:reduce){.cheese-wheel-stage.is-spinning,.cheese-wheel-stage.is-spinning canvas{animation:none}}@media(max-width:720px){.wheel-page-layout{min-height:calc(100dvh - 116px);padding-bottom:78px}.wheel-wrapper{width:min(100%,470px,calc(100dvh - 180px))}.wheel-readiness{top:-4px;min-height:32px;font-size:.7rem}}@media(max-width:430px){.wheel-pointer{top:4px;border-top-width:24px;border-right-width:12px;border-left-width:12px}.wheel-not-ready{width:min(100%,366px);padding:var(--space-6)}}.drawer-toggle{position:fixed;bottom:20px;left:20px;z-index:920;display:grid;width:50px;height:50px;padding:0;place-items:center;border:1px solid var(--color-primary-border);border-radius:50%;background:var(--theme-btn);box-shadow:var(--shadow-medium);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.drawer-toggle:hover:not(:disabled){box-shadow:var(--shadow-modal);transform:translateY(-2px)}.drawer-toggle:active:not(:disabled){box-shadow:var(--shadow-small);transform:translateY(1px) scale(.96)}.drawer-toggle-cheese{font-size:1.45rem;line-height:1}.wheel-modal-overlay{position:fixed;inset:0;z-index:1100;display:grid;padding:var(--space-5);place-items:center;background:#3625048a;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.wheel-modal-card{display:flex;width:min(620px,100%);max-height:min(760px,calc(100dvh - 40px));overflow:hidden;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-large);background:var(--color-surface);box-shadow:var(--shadow-modal);animation:modalEnter .22s ease-out}.wm-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-5);border-bottom:1px solid var(--color-border-soft)}.wm-kicker{color:var(--color-primary);font-size:.72rem;font-weight:800;text-transform:uppercase}.wm-header h2{margin-top:2px;font-size:1.25rem}.wm-close{flex:0 0 var(--control-height)}.wm-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-1);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-soft);background:var(--color-surface-muted)}.wm-tab{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:0;min-height:42px;padding:0 var(--space-2);gap:6px;border:1px solid transparent;border-radius:var(--radius-medium);background:transparent;color:var(--color-text-muted);font-size:.82rem;font-weight:700;cursor:pointer}.wm-tab:hover{background:#ffffffb8;color:var(--color-text)}.wm-tab.active{border-color:var(--color-border);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-small)}.wm-tab-count{display:inline-grid;min-width:22px;height:22px;padding:0 5px;place-items:center;border-radius:var(--radius-pill);background:#d9862f24;color:var(--color-primary-active);font-size:.72rem}.wm-panel,.wm-settings{min-height:0;overflow-y:auto}.wm-notice{margin:var(--space-3) var(--space-4) 0;padding:var(--space-3);border:1px solid rgba(184,109,21,.25);border-radius:var(--radius-medium);background:#fff4d7;color:var(--color-warning);font-size:.82rem}.wm-formation{display:grid;gap:var(--space-3);margin:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border-soft);border-radius:var(--radius-medium);background:var(--color-surface-muted)}.wm-formation>p,.wm-next-cycle>p{color:var(--color-text-muted);font-size:.76rem;line-height:1.45}.wm-form-wheel{width:100%;min-height:var(--control-height-large)}.wm-next-cycle{display:grid;gap:var(--space-3);margin:0 var(--space-4) var(--space-4);padding:var(--space-4);border:1px solid var(--color-border-soft);border-radius:var(--radius-medium);background:var(--color-surface-muted)}.wm-next-cycle .button-primary{width:100%}.wm-add-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2);padding:var(--space-4)}.wm-input{min-width:0;min-height:var(--control-height);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-medium);background:#fff;color:var(--color-text)}.wm-add-btn{box-shadow:none}.wm-participants{display:grid;gap:var(--space-2);padding:0 var(--space-4) var(--space-4)}.wm-participant{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:var(--space-2);min-height:62px;padding:var(--space-2);border:1px solid var(--color-border-soft);border-radius:var(--radius-medium);background:var(--color-surface)}.wm-participant.has-actions{grid-template-columns:38px minmax(0,1fr) auto 88px}.wm-participant.is-waiting{background:var(--color-surface-muted)}.wm-participant-copy{display:grid;min-width:0}.wm-participant-copy>strong,.wm-participant-copy>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wm-participant-copy>strong{font-size:.86rem}.wm-participant-copy>span{margin-top:2px;color:var(--color-text-muted);font-size:.75rem}.wm-participant-status{padding:4px 8px;border-radius:var(--radius-pill);background:#2f8a4b1a;color:var(--color-success);font-size:.76rem;font-weight:700;white-space:nowrap}.wm-participant.is-waiting .wm-participant-status{background:#b86d1524;color:var(--color-warning)}.wm-participant.is-watched{border-color:#4657a633;background:#4657a60e}.wm-participant.is-watched .wm-participant-status{background:#4657a61f;color:#4657a6}.wm-participant.is-unselected{border-style:dashed;background:#f5f2e9}.wm-participant.is-unselected .wm-participant-status{background:#5d513717;color:#6f6654}.wm-participant-actions{display:grid;grid-template-columns:repeat(2,40px);gap:var(--space-1)}.wm-participant-actions .icon-button{width:40px;height:40px}.wm-participant-actions .danger{color:var(--color-danger)}.wm-inline-edit{display:grid;grid-template-columns:minmax(90px,1fr) 36px 36px;gap:var(--space-1);margin-top:3px}.wm-inline-edit input{min-width:0;height:36px;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-small);background:#fff;color:var(--color-text)}.wm-inline-edit .icon-button{width:36px;height:36px}.wm-hint{padding:0 var(--space-4) var(--space-3);color:var(--color-text-muted);font-size:.78rem}.wm-own-choice-note{margin:calc(var(--space-2) * -1) var(--space-4) var(--space-3);color:var(--color-primary-active);font-size:.76rem;line-height:1.4}.wm-list{display:grid;gap:var(--space-2);padding:0 var(--space-4) var(--space-4)}.wm-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:var(--space-2);min-height:58px;padding:var(--space-2);border:1px solid var(--color-border-soft);border-radius:var(--radius-medium);background:var(--color-surface);transition:background .15s ease,opacity .2s ease,transform .2s ease}.wm-item.has-actions{grid-template-columns:38px minmax(0,1fr) auto 88px}.wm-item:hover{background:var(--color-surface-hover)}.wm-item.is-deleting{opacity:.45;transform:translate(-8px)}.wm-avatar{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;background:var(--color-background);font-weight:800}.wm-item-copy{display:grid;min-width:0}.wm-item-copy strong,.wm-item-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wm-item-copy strong{font-size:.88rem}.wm-item-copy span{color:var(--color-text-muted);font-size:.74rem}.wm-item-status{padding:4px 7px;border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-text-muted);font-size:.76rem;white-space:nowrap}.wm-item-actions{display:grid;grid-template-columns:repeat(2,40px);gap:var(--space-1)}.wm-item-actions .icon-button{width:40px;height:40px}.wm-item-actions .danger{color:var(--color-danger)}.wm-settings{display:grid;gap:var(--space-3);padding:var(--space-4)}.wm-settings-block{padding:var(--space-4);border:1px solid var(--color-border-soft);border-radius:var(--radius-medium);background:var(--color-surface)}.wm-settings-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.wm-settings-heading h3{font-size:.92rem}.wm-settings-heading p{margin-top:3px;color:var(--color-text-muted);font-size:.75rem}.wm-settings-heading>strong{flex:0 0 auto;color:var(--color-primary)}.wm-duration-control{display:grid;grid-template-columns:minmax(0,1fr) 104px;align-items:center;gap:var(--space-3);margin-top:var(--space-4)}.wm-duration-slider{width:100%;height:8px;border-radius:var(--radius-pill);outline:0;background:linear-gradient(90deg,var(--color-primary) 0 var(--duration-progress, 0%),#e9dfbd var(--duration-progress, 0%) 100%);cursor:pointer;appearance:none}.wm-duration-slider::-webkit-slider-thumb{width:24px;height:24px;border:3px solid #fff;border-radius:50%;background:var(--color-primary);box-shadow:0 2px 8px #7933064d;cursor:grab;appearance:none}.wm-duration-slider::-moz-range-thumb{width:18px;height:18px;border:3px solid #fff;border-radius:50%;background:var(--color-primary);box-shadow:0 2px 8px #7933064d;cursor:grab}.wm-duration-slider:active::-webkit-slider-thumb{cursor:grabbing;transform:scale(1.08)}.wm-duration-number{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:44px;padding-right:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-medium);background:#fff}.wm-duration-number:focus-within{border-color:var(--color-focus);box-shadow:0 0 0 3px #1b6fb124}.wm-duration-number input{width:100%;min-width:0;min-height:42px;padding:0 4px 0 var(--space-3);border:0;outline:0;background:transparent;color:var(--color-primary-active);font-size:1rem;font-weight:800}.wm-duration-number span{color:var(--color-text-muted);font-size:.72rem;font-weight:700}.wm-duration-scale{display:flex;justify-content:space-between;padding-right:116px;margin-top:5px;color:var(--color-text-muted);font-size:.68rem;font-weight:700}.wm-duration-saving{min-height:18px;margin-top:2px;color:var(--color-text-muted);font-size:.7rem}.wm-center-row{display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-4)}.wm-center-preview{display:grid;flex:0 0 78px;width:78px;height:78px;place-items:center;overflow:hidden;border:2px solid var(--color-border);border-radius:50%;background:var(--color-surface-muted);font-size:2rem}.wm-center-preview img{width:100%;height:100%;object-fit:cover}.wm-center-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.wm-upload-btn{box-shadow:none;cursor:pointer}.wm-upload-btn.is-disabled{pointer-events:none;opacity:.55}.wm-inline-confirm{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-border-soft);font-size:.78rem}.wm-inline-confirm span{flex:1}@keyframes modalEnter{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:720px){.drawer-toggle{bottom:82px;left:12px}.wheel-modal-overlay{padding:var(--space-2);place-items:end center}.wheel-modal-card{width:100%;max-height:calc(100dvh - 16px);border-radius:var(--radius-large) var(--radius-large) var(--radius-medium) var(--radius-medium)}.wm-header{padding:var(--space-4)}.wm-tabs{padding:var(--space-2)}.wm-tab{min-height:46px;flex-direction:column;gap:0;font-size:.7rem}.wm-tab-count{position:absolute;transform:translate(22px,-12px)}.wm-item{grid-template-columns:36px minmax(0,1fr)}.wm-item.has-actions{grid-template-columns:36px minmax(0,1fr) 76px}.wm-participant{grid-template-columns:36px minmax(0,1fr)}.wm-participant.has-actions{grid-template-columns:36px minmax(0,1fr) 82px}.wm-participant-status,.wm-item-status{display:none}}@media(max-width:430px){.wm-add-row{grid-template-columns:1fr}.wm-add-btn{width:100%}.wm-participant{grid-template-columns:36px minmax(0,1fr)}.wm-participant.has-actions{grid-template-columns:36px minmax(0,1fr) 76px}.wm-participant-actions{grid-template-columns:repeat(2,36px)}.wm-participant-actions .icon-button,.wm-item-actions .icon-button{width:36px;height:36px}.wm-item-actions{grid-template-columns:repeat(2,36px)}.wm-inline-edit{grid-column:1 / -1}.wm-center-row,.wm-inline-confirm{align-items:flex-start;flex-direction:column}.wm-duration-control{grid-template-columns:minmax(0,1fr) 92px}.wm-duration-scale{padding-right:104px}}.dialog-backdrop,.admin-modal{position:fixed;inset:0;z-index:1200;display:grid;padding:var(--space-5);place-items:center;background:#3625048f;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.result-backdrop{z-index:1250}.result-card{position:relative;width:min(440px,100%);overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-large);background:var(--color-surface);box-shadow:var(--shadow-modal);animation:resultEnter .32s cubic-bezier(.2,.8,.2,1)}.result-confetti{position:absolute;top:70px;right:0;left:0;color:var(--color-background-accent);font-size:1.15rem;text-align:center;opacity:.72;pointer-events:none}.result-close{position:absolute;top:var(--space-3);right:var(--space-3);z-index:2;border-color:#ffffff52;background:#ffffff29;color:#fff}.result-card-header{padding:var(--space-5);background:var(--theme-btn);text-align:center}.result-card-label{color:#fff;font-family:Caveat,Comfortaa,sans-serif;font-size:1.75rem;font-weight:700}.result-card-body{display:grid;justify-items:center;padding:var(--space-8) var(--space-6) var(--space-5);text-align:center}.result-poster{display:grid;width:88px;height:88px;margin-bottom:var(--space-4);place-items:center;overflow:hidden;border:3px solid var(--color-border);border-radius:50%;background:var(--color-surface-muted);box-shadow:var(--shadow-medium);font-size:2.5rem}.result-poster img{width:100%;height:100%;object-fit:cover}.result-card-title{max-width:100%;overflow-wrap:anywhere;color:var(--color-text);font-size:1.45rem;font-weight:800;line-height:1.3}.result-card-suggested{margin-top:var(--space-2);color:var(--color-text-muted);font-size:.84rem}.result-card-footer{display:grid;gap:var(--space-2);padding:0 var(--space-6) var(--space-6)}.confirm-dialog,.movie-details-dialog,.admin-modal-content{width:min(460px,100%);max-height:calc(100dvh - 40px);overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-large);background:var(--color-surface);box-shadow:var(--shadow-modal);animation:modalEnter .22s ease-out}.confirm-dialog{display:grid;justify-items:center;gap:var(--space-3);padding:var(--space-6);text-align:center}.confirm-dialog-icon{font-size:2.5rem}.confirm-dialog h2{font-size:1.2rem}.confirm-dialog p{color:var(--color-text-muted);font-size:.9rem}.confirm-dialog-actions{display:flex;width:100%;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.movie-details-dialog{display:flex;width:min(640px,calc(100vw - 32px));height:100dvh;max-height:100dvh;overflow:hidden;flex-direction:column;border-radius:var(--radius-large) 0 0 var(--radius-large);animation:moviePanelEnter .24s ease-out}.dialog-backdrop.movie-details-backdrop{padding:0;place-items:stretch end}.movie-details-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5);border-bottom:1px solid var(--color-border-soft);background:var(--color-surface)}.movie-details-header p{color:var(--color-primary);font-size:.72rem;font-weight:800;text-transform:uppercase}.movie-details-header h2{margin-top:4px;overflow-wrap:anywhere;font-size:1.25rem}.movie-details-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2);padding:var(--space-4) var(--space-5);background:var(--color-surface-muted)}.movie-details-meta>div{display:grid;gap:2px}.movie-details-meta span{color:var(--color-text-muted);font-size:.7rem}.movie-details-meta strong{overflow:hidden;font-size:.82rem;text-overflow:ellipsis}.movie-details-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:var(--color-border) transparent}.movie-details-ratings{display:grid;gap:var(--space-2);padding:var(--space-5);border-bottom:1px solid var(--color-border-soft)}.movie-details-ratings h3{margin-bottom:var(--space-1);font-size:.9rem}.movie-detail-rating{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:var(--space-2);min-height:44px;padding:5px var(--space-2);border-bottom:1px solid var(--color-border-soft)}.movie-detail-avatar{display:grid;width:32px;height:32px;place-items:center;border-radius:50%;background:var(--color-background);font-size:.75rem;font-weight:800}.movie-detail-rating strong{min-width:32px;color:var(--color-primary);text-align:center}.movie-detail-rating .rating-control{justify-items:end}.movie-detail-rating .rating-saving{position:static}.movie-details-admin-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);padding-top:var(--space-3)}.movie-details-admin-actions button{min-height:44px}.movie-details-reviews{min-width:0;scroll-margin-top:var(--space-3);background:var(--color-surface)}.admin-btn{position:fixed;bottom:20px;left:20px;z-index:910;display:none;width:50px;height:50px;padding:0;place-items:center;border:1px solid var(--color-primary-border);border-radius:50%;background:var(--theme-btn);box-shadow:var(--shadow-medium);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.admin-btn.visible{display:grid}.admin-btn.with-drawer{left:80px}.admin-btn:hover:not(:disabled){box-shadow:var(--shadow-modal);transform:translateY(-2px)}.admin-btn:active:not(:disabled){box-shadow:var(--shadow-small);transform:translateY(1px) scale(.96)}.admin-modal{display:none;z-index:1300}.admin-modal.active{display:grid}.admin-modal-content{position:relative;width:min(720px,100%);padding:var(--space-5)}.admin-modal-close{position:absolute;top:var(--space-3);right:var(--space-3)}.admin-modal-title{margin-bottom:var(--space-4);font-size:1.35rem;text-align:center}.admin-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-bottom:var(--space-4);padding:4px;border-radius:var(--radius-medium);background:var(--color-surface-muted)}.admin-tabs button{min-height:38px;border:1px solid transparent;border-radius:var(--radius-small);background:transparent;color:var(--color-text-muted);font-weight:700;cursor:pointer}.admin-tabs button.active{border-color:var(--color-border-soft);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-small)}.theme-selector{display:grid;gap:var(--space-2)}.theme-option{display:grid;grid-template-columns:44px minmax(0,1fr) 24px;align-items:center;gap:var(--space-3);min-height:62px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-soft);border-radius:var(--radius-medium);background:var(--color-surface);cursor:pointer}.theme-option:hover{background:var(--color-surface-hover)}.theme-option.active{border-color:var(--color-primary-border);background:var(--color-surface-muted)}.theme-option-icon{font-size:1.6rem}.theme-option-name{font-size:.9rem;font-weight:800}.theme-option-desc{color:var(--color-text-muted);font-size:.72rem}.theme-option-check{display:none;color:var(--color-success);font-weight:800}.theme-option.active .theme-option-check{display:block}.admin-section{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border-soft)}.admin-section-title{margin-bottom:var(--space-2);font-size:.9rem;font-weight:800}.admin-toggle{display:flex;align-items:center;gap:var(--space-3);min-height:48px;cursor:pointer}.admin-toggle+.admin-toggle{border-top:1px solid var(--color-border-soft)}.admin-toggle input{position:absolute;opacity:0}.admin-toggle-slider{position:relative;flex:0 0 44px;width:44px;height:24px;border-radius:var(--radius-pill);background:#b6ad94;transition:background .15s ease}.admin-toggle-slider:after{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;content:"";transition:transform .15s ease}.admin-toggle input:checked+.admin-toggle-slider{background:var(--color-success)}.admin-toggle input:checked+.admin-toggle-slider:after{transform:translate(20px)}.admin-toggle input:focus-visible+.admin-toggle-slider{outline:3px solid var(--color-focus);outline-offset:3px}.admin-help{margin:0 0 var(--space-3);color:var(--color-text-muted);font-size:.82rem;line-height:1.5}.admin-empty{padding:var(--space-5);color:var(--color-text-muted);text-align:center}.admin-users{display:grid;gap:var(--space-2)}.admin-user-row{display:flex;min-height:58px;padding:var(--space-2) var(--space-3);align-items:center;justify-content:space-between;gap:var(--space-3);border:1px solid var(--color-border-soft);border-radius:var(--radius-medium);background:var(--color-surface)}.admin-user-row>div{display:grid;min-width:0}.admin-user-row span{color:var(--color-text-muted);font-size:.72rem}.admin-user-row select{min-height:38px;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-small);background:#fff;color:var(--color-text)}.admin-audit{display:grid;gap:var(--space-3)}.admin-audit-heading{display:flex;align-items:start;justify-content:space-between;gap:var(--space-3)}.admin-audit-heading .admin-help{margin:0}.admin-audit-list{display:grid;gap:var(--space-2)}.admin-audit-entry{display:grid;gap:3px;padding:var(--space-3);border:1px solid var(--color-border-soft);border-left:3px solid var(--color-success);border-radius:var(--radius-medium);background:var(--color-surface)}.admin-audit-entry.is-failed{border-left-color:var(--color-danger)}.admin-audit-entry>div{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.admin-audit-entry time,.admin-audit-entry>span,.admin-audit-entry small{color:var(--color-text-muted);font-size:.7rem}.admin-audit-entry small{overflow-wrap:anywhere;line-height:1.4}.admin-load-more{justify-self:center}@keyframes resultEnter{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes moviePanelEnter{0%{opacity:0;transform:translate(32px)}to{opacity:1;transform:translate(0)}}@media(max-width:720px){.dialog-backdrop,.admin-modal{padding:var(--space-2)}.dialog-backdrop.movie-details-backdrop{padding:0}.movie-details-dialog{width:100%;border:0;border-radius:0}.admin-btn{bottom:82px;left:12px}.admin-btn.with-drawer{left:68px}}@media(max-width:430px){.result-card-body{padding:var(--space-6) var(--space-4) var(--space-4)}.result-card-footer{padding:0 var(--space-4) var(--space-4)}.movie-details-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.confirm-dialog-actions{display:grid;grid-template-columns:1fr 1fr}.admin-modal-content{padding:var(--space-4)}.admin-tabs button{font-size:.76rem}.admin-user-row{align-items:stretch;flex-direction:column}.admin-user-row select{width:100%}.admin-audit-entry>div{align-items:start;flex-direction:column;gap:2px}}.watched-scope-control{display:flex;min-height:44px;align-items:center;justify-content:flex-end;gap:var(--space-3);margin-bottom:var(--space-3);color:var(--color-text-muted);font-size:.8rem;font-weight:700}.watched-scope-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2)}.scope-filter-toggle{min-height:40px;padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-primary-active);box-shadow:var(--shadow-small);font-size:.75rem;font-weight:800;cursor:pointer}.scope-filter-toggle:hover{background:var(--color-surface-hover)}.scope-filter-toggle.active{border-color:var(--theme-btn-border);background:var(--theme-btn);color:#fff}.watched-toolbar{position:relative;margin-bottom:var(--space-3)}.search-bar{display:flex;align-items:center;min-height:var(--control-height-large);gap:var(--space-2);padding:0 var(--space-2) 0 var(--space-4);border:1px solid var(--color-border-soft);border-radius:var(--radius-medium);background:var(--color-surface);box-shadow:var(--shadow-small)}.search-bar:focus-within{border-color:var(--color-focus);box-shadow:0 0 0 3px #1b6fb126}.search-bar input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--color-text)}.search-bar input::-webkit-search-cancel-button{display:none}.search-icon{color:var(--color-text-muted);font-size:1.4rem}.search-clear{width:36px;height:36px;border-color:transparent;background:transparent}.search-shortcut{position:absolute;top:13px;right:52px;display:grid;width:24px;height:24px;place-items:center;border:1px solid var(--color-border-soft);border-radius:var(--radius-small);color:var(--color-text-muted);font-size:.72rem}.table-scroll-hint{display:none;margin:0 0 var(--space-2);color:var(--color-text-muted);font-size:.74rem}.watched-table-wrapper{position:relative;max-height:min(68vh,760px);overflow:auto;margin-bottom:var(--space-6);border:1px solid var(--color-border-soft);border-radius:var(--radius-large);background:var(--color-surface);box-shadow:var(--shadow-small);scrollbar-color:var(--color-border) transparent}.watched-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.watched-card-sort,.watched-mobile-list{display:none}.watched-action-col{width:72px}.watched-title-col{width:auto}.watched-user-col{width:88px}.watched-avg-col{width:108px}.watched-table th{position:sticky;top:0;z-index:4;height:52px;padding:0 var(--space-2);border-bottom:1px solid var(--color-primary-border);background:var(--color-primary);color:#fff;text-align:center}.watched-table th.watched-actions-sticky{left:0;z-index:7}.watched-table th.watched-title-sticky{left:0;z-index:6;text-align:left}.watched-table.has-actions th.watched-title-sticky{left:72px}.table-sort-button{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:40px;gap:4px;padding:0;border:0;background:transparent;color:inherit;font-size:.78rem;font-weight:800;cursor:pointer}.watched-table th.watched-title-sticky .table-sort-button{justify-content:flex-start}.table-sort-button:hover{text-decoration:underline;text-underline-offset:4px}.sort-icon{font-size:.9rem}.watched-table td{height:82px;padding:var(--space-2);border-bottom:1px solid var(--color-border-soft);background:var(--color-surface);color:var(--color-text);text-align:center}.watched-table tbody tr:last-child td{border-bottom:0}.watched-table tbody tr:hover td{background:var(--color-surface-hover)}.watched-table td.watched-actions-sticky{position:sticky;left:0;z-index:3}.watched-table td.watched-title-sticky{position:sticky;left:0;z-index:2;padding-right:var(--space-4);text-align:left;box-shadow:1px 0 0 var(--color-border-soft)}.watched-table.has-actions td.watched-title-sticky{left:72px}.row-actions{display:flex;justify-content:center;gap:2px;opacity:.22;transition:opacity .15s ease}.watched-table tr:hover .row-actions,.row-actions:focus-within{opacity:1}.row-action-button{display:grid;width:32px;height:36px;padding:0;place-items:center;border:1px solid transparent;border-radius:var(--radius-small);background:transparent;color:var(--color-text-muted);cursor:pointer}.row-action-button:hover{border-color:var(--color-border-soft);background:var(--color-surface);color:var(--color-text)}.row-action-button.danger:hover{color:var(--color-danger)}.movie-title-cell{display:grid;width:100%;min-width:0;padding:6px;border:0;border-radius:var(--radius-small);background:transparent;color:var(--color-text);text-align:left;cursor:pointer}.movie-title-stack{display:grid;min-width:0;gap:1px}.movie-title-cell:hover{background:#d9862f14}.movie-title-cell strong,.movie-title-cell span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.movie-title-cell strong{font-size:.86rem}.movie-title-cell span{margin-top:2px;color:var(--color-text-muted);font-size:.78rem}.movie-review-actions{display:flex;align-items:center;gap:var(--space-2);padding:0 6px}.movie-review-trigger,.movie-review-write{min-height:24px;padding:0;border:0;background:transparent;font-size:.78rem;font-weight:800;cursor:pointer}.movie-review-trigger{color:var(--color-primary-active)}.movie-review-write{color:var(--color-info)}.movie-review-trigger:hover,.movie-review-write:hover{text-decoration:underline;text-underline-offset:3px}.rating-control{position:relative;display:grid;justify-items:center;gap:2px}.rating-select{width:58px;min-height:42px;padding:0 7px;border:1px solid var(--color-border);border-radius:var(--radius-medium);background:#fff;color:var(--color-text);font-weight:700;text-align:center;cursor:pointer}.rating-saving{position:absolute;top:40px;color:var(--color-text-muted);font-size:.72rem}.rating-display{font-weight:700}.rating-empty{color:var(--color-text-muted)}.rating-avg{display:inline-grid;min-width:62px;min-height:44px;padding:4px 7px;place-items:center;border:1px solid currentColor;border-radius:var(--radius-medium);background:var(--color-surface-muted)}.rating-avg strong{font-size:.94rem}.rating-avg small{font-size:.72rem;font-weight:700;opacity:.76}.rating-avg.rating-bad{color:var(--color-danger)}.rating-avg.rating-mid{color:var(--color-warning)}.rating-avg.rating-good{color:var(--color-success)}.rating-avg.rating-cheese{color:#8a6410;background:#fff1ad}.watched-loading{display:grid;gap:var(--space-2);padding:var(--space-4)}.watched-loading .skeleton{height:58px}.watched-add-movie{display:grid;grid-template-columns:minmax(190px,.65fr) minmax(0,1.35fr);align-items:end;gap:var(--space-5);padding:var(--space-5)}.watched-add-kicker{color:var(--color-primary);font-size:.7rem;font-weight:800;text-transform:uppercase}.watched-add-movie h2{margin-top:3px;font-size:1rem}.add-movie-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2)}.add-movie-input,.edit-movie-title,.edit-movie-date{min-width:0;min-height:var(--control-height);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-medium);background:#fff;color:var(--color-text)}.add-movie-btn{box-shadow:none}.edit-movie-cell{display:grid;gap:var(--space-2);padding:var(--space-2) 0}.edit-movie-title{width:100%}.edit-movie-date-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:.72rem}.edit-movie-actions{display:flex;gap:var(--space-2)}.edit-movie-actions .button-primary,.edit-movie-actions .button-ghost{min-height:36px;padding:0 var(--space-3);box-shadow:none;font-size:.72rem}.watched-history-permission{margin:var(--space-4) 0 0;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-soft);border-radius:var(--radius-medium);background:var(--color-surface-muted);color:var(--color-text-muted);font-size:.8rem;line-height:1.45;text-align:center}@media(max-width:720px),(max-width:960px)and (max-height:560px){.table-scroll-hint{display:block}.watched-table-wrapper{max-height:64vh;border-radius:var(--radius-medium)}.row-actions{opacity:.8}.watched-add-movie{grid-template-columns:1fr;align-items:stretch}}@media(max-width:600px),(max-width:960px)and (max-height:560px){.watched-scope-control{align-items:stretch;justify-content:stretch;flex-direction:column;gap:var(--space-2)}.watched-scope-control>span{text-align:center}.watched-scope-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.scope-filter-toggle{width:100%;min-height:44px}.table-scroll-hint{display:none}.watched-table-wrapper{max-height:none;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}.watched-table-wrapper>.empty-state,.watched-table-wrapper>.watched-loading{border:1px solid var(--color-border-soft);border-radius:var(--radius-large);background:var(--color-surface);box-shadow:var(--shadow-small)}.watched-card-sort{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--space-2);margin-bottom:var(--space-3)}.watched-card-sort label{display:grid;gap:5px;color:var(--color-text-muted);font-size:.78rem;font-weight:700}.watched-card-sort select{width:100%;min-height:44px;padding:0 34px 0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface);color:var(--color-text);font-weight:700}.watched-card-sort .button-ghost{min-height:44px;padding:0 var(--space-3);white-space:nowrap}.watched-mobile-list{display:grid;gap:var(--space-2)}.watched-movie-card{display:grid;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border-soft);border-radius:var(--radius-large);background:var(--color-surface);box-shadow:var(--shadow-small)}.watched-card-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-2)}.watched-card-title{display:grid;min-width:0;min-height:48px;align-content:center;gap:3px;padding:4px;border:0;border-radius:var(--radius-small);background:transparent;color:var(--color-text);text-align:left;cursor:pointer}.watched-card-title:hover{background:var(--color-surface-hover)}.watched-card-title strong{overflow-wrap:anywhere;font-size:1rem;line-height:1.35}.watched-card-title span{color:var(--color-info);font-size:.76rem;font-weight:700}.watched-card-average{display:grid;justify-items:end;gap:2px}.watched-card-average>span{color:var(--color-text-muted);font-size:.72rem;font-weight:700}.watched-card-average .rating-avg{min-width:56px;min-height:40px;padding:2px 6px}.watched-card-average .rating-avg small{display:none}.watched-card-edit-label{color:var(--color-primary-active);font-size:.78rem;font-weight:800;text-transform:uppercase}.watched-movie-card .edit-movie-cell{padding:0}.watched-movie-card .edit-movie-date-row{grid-template-columns:1fr;font-size:.78rem}.watched-movie-card .edit-movie-actions{display:grid;grid-template-columns:1fr 1fr}.watched-movie-card .edit-movie-actions .button-primary,.watched-movie-card .edit-movie-actions .button-ghost{min-height:44px}}@media(max-width:430px){.watched-scope-actions{grid-template-columns:1fr}.search-shortcut{display:none}.add-movie-form{grid-template-columns:1fr}.add-movie-btn{width:100%}}@media(max-width:350px){.watched-card-sort{grid-template-columns:1fr}.watched-card-sort .button-ghost{width:100%}}.stats-panel{display:grid;grid-template-columns:.8fr 1fr 1fr 1.45fr;gap:var(--space-3);margin-bottom:var(--space-5)}.stat-card{display:flex;min-width:0;min-height:132px;padding:var(--space-4);align-items:flex-start;justify-content:flex-start;flex-direction:column;border:1px solid var(--color-border-soft);border-radius:var(--radius-medium);background:var(--color-surface);box-shadow:var(--shadow-small);text-align:left}.stat-card.best{box-shadow:inset 0 3px 0 var(--color-success),var(--shadow-small)}.stat-card.lowest{box-shadow:inset 0 3px 0 var(--color-warning),var(--shadow-small)}.stats-match-grid{display:grid;grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.stat-card.closest{box-shadow:inset 0 3px 0 var(--color-success),var(--shadow-small)}.stat-card.furthest{box-shadow:inset 0 3px 0 var(--color-danger),var(--shadow-small)}.stat-card-value{max-width:100%;margin-top:var(--space-2);overflow:hidden;color:var(--color-text);font-size:1.25rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.stat-card-label{width:100%;color:var(--color-text-muted);font-size:.8rem;font-weight:700}.stat-card-titles{display:grid;width:100%;gap:3px;overflow:visible;font-size:.9rem;white-space:normal}.stat-card-title-item{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-card-more{color:var(--color-text-muted);font-size:.78rem;font-weight:700}.stat-card-sub{margin-top:var(--space-1);color:var(--color-text-muted);font-size:.78rem;line-height:1.4}.stat-match-users{display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:var(--space-2);overflow:visible;white-space:normal}.stat-match-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-match-name:last-child{text-align:right}.stat-match-symbol{color:var(--color-primary);font-size:.9rem}.stat-match-empty{white-space:normal}.stat-personal-match-name{width:100%}.stats-users{display:grid;width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);margin-top:var(--space-3)}.stats-panel.core-scope .stats-users{grid-template-columns:repeat(4,minmax(0,1fr))}.stats-panel.personal-scope .stats-users{grid-template-columns:1fr}.stats-user-item{display:grid;min-width:0;justify-items:center;gap:2px}.stats-user-name{max-width:100%;overflow:hidden;color:var(--color-text-muted);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.stats-user-avg{color:var(--color-primary);font-size:1rem;font-weight:800}.stats-loading .skeleton{min-height:132px}.stats-error{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-5);padding:var(--space-3) var(--space-4);color:var(--color-danger);font-size:.82rem}@media(max-width:900px){.stats-panel{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.stats-panel{gap:var(--space-2)}.stats-match-grid{grid-template-columns:1fr;gap:var(--space-2)}.stat-card{min-height:118px;padding:var(--space-3)}.stat-card.averages{grid-column:1 / -1;min-height:112px}.stats-panel.core-scope .stats-users{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card-value{font-size:1rem}}.connection-status{position:fixed;right:20px;bottom:20px;z-index:950}.connection-status-main{display:inline-flex;align-items:center;min-height:var(--control-height);gap:var(--space-2);padding:0 var(--space-3);border:1px solid var(--color-border-soft);border-radius:var(--radius-pill);background:#fffdf3f0;color:var(--color-text);box-shadow:var(--shadow-medium);font-size:.76rem;font-weight:700;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.connection-dot{width:9px;height:9px;border-radius:50%;background:var(--color-danger)}.state-online .connection-dot{background:var(--color-success)}.state-connecting .connection-dot,.state-reconnecting .connection-dot{background:var(--color-warning);animation:connectionPulse 1s ease-in-out infinite}.connection-arrow{margin-left:2px;color:var(--color-text-muted);font-size:.7rem}.connection-popover{position:absolute;right:0;bottom:calc(100% + var(--space-2));width:min(330px,calc(100vw - 24px));padding:var(--space-4);border:1px solid var(--color-border-soft);border-radius:var(--radius-large);background:var(--color-surface);box-shadow:var(--shadow-modal)}.connection-popover-header{display:grid;gap:2px;padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border-soft)}.connection-popover-header strong{font-size:.9rem}.connection-popover-header span,.connection-meta span{color:var(--color-text-muted);font-size:.7rem}.connection-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) 0}.connection-meta strong{font-size:.72rem}.connection-users-list{display:grid;gap:3px}.connection-user-item{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:var(--space-2);min-height:40px;padding:4px;border-radius:var(--radius-small)}.connection-user-item:hover{background:var(--color-surface-hover)}.connection-avatar{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;background:var(--color-background);font-size:.7rem;font-weight:800}.connection-user-item>span:nth-child(2){overflow:hidden;font-size:.78rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.connection-user-online{color:var(--color-success);font-size:.75rem}.connection-empty{padding:var(--space-4) 0;color:var(--color-text-muted);font-size:.76rem;text-align:center}.connection-retry{width:100%;margin-top:var(--space-3)}@keyframes connectionPulse{0%,to{opacity:.45}50%{opacity:1}}@media(max-width:720px),(max-width:960px)and (max-height:560px){.app-container{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.connection-status{position:absolute;top:max(14px,env(safe-area-inset-top));right:auto;bottom:auto;left:max(12px,env(safe-area-inset-left));z-index:90}.connection-status-main{width:44px;min-width:44px;min-height:44px;justify-content:center;padding:0;border-color:var(--color-border)}.connection-status-main>span:nth-child(2),.connection-status-main .connection-arrow{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.connection-dot{width:12px;height:12px;border:2px solid var(--color-surface);box-shadow:0 0 0 2px var(--color-danger)}.state-online .connection-dot{box-shadow:0 0 0 2px var(--color-success)}.state-connecting .connection-dot,.state-reconnecting .connection-dot{box-shadow:0 0 0 2px var(--color-warning)}.connection-popover{top:calc(100% + var(--space-2));right:auto;bottom:auto;left:0;max-height:calc(100dvh - 160px);overflow-y:auto}}@supports selector(body:has(*)){body:has(.dialog-backdrop) .connection-status,body:has(.wheel-modal-overlay) .connection-status,body:has(.admin-modal.active) .connection-status,body:has(.nav-dropdown) .connection-status{visibility:hidden;pointer-events:none}}.games-container{max-width:800px;margin:0 auto;padding-top:24px}.games-title{font-family:Caveat,cursive;font-size:2.5rem;color:#fff;text-align:center;margin-bottom:30px;text-shadow:2px 2px 4px rgba(0,0,0,.5)}.game-card{background:#fffffff2;border-radius:20px;padding:25px;display:flex;align-items:center;gap:20px;box-shadow:0 5px 20px #0000001a;border:3px solid var(--cheese-dark);animation:riseUp .6s cubic-bezier(.22,1,.36,1);-webkit-backface-visibility:hidden}.game-card-icon{font-size:3rem;width:80px;height:80px;background:var(--theme-btn);border-radius:15px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.game-card-info{flex:1}.game-card-info h3{font-size:1.3rem;color:var(--text);margin-bottom:5px}.game-card-info p{color:var(--text-light);font-size:.95rem}.game-mode-select{display:flex;gap:10px;margin-top:12px}.game-mode-option{cursor:pointer}.game-mode-option input{display:none}.mode-btn{display:inline-block;padding:8px 14px;background:#f0f0f0;border:2px solid #ddd;border-radius:8px;font-size:.85rem;font-family:Comfortaa,cursive;transition:border-color .2s;cursor:pointer}.game-mode-option input:checked+.mode-btn{background:var(--theme-btn);color:#fff;border-color:var(--theme-btn-border)}.mode-btn:hover{border-color:var(--theme-btn-border)}.game-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:#1a472a;z-index:2000;display:flex;flex-direction:column}.game-header{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;background:#000000b3}.game-stats{display:flex;gap:30px;align-items:center}.stat-item{display:flex;align-items:center;gap:8px;color:#fff;font-size:1rem}.hp-bar{width:150px;height:18px;background:#333;border-radius:9px;overflow:hidden}.hp-fill{height:100%;width:100%;background:linear-gradient(90deg,#e74c3c,#c0392b);transition:width .2s}.game-close-btn{background:#fff3;border:none;color:#fff;font-size:1.5rem;width:40px;height:40px;border-radius:50%;cursor:pointer}.game-close-btn:hover{background:#ff000080}.game-canvas-2d,.game-canvas-3d{flex:1;width:100%;cursor:crosshair}.pointer-lock-msg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000c;color:#fff;padding:20px 40px;border-radius:10px;font-size:1.2rem;z-index:100;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.game-controls-info{display:flex;justify-content:center;gap:25px;padding:8px;background:#000000b3;color:#fffc;font-size:.85rem}.game-over-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000e6;z-index:2001;display:flex;align-items:center;justify-content:center}.game-over-content{text-align:center;color:#fff}.game-over-icon{font-size:5rem;margin-bottom:20px}.game-over-title{font-size:3rem;margin-bottom:10px}.game-over-stats{font-size:1.1rem;color:#ffffffb3;margin-bottom:25px}.game-over-buttons{display:flex;gap:15px;justify-content:center}.game-btn{background:var(--theme-btn);border:3px solid var(--theme-btn-border);border-radius:15px;padding:12px 25px;font-family:Comfortaa,cursive;font-size:1rem;font-weight:700;color:#fff;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.game-btn:hover{background:var(--theme-btn-hover)}@media(max-width:768px){.game-card{flex-direction:column;text-align:center;padding:15px}.game-card-icon{width:60px;height:60px;font-size:2rem}.hp-bar{width:100px}.game-controls-info{flex-wrap:wrap;gap:10px;font-size:.75rem}}.sigame-page{width:min(1080px,100%);margin:0 auto;padding-bottom:64px}.sigame-hero{display:flex;min-height:108px;margin-bottom:var(--space-4);padding:22px 26px;align-items:center;justify-content:space-between;gap:var(--space-5);border:1px solid rgba(117,74,14,.16);border-radius:22px;background:linear-gradient(135deg,#fff4bc,#f4c951);box-shadow:0 12px 34px #6641071c;color:#3c280a}.sigame-hero h1{margin:0 0 5px;color:#352309;font-size:clamp(1.65rem,4vw,2.3rem);line-height:1.08;letter-spacing:-.035em}.sigame-hero p{margin:0;color:#6c4a12;font-size:.92rem}.sigame-add-button{display:inline-flex;min-height:44px;padding:0 18px;flex:0 0 auto;align-items:center;justify-content:center;gap:9px;border:0;border-radius:var(--radius-pill);background:#382507;color:#fff8df;font:inherit;font-size:.88rem;font-weight:800;cursor:pointer;transition:background .15s ease,transform .15s ease}.sigame-add-button span{font-size:1.2rem}.sigame-add-button:hover{background:#563a0e;transform:translateY(-1px)}.sigame-controls{margin-bottom:var(--space-4);padding:var(--space-3);border:1px solid var(--color-border-soft);border-radius:18px;background:#fffdf3db;box-shadow:var(--shadow-small);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.sigame-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}.sigame-tabs button,.sigame-tags-filter button{border:1px solid transparent;background:transparent;color:var(--color-text-muted);font:inherit;cursor:pointer}.sigame-tabs button{display:inline-flex;min-height:40px;padding:0 15px;align-items:center;gap:8px;border-radius:var(--radius-pill);font-size:.86rem;font-weight:800}.sigame-tabs button:hover{background:var(--color-surface-hover);color:var(--color-text)}.sigame-tabs button.active{border-color:var(--color-primary-border);background:var(--theme-btn);color:#fff}.sigame-tabs button span{display:grid;min-width:23px;height:23px;padding:0 6px;place-items:center;border-radius:var(--radius-pill);background:#ffffff38;font-size:.7rem}.sigame-search-row{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:var(--space-3)}.sigame-search{display:flex;min-height:44px;padding:0 12px;align-items:center;gap:8px;border:1px solid var(--color-border);border-radius:12px;background:#fff;color:var(--color-text-muted);transition:border-color .15s ease,box-shadow .15s ease}.sigame-search:focus-within{border-color:var(--color-primary-border);box-shadow:0 0 0 3px #e0a92326}.sigame-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--color-text);font:inherit}.sigame-search button{width:29px;height:29px;border:0;border-radius:50%;background:var(--color-surface-muted);color:var(--color-text-muted);cursor:pointer}.sigame-sort select,.sigame-rating-control select{width:100%;min-height:44px;padding:0 34px 0 12px;border:1px solid var(--color-border);border-radius:12px;outline:0;background:#fff;color:var(--color-text);font:inherit;font-size:.82rem}.sigame-sort select:focus,.sigame-rating-control select:focus{border-color:var(--color-primary-border);box-shadow:0 0 0 3px #e0a92326}.sigame-tags-filter{display:flex;margin-top:var(--space-3);padding-bottom:1px;gap:7px;overflow-x:auto;scrollbar-width:thin}.sigame-tags-filter button{flex:0 0 auto;min-height:32px;padding:0 10px;border-color:var(--color-border-soft);border-radius:var(--radius-pill);background:var(--color-surface);font-size:.76rem;font-weight:700}.sigame-tags-filter button:hover,.sigame-tags-filter button.active{border-color:#c8901d;background:#fff1b9;color:#60420d}.sigame-tags-filter button span{opacity:.65}.sigame-grid,.sigame-loading{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.sigame-grid{animation:sigame-rise .24s ease-out}.sigame-card{position:relative;display:flex;min-width:0;min-height:280px;padding:20px;flex-direction:column;border:1px solid var(--color-border-soft);border-radius:20px;background:var(--color-surface);box-shadow:var(--shadow-small);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.sigame-card:before{position:absolute;inset:0 auto 0 0;width:4px;border-radius:20px 0 0 20px;background:#e9ba3f;content:""}.sigame-card.played:before{background:#63a66f}.sigame-card:hover{border-color:var(--color-border);box-shadow:0 12px 28px #46300a17;transform:translateY(-1px)}.sigame-card-topline{display:flex;min-height:30px;margin-bottom:var(--space-2);align-items:flex-start;justify-content:space-between;gap:var(--space-2)}.sigame-card-tags{display:flex;min-width:0;flex-wrap:wrap;gap:5px}.sigame-card-tags button{min-height:24px;padding:0 8px;border:0;border-radius:var(--radius-pill);background:#fff0bd;color:#745015;font:inherit;font-size:.68rem;font-weight:700;cursor:pointer}.sigame-card.played .sigame-card-tags button{background:#edf5e9;color:#466b42}.sigame-more{position:relative;flex:0 0 auto}.sigame-more-trigger{min-width:34px;height:30px;padding:0 8px 5px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--color-text-muted);font-size:.95rem;line-height:1;cursor:pointer}.sigame-more-trigger:hover,.sigame-more-trigger[aria-expanded=true]{border-color:var(--color-border-soft);background:var(--color-surface-muted)}.sigame-more-menu{position:absolute;top:calc(100% + 5px);right:0;z-index:20;display:grid;width:max-content;min-width:210px;padding:6px;border:1px solid var(--color-border-soft);border-radius:12px;background:var(--color-surface);box-shadow:var(--shadow-modal)}.sigame-more-menu button{min-height:38px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--color-text);font:inherit;font-size:.78rem;text-align:left;cursor:pointer}.sigame-more-menu button:hover{background:var(--color-surface-hover)}.sigame-more-menu button.danger{color:var(--color-danger)}.sigame-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.sigame-card-heading h2{overflow-wrap:anywhere;margin:0;color:var(--color-text);font-size:clamp(1.08rem,2.3vw,1.32rem);line-height:1.28;letter-spacing:-.02em}.sigame-rating-summary{display:grid;flex:0 0 auto;text-align:right}.sigame-rating-summary strong{color:#3f7c49;font-size:1.18rem;line-height:1}.sigame-rating-summary span{margin-top:4px;color:var(--color-text-muted);font-size:.65rem}.sigame-file-info{display:flex;min-width:0;margin:var(--space-4) 0;padding:10px 12px;align-items:center;gap:10px;border:1px solid var(--color-border-soft);border-radius:12px;background:var(--color-surface-muted)}.sigame-file-info>span{flex:0 0 auto;font-size:1.15rem}.sigame-file-info>div{display:grid;min-width:0;gap:2px}.sigame-file-info strong{overflow:hidden;color:var(--color-text);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.sigame-file-info small{color:var(--color-text-muted);font-size:.68rem}.sigame-card-meta{display:flex;margin:auto 0 var(--space-3);flex-wrap:wrap;gap:5px 12px;color:var(--color-text-muted);font-size:.69rem}.sigame-card-meta span:not(:last-child):after{margin-left:12px;content:"·"}.sigame-card-footer{display:grid;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border-soft)}.sigame-primary-actions{display:grid;grid-template-columns:minmax(110px,auto) minmax(0,1fr);gap:var(--space-2)}.sigame-primary-actions:has(>:only-child){grid-template-columns:minmax(110px,170px)}.sigame-download-button,.sigame-status-button{display:inline-flex;min-height:42px;padding:0 14px;align-items:center;justify-content:center;border-radius:11px;font:inherit;font-size:.78rem;font-weight:800;text-decoration:none;cursor:pointer}.sigame-download-button{border:1px solid var(--color-border);background:#fff;color:var(--color-text)}.sigame-download-button:hover:not(:disabled){background:var(--color-surface-hover)}.sigame-status-button{border:1px solid #c6911d;background:#f9d66a;color:#503509}.sigame-status-button:hover:not(:disabled){background:#f3c84b}.sigame-card button:disabled{cursor:wait;opacity:.55}.sigame-played-actions{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3)}.sigame-rating-control{display:grid;min-width:150px;gap:5px;color:var(--color-text-muted);font-size:.69rem;font-weight:700}.sigame-rating-control select{min-height:40px}.sigame-restore-button{min-height:40px;padding:0;border:0;background:transparent;color:var(--color-text-muted);font:inherit;font-size:.72rem;font-weight:800;cursor:pointer}.sigame-restore-button:hover{color:var(--color-text);text-decoration:underline}.sigame-card-skeleton{min-height:280px;border:1px solid var(--color-border-soft);border-radius:20px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent) 0 0 / 220% 100%,var(--color-surface-muted);animation:sigame-shimmer 1.4s infinite linear}.sigame-empty{display:grid;min-height:280px;padding:var(--space-7) var(--space-4);place-items:center;align-content:center;border:1px dashed var(--color-border);border-radius:20px;background:#fffdf394;color:var(--color-text-muted);text-align:center}.sigame-empty-compact{min-height:210px}.sigame-empty>span{margin-bottom:var(--space-2);font-size:2.1rem}.sigame-empty h2{margin:0 0 var(--space-2);color:var(--color-text);font-size:1.15rem}.sigame-empty p{max-width:480px;margin:0 0 var(--space-4);line-height:1.5}.sigame-guest-note{margin:var(--space-4) auto 0;color:var(--color-text-muted);font-size:.76rem;text-align:center}.sigame-modal-backdrop{position:fixed;inset:0;z-index:1800;display:grid;padding:20px;place-items:center;overflow-y:auto;background:#2a1e0a94;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.sigame-pack-form{width:min(520px,100%);padding:22px;border:1px solid var(--color-border-soft);border-radius:20px;background:var(--color-surface);box-shadow:var(--shadow-modal)}.sigame-form-heading{display:flex;margin-bottom:var(--space-4);align-items:center;justify-content:space-between;gap:var(--space-3)}.sigame-form-heading h2{margin:0;color:var(--color-text);font-size:1.3rem}.sigame-form-close{display:grid;width:36px;height:36px;padding:0 0 2px;place-items:center;border:1px solid var(--color-border-soft);border-radius:50%;background:var(--color-surface-muted);color:var(--color-text-muted);font-size:1.35rem;cursor:pointer}.sigame-file-field,.sigame-field{display:grid;gap:7px;color:var(--color-text);font-size:.8rem;font-weight:800}.sigame-file-field,.sigame-field+.sigame-field{margin-top:var(--space-3)}.sigame-field-label{color:var(--color-text)}.sigame-field>span small{color:var(--color-text-muted);font-weight:500}.sigame-field input{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--color-border);border-radius:11px;outline:0;background:#fff;color:var(--color-text);font:inherit;font-weight:500}.sigame-field input:focus{border-color:var(--color-primary-border);box-shadow:0 0 0 3px #e0a92326}.sigame-dropzone{display:grid;min-height:126px;padding:18px;place-items:center;align-content:center;gap:4px;border:2px dashed var(--color-border);border-radius:14px;background:var(--color-surface-muted);color:var(--color-text-muted);text-align:center;cursor:pointer;transition:border-color .15s ease,background .15s ease}.sigame-dropzone:hover,.sigame-dropzone.dragging{border-color:#c8901d;background:#fff6d5}.sigame-dropzone.invalid{border-color:var(--color-danger)}.sigame-dropzone input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%)}.sigame-dropzone-icon{color:#9b6b13;font-size:1.5rem;line-height:1}.sigame-dropzone strong{color:var(--color-text);font-size:.86rem}.sigame-dropzone>span:last-child{font-size:.74rem}.sigame-selected-file{display:flex;min-width:0;min-height:70px;padding:12px;align-items:center;gap:11px;border:1px solid #b9d9b9;border-radius:13px;background:#f0f8ee}.sigame-selected-file>span{font-size:1.3rem}.sigame-selected-file>div{display:grid;min-width:0;flex:1;gap:3px}.sigame-selected-file strong{overflow:hidden;color:var(--color-text);font-size:.8rem;text-overflow:ellipsis;white-space:nowrap}.sigame-selected-file small{color:var(--color-text-muted);font-size:.68rem}.sigame-selected-file button{width:32px;height:32px;border:0;border-radius:50%;background:#fffc;color:var(--color-text-muted);font-size:1.15rem;cursor:pointer}.sigame-file-error{color:var(--color-danger);font-size:.73rem;font-weight:700}.sigame-form-actions{display:flex;margin-top:var(--space-5);justify-content:flex-end;gap:var(--space-2)}@keyframes sigame-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes sigame-shimmer{to{background-position:-220% 0,0 0}}@media(max-width:760px){.sigame-grid,.sigame-loading{grid-template-columns:minmax(0,1fr)}}@media(max-width:560px){.sigame-page{padding-bottom:88px}.sigame-hero{min-height:0;padding:18px;align-items:stretch;flex-direction:column;gap:var(--space-3)}.sigame-add-button{width:100%}.sigame-controls{padding:10px}.sigame-tabs button{min-width:0;padding:0 10px;flex:1;justify-content:center;font-size:.78rem}.sigame-search-row{grid-template-columns:minmax(0,1fr);gap:var(--space-2)}.sigame-card{min-height:0;padding:17px}.sigame-card-meta span:after{display:none}.sigame-primary-actions{grid-template-columns:1fr}.sigame-primary-actions:has(>:only-child){grid-template-columns:1fr}.sigame-played-actions{align-items:stretch;flex-direction:column}.sigame-restore-button{min-height:34px;text-align:left}.sigame-modal-backdrop{padding:12px;align-items:start}.sigame-pack-form{margin-top:max(8px,env(safe-area-inset-top));padding:18px}.sigame-form-actions{align-items:stretch;flex-direction:column-reverse}}@media(prefers-reduced-motion:reduce){.sigame-grid,.sigame-card-skeleton{animation:none}.sigame-card,.sigame-add-button,.sigame-dropzone{transition:none}}.reviews-page{width:100%;min-width:0;max-width:800px;margin:0 auto;padding:20px 16px 40px}.reviews-title{font-size:1.6rem;color:var(--text);margin-bottom:20px;text-align:center}.reviews-page-header{display:grid;gap:var(--space-1);margin-bottom:var(--space-5);text-align:center}.reviews-page-header p{color:var(--color-primary);font-size:.78rem;font-weight:800;text-transform:uppercase}.reviews-page-header .reviews-title{margin:0}.reviews-page-header>span{color:var(--color-text-muted);font-size:.88rem}.reviews-journal{width:min(100%,840px);min-width:0;margin:0 auto}.reviews-journal-panel,.movie-reviews-section{width:100%;min-width:0;max-width:100%}.reviews-journal-header{display:grid;justify-items:center;gap:var(--space-1);margin-bottom:var(--space-4);text-align:center}.reviews-journal-header p{color:var(--color-primary);font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.reviews-journal-header h1{font-size:clamp(1.65rem,4vw,2.15rem);line-height:1.2}.reviews-journal-header span{max-width:580px;color:var(--color-text-muted);font-size:.9rem}.reviews-journal-tabs{display:grid;width:min(100%,430px);grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-1);padding:var(--space-1);margin:0 auto var(--space-3);border:1px solid var(--color-border-soft);border-radius:var(--radius-large);background:#fffdf3e0;box-shadow:var(--shadow-small)}.reviews-journal-tab{display:inline-flex;min-height:var(--control-height);align-items:center;justify-content:center;gap:var(--space-2);padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-medium);background:transparent;color:var(--color-text-muted);font-weight:800;cursor:pointer}.reviews-journal-tab:hover{border-color:var(--color-border-soft);background:var(--color-surface-hover);color:var(--color-text)}.reviews-journal-tab.active{border-color:var(--color-primary-border);background:var(--theme-btn);color:#fff;box-shadow:inset 0 -3px #532b033d}.reviews-journal-panel:focus-visible{border-radius:var(--radius-large);outline:3px solid var(--color-focus);outline-offset:3px}.reviews-journal-loading{display:grid;min-height:220px;place-items:center;color:var(--color-text-muted);font-size:.9rem;font-weight:700}.review-form{width:100%;min-width:0;max-width:100%;background:#ffffffb3;border:2px solid var(--cheese-dark);border-radius:12px;padding:16px;margin-bottom:24px;display:flex;flex-direction:column;gap:10px}.review-form-input{display:block;width:100%;min-width:0;max-width:100%;padding:8px 12px;border:1.5px solid var(--cheese-dark);border-radius:8px;font-size:1rem;background:var(--cheese-cream);color:var(--text);outline:none}.review-form-input:focus{border-color:var(--crust)}.review-form-field{display:grid;min-width:0;gap:var(--space-1)}.review-form-field>span,.review-field-label{color:var(--color-text-muted);font-size:.8rem;font-weight:700}.review-field-hint{color:var(--color-text-muted);font-size:.78rem;line-height:1.4}.review-field-hint.is-error{color:var(--color-warning)}.review-field-hint button{margin-left:var(--space-1);padding:0;border:0;background:transparent;color:var(--color-info);font-size:inherit;font-weight:800;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.review-link-choice{display:inline-flex;width:100%;min-width:0;max-width:100%;align-items:flex-start;gap:var(--space-2);color:var(--color-success);font-size:.8rem;font-weight:700;cursor:pointer}.review-link-choice input{flex:0 0 18px;width:18px;height:18px;accent-color:var(--color-success)}.review-link-choice span{min-width:0;overflow-wrap:anywhere}.review-match-choice{padding:var(--space-2);border:1px solid var(--color-border-soft);border-radius:var(--radius-medium);background:var(--color-surface-muted)}.review-form-textarea{display:block;width:100%;min-width:0;max-width:100%;padding:8px 12px;border:1.5px solid var(--cheese-dark);border-radius:8px;font-size:.95rem;background:var(--cheese-cream);color:var(--text);resize:vertical;min-height:90px;outline:none;font-family:inherit}.review-form-textarea:focus{border-color:var(--crust)}.review-form-footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.recommend-toggle-group{display:flex;gap:6px;flex-wrap:wrap}.review-recommend-toggle{padding:6px 14px;border-radius:20px;border:2px solid #9c895c;font-size:.9rem;font-weight:600;cursor:pointer;background:#f0f0f099;color:#665b45;transition:opacity .15s,background .15s,color .15s,border-color .15s}.review-recommend-toggle.yes.active{background:#d4edda;color:#155724;border-color:#c3e6cb}.review-recommend-toggle.meh.active{background:#fff3cd;color:#856404;border-color:#ffeeba}.review-recommend-toggle.no.active{background:#f8d7da;color:#721c24;border-color:#f5c6cb}.review-recommend-toggle:hover{opacity:.8}.review-submit-btn{margin-left:auto;padding:8px 20px;background:var(--theme-btn);color:var(--white);border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .15s}.review-submit-btn:disabled{opacity:.5;cursor:not-allowed}.review-submit-btn:hover:not(:disabled){opacity:.85}.review-form-movie-lock{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:var(--space-2);min-height:54px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-soft);border-radius:var(--radius-medium);background:var(--color-surface-muted)}.review-form-movie-lock>span{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:var(--color-background)}.review-form-movie-lock>div{display:grid;min-width:0}.review-form-movie-lock small{color:var(--color-text-muted);font-size:.76rem}.review-form-movie-lock strong{overflow:hidden;font-size:.84rem;text-overflow:ellipsis;white-space:nowrap}.review-form-movie-lock.compact{grid-template-columns:28px minmax(0,1fr);min-height:44px}.review-form-movie-lock.compact>span{width:28px;height:28px}.review-extra-fields{border:0}.review-extra-fields summary{width:max-content;color:var(--color-info);font-size:.8rem;font-weight:700;cursor:pointer}.review-extra-fields[open] summary{margin-bottom:var(--space-2)}.review-form-status{color:var(--color-warning);font-size:.8rem}.reviews-empty{text-align:center;color:var(--text-light);font-size:1rem;margin:32px 0}.reviews-list{display:flex;flex-direction:column;gap:14px}.review-card{background:#ffffffbf;border:1.5px solid var(--cheese-dark);border-radius:12px;padding:14px 16px}.review-card-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}.review-card-actions{display:flex;align-items:center;gap:var(--space-1);margin-left:auto}.review-card-actions .review-delete-btn{margin-left:0}.review-card-title{font-size:1.05rem;font-weight:700;color:var(--text);flex:1;min-width:0}.review-badge{padding:2px 10px;border-radius:12px;font-size:.8rem;font-weight:600;white-space:nowrap}.review-badge.yes{background:#d4edda;color:#155724}.review-badge.meh{background:#fff3cd;color:#856404}.review-badge.no{background:#f8d7da;color:#721c24}.review-delete-btn{background:none;border:none;cursor:pointer;font-size:1rem;padding:2px 4px;border-radius:4px;opacity:.5;transition:opacity .15s;margin-left:auto}.review-delete-btn:hover{opacity:1}.review-edit-btn{background:none;border:none;cursor:pointer;font-size:1rem;padding:2px 4px;border-radius:4px;opacity:.5;transition:opacity .15s}.review-edit-btn:hover{opacity:1}.review-edit-form{display:flex;flex-direction:column;gap:10px}.review-edit-cancel{padding:8px 14px;background:transparent;border:1.5px solid var(--cheese-dark);border-radius:8px;color:var(--text);font-size:.9rem;cursor:pointer;transition:opacity .15s}.review-edit-cancel:hover{opacity:.7}.review-card-meta{display:flex;gap:12px;font-size:.86rem;color:var(--text-light);margin-bottom:8px}.review-author{font-weight:600}.review-content{font-size:.95rem;color:var(--text);line-height:1.55;white-space:pre-wrap;word-break:break-word}.wine-meta-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.review-choice-fieldset{min-width:0;padding:0;border:0}.review-choice-fieldset>legend{margin-bottom:var(--space-1);color:var(--color-text-muted);font-size:.8rem;font-weight:700}.wine-type-toggle{display:flex;gap:6px;flex-wrap:wrap}.wine-type-btn{padding:5px 12px;border-radius:16px;border:1.5px solid var(--cheese-dark);background:transparent;color:var(--text);font-size:.85rem;cursor:pointer;transition:background .15s,color .15s}.wine-type-btn.active{background:var(--cheese-dark);color:var(--white)}.wine-fields-row{display:flex;gap:8px;flex-wrap:wrap}.wine-field{flex:1;min-width:130px}.wine-field-short{flex:0 1 110px;min-width:90px}.wine-type-badge{padding:2px 10px;border-radius:12px;font-size:.8rem;font-weight:600;background:#d4a01726;color:var(--text);white-space:nowrap}.wine-card-details{display:flex;flex-wrap:wrap;gap:10px;font-size:.86rem;color:var(--text-light);margin-bottom:6px}.review-reactions{display:flex;gap:8px;margin-top:10px}.reaction-btn{display:flex;align-items:center;gap:4px;min-height:40px;padding:4px 12px;border-radius:16px;border:1.5px solid var(--cheese-dark);background:transparent;color:var(--text);font-size:.85rem;cursor:pointer;transition:background .15s,color .15s}.reaction-btn:hover{background:#d4a01726}.reaction-btn.like.active{background:#d4edda;border-color:#c3e6cb;color:#155724}.reaction-btn.dislike.active{background:#f8d7da;border-color:#f5c6cb;color:#721c24}.movie-reviews-section.is-contextual{padding:var(--space-4) var(--space-5) var(--space-8)}.movie-reviews-section.is-contextual .review-form{margin-bottom:var(--space-5);border-width:1px;background:var(--color-surface)}.review-readonly-note{margin-bottom:var(--space-5);padding:var(--space-3);border:1px solid var(--color-border-soft);border-radius:var(--radius-medium);background:var(--color-surface-muted);color:var(--color-text-muted);font-size:.84rem;line-height:1.5}.review-existing-note{display:grid;align-items:center;gap:var(--space-2);padding:var(--space-3);margin-bottom:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface-muted);color:var(--color-text-muted);font-size:.84rem}.review-existing-note>div{display:grid;gap:2px}.review-existing-note strong{color:var(--color-text)}.review-existing-note .button-ghost{min-height:40px;justify-self:start;border-color:var(--color-border-soft);background:var(--color-surface)}.review-form .review-existing-note{margin-bottom:0}.reviews-section-heading{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-2) 0 var(--space-3)}.reviews-section-heading h3{font-size:.94rem}.reviews-section-heading span{display:inline-grid;min-width:24px;height:24px;padding:0 6px;place-items:center;border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-primary-active);font-size:.78rem;font-weight:800}.reviews-loading{display:grid;gap:var(--space-2)}.reviews-loading .skeleton{height:118px}.movie-reviews-section .reviews-empty{display:grid;justify-items:center;gap:var(--space-3);padding:var(--space-5);margin:0;border:1px dashed var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface-muted)}@media(max-width:480px){.reviews-journal-header span{font-size:.84rem}.reviews-journal-tab{min-height:48px}.movie-reviews-section.is-contextual{padding:var(--space-3) var(--space-3) var(--space-6)}.review-form{padding:var(--space-3)}.review-form-footer{flex-direction:column;align-items:stretch}.recommend-toggle-group{display:grid;grid-template-columns:1fr}.review-recommend-toggle{min-height:40px}.review-submit-btn{margin-left:0;min-height:44px}}.vpn-page{display:grid;gap:var(--space-8);padding-bottom:var(--space-10)}.vpn-header,.vpn-list-heading,.vpn-create-heading,.vpn-qr-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.vpn-header h1{margin-top:var(--space-1);font-size:2.5rem;line-height:1.1}.vpn-header p,.vpn-create-heading p,.vpn-empty p,.vpn-qr-note{color:var(--color-text-muted)}.vpn-eyebrow{display:block;color:var(--color-info);font-size:.75rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.vpn-protocol{display:inline-flex;align-items:center;gap:var(--space-2);min-height:36px;padding:0 var(--space-3);border:1px solid rgba(30,122,114,.28);border-radius:var(--radius-pill);background:#e9f6f2;color:#175f59;font-size:.85rem;font-weight:800;white-space:nowrap}.vpn-status-dot{width:8px;height:8px;border-radius:50%;background:#25846f;box-shadow:0 0 0 4px #25846f21}.vpn-create{display:grid;gap:var(--space-5);padding:var(--space-6)}.vpn-create h2,.vpn-list-heading h2,.vpn-qr-heading h2{font-size:1.35rem;line-height:1.25}.vpn-step,.vpn-total{display:grid;flex:0 0 38px;width:38px;height:38px;place-items:center;border-radius:var(--radius-medium);background:#e9f6f2;color:#175f59;font-size:1.25rem;font-weight:900}.vpn-server-picker{min-width:0;border:0}.vpn-server-picker legend,.vpn-device-field>span{margin-bottom:var(--space-2);color:var(--color-text-muted);font-size:.82rem;font-weight:800}.vpn-server-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.vpn-server-option{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:var(--space-3);min-height:70px;padding:var(--space-3);border:1px solid var(--color-border-soft);border-radius:var(--radius-medium);background:var(--color-surface-muted);cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.vpn-server-option:hover{border-color:var(--color-border);background:var(--color-surface-hover)}.vpn-server-option.selected{border-color:#25846f;background:#edf9f5;box-shadow:inset 0 0 0 1px #25846f24}.vpn-server-option input{width:18px;height:18px;accent-color:#25846f}.vpn-server-meta{display:grid;min-width:0}.vpn-server-meta>strong,.vpn-server-meta>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vpn-server-meta>small{color:var(--color-text-muted)}.vpn-server-counts{display:grid;justify-items:end;min-width:58px}.vpn-server-counts b{color:#175f59;font-size:.8rem}.vpn-server-counts small{color:var(--color-text-muted);font-size:.76rem;white-space:nowrap}.vpn-health{display:inline-flex;align-items:center;justify-self:start;gap:6px;margin-top:5px;font-size:.72rem;font-weight:800}.vpn-health i{width:7px;height:7px;border-radius:50%;background:#8b7b5b}.vpn-health.online{color:#1b735f}.vpn-health.online i{background:#25846f;box-shadow:0 0 0 3px #25846f21}.vpn-health.offline{color:var(--color-danger)}.vpn-health.offline i{background:var(--color-danger);box-shadow:0 0 0 3px #bc3f351f}.vpn-health.checking{color:var(--color-text-muted)}.vpn-device-field{display:grid}.vpn-device-field input{width:100%;min-height:var(--control-height-large);padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-medium);background:#fff;color:var(--color-text)}.vpn-device-field input::placeholder{color:#9b8963}.vpn-create-button{justify-self:start;min-height:var(--control-height-large);padding-right:var(--space-6);padding-left:var(--space-6)}.vpn-server-warning{margin-top:calc(var(--space-2) * -1);color:var(--color-danger);font-size:.82rem;font-weight:700}.vpn-list{display:grid;gap:var(--space-4)}.vpn-list-heading{align-items:flex-end}.vpn-total{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-small)}.vpn-client-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.vpn-client-card{display:grid;grid-template-columns:48px minmax(0,1fr);gap:var(--space-3);padding:var(--space-4)}.vpn-client-icon{display:grid;width:48px;height:48px;place-items:center;border-radius:var(--radius-medium);background:#e9f6f2;font-size:1.35rem}.vpn-client-content{min-width:0}.vpn-client-title{display:flex;align-items:center;gap:var(--space-2)}.vpn-client-title h3{overflow:hidden;min-width:0;font-size:1rem;text-overflow:ellipsis;white-space:nowrap}.vpn-client-title span{flex:0 0 auto;padding:2px 7px;border-radius:var(--radius-pill);background:#eef2fb;color:#365d9d;font-size:.76rem;font-weight:800}.vpn-client-content>p{margin-top:2px;overflow:hidden;color:var(--color-text-muted);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.vpn-import-hint{display:block;margin-top:var(--space-2);color:var(--color-text-muted);font-size:.76rem;line-height:1.35}.vpn-client-actions{display:grid;grid-template-columns:minmax(0,1fr) var(--control-height);gap:var(--space-2);margin-top:var(--space-4)}.vpn-client-actions .button-primary,.vpn-client-actions .button-secondary{min-width:0;min-height:var(--control-height);padding-right:var(--space-2);padding-left:var(--space-2);font-size:.8rem}.vpn-hiddify-copy{grid-column:1 / -1}.vpn-delete-button{color:var(--color-danger)}.vpn-loading,.vpn-empty{min-height:180px}.vpn-loading{display:grid;place-items:center;color:var(--color-text-muted)}.vpn-empty{display:grid;justify-items:center;align-content:center;gap:var(--space-2);padding:var(--space-8);text-align:center}.vpn-empty>span{font-size:2rem}.vpn-qr-dialog{width:min(92vw,430px);padding:var(--space-5);border:1px solid var(--color-border-soft);border-radius:var(--radius-large);background:var(--color-surface);box-shadow:var(--shadow-modal)}.vpn-qr-image,.vpn-qr-loading{width:min(100%,340px);aspect-ratio:1;margin:var(--space-5) auto var(--space-3);border:1px solid var(--color-border-soft);border-radius:var(--radius-medium);background:var(--color-surface)}.vpn-qr-image{display:block}.vpn-qr-loading{display:grid;place-items:center;color:var(--color-text-muted)}.vpn-qr-note{text-align:center}.vpn-qr-copy{width:100%;min-height:var(--control-height-large);margin-top:var(--space-4)}@media(max-width:760px){.vpn-client-grid{grid-template-columns:1fr}}@media(max-width:560px){.vpn-page{gap:var(--space-6);padding-bottom:90px}.vpn-header{align-items:flex-start;flex-direction:column}.vpn-header h1{font-size:2.1rem}.vpn-create{padding:var(--space-4)}.vpn-server-options{grid-template-columns:1fr}.vpn-create-button{width:100%}.vpn-client-card{grid-template-columns:40px minmax(0,1fr)}.vpn-client-icon{width:40px;height:40px}.vpn-client-actions{grid-template-columns:1fr var(--control-height)}.vpn-client-actions .button-primary{grid-column:1 / -1}}@media(max-width:720px){.toast-container{top:12px;right:12px;left:12px}.toast{width:100%;max-width:none}.auth-title{font-size:2.35rem}.auth-users{width:min(100%,420px);gap:var(--space-3)}.game-card{align-items:flex-start;flex-direction:column}}@media(max-width:430px){.auth-page{padding:var(--space-5) var(--space-3)}.auth-logo{font-size:3.5rem}.auth-users{grid-template-columns:1fr 1fr;gap:var(--space-2)}.auth-btn{min-width:0;padding:var(--space-4) var(--space-2);font-size:.95rem}}
