.desktop-nav{display:none}@media(min-width:768px){.desktop-nav{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6);height:var(--topnav-height);background:var(--bg-nav);backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));border-bottom:1px solid var(--glass-border);box-shadow:0 8px 32px -16px var(--shadow),var(--glass-highlight);position:sticky;top:0;z-index:var(--z-fixed);transition:background var(--transition-slow),border-color var(--transition-slow)}@supports not (backdrop-filter: blur(1px)){.desktop-nav{background:var(--glass-bg-strong)}}.desktop-nav-left{display:flex;align-items:center;gap:var(--space-6)}.desktop-nav-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text-primary);cursor:pointer}.desktop-nav-logo{position:relative;width:34px;height:34px;border-radius:10px;background:var(--primary-gradient);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:17px;letter-spacing:-.5px;box-shadow:0 6px 16px -6px var(--primary-shadow),inset 0 1px #ffffff59,inset 0 -1px #0000001a;isolation:isolate;overflow:hidden}.desktop-nav-logo:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.45),transparent 55%);pointer-events:none;z-index:-1}.desktop-nav-logo:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px #ffffff40;pointer-events:none}.desktop-nav-title{font-size:18px;font-weight:800;letter-spacing:-.3px}.desktop-nav-tabs{display:flex;align-items:center;gap:var(--space-1)}.desktop-nav-tab{display:flex;align-items:center;gap:6px;padding:8px 16px;border:none;background:transparent;color:var(--text-secondary);font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;border-radius:var(--radius-full);transition:all var(--transition);white-space:nowrap}.desktop-nav-tab:hover{background:var(--glass-bg-hover);color:var(--text-primary)}.desktop-nav-tab--active{background:var(--primary-dim);color:var(--primary);font-weight:600}.desktop-nav-tab--active:hover{background:var(--primary-dim);color:var(--primary)}.desktop-nav-right{display:flex;align-items:center;gap:var(--space-2)}.desktop-nav-badge{display:flex;align-items:center;gap:4px;padding:6px 14px;border-radius:var(--radius-full);font-size:13px;font-weight:600;border:none;cursor:pointer;font-family:inherit;transition:all var(--transition)}.desktop-nav-badge:hover{transform:scale(1.05)}.desktop-nav-badge:active{transform:scale(.97)}.desktop-nav-badge--streak{background:var(--warning-dim);color:var(--warning)}.desktop-nav-badge--xp{background:var(--success-dim);color:var(--success)}.desktop-nav-badge--level{background:var(--primary-dim);color:var(--primary)}.desktop-nav-settings{width:36px;height:36px;border-radius:50%;border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-saturation));color:var(--text-primary);box-shadow:var(--glass-highlight);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.desktop-nav-settings:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-strong);color:var(--primary)}}.achievement-popup{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-4);transition:opacity .3s ease}.achievement-popup--hidden{opacity:0;pointer-events:none}.achievement-popup__backdrop{position:absolute;inset:0;background:#06040f59;backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation))}[data-theme=light] .achievement-popup__backdrop{background:#ffffff40}.achievement-popup__card{position:relative;width:100%;max-width:360px;background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));border:1px solid var(--glass-border-strong);border-radius:var(--radius-2xl);overflow:hidden;box-shadow:var(--shadow-xl),var(--glass-highlight);transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .3s ease}.achievement-popup--hidden .achievement-popup__card{transform:scale(.9);opacity:0}.achievement-popup__card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,color-mix(in srgb,var(--warning) 22%,transparent),color-mix(in srgb,var(--warning-dark) 22%,transparent));animation:achievement-glow 2s ease-in-out infinite;pointer-events:none}@keyframes achievement-glow{0%,to{opacity:.5}50%{opacity:1}}.achievement-popup__body{position:relative;padding:var(--space-6) var(--space-5);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.achievement-popup__burst{font-size:40px;animation:achievement-bounce .8s cubic-bezier(.34,1.56,.64,1) .2s both}@keyframes achievement-bounce{0%{opacity:0;transform:scale(0) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.achievement-popup__title{margin:0;font-size:20px;font-weight:800;color:var(--text-primary);letter-spacing:-.01em}.achievement-popup__icon{width:96px;height:96px;display:flex;align-items:center;justify-content:center;font-size:48px;border-radius:50%;background:linear-gradient(135deg,color-mix(in srgb,var(--warning) 28%,transparent),color-mix(in srgb,var(--warning-dark) 28%,transparent));border:2px solid var(--glass-border-strong);box-shadow:0 16px 40px color-mix(in srgb,var(--warning) 35%,transparent),var(--glass-highlight);animation:achievement-pop .5s cubic-bezier(.34,1.56,.64,1) .3s both}@keyframes achievement-pop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.achievement-popup__name{margin:0;font-size:17px;font-weight:700;color:var(--text-primary)}.achievement-popup__desc{margin:0;font-size:14px;color:var(--text-secondary);line-height:1.4}.achievement-popup__xp{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--warning-dim);border:1px solid color-mix(in srgb,var(--warning) 30%,transparent);border-radius:var(--radius-full);box-shadow:var(--glass-highlight)}.achievement-popup__xp-star{font-size:14px}.achievement-popup__xp-value{font-size:15px;font-weight:800;color:var(--warning);font-variant-numeric:tabular-nums}.achievement-popup__btn{width:100%;padding:14px 20px;font-family:inherit;font-size:15px;font-weight:700;color:var(--btn-text-light);background:linear-gradient(135deg,color-mix(in srgb,var(--warning) 80%,white) 0%,var(--warning-dark) 100%);border:1px solid var(--glass-border-strong);border-radius:var(--radius-lg);cursor:pointer;box-shadow:0 8px 20px color-mix(in srgb,var(--warning) 35%,transparent),var(--glass-highlight);transition:transform .15s ease;margin-top:var(--space-2)}.achievement-popup__btn:hover{transform:translateY(-1px)}.achievement-popup__btn:active{transform:scale(.97)}.achievement-popup--reward .achievement-popup__card:before{background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 22%,transparent),color-mix(in srgb,var(--info) 22%,transparent))}.achievement-popup--reward .achievement-popup__icon{background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 28%,transparent),color-mix(in srgb,var(--info) 28%,transparent));box-shadow:0 16px 40px var(--primary-shadow),var(--glass-highlight)}.achievement-popup--reward .achievement-popup__btn{background:var(--primary-gradient);box-shadow:0 8px 20px var(--primary-shadow),var(--glass-highlight)}.achievement-popup__ping{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.achievement-popup__ping-ring{width:80px;height:80px;border-radius:50%;background:color-mix(in srgb,var(--warning) 25%,transparent);animation:achievement-ping 1.6s cubic-bezier(0,0,.2,1) infinite}.achievement-popup--reward .achievement-popup__ping-ring{background:color-mix(in srgb,var(--primary) 25%,transparent)}@keyframes achievement-ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@media(prefers-reduced-motion:reduce){.achievement-popup,.achievement-popup__card,.achievement-popup__card:before,.achievement-popup__burst,.achievement-popup__icon,.achievement-popup__ping-ring,.achievement-popup__btn{animation:none!important;transition:none!important}.achievement-popup__btn:hover,.achievement-popup__btn:active{transform:none}.achievement-popup__ping{display:none}}.dialog-backdrop{position:fixed;inset:0;background-color:#06040f59;backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));z-index:var(--z-modal-backdrop);animation:fadeInBackdrop .2s ease-out both}[data-theme=light] .dialog-backdrop{background-color:#ffffff40}.dialog-backdrop--closing{animation:fadeOutBackdrop .2s ease-out forwards}.dialog-backdrop--strong{background-color:#06040f8c}[data-theme=light] .dialog-backdrop--strong{background-color:#fff6}.dialog-center{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));border:1px solid var(--glass-border-strong);border-radius:var(--radius-2xl);padding:var(--space-5);min-width:280px;max-width:90%;z-index:var(--z-modal);box-shadow:0 24px 60px -12px #00000073,var(--glass-highlight);animation:scaleIn .22s cubic-bezier(.2,.8,.2,1) both;overflow:hidden}.dialog-center:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(135deg,color-mix(in srgb,white 40%,transparent) 0%,transparent 40%,transparent 60%,color-mix(in srgb,var(--primary) 30%,transparent) 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.dialog-center--closing{animation:scaleOut .2s ease-out forwards}.dialog-center--primary-bg{background:var(--glass-bg-strong)}.dialog-center--wide{width:90%;max-width:400px}.dialog-center--rounded{border-radius:var(--radius-xl);padding:32px var(--space-5)}.dialog-fullscreen{position:fixed;inset:0;background-color:#06040f59;backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--space-5);animation:fadeInBackdrop .2s ease-out both}[data-theme=light] .dialog-fullscreen{background-color:#ffffff40}.dialog-fullscreen--closing{animation:fadeOutBackdrop .2s ease-out forwards}.dialog-sheet{position:relative;background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));border:1px solid var(--glass-border-strong);border-radius:var(--radius-xl);box-shadow:0 24px 60px -12px #00000073,var(--glass-highlight);width:100%;max-width:420px;max-height:80vh;display:flex;flex-direction:column;animation:modalIn .25s cubic-bezier(.2,.8,.2,1) both;overflow:hidden}.dialog-sheet:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(135deg,color-mix(in srgb,white 40%,transparent) 0%,transparent 40%,transparent 60%,color-mix(in srgb,var(--primary) 30%,transparent) 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:1}.dialog-sheet--closing{animation:modalOut .2s ease-out forwards}.dialog-title{font-size:18px;font-weight:600;margin-bottom:var(--space-3);text-align:center;color:var(--text-primary)}.dialog-title--left{text-align:left;margin:0}.dialog-title--large{font-size:20px;margin-bottom:var(--space-2)}.dialog-title--xl{font-size:24px;font-weight:700;margin-bottom:var(--space-2)}.dialog-description{color:var(--text-secondary);font-size:14px;text-align:center;margin-bottom:var(--space-5);line-height:1.5}.dialog-description--left{text-align:left;margin:var(--space-1) 0 0}.dialog-description--body{font-size:15px;margin-bottom:0}.dialog-actions{display:flex;gap:var(--space-3)}.dialog-actions--footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--border-color)}.dialog-btn{flex:1;padding:var(--space-3) var(--space-4);font-size:14px;font-weight:600;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);font-family:inherit;min-height:var(--touch-target-min)}.dialog-btn--lg{padding:14px;font-size:16px}.dialog-btn--full{width:100%}.dialog-btn--secondary{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-primary);box-shadow:var(--glass-highlight)}.dialog-btn--secondary:hover:not(:disabled){background:var(--glass-bg-hover);border-color:var(--glass-border-strong)}.dialog-btn--secondary:active:not(:disabled){transform:scale(.98)}.dialog-btn--primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;box-shadow:0 2px 8px var(--primary-shadow)}.dialog-btn--primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px var(--primary-shadow)}.dialog-btn--primary:active:not(:disabled){transform:translateY(0) scale(.98)}.dialog-btn--danger{background:linear-gradient(135deg,var(--danger) 0%,var(--danger-dark) 100%);color:#fff;box-shadow:0 2px 8px var(--danger-shadow)}.dialog-btn--danger:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px var(--danger-shadow)}.dialog-btn--danger:active:not(:disabled){transform:translateY(0) scale(.98)}.dialog-btn--info{background-color:var(--link-color);color:#fff;box-shadow:0 2px 8px var(--shadow)}.dialog-btn--info:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px var(--shadow)}.dialog-btn--info:active:not(:disabled){transform:translateY(0) scale(.98)}.dialog-btn--success{background:linear-gradient(135deg,var(--success) 0%,var(--success-dark) 100%);color:#fff;box-shadow:0 2px 8px var(--success-shadow)}.dialog-btn--success:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px var(--success-shadow)}.dialog-btn--success:active:not(:disabled){transform:translateY(0) scale(.98)}.dialog-btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important}.dialog-btn--loading{display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.dialog-header{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:var(--space-5);border-bottom:1px solid var(--border-color)}.dialog-close{background:none;border:none;padding:var(--space-1);cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-md);transition:background .2s ease,color .2s ease}.dialog-close{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:50%;backdrop-filter:blur(var(--glass-blur-sm));-webkit-backdrop-filter:blur(var(--glass-blur-sm))}.dialog-close:hover{background:var(--glass-bg-hover);color:var(--text-primary);transform:scale(1.05)}.dialog-close:active{transform:scale(.95)}.dialog-close:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 40%,transparent)}.dialog-body{position:relative;z-index:2;flex:1;overflow-y:auto;padding:var(--space-2)}.dialog-actions{position:relative;z-index:2}.dialog-icon-circle{display:flex;align-items:center;justify-content:center;border-radius:50%;margin:0 auto var(--space-4)}.dialog-icon-circle--lg{width:64px;height:64px}.dialog-icon-circle--md{width:48px;height:48px;border-radius:var(--radius-md)}.dialog-icon-circle--primary{background-color:var(--primary-dim)}.dialog-icon-circle--danger{background-color:var(--danger-dim)}.dialog-section-title{padding:var(--space-2) var(--space-3);font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.dialog-text-center{text-align:center}.dialog-mb-0{margin-bottom:0}.dialog-mb-5{margin-bottom:var(--space-5)}@media(min-width:768px){.dialog-center{max-width:440px;padding:var(--space-6)}.dialog-center--wide{max-width:480px}.dialog-sheet{max-width:500px}.dialog-title--xl{font-size:26px}}.dialog-guest-warning{color:var(--warning);font-size:13px;text-align:center;margin-bottom:var(--space-4);line-height:1.5}.dialog-guest-warning-link{text-decoration:underline;cursor:pointer;font-weight:600}.onboarding-backdrop{background-color:#06040f73;backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation))}[data-theme=light] .onboarding-backdrop{background-color:#ffffff47}.onboarding-card{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:calc(100% - 32px);max-width:440px;padding:36px 28px 28px;border-radius:var(--radius-2xl);background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));border:1px solid var(--glass-border);box-shadow:0 24px 60px -12px #00000073,var(--glass-highlight);z-index:var(--z-modal);animation:onboardingIn .45s cubic-bezier(.2,.8,.2,1) both;overflow:hidden}.onboarding-card:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(135deg,color-mix(in srgb,white 40%,transparent) 0%,transparent 40%,transparent 60%,color-mix(in srgb,var(--primary) 30%,transparent) 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}@supports not (backdrop-filter: blur(1px)){.onboarding-card{background:var(--glass-bg-strong)}}@keyframes onboardingIn{0%{opacity:0;transform:translate(-50%,-46%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.onboarding-header{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;margin-bottom:28px}.onboarding-mark{position:relative;width:76px;height:76px;border-radius:22px;display:grid;place-items:center;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-saturation));border:1px solid var(--glass-border);box-shadow:var(--card-shadow),var(--glass-highlight)}.onboarding-mark-img{width:42px;height:42px;position:relative;z-index:1}.onboarding-mark-pulse{position:absolute;inset:-6px;border-radius:26px;background:radial-gradient(circle,var(--glow-primary) 0%,transparent 70%);animation:markPulse 2.8s ease-in-out infinite;pointer-events:none}@keyframes markPulse{0%,to{transform:scale(.92);opacity:.6}50%{transform:scale(1.1);opacity:1}}.onboarding-kicker{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;background:var(--primary-dim);color:var(--primary);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.onboarding-title{margin:0;font-size:22px;font-weight:700;color:var(--text-primary);line-height:1.25;letter-spacing:-.01em;max-width:340px}.onboarding-options{display:flex;flex-direction:column;gap:12px}.onboarding-option{display:flex;align-items:center;gap:16px;padding:18px 20px;border:none;border-radius:var(--radius-lg);cursor:pointer;text-align:left;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s cubic-bezier(.2,.8,.2,1),background .25s ease,border-color .25s ease;font-family:inherit;width:100%;min-height:var(--touch-target-min, 44px)}.onboarding-option:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 45%,transparent),0 10px 26px -8px var(--primary-shadow)}.onboarding-option-book-icon{color:var(--primary)}.onboarding-option-text{flex:1;min-width:0}.onboarding-option-arrow{flex-shrink:0;transition:transform .2s ease}.onboarding-option:hover .onboarding-option-arrow{transform:translate(4px)}.onboarding-option-arrow--light{color:color-mix(in srgb,#fff 90%,transparent)}.onboarding-option-arrow--default{color:var(--text-tertiary)}.onboarding-option--primary{background:var(--primary-gradient);box-shadow:0 10px 26px -8px var(--primary-shadow),inset 0 1px color-mix(in srgb,#fff 25%,transparent);color:var(--text-on-primary, #fff)}.onboarding-option--primary:hover{transform:translateY(-2px);box-shadow:0 16px 36px -10px var(--primary-shadow),inset 0 1px color-mix(in srgb,#fff 25%,transparent)}.onboarding-option--primary:active{transform:translateY(0) scale(.98)}.onboarding-option--secondary{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));border:1px solid var(--glass-border);box-shadow:var(--card-shadow),var(--glass-highlight)}@supports not (backdrop-filter: blur(1px)){.onboarding-option--secondary{background:var(--glass-bg-strong)}}.onboarding-option--secondary:hover{background:var(--glass-bg-hover);border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-lg),var(--glass-highlight)}.onboarding-option--secondary:active{transform:translateY(0) scale(.98)}.onboarding-option-icon{width:48px;height:48px;border-radius:var(--radius-md);display:grid;place-items:center;flex-shrink:0}.onboarding-option-icon--light{background:color-mix(in srgb,#fff 18%,transparent);box-shadow:inset 0 1px color-mix(in srgb,#fff 30%,transparent)}.onboarding-option-icon--muted{background:var(--primary-dim)}.onboarding-option-title{font-size:15px;font-weight:700;margin-bottom:2px;letter-spacing:-.01em}.onboarding-option-title--light{color:var(--text-on-primary, #fff)}.onboarding-option-title--default{color:var(--text-primary)}.onboarding-option-desc{font-size:13px;line-height:1.4}.onboarding-option-desc--light{color:color-mix(in srgb,#fff 82%,transparent)}.onboarding-option-desc--default{color:var(--text-secondary)}@media(max-width:480px){.onboarding-card{padding:28px 20px 22px}.onboarding-title{font-size:20px}.onboarding-option{padding:14px 16px;gap:12px}.onboarding-option-icon{width:44px;height:44px}}@media(prefers-reduced-motion:reduce){.onboarding-card,.onboarding-mark-pulse{animation:none}.onboarding-option:hover{transform:none}}.level-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-saturation));border:1px solid var(--glass-border);border-radius:var(--radius-full);box-shadow:var(--shadow-sm),var(--glass-highlight);cursor:pointer;transition:transform .15s cubic-bezier(.2,.8,.2,1),background .15s ease;color:var(--text-primary);font-family:inherit}.level-badge:hover{transform:scale(1.05);background:var(--glass-bg-hover)}.level-badge:active{transform:scale(.95)}.level-badge__star{font-size:12px;line-height:1}.level-badge__text{font-size:12px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:.02em}.toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;padding-top:calc(12px + var(--safe-area-top));background:var(--bg-nav);backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));border:1px solid var(--glass-border);border-radius:var(--radius-lg);position:fixed;top:12px;left:16px;right:16px;max-width:928px;margin:0 auto;z-index:var(--z-fixed);box-shadow:var(--shadow-md),var(--glass-highlight);transition:all .2s cubic-bezier(.2,.8,.2,1)}@supports not (backdrop-filter: blur(1px)){.toolbar{background:var(--glass-bg-strong)}}.toolbar--compact{top:6px;border-radius:12px;padding:8px 12px;padding-top:calc(8px + var(--safe-area-top));box-shadow:0 1px 4px var(--shadow)}.toolbar--title-start .toolbar-title{text-align:left;justify-content:flex-start}@media(max-width:479px){.toolbar{top:6px;left:4px;right:4px;padding:10px 12px;padding-top:calc(10px + var(--safe-area-top));border-radius:12px}.page-with-toolbar{padding-top:calc(68px + var(--safe-area-top))!important}}@media(min-width:768px){.toolbar--main-page{display:none}.page-with-toolbar--main{padding-top:0!important}.toolbar{max-width:1136px}}.toolbar-back{display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;background:var(--glass-bg);color:var(--text-primary);border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--glass-highlight);cursor:pointer;transition:all .2s cubic-bezier(.2,.8,.2,1)}.toolbar-back:focus-visible,.toolbar-icon-action:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.toolbar-back:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-strong);color:var(--text-primary)}.toolbar-back:active{transform:scale(.95)}.toolbar-back-content{display:flex;align-items:center;justify-content:center;min-width:44px;height:44px}.toolbar-title{flex:1;text-align:center;font-size:17px;font-weight:600;margin:0;padding:0 8px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;justify-content:center;gap:8px}.toolbar-title-icon{display:flex;align-items:center;flex-shrink:0}@media(max-width:359px){.toolbar-title{font-size:15px}}.toolbar-spacer{width:44px;min-width:44px;height:44px}@media(max-width:767px){.toolbar-spacer--right{display:none}}.toolbar-right{min-width:44px;display:flex;justify-content:flex-end;align-items:center}.toolbar-action-group{display:flex;align-items:center;gap:6px}@media(min-width:480px){.toolbar-action-group{gap:8px}}.toolbar-icon-action{width:40px;height:40px;border-radius:var(--radius-md);border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--text-primary);box-shadow:var(--glass-highlight);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.2,.8,.2,1);-webkit-tap-highlight-color:transparent}.toolbar-icon-action:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-strong);color:var(--primary)}.toolbar-icon-action:active{transform:scale(.93)}.speak-btn{display:flex;align-items:center;justify-content:center;color:var(--text-primary);cursor:pointer;flex-shrink:0;padding:0;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-saturation));border:1px solid var(--glass-border);box-shadow:var(--glass-highlight);transition:background .2s cubic-bezier(.2,.8,.2,1),color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .15s ease}@supports not (backdrop-filter: blur(1px)){.speak-btn{background:var(--glass-bg-strong)}}.speak-btn:hover{background:var(--primary-gradient);border-color:transparent;color:#fff;box-shadow:0 8px 20px -6px var(--primary-shadow),var(--glass-highlight)}.speak-btn:active{transform:scale(.95)}.speak-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.speak-btn-sm{width:36px;height:36px;min-width:36px;min-height:36px;border-radius:var(--radius-sm)}.speak-btn-md{width:44px;height:44px;min-width:44px;min-height:44px;border-radius:var(--radius-md)}.speak-btn-lg{width:48px;height:48px;min-width:48px;min-height:48px;border-radius:var(--radius-md)}@media(prefers-reduced-motion:reduce){.speak-btn,.speak-btn:active{transition:none;transform:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:inherit;font-weight:600;letter-spacing:-.01em;border-radius:var(--radius-md);cursor:pointer;transition:all .2s cubic-bezier(.2,.8,.2,1);border:1px solid transparent;white-space:nowrap;min-height:var(--touch-target-min);position:relative;overflow:hidden}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn-sm{padding:var(--space-2) 14px;font-size:12px;border-radius:var(--radius-sm)}.btn-md{padding:var(--space-3) var(--space-5);font-size:14px}.btn-lg{padding:14px 28px;font-size:15px}.btn-full{width:100%}@media(max-width:767px){.btn-full-mobile{width:100%}}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:var(--btn-text-light);box-shadow:0 8px 24px -8px var(--primary-shadow),inset 0 1px #fff3}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 28px -6px var(--primary-shadow),inset 0 1px #ffffff40}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:linear-gradient(135deg,var(--success) 0%,var(--success-dark) 100%);color:var(--btn-text-light);box-shadow:0 8px 24px -8px var(--success-shadow),inset 0 1px #fff3}.btn-secondary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 28px -6px var(--success-shadow),inset 0 1px #ffffff40}.btn-secondary:active:not(:disabled){transform:translateY(0)}.btn-ghost{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-saturation));border:1px solid var(--glass-border);color:var(--text-primary);box-shadow:var(--glass-highlight)}@supports not (backdrop-filter: blur(1px)){.btn-ghost{background:var(--glass-bg-strong)}}.btn-ghost:hover:not(:disabled){background:var(--glass-bg-hover);border-color:var(--glass-border-strong);transform:translateY(-1px);box-shadow:var(--shadow-md),var(--glass-highlight)}.btn-ghost:active:not(:disabled){transform:translateY(0) scale(.98)}.btn-danger{background:linear-gradient(135deg,var(--danger) 0%,var(--danger-dark) 100%);color:var(--btn-text-light);box-shadow:0 8px 24px -8px var(--danger-shadow),inset 0 1px #fff3}.btn-danger:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 28px -6px var(--danger-shadow),inset 0 1px #ffffff40}.btn-danger:active:not(:disabled){transform:translateY(0)}.btn-icon{width:44px;height:44px;padding:0;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-saturation));border:1px solid var(--glass-border);color:var(--text-primary);border-radius:var(--radius-md);box-shadow:var(--glass-highlight)}@supports not (backdrop-filter: blur(1px)){.btn-icon{background:var(--glass-bg-strong)}}.btn-icon:hover:not(:disabled){background:var(--glass-bg-hover);border-color:var(--glass-border-strong);color:var(--primary);box-shadow:0 6px 16px -4px var(--primary-shadow),var(--glass-highlight)}.btn-icon:active:not(:disabled){transform:scale(.95)}.btn-icon.btn-sm{width:40px;height:40px;min-width:40px;min-height:40px;border-radius:var(--radius-md)}.btn-icon.btn-lg{width:52px;height:52px;min-width:52px;min-height:52px}.btn-spinner{animation:btnSpin 1s linear infinite}@keyframes btnSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-icon-el{display:inline-flex;align-items:center;justify-content:center}.btn-text{display:inline-flex;align-items:center}.text-field{display:flex;flex-direction:column;gap:var(--space-2)}.text-field-full{width:100%}.text-field-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary)}.text-field-wrapper{position:relative;display:flex;align-items:center}.text-field-input{width:100%;font-family:inherit;font-weight:500;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-saturation));color:var(--text-primary);border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--glass-highlight);transition:all .2s cubic-bezier(.2,.8,.2,1)}@supports not (backdrop-filter: blur(1px)){.text-field-input{background:var(--glass-bg-strong)}}.text-field-input:hover:not(:disabled):not(:focus){background:var(--glass-bg-hover);border-color:var(--glass-border-strong)}.text-field-input:focus{outline:none;background:var(--glass-bg-strong);border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-dim),var(--glass-highlight)}.text-field-input::placeholder{color:var(--text-tertiary)}.text-field-input:disabled{opacity:.6;cursor:not-allowed}.text-field-sm .text-field-input{padding:var(--space-2) var(--space-3);font-size:13px;border-radius:var(--radius-sm)}.text-field-md .text-field-input{padding:var(--space-3) 14px;font-size:14px}.text-field-lg .text-field-input{padding:14px var(--space-4);font-size:16px;font-weight:600}.text-field-textarea{resize:none;min-height:80px;line-height:1.6}.text-field-icon{position:absolute;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);pointer-events:none}.text-field-icon.left{left:14px}.text-field-icon.right{right:14px}.has-left-icon .text-field-input{padding-left:44px}.has-right-icon .text-field-input{padding-right:44px}.text-field-hint{font-size:12px;color:var(--text-tertiary)}.text-field-hint-error{color:var(--danger)}.text-field-error .text-field-input{border-color:var(--danger)}.text-field-error .text-field-input:focus{box-shadow:0 0 0 3px var(--danger-dim)}@media(max-width:767px){.text-field-input{font-size:16px!important}}.icon-btn{display:flex;align-items:center;justify-content:center;border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-saturation));color:var(--text-primary);border-radius:var(--radius-md);box-shadow:var(--glass-highlight);cursor:pointer;transition:all .2s cubic-bezier(.2,.8,.2,1);flex-shrink:0;padding:0}@supports not (backdrop-filter: blur(1px)){.icon-btn{background:var(--glass-bg-strong)}}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn-sm{width:36px;height:36px;min-width:36px;min-height:36px;border-radius:var(--radius-md)}.icon-btn-md{width:44px;height:44px;border-radius:var(--radius-md)}.icon-btn-lg{width:48px;height:48px;border-radius:var(--radius-md)}.icon-btn-default:hover:not(:disabled){border-color:var(--glass-border-strong);color:var(--primary);background:var(--glass-bg-hover);box-shadow:0 6px 16px -4px var(--primary-shadow),var(--glass-highlight)}.icon-btn-default:active:not(:disabled){transform:scale(.95)}.icon-btn-primary{border-color:var(--primary);background:var(--primary-dim);color:var(--primary)}.icon-btn-primary:hover:not(:disabled){background:var(--primary);color:#fff;box-shadow:0 2px 8px var(--primary-shadow)}.icon-btn-primary:active:not(:disabled){transform:scale(.95)}.icon-btn-success{border-color:var(--success);background:transparent;color:var(--success)}.icon-btn-success:hover:not(:disabled){background:var(--success);color:#fff;box-shadow:0 2px 8px var(--success-shadow)}.icon-btn-success:active:not(:disabled){transform:scale(.95)}.icon-btn-danger{border-color:var(--danger);background:var(--danger);color:#fff}.icon-btn-danger:hover:not(:disabled){background:var(--danger-dark);box-shadow:0 2px 8px var(--danger-shadow)}.icon-btn-danger:active:not(:disabled){transform:scale(.95)}.icon-btn-badge{position:absolute;border:2px solid var(--bg-primary);box-shadow:0 2px 4px var(--danger-shadow)}.icon-btn-badge.icon-btn-sm{width:18px;height:18px;top:-6px;right:-6px}.icon-btn-badge.icon-btn-md{width:22px;height:22px;top:-8px;right:-8px}.icon-btn-badge:hover:not(:disabled){transform:scale(1.1)}.page-with-bottom-nav{padding-bottom:calc(64px + var(--safe-area-bottom) + 16px)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(64px + var(--safe-area-bottom));padding-bottom:var(--safe-area-bottom);display:flex;z-index:var(--z-fixed);background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));border-top:1px solid var(--glass-border-strong);box-shadow:0 -8px 24px -8px var(--shadow-strong),0 -1px 0 0 var(--glass-border),var(--glass-highlight)}@supports not (backdrop-filter: blur(1px)){.bottom-nav{background:var(--glass-bg-strong)}}.bottom-nav-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:transparent;border:none;cursor:pointer;color:var(--text-muted);transition:color .2s ease-out;padding:0;min-width:44px;min-height:44px;position:relative;-webkit-tap-highlight-color:transparent}.bottom-nav-tab--active{color:var(--primary)}.bottom-nav-tab-icon{display:flex;align-items:center;justify-content:center;width:40px;height:32px;border-radius:var(--radius-sm);transition:background-color .2s ease-out,transform .25s cubic-bezier(.34,1.56,.64,1)}.bottom-nav-tab--active .bottom-nav-tab-icon{background:var(--primary-dim);animation:navIconBounce .35s cubic-bezier(.34,1.56,.64,1)}.bottom-nav-tab:active .bottom-nav-tab-icon{transform:scale(.9)}.bottom-nav-tab:after{content:"";position:absolute;top:0;left:50%;transform:translate(-50%) scaleX(0);width:24px;height:3px;border-radius:0 0 3px 3px;background:var(--primary);transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.bottom-nav-tab--active:after{transform:translate(-50%) scaleX(1)}.bottom-nav-label{font-size:11px;font-weight:400;transition:font-weight .15s ease-out,transform .2s ease-out}.bottom-nav-tab--active .bottom-nav-label{font-weight:600}@keyframes navIconBounce{0%{transform:scale(.85)}50%{transform:scale(1.1)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.bottom-nav-tab--active .bottom-nav-tab-icon,.bottom-nav-tab:active .bottom-nav-tab-icon,.bottom-nav-tab:after{animation:none;transition:none}}@media(min-width:768px){.page-with-bottom-nav{padding-bottom:0}.bottom-nav{display:none}}.bottom-action-bar{flex-shrink:0;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom));display:flex;gap:12px;z-index:var(--z-sticky);max-width:960px;margin:0 auto;box-sizing:border-box;background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));border-top:1px solid var(--glass-border-strong);box-shadow:0 -8px 24px -8px var(--shadow-strong),var(--glass-highlight);transition:opacity .2s ease,transform .25s cubic-bezier(.2,.8,.2,1)}@supports not (backdrop-filter: blur(1px)){.bottom-action-bar{background:var(--glass-bg-strong)}}.bottom-action-bar-hidden{opacity:0;pointer-events:none;transform:translateY(100%)}.bottom-action-bar-keyboard{padding:6px 12px;background:transparent;border-top:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.bottom-action-bar-keyboard .exercise-btn{padding:8px 16px;font-size:14px}@media(min-width:768px){.bottom-action-bar{max-width:640px;padding:20px 24px;border-radius:var(--radius-lg) var(--radius-lg) 0 0}}@media(max-width:479px){.bottom-action-bar:not(.bottom-action-bar-keyboard){padding:12px;padding-bottom:max(12px,env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){.bottom-action-bar{transition:none}}.toast{position:fixed;top:calc(80px + var(--safe-area-top));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:12px 18px 12px 16px;border-radius:var(--radius-lg);font-size:14px;font-weight:600;color:var(--text-primary);z-index:var(--z-tooltip);background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));border:1px solid var(--glass-border-strong);border-left:3px solid var(--toast-accent, var(--primary));box-shadow:var(--shadow-lg),var(--glass-highlight);animation:toastSlideDown .3s ease-out}@supports not (backdrop-filter: blur(1px)){.toast{background:var(--glass-bg-strong)}}.toast-exit{animation:toastSlideUp .2s ease-in forwards}.toast-success{--toast-accent: var(--success);background:linear-gradient(135deg,color-mix(in srgb,var(--success) 12%,transparent) 0%,transparent 60%),var(--glass-bg-strong)}.toast-error{--toast-accent: var(--danger);background:linear-gradient(135deg,color-mix(in srgb,var(--danger) 12%,transparent) 0%,transparent 60%),var(--glass-bg-strong)}.toast-info{--toast-accent: var(--primary);background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 12%,transparent) 0%,transparent 60%),var(--glass-bg-strong)}@media(min-width:768px){.toast{top:80px;max-width:480px}}@keyframes toastSlideDown{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes toastSlideUp{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-20px)}}@media(prefers-reduced-motion:reduce){.toast,.toast-exit{animation:none}}.card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-highlight);transition:all .25s cubic-bezier(.2,.8,.2,1)}@supports not (backdrop-filter: blur(1px)){.card{background:var(--glass-bg-strong)}}.card-full{width:100%}.card-sm{border-radius:var(--radius-md)}.card-md{border-radius:var(--radius-lg)}.card-lg{border-radius:var(--radius-xl)}.card-padding-none{padding:0}.card-padding-sm{padding:var(--space-3)}.card-padding-md{padding:var(--space-4)}.card-padding-lg{padding:var(--space-5)}.card-default{box-shadow:var(--card-shadow),var(--glass-highlight)}.card-elevated{box-shadow:var(--shadow-lg),var(--glass-highlight)}.card-outlined{border-color:var(--glass-border-strong)}.card-interactive{cursor:pointer}.card-interactive:hover:not(.card-disabled){background:var(--glass-bg-hover);border-color:var(--glass-border-strong);box-shadow:var(--shadow-lg),var(--glass-highlight);transform:translateY(-2px)}.card-interactive:active:not(.card-disabled){transform:translateY(0);transition-duration:.1s}.card-success{border-color:#22c55e66;background:linear-gradient(135deg,#22c55e2e,#ffffff14)}.card-danger{border-color:#ef444466;background:linear-gradient(135deg,#ef44442e,#ffffff14)}.card-warning{border-color:#f59e0b66;background:linear-gradient(135deg,#f59e0b2e,#ffffff14)}.card-clickable{cursor:pointer}.card-clickable:hover:not(.card-disabled){background:var(--glass-bg-hover);border-color:var(--glass-border-strong);box-shadow:0 0 0 3px var(--primary-dim),var(--glass-highlight)}.card-disabled{opacity:.5;cursor:not-allowed;background:var(--bg-tertiary);backdrop-filter:none;-webkit-backdrop-filter:none}.card-selected{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-dim),var(--card-shadow),var(--glass-highlight)}.loading{display:inline-flex;align-items:center;justify-content:center;gap:6px}.loading-dot{background-color:var(--primary);border-radius:50%;animation:loadingPulse 1.4s ease-in-out infinite}.loading--light .loading-dot{background-color:#fff}.loading-dot:nth-child(2){animation-delay:.16s}.loading-dot:nth-child(3){animation-delay:.32s}.loading--sm .loading-dot{width:7px;height:7px}.loading--md .loading-dot{width:10px;height:10px}.loading--lg .loading-dot{width:14px;height:14px}@keyframes loadingPulse{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.loading-fs{position:fixed;inset:0;z-index:var(--z-modal);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-5);background:var(--bg-nav);backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));padding:var(--space-6);animation:loadingFsFade .35s ease-out}@supports not (backdrop-filter: blur(1px)){.loading-fs{background:var(--bg-primary)}}.loading-fs-stage{position:relative;width:140px;height:140px;display:grid;place-items:center}.loading-fs-halo{position:absolute;inset:-20px;border-radius:50%;background:radial-gradient(circle at center,var(--glow-primary) 0%,transparent 65%);filter:blur(8px);animation:loadingFsBreathe 3.2s ease-in-out infinite;pointer-events:none}.loading-fs-ring{position:absolute;inset:0;display:grid;place-items:center;animation:loadingFsSpin 1.6s linear infinite}.loading-fs-ring-svg{width:100%;height:100%;overflow:visible}.loading-fs-ring-track{stroke:var(--glass-border)}.loading-fs-ring-arc{stroke:var(--primary);stroke-dasharray:150;stroke-dashoffset:60;transform-origin:center;filter:drop-shadow(0 0 6px var(--primary-shadow))}.loading-fs-mark{position:relative;z-index:1;width:64px;height:64px;border-radius:var(--radius-lg);display:grid;place-items:center;background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));border:1px solid var(--glass-border);box-shadow:var(--card-shadow),var(--glass-highlight);animation:loadingFsMark 3.2s ease-in-out infinite}.loading-fs-mark-img{width:36px;height:36px;display:block}.loading-fs-label{margin:0;font-size:14px;font-weight:500;color:var(--text-secondary);letter-spacing:.01em;text-align:center;max-width:280px;animation:loadingFsLabel 2.4s ease-in-out infinite}@keyframes loadingFsFade{0%{opacity:0}to{opacity:1}}@keyframes loadingFsSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes loadingFsBreathe{0%,to{transform:scale(.92);opacity:.7}50%{transform:scale(1.08);opacity:1}}@keyframes loadingFsMark{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes loadingFsLabel{0%,to{opacity:.6}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.loading-dot,.loading-fs-ring,.loading-fs-halo,.loading-fs-mark,.loading-fs-label{animation-duration:.001ms!important;animation-iteration-count:1!important}.loading-fs{animation:none}.loading-fs-ring-arc{stroke-dashoffset:0}}@keyframes skeleton-shimmer{0%{background-position:-150% 0}to{background-position:250% 0}}.skeleton{position:relative;overflow:hidden;background-color:color-mix(in srgb,var(--glass-bg) 80%,transparent);background-image:linear-gradient(100deg,transparent 0%,transparent 30%,color-mix(in srgb,var(--glass-bg-hover) 70%,white 30%) 50%,transparent 70%,transparent 100%);background-size:220% 100%;background-repeat:no-repeat;background-position:-150% 0;border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--glass-highlight);animation:skeleton-shimmer 1.6s ease-in-out infinite}[data-theme=dark] .skeleton{background-image:linear-gradient(100deg,transparent 0%,transparent 30%,color-mix(in srgb,white 14%,transparent) 50%,transparent 70%,transparent 100%)}@supports not (backdrop-filter: blur(1px)){.skeleton{background-color:var(--glass-bg-strong)}}.skeleton--text{height:12px;border-radius:6px;border:none;box-shadow:none;background-color:color-mix(in srgb,var(--text-primary) 10%,transparent)}[data-theme=dark] .skeleton--text{background-color:color-mix(in srgb,white 10%,transparent)}.skeleton--circle{border-radius:50%}.skeleton--rect{border-radius:var(--radius-md)}@media(prefers-reduced-motion:reduce){.skeleton{animation:none;background-image:none}}.login-prompt-overlay{position:fixed;inset:0;background-color:#06040f59;backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));display:grid;place-items:center;z-index:var(--z-modal-backdrop);padding:16px;animation:fadeInBackdrop .2s ease-out both}[data-theme=light] .login-prompt-overlay{background-color:#ffffff40}.login-prompt-dialog{position:relative;width:100%;max-width:380px;padding:36px 28px 24px;border-radius:var(--radius-2xl);background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));border:1px solid var(--glass-border-strong);box-shadow:0 24px 60px -12px #00000073,var(--glass-highlight);animation:modalIn .25s cubic-bezier(.2,.8,.2,1) both;transform-origin:center center;overflow:hidden}.login-prompt-dialog:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(255,255,255,.4) 0%,transparent 40%,transparent 60%,rgba(139,92,246,.3) 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.login-prompt-dialog:after{content:"";position:absolute;top:-40%;left:-10%;width:120%;height:60%;background:radial-gradient(ellipse at center,var(--glow-primary) 0%,transparent 60%);filter:blur(20px);opacity:.6;pointer-events:none;z-index:-1}.login-prompt-close{position:absolute;top:14px;right:14px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;color:var(--text-secondary);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:50%;backdrop-filter:blur(var(--glass-blur-sm));-webkit-backdrop-filter:blur(var(--glass-blur-sm));transition:all .2s ease}.login-prompt-close:hover{background:var(--glass-bg-hover);color:var(--text-primary);transform:scale(1.05)}.login-prompt-close:active{transform:scale(.95)}.login-prompt-icon{position:relative;width:72px;height:72px;border-radius:20px;background:var(--primary-gradient);display:flex;align-items:center;justify-content:center;margin:0 auto 24px;color:#fff;box-shadow:0 16px 32px -12px var(--primary-shadow),inset 0 1px #ffffff4d}.login-prompt-icon:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.35),transparent 55%);pointer-events:none}.login-prompt-title{font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--text-primary);text-align:center;margin:0 0 28px}.login-prompt-benefits{display:flex;flex-direction:column;gap:10px;margin-bottom:28px}.login-prompt-benefit{display:flex;align-items:center;gap:14px;padding:12px 14px;color:var(--text-primary);font-size:14px;font-weight:500;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);backdrop-filter:blur(var(--glass-blur-sm));-webkit-backdrop-filter:blur(var(--glass-blur-sm))}.login-prompt-benefit svg{flex-shrink:0;width:20px;height:20px;padding:4px;color:var(--primary);background:var(--primary-dim);border-radius:8px;box-sizing:content-box}.login-prompt-actions{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.login-prompt-later{background:none;border:none;color:var(--text-secondary);font-size:14px;cursor:pointer;padding:8px;width:100%;transition:color .2s ease}.login-prompt-later:hover:not(:disabled){color:var(--text-primary)}.login-prompt-later:active:not(:disabled){transform:scale(.98)}.login-prompt-later:disabled{opacity:.5;cursor:not-allowed}.login-prompt-migrating{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px 0}.login-prompt-migrating p{color:var(--text-secondary);font-size:14px;margin:0}.login-prompt-spinner{color:var(--primary);animation:spin 1s linear infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.inapp-banner{position:fixed;bottom:calc(var(--bottom-nav-height) + var(--safe-area-bottom) + 16px);left:16px;right:16px;max-width:400px;margin:0 auto;padding:16px;border-radius:var(--radius-xl);z-index:var(--z-fixed);background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));border:1px solid var(--glass-border-strong);box-shadow:var(--shadow-lg),var(--glass-highlight);animation:slideUp .3s ease-out}@supports not (backdrop-filter: blur(1px)){.inapp-banner{background:var(--glass-bg-strong)}}@media(min-width:768px){.inapp-banner{bottom:24px}}.inapp-banner-content{display:flex;gap:12px;align-items:flex-start}.inapp-banner-icon{flex-shrink:0;width:44px;height:44px;border-radius:12px;background:var(--warning-dim);color:var(--warning);display:flex;align-items:center;justify-content:center}.inapp-banner-text{flex:1;min-width:0}.inapp-banner-title{font-size:15px;font-weight:600;color:var(--text-primary);margin:0 0 4px}.inapp-banner-description{font-size:13px;color:var(--text-secondary);margin:0;line-height:1.4}.inapp-banner-close{flex-shrink:0;width:32px;height:32px;border:1px solid transparent;background:transparent;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:10px;transition:all .15s ease}.inapp-banner-close:hover{background:var(--glass-bg-hover);border-color:var(--glass-border);color:var(--text-primary)}.inapp-banner-action{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:12px;padding:12px;border:none;border-radius:var(--radius-md);background:var(--primary-gradient);color:#fff;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 8px 20px -8px var(--primary-shadow);transition:transform .15s ease,box-shadow .15s ease}.inapp-banner-action:hover{transform:translateY(-1px);box-shadow:0 12px 24px -8px var(--primary-shadow)}.inapp-banner-action:active{transform:scale(.98)}@media(prefers-reduced-motion:reduce){.inapp-banner{animation:none}.inapp-banner-action:hover{transform:none}}.pwa-install-banner{position:fixed;bottom:calc(var(--bottom-nav-height) + var(--safe-area-bottom) + 16px);left:16px;right:16px;max-width:400px;margin:0 auto;padding:16px;border-radius:var(--radius-xl);z-index:var(--z-fixed);background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));border:1px solid var(--glass-border-strong);box-shadow:var(--shadow-lg),var(--glass-highlight);animation:pwaSlideUp .3s ease-out}@supports not (backdrop-filter: blur(1px)){.pwa-install-banner{background:var(--glass-bg-strong)}}@media(min-width:768px){.pwa-install-banner{bottom:24px}}.pwa-install-content{display:flex;gap:12px;align-items:flex-start}.pwa-install-icon{flex-shrink:0;width:44px;height:44px;border-radius:12px;background:var(--primary-dim);color:var(--primary);display:flex;align-items:center;justify-content:center}.pwa-install-text{flex:1;min-width:0}.pwa-install-title{font-size:15px;font-weight:600;color:var(--text-primary);margin:0 0 4px}.pwa-install-description{font-size:13px;color:var(--text-secondary);margin:0;line-height:1.4}.pwa-install-close{flex-shrink:0;width:32px;height:32px;border:1px solid transparent;background:transparent;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:10px;transition:all .15s ease}.pwa-install-close:hover{background:var(--glass-bg-hover);border-color:var(--glass-border);color:var(--text-primary)}.pwa-install-action{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:12px;padding:12px;border:none;border-radius:var(--radius-md);background:var(--primary-gradient);color:#fff;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 8px 20px -8px var(--primary-shadow);transition:transform .15s ease,box-shadow .15s ease}.pwa-install-action:hover{transform:translateY(-1px);box-shadow:0 12px 24px -8px var(--primary-shadow)}.pwa-install-action:active{transform:scale(.98)}@keyframes pwaSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.pwa-install-banner{animation:none}.pwa-install-action:hover{transform:none}}.pwa-dialog-overlay{position:fixed;inset:0;background-color:#06040f59;backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-backdrop);padding:16px;animation:pwaDialogFadeIn .2s ease-out both}[data-theme=light] .pwa-dialog-overlay{background-color:#ffffff40}.pwa-dialog{position:relative;width:100%;max-width:360px;padding:36px 24px 20px;text-align:center;border-radius:var(--radius-2xl);background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));border:1px solid var(--glass-border-strong);box-shadow:var(--shadow-xl),var(--glass-highlight);z-index:var(--z-modal);animation:pwaDialogScaleIn .25s cubic-bezier(.2,.8,.2,1) both;transform-origin:center center;overflow:hidden}.pwa-dialog:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(135deg,color-mix(in srgb,white 40%,transparent) 0%,transparent 40%,transparent 60%,color-mix(in srgb,var(--primary) 35%,transparent) 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.pwa-dialog:after{content:"";position:absolute;top:-40%;left:-10%;width:120%;height:60%;background:radial-gradient(ellipse at center,var(--glow-primary) 0%,transparent 60%);filter:blur(20px);opacity:.7;pointer-events:none;z-index:-1}.pwa-dialog-icon{position:relative;width:72px;height:72px;border-radius:20px;background:var(--primary-gradient);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;color:#fff;box-shadow:0 16px 32px -12px var(--primary-shadow),inset 0 1px color-mix(in srgb,white 30%,transparent)}.pwa-dialog-icon:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at 30% 20%,color-mix(in srgb,white 35%,transparent),transparent 55%);pointer-events:none}.pwa-dialog-icon-installed{background:linear-gradient(135deg,var(--success) 0%,var(--success-dark) 100%);box-shadow:0 16px 32px -12px var(--success-shadow),inset 0 1px color-mix(in srgb,white 30%,transparent)}.pwa-dialog-title{font-size:20px;font-weight:700;letter-spacing:-.01em;color:var(--text-primary);margin:0 0 16px}.pwa-dialog-ios-hint{font-size:14px;color:var(--text-secondary);line-height:1.5;margin:0 0 16px}.pwa-dialog-installed-hint{font-size:15px;color:var(--text-secondary);margin:0 0 8px;line-height:1.5}.pwa-dialog-ios-steps{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;text-align:left}.pwa-dialog-ios-step{display:flex;align-items:center;gap:12px;padding:10px 12px;color:var(--text-primary);font-size:14px;line-height:1.4;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);backdrop-filter:blur(var(--glass-blur-sm));-webkit-backdrop-filter:blur(var(--glass-blur-sm))}.pwa-dialog-ios-step-icon{width:36px;height:36px;border-radius:10px;background:var(--primary-dim);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--primary)}.pwa-dialog-benefits{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;text-align:left}.pwa-dialog-benefit{display:flex;align-items:center;gap:14px;padding:12px 14px;color:var(--text-primary);font-size:14px;font-weight:500;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);backdrop-filter:blur(var(--glass-blur-sm));-webkit-backdrop-filter:blur(var(--glass-blur-sm))}.pwa-dialog-benefit svg{flex-shrink:0;width:20px;height:20px;padding:4px;color:var(--primary);background:var(--primary-dim);border-radius:8px;box-sizing:content-box}.pwa-dialog-later{background:none;border:none;color:var(--text-secondary);font-size:14px;cursor:pointer;padding:12px 8px 0;width:100%;transition:color .2s ease}.pwa-dialog-later:hover{color:var(--text-primary)}.pwa-dialog-later:active{transform:scale(.98)}@keyframes pwaDialogFadeIn{0%{opacity:0}to{opacity:1}}@keyframes pwaDialogScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.pwa-dialog-overlay,.pwa-dialog{animation:none}}.pwa-update-banner{position:fixed;bottom:calc(var(--bottom-nav-height) + var(--safe-area-bottom) + 16px);left:16px;right:16px;max-width:400px;margin:0 auto;padding:16px;border-radius:var(--radius-xl);z-index:var(--z-fixed);background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));border:1px solid var(--glass-border-strong);box-shadow:var(--shadow-lg),var(--glass-highlight);animation:pwaUpdateSlideUp .3s ease-out}@supports not (backdrop-filter: blur(1px)){.pwa-update-banner{background:var(--glass-bg-strong)}}@media(min-width:768px){.pwa-update-banner{bottom:24px}}.pwa-update-content{display:flex;gap:12px;align-items:flex-start}.pwa-update-icon{flex-shrink:0;width:44px;height:44px;border-radius:12px;background:var(--success-dim);color:var(--success);display:flex;align-items:center;justify-content:center}.pwa-update-text{flex:1;min-width:0}.pwa-update-title{font-size:15px;font-weight:600;color:var(--text-primary);margin:0 0 4px}.pwa-update-description{font-size:13px;color:var(--text-secondary);margin:0;line-height:1.4}.pwa-update-close{flex-shrink:0;width:32px;height:32px;border:1px solid transparent;background:transparent;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:10px;transition:all .15s ease}.pwa-update-close:hover{background:var(--glass-bg-hover);border-color:var(--glass-border);color:var(--text-primary)}.pwa-update-action{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:12px;padding:12px;border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--success) 0%,var(--success-dark) 100%);color:#fff;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 8px 20px -8px var(--success-shadow);transition:transform .15s ease,box-shadow .15s ease}.pwa-update-action:hover{transform:translateY(-1px);box-shadow:0 12px 24px -8px var(--success-shadow)}.pwa-update-action:active{transform:scale(.98)}@keyframes pwaUpdateSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.pwa-update-banner{animation:none}.pwa-update-action:hover{transform:none}}.notif-prompt-overlay{position:fixed;inset:0;background-color:#06040f59;backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-backdrop);padding:16px;animation:notifFadeIn .2s ease-out both}[data-theme=light] .notif-prompt-overlay{background-color:#ffffff40}.notif-prompt-dialog{position:relative;width:100%;max-width:360px;padding:36px 24px 20px;border-radius:var(--radius-2xl);background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));border:1px solid var(--glass-border-strong);box-shadow:var(--shadow-xl),var(--glass-highlight);animation:notifScaleIn .25s cubic-bezier(.2,.8,.2,1) both;transform-origin:center center;overflow:hidden}.notif-prompt-dialog:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(135deg,color-mix(in srgb,white 40%,transparent) 0%,transparent 40%,transparent 60%,color-mix(in srgb,var(--warning) 35%,transparent) 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.notif-prompt-dialog:after{content:"";position:absolute;top:-40%;left:-10%;width:120%;height:60%;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--warning) 22%,transparent) 0%,transparent 60%);filter:blur(20px);opacity:.7;pointer-events:none;z-index:-1}.notif-prompt-close{position:absolute;top:14px;right:14px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;color:var(--text-secondary);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:50%;backdrop-filter:blur(var(--glass-blur-sm));-webkit-backdrop-filter:blur(var(--glass-blur-sm));transition:all .2s ease}.notif-prompt-close:hover{background:var(--glass-bg-hover);color:var(--text-primary);transform:scale(1.05)}.notif-prompt-close:active{transform:scale(.95)}.notif-prompt-icon{position:relative;width:72px;height:72px;border-radius:20px;background:linear-gradient(135deg,var(--warning) 0%,var(--warning-dark) 100%);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;color:#fff;box-shadow:0 16px 32px -12px color-mix(in srgb,var(--warning) 45%,transparent),inset 0 1px color-mix(in srgb,white 30%,transparent);animation:notifBellSwing 1s ease-in-out .3s;transform-origin:top center}.notif-prompt-icon:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at 30% 20%,color-mix(in srgb,white 35%,transparent),transparent 55%);pointer-events:none}.notif-prompt-title{font-size:20px;font-weight:700;letter-spacing:-.01em;color:var(--text-primary);text-align:center;margin:0 0 12px}.notif-prompt-description{font-size:14px;color:var(--text-secondary);text-align:center;margin:0 0 24px;line-height:1.5;display:flex;align-items:center;justify-content:center;gap:6px}.notif-prompt-flame{color:var(--warning);flex-shrink:0}.notif-prompt-actions{margin-bottom:12px}.notif-prompt-later{background:none;border:none;color:var(--text-secondary);font-size:14px;cursor:pointer;padding:8px;width:100%;transition:color .15s ease}.notif-prompt-later:hover:not(:disabled){color:var(--text-primary)}.notif-prompt-later:active:not(:disabled){transform:scale(.98)}.notif-prompt-later:disabled{opacity:.5;cursor:not-allowed}@keyframes notifFadeIn{0%{opacity:0}to{opacity:1}}@keyframes notifScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes notifBellSwing{0%{transform:rotate(0)}15%{transform:rotate(12deg)}30%{transform:rotate(-10deg)}45%{transform:rotate(6deg)}60%{transform:rotate(-4deg)}75%{transform:rotate(2deg)}to{transform:rotate(0)}}@media(prefers-reduced-motion:reduce){.notif-prompt-overlay,.notif-prompt-dialog,.notif-prompt-icon{animation:none}}.debug-screen-name{position:fixed;right:6px;bottom:calc(6px + env(safe-area-inset-bottom,0px));z-index:2147483647;padding:4px 8px;border-radius:6px;background:#000c;color:#ffffffde;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;font-weight:500;line-height:1;white-space:nowrap;cursor:pointer;user-select:none;pointer-events:auto}.debug-screen-name:active{background:#000000eb}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInNoTransform{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes modalIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes modalOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes correctAnswer{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes successPulse{0%{box-shadow:0 0 0 0 var(--success-shadow)}70%{box-shadow:0 0 0 15px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes fadeInBackdrop{0%{opacity:0}to{opacity:1}}@keyframes fadeOutBackdrop{0%{opacity:1}to{opacity:0}}@keyframes slideOutLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-100%)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}@keyframes errorPulse{0%{box-shadow:0 0 0 0 var(--danger-shadow)}70%{box-shadow:0 0 0 10px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes slideInFromRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}:root{--mesh-bg: radial-gradient(circle at 10% 10%, #a5b4fc 0%, transparent 40%), radial-gradient(circle at 90% 20%, #fbcfe8 0%, transparent 35%), radial-gradient(circle at 50% 80%, #bae6fd 0%, transparent 45%), radial-gradient(circle at 80% 95%, #fde68a 0%, transparent 30%), linear-gradient(180deg, #fafafa 0%, #f5f5f5 100%);--mesh-noise-opacity: .12;--bg-body: #fafafa;--bg-primary: #fafafa;--bg-secondary: rgba(255, 255, 255, .55);--bg-tertiary: rgba(255, 255, 255, .35);--bg-nav: rgba(255, 255, 255, .6);--bg-card: rgba(255, 255, 255, .45);--bg-card-hover: rgba(255, 255, 255, .65);--text-primary: #0f172a;--text-secondary: rgba(15, 23, 42, .7);--text-tertiary: rgba(15, 23, 42, .5);--text-muted: rgba(15, 23, 42, .45);--border-color: rgba(255, 255, 255, .65);--border-light: rgba(15, 23, 42, .06);--shadow: rgba(15, 23, 42, .08);--shadow-strong: rgba(15, 23, 42, .16);--primary: #6366f1;--primary-dark: #4f46e5;--primary-hover: #5558e6;--primary-dim: rgba(99, 102, 241, .1);--primary-shadow: rgba(99, 102, 241, .3);--primary-gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--accent: #06b6d4;--accent-dim: rgba(6, 182, 212, .1);--success: #22c55e;--success-dark: #16a34a;--success-dim: rgba(34, 197, 94, .1);--success-shadow: rgba(34, 197, 94, .25);--danger: #ef4444;--danger-dark: #dc2626;--danger-dim: rgba(239, 68, 68, .1);--danger-shadow: rgba(239, 68, 68, .3);--warning: #f59e0b;--warning-dark: #d97706;--warning-dim: rgba(245, 158, 11, .1);--info: #3b82f6;--info-dim: rgba(59, 130, 246, .1);--info-bg: rgba(59, 130, 246, .04);--correct-bg: rgba(34, 197, 94, .08);--correct-border: #22c55e;--correct-text: #166534;--wrong-bg: rgba(239, 68, 68, .08);--wrong-border: #ef4444;--wrong-text: #991b1b;--warning-bg: rgba(245, 158, 11, .08);--warning-text: #92400e;--link-color: #6366f1;--link-hover: #4f46e5;--input-bg: var(--bg-secondary);--btn-text-light: white;--btn-text-dark: var(--bg-primary);--tag-bg: var(--primary);--tag-border: none;--tag-color: white;--pill-active-bg: var(--primary);--pill-active-color: white;--example-bg: rgba(99, 102, 241, .04);--example-border: none;--example-number-color: white;--level-beginner: #22c55e;--level-beginner-dim: rgba(34, 197, 94, .08);--level-elementary: #3b82f6;--level-elementary-dim: rgba(59, 130, 246, .08);--level-pre-intermediate: #f59e0b;--level-pre-intermediate-dim: rgba(245, 158, 11, .08);--level-intermediate: #8b5cf6;--level-intermediate-dim: rgba(139, 92, 246, .08);--level-upper-intermediate: #ec4899;--level-upper-intermediate-dim: rgba(236, 72, 153, .08);--level-advanced: #ef4444;--level-advanced-dim: rgba(239, 68, 68, .08);--shadow-sm: 0 2px 8px -2px rgba(15, 23, 42, .06);--shadow-md: 0 8px 24px -8px rgba(15, 23, 42, .12);--card-shadow: 0 8px 32px -12px rgba(15, 23, 42, .12);--shadow-lg: 0 20px 40px -16px rgba(15, 23, 42, .2);--shadow-xl: 0 30px 60px -20px rgba(15, 23, 42, .25);--surface-overlay: rgba(255, 255, 255, .5);--glow-primary: rgba(99, 102, 241, .14);--glow-success: rgba(34, 197, 94, .14);--heatmap-empty: var(--bg-tertiary);--heatmap-low: #c6e48b;--heatmap-medium: #7bc96f;--heatmap-high: #239a3b;--heatmap-max: #196127;--glass-bg: rgba(255, 255, 255, .45);--glass-bg-hover: rgba(255, 255, 255, .6);--glass-bg-strong: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .65);--glass-border-strong: rgba(255, 255, 255, .85);--glass-highlight: inset 0 1px 0 rgba(255, 255, 255, .7);--glass-blur: 24px;--glass-blur-sm: 12px;--glass-blur-lg: 40px;--glass-saturation: 180%;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--touch-target-min: 44px;--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px);--safe-area-right: env(safe-area-inset-right, 0px);--layout-padding: 16px;--container-max: 1120px;--bottom-nav-height: 64px;--toolbar-height: 56px;--topnav-height: 60px;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 24px;--radius-2xl: 28px;--radius-full: 9999px;--transition: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1)}[data-theme=dark]{--mesh-bg: radial-gradient(circle at 10% 10%, rgba(99, 102, 241, .35) 0%, transparent 40%), radial-gradient(circle at 90% 15%, rgba(236, 72, 153, .28) 0%, transparent 38%), radial-gradient(circle at 50% 80%, rgba(6, 182, 212, .3) 0%, transparent 45%), radial-gradient(circle at 85% 95%, rgba(251, 146, 60, .22) 0%, transparent 35%), linear-gradient(180deg, #0a0712 0%, #0f0b1c 100%);--mesh-noise-opacity: .2;--bg-body: #0a0712;--bg-primary: #0a0712;--bg-secondary: rgba(255, 255, 255, .09);--bg-tertiary: rgba(255, 255, 255, .06);--bg-nav: rgba(15, 11, 28, .72);--bg-card: rgba(255, 255, 255, .08);--bg-card-hover: rgba(255, 255, 255, .13);--text-primary: #f4f4f5;--text-secondary: rgba(244, 244, 245, .7);--text-tertiary: rgba(244, 244, 245, .45);--text-muted: rgba(244, 244, 245, .4);--border-color: rgba(255, 255, 255, .1);--border-light: rgba(255, 255, 255, .06);--shadow: rgba(0, 0, 0, .4);--shadow-strong: rgba(0, 0, 0, .6);--primary: #818cf8;--primary-dark: #6366f1;--primary-hover: #7c85f5;--primary-dim: rgba(99, 102, 241, .15);--primary-shadow: rgba(99, 102, 241, .4);--accent-dim: rgba(6, 182, 212, .15);--success: #4ade80;--success-dark: #22c55e;--success-dim: rgba(74, 222, 128, .15);--success-shadow: rgba(74, 222, 128, .3);--danger: #f87171;--danger-dark: #ef4444;--danger-dim: rgba(248, 113, 113, .15);--danger-shadow: rgba(248, 113, 113, .3);--warning-dark: #d97706;--warning-dim: rgba(251, 191, 36, .15);--info: #60a5fa;--info-dim: rgba(96, 165, 250, .15);--info-bg: rgba(96, 165, 250, .1);--correct-bg: rgba(74, 222, 128, .15);--correct-border: #4ade80;--correct-text: #86efac;--wrong-bg: rgba(248, 113, 113, .15);--wrong-border: #f87171;--wrong-text: #fca5a5;--warning-bg: rgba(251, 191, 36, .15);--warning-text: #fcd34d;--link-color: #818cf8;--link-hover: #a5b4fc;--input-bg: var(--bg-secondary);--btn-text-light: white;--btn-text-dark: var(--bg-primary);--tag-bg: var(--primary-dim);--tag-border: 1px solid var(--primary);--tag-color: var(--primary);--pill-active-bg: var(--primary-dim);--pill-active-color: var(--primary);--example-bg: var(--bg-secondary);--example-border: 1px solid var(--border-color);--example-number-color: var(--bg-primary);--level-beginner: #4ade80;--level-beginner-dim: rgba(74, 222, 128, .15);--level-elementary: #60a5fa;--level-elementary-dim: rgba(96, 165, 250, .15);--level-pre-intermediate: #fbbf24;--level-pre-intermediate-dim: rgba(251, 191, 36, .15);--level-intermediate: #a78bfa;--level-intermediate-dim: rgba(167, 139, 250, .15);--level-upper-intermediate: #f472b6;--level-upper-intermediate-dim: rgba(244, 114, 182, .15);--level-advanced: #fb7185;--level-advanced-dim: rgba(251, 113, 133, .15);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 8px 24px -6px rgba(0, 0, 0, .4);--card-shadow: 0 8px 32px -12px rgba(0, 0, 0, .5);--shadow-lg: 0 20px 40px -16px rgba(0, 0, 0, .55);--shadow-xl: 0 30px 60px -20px rgba(0, 0, 0, .65);--surface-overlay: rgba(255, 255, 255, .06);--glow-primary: rgba(129, 140, 248, .28);--glow-success: rgba(74, 222, 128, .22);--heatmap-empty: var(--bg-tertiary);--heatmap-low: #0e4429;--heatmap-medium: #006d32;--heatmap-high: #26a641;--heatmap-max: #39d353;--glass-bg: rgba(255, 255, 255, .08);--glass-bg-hover: rgba(255, 255, 255, .14);--glass-bg-strong: rgba(255, 255, 255, .18);--glass-border: rgba(255, 255, 255, .12);--glass-border-strong: rgba(255, 255, 255, .22);--glass-highlight: inset 0 1px 0 rgba(255, 255, 255, .1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;min-height:100vh}html{background-color:var(--bg-primary);background-image:var(--mesh-bg);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed}html:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:var(--mesh-noise-opacity);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.4' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:160px 160px;mix-blend-mode:overlay}#root{position:relative;z-index:1}@media(max-width:767px){html{background-attachment:scroll}}body{font-family:var(--font-body);-webkit-font-smoothing:antialiased;background-color:transparent;color:var(--text-primary);transition:color .3s ease}h1,h2,h3,.font-display{font-family:var(--font-display)}.skip-link{position:fixed;top:-100px;left:12px;z-index:var(--z-tooltip);padding:10px 16px;background:var(--primary);color:#fff;font-weight:600;border-radius:var(--radius-md);box-shadow:var(--shadow-md);text-decoration:none;transition:top .15s ease-out}.skip-link:focus,.skip-link:focus-visible{top:calc(12px + var(--safe-area-top));outline:2px solid var(--primary);outline-offset:2px}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button:focus:not(:focus-visible),a:focus:not(:focus-visible){outline:none}.glass-surface{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));border:1px solid var(--glass-border);box-shadow:var(--card-shadow),var(--glass-highlight)}.glass-surface--sm{backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-sm)) saturate(var(--glass-saturation))}.glass-surface--lg{backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation))}@supports not (backdrop-filter: blur(1px)){.glass-surface{background:var(--glass-bg-strong)}}.ui-modal-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:var(--space-4, 16px);z-index:var(--z-modal-backdrop);background-color:#06040f59;backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));animation:fadeInBackdrop .2s ease-out both}[data-theme=light] .ui-modal-backdrop{background-color:#ffffff40}.ui-modal-backdrop--closing{animation:fadeOutBackdrop .18s ease-out forwards}.ui-modal{position:relative;width:100%;max-width:420px;max-height:calc(100vh - 32px);overflow:auto;padding:var(--space-6);border-radius:var(--radius-2xl);background:var(--glass-bg-strong);backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(var(--glass-saturation));border:1px solid var(--glass-border-strong);box-shadow:0 24px 60px -12px #00000073,var(--glass-highlight);animation:modalIn .24s cubic-bezier(.2,.8,.2,1) both;will-change:transform,opacity;transform-origin:center center}.ui-modal--closing{animation:modalOut .18s ease-in forwards}@supports not (backdrop-filter: blur(1px)){.ui-modal{background:var(--glass-bg-strong)}}@media(prefers-reduced-motion:reduce){.ui-modal-backdrop,.ui-modal{animation:none!important}}button{font-family:inherit;color:inherit}input:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-dim)}.app-layout{max-width:var(--container-max);margin:0 auto;min-height:100vh;padding:var(--layout-padding)}@media(min-width:768px){.app-layout{padding:var(--space-6)}}.page-enter{animation:fadeIn .3s ease-out}.error-shake{animation:shake .4s ease-out}.error-input{border-color:var(--danger)!important;animation:errorPulse .6s ease-out}.stepper-container,.hide-scrollbar{overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.stepper-container::-webkit-scrollbar,.hide-scrollbar::-webkit-scrollbar{display:none}.animate-fadeIn{animation:fadeIn .4s ease-out both}@keyframes scaleOut{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.95)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDownOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}@keyframes pageSlideIn{0%{opacity:0}to{opacity:1}}@keyframes progressPulse{0%,to{opacity:1;box-shadow:0 0 0 0 var(--primary-shadow)}50%{opacity:.6;box-shadow:0 0 0 6px transparent}}.page-transition{animation:pageSlideIn .25s ease-out}html.theme-transitioning *,html.theme-transitioning *:before,html.theme-transitioning *:after{transition:background-color .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease,fill .3s ease!important}.question-card-enter{animation:slideInFromRight .3s ease-out}.question-card-fade-in{animation:fadeIn .3s ease-out}.question-option-enter{animation:fadeIn .3s ease-out backwards}@keyframes slideInFromRightSmall{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.btn-scale-effect{transition:transform .15s ease-out}.btn-scale-effect:hover{transform:scale(1.02)}.btn-scale-effect:active{transform:scale(.98)}.stagger-item{animation:fadeIn .4s ease-out both}.stagger-item:nth-child(1){animation-delay:0ms}.stagger-item:nth-child(2){animation-delay:50ms}.stagger-item:nth-child(3){animation-delay:.1s}.stagger-item:nth-child(4){animation-delay:.15s}.stagger-item:nth-child(5){animation-delay:.2s}.stagger-item:nth-child(6){animation-delay:.25s}.stagger-item:nth-child(7){animation-delay:.3s}.stagger-item:nth-child(8){animation-delay:.35s}.stagger-item:nth-child(9){animation-delay:.4s}.stagger-item:nth-child(10){animation-delay:.45s}@media(max-width:479px){html,body{height:100%;overflow:hidden}#root{height:100%;overflow-y:auto;overscroll-behavior-y:none;-webkit-overflow-scrolling:touch}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:479px){:root{--layout-padding: 12px}}[data-responsive=container]{width:100%;max-width:var(--container-max);margin:0 auto;padding-left:var(--space-4);padding-right:var(--space-4)}@media(max-width:479px){[data-responsive=container]{padding-left:var(--space-3);padding-right:var(--space-3)}}[data-responsive=grid]{display:grid;gap:var(--space-4)}@media(max-width:479px){[data-responsive=grid]{grid-template-columns:1fr!important;gap:var(--space-3)}}@media(min-width:480px)and (max-width:767px){[data-responsive=grid-2]{grid-template-columns:repeat(2,1fr)!important}}[data-responsive=stack-mobile]{display:flex}@media(max-width:767px){[data-responsive=stack-mobile]{flex-direction:column!important}}@media(max-width:767px){[data-responsive=hide-mobile],.layout-theme-btn{display:none!important}}[data-responsive=hide-desktop]{display:none}@media(max-width:767px){[data-responsive=hide-desktop]{display:block!important}}@media(max-width:767px){[data-responsive=full-mobile]{width:100%!important}}@media(max-width:359px){[data-responsive=text-sm]{font-size:12px!important}}@media(max-width:359px){.bottom-nav-label{display:none!important}}@media(max-width:767px){.page-enter{animation-duration:.2s}}.safe-area-top{padding-top:var(--safe-area-top)}.safe-area-bottom{padding-bottom:var(--safe-area-bottom)}.touch-target{min-height:var(--touch-target-min);min-width:var(--touch-target-min)}@media(max-width:767px){input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],textarea,select{font-size:16px!important}}
