:root,[data-theme=light]{--primary: #7c5cfc;--primary-light: #a78bfa;--primary-dark: #6d28d9;--accent: #ea580c;--accent-light: #f97316;--paper: #f7f7fb;--bg-secondary: #efeef6;--bg-tertiary: #e9e7f3;--card: #ffffff;--ink: #1b1a2e;--ink-soft: #5f5b78;--muted: #7a7690;--line: #e8e6f0;--divider: #f1f0f6;--ok: #059669;--warning: #d97706;--danger: #dc2626;--overlay: rgba(17, 16, 28, .5);--bg: var(--paper);--border: #e8e6f0;--accent-dim: color-mix(in srgb, #ea580c 14%, transparent);--text-strong: #1b1a2e;--text-muted: #7a7690;--scrollbar-track: transparent;--scrollbar-thumb: rgba(124, 92, 252, .28);--scrollbar-thumb-hover: rgba(124, 92, 252, .55);--radius-xs: 6px;--radius-sm: 10px;--radius-md: 14px;--radius: 18px;--radius-xl: 24px;--radius-pill: 999px;--shadow-sm: 0 1px 3px rgba(27, 26, 46, .05), 0 2px 6px rgba(27, 26, 46, .04);--shadow: 0 2px 8px rgba(27, 26, 46, .06), 0 8px 24px rgba(27, 26, 46, .05);--shadow-lg: 0 4px 16px rgba(27, 26, 46, .08), 0 16px 36px rgba(27, 26, 46, .1);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}[data-theme=dark]{--primary: #8b5cf6;--primary-light: #a78bfa;--primary-dark: #7c3aed;--accent: #fb923c;--accent-light: #fdba74;--paper: #0b0b12;--bg-secondary: #141420;--bg-tertiary: #1e1e2c;--card: #16161f;--ink: #f4f4fa;--ink-soft: #afaec4;--muted: #8a88a0;--line: #27273a;--divider: #1f1f2e;--ok: #34d399;--warning: #fbbf24;--danger: #f87171;--overlay: rgba(0, 0, 0, .65);--bg: var(--paper);--border: #27273a;--accent-dim: color-mix(in srgb, #fb923c 14%, transparent);--text-strong: #f4f4fa;--text-muted: #8a88a0;--scrollbar-track: transparent;--scrollbar-thumb: rgba(167, 139, 250, .35);--scrollbar-thumb-hover: rgba(167, 139, 250, .65);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35);--shadow: 0 2px 8px rgba(0, 0, 0, .45), 0 8px 24px rgba(0, 0, 0, .35);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .55), 0 16px 36px rgba(0, 0, 0, .65)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--primary: #8b5cf6;--primary-light: #a78bfa;--primary-dark: #7c3aed;--accent: #fb923c;--accent-light: #fdba74;--paper: #0b0b12;--bg-secondary: #141420;--bg-tertiary: #1e1e2c;--card: #16161f;--ink: #f4f4fa;--ink-soft: #afaec4;--muted: #8a88a0;--line: #27273a;--divider: #1f1f2e;--ok: #34d399;--warning: #fbbf24;--danger: #f87171;--overlay: rgba(0, 0, 0, .65);--border: #27273a;--accent-dim: color-mix(in srgb, #fb923c 14%, transparent);--text-strong: #f4f4fa;--text-muted: #8a88a0;--scrollbar-track: transparent;--scrollbar-thumb: rgba(167, 139, 250, .35);--scrollbar-thumb-hover: rgba(167, 139, 250, .65);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35);--shadow: 0 2px 8px rgba(0, 0, 0, .45), 0 8px 24px rgba(0, 0, 0, .35);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .55), 0 16px 36px rgba(0, 0, 0, .65)}}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:999px}::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:999px;border:1.5px solid transparent;background-clip:padding-box;transition:background-color .2s ease}::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover);background-clip:padding-box}::-webkit-scrollbar-corner{background:transparent}html,body,#root{height:100%;margin:0;padding:0;overflow:hidden}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5;transition:background-color .2s ease,color .2s ease;overflow:hidden}a{color:inherit;text-decoration:none}button{font-family:inherit;font-size:1rem;cursor:pointer;border:none;background:none;color:inherit}input,select,textarea{font-family:inherit;font-size:.95rem;width:100%;padding:12px 14px;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--card);color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}input:focus-visible,select:focus-visible,button:focus-visible,textarea:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.app-shell{display:flex;flex-direction:column;height:100%;height:100dvh;width:100%;overflow:hidden;position:relative}.app{max-width:680px;width:100%;margin:0 auto;flex:1;min-height:0;display:flex;flex-direction:column;padding:0 16px;box-sizing:border-box;overflow:hidden;position:relative}.app-content-slot{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;position:relative;width:100%}.topbar{display:flex;align-items:center;justify-content:space-between;padding:calc(14px + env(safe-area-inset-top,0px)) 0 10px;flex-shrink:0;z-index:50;background:var(--bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:32px;height:32px;border-radius:10px;background:var(--primary);display:grid;place-items:center;color:#fff;font-weight:800;font-size:17px;box-shadow:0 2px 8px #7c5cfc59}.offline-banner{flex-shrink:0;padding:8px 16px;font-size:.82rem;font-weight:500;z-index:100;transition:all .25s ease-out;animation:offlineBannerSlide .25s ease-out}@keyframes offlineBannerSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.offline-banner-offline{background:#1c1e2af2;color:var(--ink);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.08)}.offline-banner-syncing{background:#7c5cfc1f;color:var(--accent);backdrop-filter:blur(10px);border-bottom:1px solid rgba(124,92,252,.25)}.offline-banner-synced{background:#10b98124;color:#10b981;backdrop-filter:blur(10px);border-bottom:1px solid rgba(16,185,129,.28)}.offline-banner-inner{max-width:680px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px}.offline-banner-status{display:flex;align-items:center;gap:8px}.offline-banner-dot{width:7px;height:7px;border-radius:50%;background:#f59e0b;box-shadow:0 0 6px #f59e0b99;flex-shrink:0}.offline-banner-check{font-weight:700;color:#10b981}.offline-banner-spinner{width:12px;height:12px;border:2px solid rgba(124,92,252,.25);border-top-color:var(--accent);border-radius:50%;animation:offlineSpinner .8s linear infinite;flex-shrink:0}@keyframes offlineSpinner{to{transform:rotate(360deg)}}.offline-queue-badge{background:#ffffff0f;color:var(--muted);border:1px solid rgba(255,255,255,.08);padding:2px 8px;border-radius:var(--radius-pill);font-size:.72rem;font-weight:500;white-space:nowrap}.offline-sync-btn{padding:4px 12px;font-size:.75rem;background:var(--primary);color:#fff;border-radius:var(--radius-pill)}.offline-entry-pill{display:inline-flex;align-items:center;gap:4px;font-size:.7rem;font-weight:500;color:var(--muted);background:#ffffff0d;border:1px solid rgba(255,255,255,.08);padding:1px 7px;border-radius:var(--radius-pill);vertical-align:middle}h1,h2,h3{letter-spacing:-.02em;margin:0;line-height:1.25}h1{font-size:1.85rem;font-weight:700}h2{font-size:1.35rem;font-weight:700}h3{font-size:1.05rem;font-weight:600}.muted{color:var(--muted)}.small{font-size:.85rem}.font-medium{font-weight:600}.font-bold{font-weight:700}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.stack{display:grid;gap:14px}.stack-sm{display:grid;gap:8px}.stack-lg{display:grid;gap:20px}.row{display:flex;align-items:center;gap:10px}.spread{display:flex;align-items:center;justify-content:space-between;gap:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);transition:transform .15s ease,box-shadow .15s ease}.card:hover{box-shadow:var(--shadow-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:var(--radius-md);font-weight:600;font-size:.95rem;background:var(--primary);color:#fff;box-shadow:0 4px 14px #7c5cfc40;transition:transform .08s ease,opacity .15s ease,background-color .15s ease,box-shadow .15s ease}.btn:hover:not(:disabled){background:var(--primary-dark)}.btn:active:not(:disabled){transform:scale(.98)}button:disabled,.btn:disabled,.btn[disabled]{opacity:.45!important;cursor:not-allowed!important;pointer-events:none!important;box-shadow:none!important;transform:none!important}.btn-accent{background:var(--accent);color:#fff;box-shadow:0 4px 14px #ea580c40}.btn-accent:hover{background:var(--accent-light)}.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line);box-shadow:none}.btn-ghost:hover{background:var(--bg-secondary)}.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--danger);box-shadow:none}.btn-danger:hover{background:color-mix(in srgb,var(--danger) 10%,transparent)}.btn-block{width:100%}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);font-size:.78rem;font-weight:600;background:var(--bg-secondary);color:var(--ink)}.pill-primary{background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary)}.pill-accent{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.pill-plain{background:var(--bg-secondary);color:var(--ink-soft)}.nav{position:fixed;left:0;right:0;bottom:0;background:color-mix(in srgb,var(--card) 90%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:40;transition:all .2s ease}@media (min-width: 681px){.nav{max-width:640px;left:50%;transform:translate(-50%);bottom:16px;border-radius:var(--radius-xl);border:1px solid var(--line);box-shadow:0 12px 36px #1b1a2e24;padding-bottom:0}}.nav-inner{display:flex;width:100%;height:64px}.nav-item{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);text-decoration:none;transition:color .15s ease,transform .1s ease;user-select:none}.nav-item:active{transform:scale(.96)}.nav-icon{display:grid;place-items:center;width:24px;height:24px;color:var(--muted);transition:color .15s ease}.nav-label{font-size:.72rem;font-weight:500;color:var(--muted);transition:color .15s ease,font-weight .15s ease}.nav-item.active .nav-icon{color:var(--primary)}.nav-item.active .nav-label{color:var(--primary);font-weight:700}.course-card{display:grid;gap:12px;cursor:pointer;border:1px solid var(--line);padding:0;overflow:hidden;border-radius:var(--radius);background:var(--card)}.cover{height:164px;background:var(--bg-tertiary);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.cover-img{width:100%;height:100%;object-fit:cover}.cover-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.cover-emoji{font-size:3.2rem;line-height:1}.cover-letters{font-size:.75rem;font-weight:700;letter-spacing:.08em;color:var(--muted);opacity:.6}.cover-fav-btn{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:var(--radius-pill);background:var(--overlay);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;color:#fff;transition:transform .15s ease,color .15s ease}.cover-fav-btn:hover{transform:scale(1.1);color:var(--danger)}.cover-beginner{background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 20%,var(--bg-tertiary)) 0%,var(--bg-tertiary) 100%)}.cover-intermediate{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 20%,var(--bg-tertiary)) 0%,var(--bg-tertiary) 100%)}.cover-advanced{background:linear-gradient(135deg,color-mix(in srgb,#dc2626 20%,var(--bg-tertiary)) 0%,var(--bg-tertiary) 100%)}.card-body{padding:14px 16px 16px;display:grid;gap:8px}.list{display:grid;gap:10px}.list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--card)}.bar{height:8px;border-radius:var(--radius-pill);background:var(--line);overflow:hidden}.bar>span{display:block;height:100%;background:var(--primary);border-radius:var(--radius-pill);transition:width .3s ease}.tabs{display:flex;gap:6px;padding:4px;background:var(--bg-secondary);border-radius:var(--radius-pill)}.tabs button{flex:1;padding:8px 12px;border-radius:var(--radius-pill);font-weight:600;font-size:.88rem;color:var(--muted);transition:all .15s ease}.tabs button[aria-selected=true]{background:var(--card);color:var(--ink);box-shadow:var(--shadow-sm)}.tabs-pill{padding:3px;background:var(--bg-secondary)}.tabs-btn{padding:4px 10px!important;font-size:.78rem!important}.field{display:grid;gap:6px}.field label{font-size:.85rem;font-weight:600;color:var(--ink-soft)}.status{padding:12px 16px;border-radius:var(--radius-md);font-size:.9rem}.status-error{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 30%,transparent)}.status-ok{background:color-mix(in srgb,var(--ok) 12%,transparent);color:var(--ok);border:1px solid color-mix(in srgb,var(--ok) 30%,transparent)}.skeleton{height:14px;border-radius:8px;background:var(--bg-tertiary);animation:pulse 1.6s infinite ease-in-out}@keyframes pulse{0%{opacity:.7}50%{opacity:.35}to{opacity:.7}}.hero{display:grid;gap:6px;padding:18px 0 6px}.hero p{margin:0;color:var(--muted)}.kpi{display:grid;gap:2px}.kpi b{font-size:1.5rem;letter-spacing:-.03em;color:var(--ink)}.kpi span{font-size:.8rem;color:var(--muted)}.empty{padding:36px 20px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--radius);background:var(--card)}.greeting-block{background:linear-gradient(135deg,#7c5cfc,#6d28d9);color:#fff;border-radius:var(--radius);padding:20px 22px;box-shadow:0 8px 24px #6d28d940;margin-bottom:4px}[data-theme=dark] .greeting-block{background:linear-gradient(135deg,#241e3d,#16161f);border:1px solid var(--line);color:var(--ink);box-shadow:var(--shadow)}.greeting-content{display:flex;align-items:center;justify-content:space-between;gap:16px}.greeting-date{color:#ffffffd1!important;font-size:.82rem;text-transform:capitalize}[data-theme=dark] .greeting-date{color:var(--muted)!important}.greeting-title{margin:3px 0 6px;font-size:1.45rem;font-weight:700;color:#fff}[data-theme=dark] .greeting-title{color:var(--ink)}.greeting-quote{color:#ffffffe0!important;font-size:.85rem;line-height:1.35}[data-theme=dark] .greeting-quote{color:var(--ink-soft)!important}.greeting-avatar-wrap{flex-shrink:0}.greeting-avatar{width:58px;height:58px;border-radius:50%;object-fit:cover;border:2px solid #ffffff}.greeting-avatar-placeholder{display:grid;place-items:center;background:#ffffff38;color:#fff;font-weight:800;font-size:1.2rem;border:2px solid rgba(255,255,255,.4)}[data-theme=dark] .greeting-avatar-placeholder{background:var(--bg-tertiary);color:var(--primary);border-color:var(--line)}.streak-card{display:flex;align-items:center;gap:16px;padding:16px 20px;background:var(--bg-secondary);border:1px solid var(--line);border-radius:var(--radius)}.streak-badge{width:52px;height:52px;border-radius:50%;background:var(--bg-tertiary);display:grid;place-items:center;font-size:1.7rem}.streak-info{flex:1}.streak-count{display:flex;align-items:baseline;gap:6px}.streak-count strong{font-size:1.85rem;line-height:1;color:var(--ink)}.streak-level-pill{font-weight:700;color:var(--primary)}.streak-next-hint{color:var(--muted);font-size:.82rem}.streak-best{text-align:right;display:grid;gap:2px;background:var(--bg-tertiary);padding:6px 12px;border-radius:var(--radius-sm)}.streak-best-label{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.streak-best-val{font-size:1.05rem;font-weight:700;color:var(--ink)}.home-quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:10px}.home-quick-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:12px 6px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:var(--ink);transition:transform .15s ease,background .15s ease,border-color .15s ease;user-select:none;-webkit-tap-highlight-color:transparent}.home-quick-btn:active{transform:scale(.96);background:var(--bg-hover, var(--line))}.home-quick-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex-shrink:0;transition:transform .15s ease}.home-quick-btn:active .home-quick-icon{transform:scale(.92)}.home-quick-title{font-size:.78rem;font-weight:600;color:var(--ink);letter-spacing:-.01em;text-align:center;white-space:nowrap}.bmi-card{border-left:5px solid var(--ok)}.bmi-card.bmi-underweight{border-left-color:var(--warning)}.bmi-card.bmi-normal{border-left-color:var(--ok)}.bmi-card.bmi-overweight{border-left-color:var(--warning)}.bmi-card.bmi-obese{border-left-color:var(--danger)}.bmi-value-row{display:flex;align-items:baseline;gap:12px;margin-top:4px}.bmi-number{font-size:2rem;font-weight:800;line-height:1}.bmi-pill-normal{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}.bmi-pill-underweight,.bmi-pill-overweight{background:color-mix(in srgb,var(--warning) 18%,transparent);color:var(--warning)}.bmi-pill-obese{background:color-mix(in srgb,var(--danger) 18%,transparent);color:var(--danger)}.bmi-scale-bar{width:120px;height:6px;border-radius:var(--radius-pill);background:linear-gradient(to right,#fbbf24,#059669,#fbbf24 70%,#dc2626);position:relative;align-self:center}.bmi-marker{position:absolute;top:-3px;width:12px;height:12px;border-radius:50%;background:var(--ink);border:2px solid #fff;transform:translate(-50%)}.weight-chart-card{position:relative;overflow:hidden}.chart-wrapper{position:relative;width:100%}.chart-svg{width:100%;height:180px;display:block}.chart-dot{cursor:pointer;transition:r .15s ease,fill .15s ease}.chart-dot:hover{fill:var(--accent)}.chart-tooltip{position:absolute;transform:translate(-50%,-120%);background:var(--ink);color:var(--paper);padding:6px 10px;border-radius:8px;font-size:.75rem;pointer-events:none;display:grid;gap:2px;box-shadow:var(--shadow-lg);white-space:nowrap;z-index:10}.chart-axis-labels{padding-top:6px}.macro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.macro-card{background:var(--bg-secondary);border-radius:var(--radius-md);padding:10px 12px;display:grid;gap:6px}.macro-header{display:flex;align-items:center;gap:6px}.macro-dot{width:8px;height:8px;border-radius:50%}.macro-val{font-size:1.05rem;font-weight:700;color:var(--ink)}.macro-bar{height:4px;border-radius:var(--radius-pill);background:var(--line);overflow:hidden}.macro-bar-fill{height:100%;border-radius:var(--radius-pill)}.trainers-carousel{display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;padding-bottom:10px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.trainer-card{border:1px solid var(--line);background:var(--card);border-radius:16px;padding:16px;box-sizing:border-box;flex:0 0 280px;max-width:320px;scroll-snap-align:start;transition:transform .15s ease,box-shadow .15s ease}.trainer-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000000f}.trainer-avatar{width:56px;height:56px;min-width:56px;min-height:56px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid var(--line);background:var(--bg-secondary)}.trainer-avatar.large{width:72px;height:72px;min-width:72px;min-height:72px}.trainer-avatar-placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#7c5cfc,#6d28d9);color:#fff;font-weight:700;font-size:1.1rem;flex-shrink:0}@media (max-width: 480px){.trainers-carousel .trainer-card{flex:0 0 85vw;max-width:320px}}.custom-video-player{position:relative;background:#000;border-radius:var(--radius, 16px);overflow:hidden;aspect-ratio:16 / 9;user-select:none;-webkit-user-select:none;touch-action:manipulation;box-shadow:0 8px 32px #00000059}.custom-video-player.scrubbing{cursor:grabbing!important}.custom-video-player.fullscreen{position:fixed;inset:0;width:100vw;height:100vh;max-width:100vw;max-height:100vh;border-radius:0;z-index:9999;aspect-ratio:unset}.custom-video-player video{width:100%;height:100%;object-fit:contain;display:block}.player-video-hit-area{cursor:pointer}.player-controls-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.72) 0%,rgba(0,0,0,.15) 24%,transparent 50%,rgba(0,0,0,.25) 68%,rgba(0,0,0,.88) 100%);display:flex;flex-direction:column;justify-content:space-between;padding:max(16px,env(safe-area-inset-top,16px)) max(16px,env(safe-area-inset-right,16px)) max(16px,env(safe-area-inset-bottom,16px)) max(16px,env(safe-area-inset-left,16px));transition:opacity .28s cubic-bezier(.16,1,.3,1);pointer-events:auto}.player-controls-overlay.hidden{opacity:0;pointer-events:none;cursor:none}.player-controls-overlay.visible{opacity:1}.player-action-flash{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:28;animation:playPausePop .55s cubic-bezier(.16,1,.3,1) forwards}.player-action-flash-icon{width:76px;height:76px;border-radius:50%;background:#000000a6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1.5px solid rgba(255,255,255,.3);color:#fff;display:grid;place-items:center;box-shadow:0 8px 32px #00000080}@keyframes playPausePop{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}35%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}65%{opacity:.9;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1.25)}}.player-center-controls{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;gap:24px;pointer-events:auto}.player-center-play-circle{width:68px;height:68px;border-radius:50%;background:#000000a6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:2px solid rgba(255,255,255,.28);color:#fff;display:grid;place-items:center;cursor:pointer;transition:transform .16s cubic-bezier(.16,1,.3,1),background-color .16s ease,border-color .16s ease;box-shadow:0 6px 24px #00000073}.player-center-play-circle:hover{transform:scale(1.12);background:var(--accent, #6366f1);border-color:#fff9}.player-center-play-circle:active{transform:scale(.95)}.player-skip-circle{width:50px;height:50px;border-radius:50%;background:#00000085;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);color:#fff;display:grid;place-items:center;cursor:pointer;transition:transform .16s cubic-bezier(.16,1,.3,1),background-color .16s ease}.player-skip-circle:hover{transform:scale(1.1);background:#ffffff38}.player-skip-circle:active{transform:scale(.92)}.player-seek-feedback{position:absolute;top:50%;transform:translateY(-50%);padding:8px 16px;background:#000c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.18);border-radius:24px;color:#fff;font-weight:700;font-size:.92rem;display:flex;align-items:center;gap:8px;pointer-events:none;z-index:25;animation:pulseFade .65s cubic-bezier(.16,1,.3,1) forwards;box-shadow:0 4px 18px #0006}.player-seek-feedback-icon{display:flex;align-items:center;justify-content:center}.player-seek-feedback.left{left:14%}.player-seek-feedback.right{right:14%}@keyframes pulseFade{0%{opacity:0;transform:translateY(-50%) scale(.85)}30%{opacity:1;transform:translateY(-50%) scale(1.05)}75%{opacity:1;transform:translateY(-50%) scale(1)}to{opacity:0;transform:translateY(-50%) scale(.92)}}.player-bottom-bar{display:grid;gap:8px;pointer-events:auto}.player-progress-area{position:relative;width:100%;height:22px;display:flex;align-items:center;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none}.player-progress-track{position:relative;width:100%;height:4px;background:#ffffff38;border-radius:4px;transition:height .14s ease}.player-progress-area:hover .player-progress-track,.player-progress-area.dragging .player-progress-track{height:7px}.player-buffer-fill{position:absolute;top:0;left:0;height:100%;background:#ffffff59;border-radius:4px;pointer-events:none;transition:width .2s ease}.player-progress-fill{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,#6366f1 0%,var(--accent, #8b5cf6) 100%);border-radius:4px;pointer-events:none}.player-progress-thumb{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);box-shadow:0 2px 6px #00000080;pointer-events:none;transition:transform .12s ease,box-shadow .12s ease}.player-progress-area:hover .player-progress-thumb{transform:translate(-50%,-50%) scale(1.25);box-shadow:0 0 0 3px #6366f14d,0 2px 8px #00000080}.player-progress-area.dragging .player-progress-thumb{transform:translate(-50%,-50%) scale(1.45);box-shadow:0 0 0 5px #6366f166,0 4px 12px #0009}.player-scrub-tooltip{position:absolute;top:-28px;transform:translate(-50%);background:#12121aeb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.18);color:#fff;padding:3px 8px;border-radius:6px;font-size:.74rem;font-weight:700;font-variant-numeric:tabular-nums;pointer-events:none;white-space:nowrap;box-shadow:0 4px 14px #0006}.player-controls-row{display:flex;align-items:center;justify-content:space-between;color:#fff}.player-btn{color:#fff;background:transparent;border:none;padding:7px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;outline:none;transition:background-color .15s ease,transform .1s ease,color .15s ease}.player-btn:focus{outline:none}.player-btn:focus-visible{outline:2px solid rgba(255,255,255,.45);outline-offset:2px}.player-btn:hover{background:#ffffff2e}.player-btn:active{transform:scale(.92)}.player-btn.pill-btn{font-size:.82rem;font-weight:700;background:#ffffff29;padding:4px 11px;border-radius:var(--radius-pill, 9999px);letter-spacing:.02em}.player-btn.pill-btn:hover{background:#ffffff47}.player-time-display-btn{background:transparent;border:none;padding:4px 6px;border-radius:6px;cursor:pointer;transition:background-color .15s ease;display:inline-flex;align-items:center}.player-time-display-btn:hover{background:#ffffff1f}.player-time-display{font-size:.83rem;font-variant-numeric:tabular-nums;color:#ffffffeb;font-weight:600;letter-spacing:.02em}.player-volume-container{position:relative;display:flex;align-items:center}.player-volume-slider-wrap{width:0;overflow:hidden;display:flex;align-items:center;transition:width .22s cubic-bezier(.16,1,.3,1),margin-left .22s ease;margin-left:0}.player-volume-container:hover .player-volume-slider-wrap,.player-volume-slider-wrap.active{width:82px;margin-left:4px}.player-volume-slider{width:78px;height:4px;-webkit-appearance:none;appearance:none;border-radius:2px;outline:none;cursor:pointer;transition:opacity .15s ease}.player-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0006;cursor:pointer;transition:transform .1s ease}.player-volume-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.player-resume-prompt{position:absolute;top:14px;left:50%;transform:translate(-50%);background:#12121ae0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.2);border-radius:16px;padding:8px 14px;display:flex;align-items:center;justify-content:space-between;gap:14px;z-index:35;box-shadow:0 10px 30px #00000073;max-width:92%;animation:slideDownFade .3s cubic-bezier(.16,1,.3,1)}@keyframes slideDownFade{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}.player-settings-overlay{position:absolute;inset:0;background:#000000a6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:60;padding:16px}.player-settings-panel{width:100%;max-width:320px;background:var(--bg-card, #1a1a24);color:var(--ink, #ffffff);border:1px solid var(--line, rgba(255, 255, 255, .15));border-radius:20px;padding:18px;box-shadow:0 14px 42px #0009;display:flex;flex-direction:column;gap:12px;animation:modalScaleIn .22s cubic-bezier(.16,1,.3,1)}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.player-settings-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line, rgba(255, 255, 255, .1));padding-bottom:10px}.player-settings-title{font-size:1.05rem;font-weight:700;margin:0}.player-settings-row{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-radius:12px;background:var(--bg-secondary, rgba(255, 255, 255, .05));cursor:pointer;transition:background-color .15s ease,transform .1s ease;font-size:.92rem;font-weight:500}.player-settings-row:hover{background:var(--accent-tint, rgba(99, 102, 241, .16))}.player-settings-row:active{transform:scale(.98)}.player-settings-row.highlight{background:#6366f11a;border:1px solid rgba(99,102,241,.22)}.player-settings-row.highlight:hover{background:#6366f133}.player-settings-value{font-size:.85rem;color:var(--muted, rgba(255, 255, 255, .65));display:inline-flex;align-items:center}.player-settings-sublist{display:flex;flex-direction:column;gap:6px}.player-settings-option{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-radius:10px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background-color .12s ease}.player-settings-option:hover{background:#ffffff14}.player-settings-option.active{background:var(--accent-tint, rgba(99, 102, 241, .22));color:var(--accent, #6366f1);font-weight:700}.player-buffering-spinner{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:15}.spinner-ring{width:44px;height:44px;border:4px solid rgba(255,255,255,.2);border-top-color:var(--accent, #6366f1);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.player-error-overlay{position:absolute;inset:0;background:#000000e0;display:grid;place-content:center;gap:12px;text-align:center;color:#fff;padding:20px}.player-holding-2x-badge{position:absolute;top:max(20px,env(safe-area-inset-top,20px));left:50%;transform:translate(-50%);z-index:36;pointer-events:none;animation:fadeInFast .2s cubic-bezier(.16,1,.3,1)}.player-holding-2x-pill{background:#12121ae0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.25);color:#fff;font-size:.85rem;font-weight:700;padding:6px 14px;border-radius:var(--radius-pill, 9999px);display:flex;align-items:center;gap:8px;box-shadow:0 4px 18px #00000080;letter-spacing:.02em}.player-holding-2x-arrows{color:var(--accent, #6366f1);font-size:.75rem}.player-gesture-hud{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:38;animation:modalScaleIn .16s cubic-bezier(.16,1,.3,1)}.player-gesture-hud-box{background:#12121ad9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.2);border-radius:20px;padding:16px 24px;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:104px;box-shadow:0 8px 32px #00000080}.player-gesture-hud-icon{font-size:2rem;line-height:1}.player-gesture-hud-title{font-size:1.15rem;font-weight:800;font-variant-numeric:tabular-nums}.player-gesture-hud-subtitle{font-size:.75rem;color:#ffffffb3;text-transform:uppercase;letter-spacing:.06em}.player-screen-lock-floating{position:absolute;top:max(16px,env(safe-area-inset-top,16px));left:max(16px,env(safe-area-inset-left,16px));pointer-events:auto}.lock-pill{background:#000000bf;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.25);color:#fff;display:inline-flex;align-items:center;gap:8px;padding:6px 14px;box-shadow:0 4px 18px #00000080}.lock-pill:hover{background:var(--accent, #6366f1);border-color:#ffffff80}.player-end-card-overlay{position:absolute;inset:0;background:#000000d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:grid;place-items:center;padding:24px;animation:fadeInFast .3s cubic-bezier(.16,1,.3,1)}.player-end-card-content{text-align:center;max-width:360px;display:flex;flex-direction:column;align-items:center}.player-end-card-badge{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#10b981,#059669);color:#fff;display:grid;place-items:center;box-shadow:0 4px 20px #10b98166;margin-bottom:12px}.player-end-card-title{color:#fff;font-size:1.4rem;font-weight:800;margin:0 0 6px}.player-end-card-desc{color:#ffffffbf;font-size:.92rem;margin:0}@keyframes fadeInFast{0%{opacity:0}to{opacity:1}}.modal-backdrop{position:fixed;inset:0;background:var(--overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px;z-index:1000;animation:fadeIn .15s ease}.modal-content{width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:scaleIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}.toast-container{position:fixed;top:18px;left:50%;transform:translate(-50%);z-index:1100;display:grid;gap:8px;width:calc(100% - 32px);max-width:420px;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-md);background:var(--card);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-lg);pointer-events:auto;font-size:.9rem;font-weight:500;animation:toastSlideIn .2s cubic-bezier(.16,1,.3,1)}.toast-success{border-left:4px solid var(--ok)}.toast-error{border-left:4px solid var(--danger)}.toast-info{border-left:4px solid var(--primary)}.toast-icon{font-weight:800;font-size:1.1rem}.toast-success .toast-icon{color:var(--ok)}.toast-error .toast-icon{color:var(--danger)}.toast-info .toast-icon{color:var(--primary)}.toast-text{flex:1}.toast-close{color:var(--muted);font-size:.85rem;padding:4px}@keyframes toastSlideIn{0%{transform:translateY(-12px);opacity:0}to{transform:translateY(0);opacity:1}}.food-hits-list{max-height:280px;overflow-y:auto}.food-hit-item{cursor:pointer;transition:background-color .1s ease}.food-hit-item:hover,.food-hit-selected{background:color-mix(in srgb,var(--primary) 10%,var(--card));border-color:color-mix(in srgb,var(--primary) 40%,var(--line))}.filter-chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.filter-chips::-webkit-scrollbar{display:none}.chip{padding:6px 14px;border-radius:var(--radius-pill);font-size:.85rem;font-weight:600;background:var(--bg-secondary);border:1px solid var(--line);color:var(--ink-soft);white-space:nowrap;transition:all .15s ease}.chip:hover{background:var(--bg-tertiary)}.chip.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 2px 8px #7c5cfc4d}.error-state-card{text-align:center;padding:24px 16px}.error-state-icon{font-size:2.2rem;margin-bottom:6px}.screen-header-large{padding:12px 0 16px;width:100%}.screen-header-large-inner{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.screen-header-title{font-size:1.75rem;font-weight:700;line-height:1.2;letter-spacing:-.02em;color:var(--ink);margin:0}.screen-header-subtitle{font-size:.95rem;color:var(--muted);margin:4px 0 0;line-height:1.35}.screen-header-action{flex-shrink:0}.screen-header-compact{height:52px;display:flex;align-items:center;border-bottom:1px solid var(--line);margin-bottom:16px;background:var(--paper);position:sticky;top:0;z-index:40}.screen-header-compact-inner{width:100%;display:flex;align-items:center;justify-content:space-between}.screen-header-side{width:48px;display:flex;align-items:center}.screen-header-side.left{justify-content:flex-start}.screen-header-side.right{justify-content:flex-end}.screen-header-center{flex:1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.screen-header-compact-title{font-size:1.05rem;font-weight:600;color:var(--ink)}.screen-header-back-btn{width:38px;height:38px;border-radius:var(--radius-pill);display:grid;place-items:center;color:var(--ink);cursor:pointer;transition:background-color .15s ease}.screen-header-back-btn:hover{background:var(--bg-secondary)}.program-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm);text-decoration:none;color:inherit;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;position:relative}.program-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--primary) 30%,var(--line))}.program-card-cover-wrap{position:relative;width:100%;height:184px;overflow:hidden;background:var(--bg-tertiary)}.program-card-cover-img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.program-card:hover .program-card-cover-img{transform:scale(1.03)}.program-card-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 18%,var(--bg-tertiary)) 0%,var(--bg-tertiary) 100%)}.program-card-placeholder-emoji{font-size:3.2rem;line-height:1}.program-card-placeholder-letters{font-size:.75rem;font-weight:700;letter-spacing:.08em;color:var(--muted);opacity:.6}.program-card-fav-btn{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;background:#00000073;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:3;transition:transform .15s ease,background-color .15s ease}.program-card-fav-btn:hover{transform:scale(1.12);background:#0009}.program-card-fav-btn:active{transform:scale(.92)}.program-card-content{padding:16px;display:flex;flex-direction:column;gap:8px;flex:1}.program-card-title{font-size:1.12rem;font-weight:700;color:var(--ink);margin:0;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.program-card-subtitle{font-size:.85rem;color:var(--muted);margin:0;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.program-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}.program-card-rating{display:flex;align-items:center;gap:4px}.program-card-price-row{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}.program-card-price{font-size:1.15rem;font-weight:700;color:var(--ink)}.programs-grid{display:grid;grid-template-columns:1fr;gap:16px}@media (min-width: 600px){.programs-grid{grid-template-columns:repeat(2,1fr)}}.screen-root,.profile-screen-root,.screen-main-block,.profile-main-block{flex:1;min-height:0;height:100%;display:flex;flex-direction:column;overflow:hidden;position:relative;width:100%}.screen-header-pinned,.profile-header-pinned{flex-shrink:0;padding-bottom:8px;background:var(--bg);z-index:10}.screen-scroll-container,.profile-scroll-container{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;padding-right:2px}.screen-scroll-container::-webkit-scrollbar,.profile-scroll-container::-webkit-scrollbar,.screen-default-container::-webkit-scrollbar,.screen::-webkit-scrollbar{width:5px}.screen-scroll-container::-webkit-scrollbar-track,.profile-scroll-container::-webkit-scrollbar-track,.screen-default-container::-webkit-scrollbar-track,.screen::-webkit-scrollbar-track{background:transparent}.screen-scroll-container::-webkit-scrollbar-thumb,.profile-scroll-container::-webkit-scrollbar-thumb,.screen-default-container::-webkit-scrollbar-thumb,.screen::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}.screen-scroll-container::-webkit-scrollbar-thumb:hover,.profile-scroll-container::-webkit-scrollbar-thumb:hover,.screen-default-container::-webkit-scrollbar-thumb:hover,.screen::-webkit-scrollbar-thumb:hover{background:var(--muted)}.screen-scroll-content,.profile-scroll-content{display:flex;flex-direction:column;padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}.screen-main-block.no-nav .screen-scroll-content,.app-no-chrome .screen-scroll-content{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.screen,.screen-default-container{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;padding-right:2px;padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}.app-no-chrome .screen,.app-no-chrome .screen-default-container{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.profile-modals-layer{position:fixed;inset:0;pointer-events:none;z-index:1000}.profile-modals-layer>*{pointer-events:auto}.profile-user-card{display:flex;align-items:center;gap:16px;padding:16px 20px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg, 16px);box-shadow:var(--shadow-sm);cursor:pointer;transition:background-color .15s ease,transform .08s ease,box-shadow .15s ease;width:100%;text-align:left;margin-bottom:12px;-webkit-tap-highlight-color:transparent}.profile-user-card:hover{background:var(--bg-secondary);box-shadow:var(--shadow)}.profile-user-card:active{transform:scale(.992)}.profile-avatar-wrap{position:relative;flex-shrink:0}.profile-avatar{width:58px;height:58px;border-radius:var(--radius-pill);background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-size:1.4rem;font-weight:700;display:grid;place-items:center;flex-shrink:0;box-shadow:0 4px 12px #7c5cfc40}.profile-avatar-badge{position:absolute;bottom:-2px;right:-2px;width:22px;height:22px;border-radius:50%;background:var(--card);border:2px solid var(--card);color:var(--primary);display:grid;place-items:center;box-shadow:var(--shadow-sm)}.profile-user-name{font-size:1.15rem;font-weight:700;color:var(--ink);line-height:1.2}.profile-user-email{font-size:.85rem;color:var(--muted);margin-top:2px;word-break:break-all}.profile-user-meta{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}.profile-role-pill{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary)}.profile-edit-hint{font-size:.74rem;color:var(--muted);opacity:.8}.profile-chevron{color:var(--muted);display:flex;align-items:center;margin-left:auto;opacity:.6;transition:opacity .15s ease,transform .15s ease;flex-shrink:0}.profile-user-card:hover .profile-chevron{opacity:1;transform:translate(2px)}.stats-row{display:flex;align-items:center;justify-content:space-around;padding:14px 8px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg, 16px);box-shadow:var(--shadow-sm);margin:16px 0}.stat-item-btn{display:flex;flex-direction:column;align-items:center;flex:1;text-align:center;background:none;border:none;cursor:pointer;padding:6px 4px;border-radius:var(--radius);transition:transform .1s ease,background-color .15s ease;-webkit-tap-highlight-color:transparent}.stat-item-btn:hover{background:var(--bg-secondary)}.stat-item-btn:active{transform:scale(.95)}.stat-value{font-size:1.45rem;font-weight:800;color:var(--primary);line-height:1.15;letter-spacing:-.02em}.stat-label{font-size:.76rem;font-weight:600;color:var(--muted);margin-top:3px}.stat-divider{width:1px;height:32px;background:var(--divider)}.profile-section-header{display:flex;align-items:center;justify-content:space-between;margin:24px 0 10px}.profile-section-title{font-size:1.02rem;font-weight:700;color:var(--ink);margin:0}.profile-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg, 16px);padding:4px 16px;box-shadow:var(--shadow-sm);margin-bottom:12px}.profile-row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--divider);font-size:.92rem}.profile-row:last-child{border-bottom:none}.profile-row-left{display:flex;align-items:center;gap:10px;color:var(--muted)}.profile-row-icon{width:20px;height:20px;display:grid;place-items:center;color:var(--primary);opacity:.85}.profile-row-label{color:var(--muted);font-weight:500}.profile-row-value{color:var(--ink);font-weight:600;text-align:right}.profile-menu-group{margin-top:24px}.profile-menu-group-title{font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:8px;padding-left:6px}.profile-menu-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg, 16px);overflow:hidden;box-shadow:var(--shadow-sm)}.profile-menu-item{display:flex;align-items:center;gap:14px;width:100%;padding:13px 16px;background:transparent;border:none;border-bottom:1px solid var(--divider);text-align:left;cursor:pointer;transition:background-color .15s ease,transform .08s ease;user-select:none;-webkit-tap-highlight-color:transparent}.profile-menu-item:last-child{border-bottom:none}.profile-menu-item:hover{background:var(--bg-secondary)}.profile-menu-item:active{background:var(--bg-tertiary);transform:scale(.995)}.profile-menu-icon-wrap{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;transition:transform .15s ease}.profile-menu-item:hover .profile-menu-icon-wrap{transform:scale(1.06)}.profile-menu-info{flex:1;min-width:0}.profile-menu-title{font-size:.94rem;font-weight:600;color:var(--ink);line-height:1.25}.profile-menu-subtitle{font-size:.78rem;color:var(--muted);margin-top:2px;line-height:1.2}.profile-menu-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.profile-menu-badge{font-size:.74rem;font-weight:700;padding:2px 8px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary)}.profile-menu-chevron{color:var(--muted);display:flex;align-items:center;opacity:.6;transition:transform .15s ease,opacity .15s ease}.profile-menu-item:hover .profile-menu-chevron{opacity:1;transform:translate(2px)}.profile-logout-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px 18px;margin:28px 0 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg, 16px);color:var(--danger);font-size:.95rem;font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm);transition:background-color .15s ease,border-color .15s ease,transform .08s ease;-webkit-tap-highlight-color:transparent}.profile-logout-btn:hover{background:color-mix(in srgb,var(--danger) 8%,transparent);border-color:color-mix(in srgb,var(--danger) 30%,transparent)}.profile-logout-btn:active{transform:scale(.99)}.profile-promo-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-pill);background:var(--bg-secondary);border:1px solid var(--line);color:var(--ink);font-size:.85rem;font-weight:700;cursor:pointer;transition:transform .1s ease,background-color .15s ease,border-color .15s ease;-webkit-tap-highlight-color:transparent}.profile-promo-pill:hover{background:var(--card);border-color:var(--primary);color:var(--primary)}.profile-promo-pill:active{transform:scale(.96)}.touchable-button{display:flex;align-items:center;gap:14px;padding:14px 18px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);cursor:pointer;width:100%;text-align:left;transition:transform .1s ease,background-color .15s ease;margin-bottom:10px;font-weight:600;font-size:.95rem;color:var(--ink)}.touchable-button:hover{background:var(--bg-secondary)}.touchable-button-icon{font-size:1.25rem;width:28px;display:grid;place-items:center;color:var(--primary);flex-shrink:0}.touchable-button-chevron{margin-left:auto;color:var(--muted);font-size:1.2rem;line-height:1}.achievements-preview-row{display:flex;gap:12px;overflow-x:auto;padding:4px 0 8px;scrollbar-width:none}.achievements-preview-row::-webkit-scrollbar{display:none}.achievement-badge-wrap{display:flex;flex-direction:column;align-items:center;width:68px;flex-shrink:0;text-align:center;gap:4px}.achievement-circle{width:54px;height:54px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--warning) 16%,transparent);border:1px solid var(--line);display:grid;place-items:center;font-size:1.6rem}.achievement-circle-locked{background:var(--bg-tertiary);opacity:.45;filter:grayscale(1)}.achievement-title{font-size:.72rem;font-weight:500;color:var(--muted);line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.segment{display:flex;border-radius:var(--radius-pill);background:var(--bg-secondary);border:1px solid var(--line);padding:4px;gap:4px;margin-bottom:14px;width:100%}.segment-item{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border-radius:var(--radius-pill);font-size:.92rem;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);border:none;background:transparent}.segment-item:hover:not(.active){color:var(--ink);background:#7c5cfc14}.segment-item.active{background:var(--primary);color:#fff;box-shadow:0 2px 10px #7c5cfc59}.pill-ok{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok)}.btn.small{padding:7px 14px;font-size:.85rem;border-radius:var(--radius-sm)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-center{text-align:center}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-pill);font-size:.78rem;font-weight:700;background:var(--bg-secondary);color:var(--ink-soft)}.badge-accent{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.player{position:relative;width:100%;border-radius:var(--radius);overflow:hidden;background:#000;aspect-ratio:16 / 9}.nutrition-trend-card{background:var(--card)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.screen-header-legacy{display:flex;align-items:center;justify-content:space-between;height:54px;margin-bottom:24px}.screen-header-icon-btn{width:40px;height:40px;border-radius:var(--radius-pill);display:grid;place-items:center;background:transparent;border:none;color:var(--primary);cursor:pointer;transition:background-color .15s ease,transform .1s ease;padding:0}.screen-header-icon-btn:hover{background:var(--bg-secondary)}.screen-header-icon-btn:active{transform:scale(.92)}.screen-header-legacy-title{margin:0;font-size:1.15rem;font-weight:600;color:var(--ink);text-align:center}.avatar-section-legacy{display:flex;flex-direction:column;align-items:center;margin-bottom:28px}.avatar-pressable-legacy{position:relative;width:104px;height:104px;cursor:pointer;border-radius:52px;transition:transform .1s ease}.avatar-pressable-legacy:active{transform:scale(.96)}.avatar-img-legacy{width:104px;height:104px;border-radius:52px;object-fit:cover;display:block}.avatar-placeholder-legacy{width:104px;height:104px;border-radius:52px;background:var(--primary);color:#fff;font-size:2.4rem;font-weight:700;display:grid;place-items:center}.avatar-camera-badge-legacy{position:absolute;bottom:0;right:0;width:34px;height:34px;border-radius:50%;background:var(--primary);color:#fff;border:3px solid var(--card);display:grid;place-items:center;box-shadow:var(--shadow-sm)}.avatar-subtext-legacy{font-size:12px;color:var(--muted);margin-top:10px}.section-title-legacy{font-size:13px;font-weight:600;color:var(--muted);margin-bottom:8px;margin-top:6px;padding-left:4px}.card-legacy{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:16px;margin-bottom:18px}.field-group-legacy{display:flex;flex-direction:column;gap:6px}.field-label-legacy{font-size:13px;font-weight:500;color:var(--muted)}.input-legacy{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-size:15px;font-family:inherit;transition:border-color .15s ease}.input-legacy:focus{outline:none;border-color:var(--primary)}.input-legacy.disabled{opacity:.65;cursor:not-allowed;background:var(--bg-secondary)}.input-with-button-legacy{display:flex;align-items:center;position:relative}.input-with-button-legacy .input-legacy{padding-right:48px}.calendar-icon-btn-legacy{position:absolute;right:6px;width:36px;height:36px;border-radius:8px;background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--primary);border:none;display:grid;place-items:center;cursor:pointer;transition:background-color .15s ease}.calendar-icon-btn-legacy:hover{background:color-mix(in srgb,var(--primary) 22%,transparent)}.gender-segmented-legacy{display:flex;gap:8px;width:100%}.gender-btn-active{flex:1;padding:11px 0;border-radius:10px;background:var(--primary);color:#fff;border:none;font-weight:600;font-size:14px;cursor:pointer;transition:all .15s ease}.gender-btn-inactive{flex:1;padding:11px 0;border-radius:10px;background:var(--bg-secondary);color:var(--ink);border:1px solid transparent;font-weight:500;font-size:14px;cursor:pointer;transition:all .15s ease}.gender-btn-inactive:hover{background:var(--paper)}.action-row-legacy{display:flex;align-items:center;justify-content:space-between;padding:4px 0;cursor:pointer;background:transparent;border:none;width:100%;text-align:left}.hairline-legacy{height:1px;background:var(--divider);margin:4px 0}.btn-save-legacy{width:100%;padding:14px 20px;border-radius:14px;background:var(--primary);color:#fff;border:none;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .15s ease,transform .1s ease;margin-top:6px}.btn-save-legacy:hover{opacity:.92}.btn-save-legacy:active{transform:scale(.98)}.btn-save-legacy:disabled{opacity:.5;cursor:not-allowed}.btn-logout-legacy{width:100%;padding:13px 20px;border-radius:14px;background:transparent;color:var(--danger);border:1px solid var(--danger);font-size:15px;font-weight:600;cursor:pointer;transition:background-color .15s ease,transform .1s ease;margin-top:12px}.btn-logout-legacy:hover{background:color-mix(in srgb,var(--danger) 10%,transparent)}.btn-logout-legacy:active{transform:scale(.98)}.link-delete-legacy{background:transparent;border:none;color:var(--muted);font-size:14px;text-decoration:underline;cursor:pointer;display:block;margin:18px auto 8px;text-align:center;padding:4px}.link-delete-legacy:hover{color:var(--danger)}.settings-modal-dialog{max-width:520px!important;width:100%;border-radius:20px!important;padding:20px 22px!important}.theme-options-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}.theme-option-card{border-radius:14px;border:2px solid var(--line);background:var(--card);padding:8px;cursor:pointer;transition:border-color .18s ease,transform .12s ease;display:flex;flex-direction:column}.theme-option-card:hover{border-color:var(--primary-light);transform:translateY(-2px)}.theme-option-card.selected{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.theme-preview-root{height:110px;border-radius:10px;border:1px solid;overflow:hidden;display:flex}.theme-preview-split{display:flex;width:100%;height:100%}.theme-preview-half{flex:1;display:flex;flex-direction:column;overflow:hidden}.theme-preview-header{height:32px;padding:6px 7px;display:flex;flex-direction:column;justify-content:center;gap:3px}.theme-preview-header-line{height:4px;border-radius:2px;width:58%}.theme-preview-header-line.short{width:36%}.theme-preview-body{flex:1;padding:6px 7px;display:flex;flex-direction:column;gap:6px}.theme-preview-card{border-radius:6px;border:1px solid;padding:5px;display:flex;flex-direction:column;gap:4px}.theme-preview-line{height:4px;border-radius:2px;width:70%}.theme-preview-line.short{width:44%}.theme-preview-track{height:3px;border-radius:2px;overflow:hidden;margin-top:2px}.theme-preview-fill{height:100%;width:55%;border-radius:2px}.theme-preview-btn{height:15px;border-radius:5px;display:flex;align-items:center;justify-content:center}.theme-preview-btn-label{height:3px;border-radius:2px;width:40%}.theme-option-footer{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding:0 2px}.theme-option-name{font-size:13px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0;transition:all .15s ease}.theme-radio.checked{border-color:var(--primary);background-color:var(--primary)}.settings-section{padding:16px 0;border-top:1px solid var(--line)}.settings-section-title{font-size:15px;font-weight:700;color:var(--ink);margin:0 0 12px}.settings-group-label{font-size:13px;font-weight:500;color:var(--muted);margin-bottom:8px}.settings-dropdown{display:flex;align-items:center;justify-content:space-between;border-radius:12px;border:1px solid var(--line);padding:12px 16px;background:var(--card)}.settings-dropdown.disabled{opacity:.7}.settings-dropdown-left{display:flex;align-items:center;gap:10px}.settings-flag{width:22px;height:15px;border-radius:3px;border:1px solid rgba(0,0,0,.15);overflow:hidden;display:flex;flex-direction:column}.settings-flag-stripe{flex:1}.settings-dropdown-text{font-size:14px;font-weight:500;color:var(--ink)}.settings-dropdown-chevron{font-size:14px;color:var(--muted)}.settings-chips-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.settings-chip{padding:8px 14px;border-radius:10px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease}.settings-chip:hover{border-color:var(--primary-light)}.settings-chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}.settings-row-selectable{display:flex;align-items:center;justify-content:space-between;border-radius:12px;border:1.5px solid var(--line);padding:12px 16px;margin-bottom:8px;background:var(--card);cursor:pointer;transition:all .15s ease}.settings-row-selectable:hover{border-color:var(--primary-light)}.settings-row-selectable.selected{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 4%,var(--card))}.settings-row{display:flex;align-items:center;justify-content:space-between;border-radius:12px;border:1px solid var(--line);padding:12px 16px;margin-bottom:8px;background:var(--card)}.settings-row-info{flex:1;padding-right:14px}.settings-row-label{font-size:14.5px;font-weight:600;color:var(--ink);margin-bottom:2px}.settings-row-desc{font-size:12.5px;color:var(--muted);line-height:1.35}.settings-switch{position:relative;display:inline-block;width:46px;height:26px;flex-shrink:0}.settings-switch input{opacity:0;width:0;height:0}.settings-switch-slider{position:absolute;cursor:pointer;inset:0;background-color:var(--line);transition:.22s;border-radius:26px}.settings-switch-slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background-color:#fff;transition:.22s;border-radius:50%;box-shadow:0 1px 4px #00000040}.settings-switch input:checked+.settings-switch-slider{background-color:var(--primary)}.settings-switch input:checked+.settings-switch-slider:before{transform:translate(20px)}.settings-version{font-size:12px;color:var(--muted);text-align:center;margin:18px 0 8px}.course-hero-cover{width:100%;height:210px;border-radius:18px;overflow:hidden;position:relative;background-color:var(--bg-secondary);box-shadow:0 4px 18px #00000014}.course-hero-cover img{width:100%;height:100%;object-fit:cover}.course-hero-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#4f46e5,#7c3aed,#db2777);display:flex;align-items:center;justify-content:center}.course-bottom-bar{position:fixed;bottom:0;left:0;right:0;z-index:50;background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--line);padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom));box-shadow:0 -4px 20px #00000014}.course-bottom-bar-inner{max-width:680px;margin:0 auto;display:flex;gap:12px;align-items:center}.course-bottom-fav-btn{width:50px;height:50px;border-radius:14px;border:1px solid var(--line);background:var(--bg-secondary);color:var(--muted);font-size:24px;display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:all .15s ease}.course-bottom-fav-btn.active{color:#ef4444;background:#ef44441a;border-color:#ef44444d}.course-bottom-fav-btn:active{transform:scale(.9)}.course-bottom-cta-btn{flex:1;height:50px;border-radius:14px;font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 14px #0000001a}.course-progress-overview{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg, 18px);padding:18px;margin-bottom:22px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.course-progress-overview:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#10b981,var(--accent, #ea580c))}.course-progress-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.course-progress-title{font-size:1rem;font-weight:700;color:var(--ink);margin:0}.course-progress-percent{font-size:1.15rem;font-weight:800;color:var(--accent)}.course-progress-counters{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.course-progress-counter-badge{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;padding:5px 11px;border-radius:12px;background:var(--bg-secondary);color:var(--muted)}.course-progress-counter-badge.completed{background:#10b98124;color:#059669}[data-theme=dark] .course-progress-counter-badge.completed{background:#10b9813d;color:#34d399}.course-progress-counter-badge.in-progress{background:#ea580c24;color:var(--accent)}.course-progress-counter-badge.not-started{background:var(--bg-secondary);color:var(--muted)}.course-progress-resume-btn{margin-top:14px;width:100%}.course-lessons-filter-bar{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:14px;scrollbar-width:none}.course-lessons-filter-bar::-webkit-scrollbar{display:none}.course-lesson-filter-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;font-size:.82rem;font-weight:600;border:1px solid var(--line);background:var(--bg-secondary);color:var(--muted);cursor:pointer;white-space:nowrap;transition:all .15s ease}.course-lesson-filter-btn:hover{color:var(--ink);border-color:var(--accent)}.course-lesson-filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 2px 8px #ea580c40}.lesson-row-card{position:relative;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:var(--card);border:1px solid var(--line);margin-bottom:8px;cursor:pointer;overflow:hidden;transition:all .15s ease}.lesson-row-card:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));transform:translateY(-1px)}.lesson-row-card.is-locked{opacity:.72;cursor:default;background:var(--bg-secondary)}.lesson-row-card.is-locked:hover{transform:none;border-color:var(--line)}.lesson-row-card.is-completed{border-color:color-mix(in srgb,#10b981 30%,var(--line))}.lesson-row-card.is-in-progress{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));background:color-mix(in srgb,var(--accent) 3%,var(--card))}.lesson-row-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;font-size:14px;font-weight:700;flex-shrink:0;transition:transform .15s ease}.lesson-row-icon.icon-completed{background:#10b981;color:#fff;box-shadow:0 2px 8px #10b98159}.lesson-row-icon.icon-in-progress{background:var(--accent);color:#fff;box-shadow:0 2px 8px #ea580c59}.lesson-row-icon.icon-not-started{background:var(--bg-secondary);color:var(--ink);border:1px solid var(--line)}.lesson-row-icon.icon-locked{background:var(--bg-secondary);color:var(--muted);font-size:13px}.lesson-row-content{flex:1;min-width:0}.lesson-row-title{font-weight:600;font-size:.94rem;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.lesson-row-subtitle{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--muted)}.lesson-row-progressbar{position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--line);overflow:hidden}.lesson-row-progressbar-fill{height:100%;background:linear-gradient(90deg,var(--accent),#f97316);border-radius:0 2px 2px 0}.lesson-status-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:.76rem;font-weight:600;white-space:nowrap;flex-shrink:0}.lesson-status-pill.pill-completed{background:#10b9811f;color:#059669}[data-theme=dark] .lesson-status-pill.pill-completed{background:#10b98138;color:#34d399}.lesson-status-pill.pill-in-progress{background:#ea580c24;color:var(--accent)}.lesson-status-pill.pill-not-started{background:var(--bg-secondary);color:var(--muted)}.lesson-status-pill.pill-preview{background:#7c5cfc1f;color:var(--primary, #7c5cfc)}.lesson-status-pill.pill-locked{background:var(--bg-secondary);color:var(--muted)}.status-dot-pulse{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}.ambient-blobs{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.ambient-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.65;pointer-events:none}.ambient-blob-top{width:380px;height:380px;top:-120px;right:-80px;background:radial-gradient(circle,rgba(139,92,246,.45) 0%,rgba(124,92,252,.15) 70%,transparent 100%)}.ambient-blob-bottom{width:420px;height:420px;bottom:-140px;left:-100px;background:radial-gradient(circle,rgba(249,115,22,.35) 0%,rgba(234,88,12,.1) 70%,transparent 100%)}[data-theme=light] .ambient-blob-top{background:radial-gradient(circle,rgba(124,92,252,.28) 0%,rgba(167,139,250,.12) 70%,transparent 100%)}[data-theme=light] .ambient-blob-bottom{background:radial-gradient(circle,rgba(234,88,12,.22) 0%,rgba(249,115,22,.08) 70%,transparent 100%)}.auth-viewport{height:100%;height:100dvh;position:relative;display:flex;flex-direction:column;background-color:var(--paper);overflow-x:hidden;overflow-y:auto}.auth-viewport::-webkit-scrollbar{width:5px}.auth-viewport::-webkit-scrollbar-track{background:transparent}.auth-viewport::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}.auth-viewport::-webkit-scrollbar-thumb:hover{background:var(--muted)}.auth-nav-bar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;position:relative;z-index:10;width:100%;max-width:480px;margin:0 auto}.auth-back-btn{width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:20px;line-height:1;transition:transform .15s ease,background-color .15s ease,border-color .15s ease;box-shadow:var(--shadow-sm)}.auth-back-btn:hover{background:var(--bg-secondary);border-color:var(--primary)}.auth-back-btn:active{transform:scale(.94)}.auth-content-container{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:16px 24px calc(96px + env(safe-area-inset-bottom,0px));position:relative;z-index:1;width:100%;max-width:440px;margin:0 auto}.auth-welcome-body{display:flex;flex-direction:column;align-items:center;width:100%;text-align:center;animation:authFadeIn .35s cubic-bezier(.16,1,.3,1)}.auth-logo-badge{width:176px;height:176px;border-radius:40px;background:var(--card);border:1px solid var(--line);box-shadow:0 16px 40px #00000047;display:flex;align-items:center;justify-content:center;margin-bottom:28px;animation:authBadgePop .5s cubic-bezier(.175,.885,.32,1.25);transition:transform .2s ease,box-shadow .2s ease}.auth-logo-badge:hover{transform:translateY(-2px);box-shadow:0 20px 48px #00000059}.auth-logo-img{width:136px;height:136px;object-fit:contain;border-radius:28px;user-select:none;-webkit-user-drag:none}.auth-brand-title{font-size:32px;font-weight:700;letter-spacing:.5px;color:var(--ink);margin:0 0 8px}.auth-brand-tagline{font-size:16px;color:var(--muted);margin:0 0 36px;line-height:22px}.auth-btn-stack{width:100%;display:flex;flex-direction:column;gap:14px}.auth-primary-btn{width:100%;height:54px;border-radius:16px;background:#7c5cfc;color:#fff;font-size:17px;font-weight:700;border:none;cursor:pointer;box-shadow:0 8px 24px #7c5cfc59;display:flex;align-items:center;justify-content:center;gap:8px;transition:transform .15s ease,filter .15s ease,box-shadow .15s ease}.auth-primary-btn:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 10px 28px #7c5cfc73}.auth-primary-btn:active:not(:disabled){transform:scale(.98)}.auth-primary-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.auth-secondary-btn{width:100%;height:54px;border-radius:16px;background:var(--card);border:1px solid var(--line);color:var(--ink);font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:transform .15s ease,background-color .15s ease,border-color .15s ease}.auth-secondary-btn:hover{background:var(--bg-secondary);border-color:#7c5cfc4d}.auth-secondary-btn:active{transform:scale(.98)}.auth-divider-row{display:flex;align-items:center;gap:12px;width:100%;margin:4px 0;padding:0 4px}.auth-divider-line{flex:1;height:1px;background:var(--line)}.auth-divider-text{font-size:13px;color:var(--muted);user-select:none}.auth-support-link{background:none;border:none;padding:14px 10px;margin-top:24px;cursor:pointer;font-size:14px;color:var(--muted);text-decoration:underline;text-align:center;transition:color .15s ease}.auth-support-link:hover{color:var(--ink)}.auth-form-card{width:100%;display:flex;flex-direction:column;animation:authFadeIn .3s cubic-bezier(.16,1,.3,1)}.auth-form-header{margin-bottom:24px}.auth-screen-title{font-size:28px;font-weight:700;color:var(--ink);margin:0 0 8px;letter-spacing:-.3px}.auth-screen-subtitle{font-size:15px;color:var(--muted);margin:0;line-height:22px}.auth-input-wrap{position:relative;margin-bottom:16px;width:100%}.auth-input{width:100%;height:54px;border-radius:14px;background:var(--card);border:1.5px solid var(--line);padding:0 16px;font-size:16px;color:var(--ink);outline:none;box-shadow:0 2px 8px #0000000a;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.auth-input:focus{border-color:#7c5cfc;box-shadow:0 0 0 3px #7c5cfc38}.auth-input::placeholder{color:var(--muted);opacity:.8}.auth-eye-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:18px;cursor:pointer;color:var(--muted);padding:6px;display:flex;align-items:center;justify-content:center;line-height:1}.auth-eye-btn:hover{color:var(--ink)}.auth-policy-row{display:flex;align-items:center;gap:12px;margin:4px 0 22px;font-size:14px;line-height:20px;color:var(--muted);cursor:pointer;user-select:none}.auth-checkbox-box{width:22px;height:22px;flex-shrink:0;border-radius:7px;border:2px solid var(--muted);background:var(--card);display:flex;align-items:center;justify-content:center;transition:all .18s cubic-bezier(.175,.885,.32,1.25)}.auth-checkbox-box.checked{background:#7c5cfc;border-color:#7c5cfc;color:#fff}.auth-checkmark{font-size:13px;font-weight:700;line-height:1}.auth-policy-link{color:#7c5cfc;text-decoration:underline;background:none;border:none;padding:0;font:inherit;cursor:pointer}.auth-policy-link:hover{filter:brightness(1.15)}.auth-text-link{background:none;border:none;color:#7c5cfc;font-size:15px;font-weight:600;text-align:center;cursor:pointer;padding:10px 4px;width:100%;margin-top:4px;transition:opacity .15s ease}.auth-text-link:hover{opacity:.85}.auth-link-muted{color:var(--muted);font-size:14px;font-weight:400}.auth-link-muted:hover{color:var(--ink)}.auth-otp-row{display:flex;justify-content:space-between;gap:8px;margin-bottom:16px;position:relative}.auth-otp-cell{flex:1;max-width:52px;height:58px;border-radius:14px;background:var(--card);border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;color:var(--ink);text-align:center;transition:all .18s ease}.auth-otp-cell.active{border-color:#7c5cfc;background:#7c5cfc1f;box-shadow:0 0 0 3px #7c5cfc33}.auth-otp-cell.filled{border-color:#7c5cfc}.auth-hidden-input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.auth-clipboard-btn{width:100%;height:48px;border-radius:14px;background:var(--card);border:1px solid var(--line);color:#7c5cfc;font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;margin-bottom:16px;transition:background-color .15s ease,border-color .15s ease}.auth-clipboard-btn:hover{background:var(--bg-secondary);border-color:#7c5cfc4d}.auth-countdown-text{font-size:14px;color:var(--muted);text-align:center;margin:8px 0 14px}.auth-ref-badge{background:#7c5cfc1f;border:1px solid rgba(124,92,252,.25);border-radius:14px;padding:12px 16px;font-size:14px;color:var(--ink);margin-bottom:20px;line-height:20px;text-align:center}@keyframes authBadgePop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}@keyframes authFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.skeleton-shimmer{background:linear-gradient(90deg,var(--bg-secondary) 0%,var(--bg-tertiary) 50%,var(--bg-secondary) 100%);background-size:200% 100%;animation:skeletonShimmer 1.5s infinite ease-in-out;pointer-events:none}[data-theme=light] .skeleton-shimmer{background:linear-gradient(90deg,#edeaf4,#f6f4fa,#edeaf4);background-size:200% 100%}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.screen-skeleton{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-bottom:calc(88px + env(safe-area-inset-bottom,0px));animation:authFadeIn .25s ease-out}.program-card-skeleton{overflow:hidden;border-radius:var(--radius)}.ptr-wrapper{position:relative;width:100%;min-height:100%;overscroll-behavior-y:contain}.ptr-indicator{position:absolute;top:-50px;left:0;right:0;display:flex;justify-content:center;align-items:center;z-index:50;pointer-events:none}.ptr-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:var(--card);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow);color:var(--ink);font-size:.82rem;font-weight:600}.ptr-arrow{display:inline-block;font-size:1.1rem;color:var(--primary);line-height:1}.ptr-spinner{width:16px;height:16px;border:2px solid rgba(124,92,252,.25);border-top-color:var(--primary);border-radius:50%;animation:ptrSpin .7s linear infinite}.ptr-icon-complete{color:var(--ok);font-weight:700;font-size:.95rem}.ptr-label{letter-spacing:-.01em}@keyframes ptrSpin{to{transform:rotate(360deg)}}.pwa-install-banner{position:fixed;bottom:calc(76px + env(safe-area-inset-bottom,0px));left:16px;right:16px;max-width:480px;margin:0 auto;z-index:900;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:14px 16px;box-shadow:0 10px 30px #00000040;animation:bannerSlideUp .35s cubic-bezier(.16,1,.3,1)}.pwa-install-banner.pwa-install-banner-no-nav{bottom:calc(16px + env(safe-area-inset-bottom,0px))}.pwa-install-inner{display:flex;align-items:center;gap:12px}.pwa-install-icon{width:44px;height:44px;border-radius:12px;object-fit:cover;flex-shrink:0;box-shadow:0 4px 12px #7c5cfc40}.pwa-install-info{flex:1;display:flex;flex-direction:column;gap:2px}.pwa-install-title{font-size:.92rem;font-weight:700;color:var(--ink);line-height:1.2}.pwa-install-subtitle{font-size:.76rem;color:var(--muted);line-height:1.3}.pwa-install-actions{display:flex;align-items:center;gap:8px}.pwa-install-cta{font-weight:700;white-space:nowrap}.pwa-install-close{background:none;border:none;color:var(--muted);font-size:1.1rem;padding:4px;cursor:pointer;line-height:1;transition:color .15s ease}.pwa-install-close:hover{color:var(--ink)}.pwa-ios-guide{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px;font-size:.8rem;color:var(--ink-soft);animation:authFadeIn .2s ease}.pwa-ios-step{display:flex;align-items:center;gap:10px}.pwa-ios-step-badge{width:20px;height:20px;border-radius:50%;background:var(--primary);color:#fff;font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}@keyframes bannerSlideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.error-boundary-screen{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--paper)}.error-boundary-card{max-width:420px;width:100%;text-align:center;padding:32px 24px;border-radius:24px}.error-boundary-icon{font-size:3rem;margin-bottom:8px}.error-boundary-title{font-size:1.35rem;font-weight:700;margin:0 0 8px;color:var(--ink)}.error-boundary-subtitle{font-size:.9rem;color:var(--muted);margin:0 0 20px;line-height:1.45}.progressive-img-wrap{position:relative;overflow:hidden;width:100%;height:100%}.progressive-img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s cubic-bezier(.16,1,.3,1)}.progressive-img.loaded{opacity:1}.progressive-img-skeleton{position:absolute;inset:0;width:100%;height:100%}.img-fallback-box{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary)}.img-fallback-emoji{font-size:2.2rem;opacity:.6}html,body{overscroll-behavior-y:contain;-webkit-tap-highlight-color:transparent}.checkout-shell{max-width:520px;margin:0 auto;padding:8px 16px 48px;width:100%}.checkout-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;min-height:40px}.checkout-nav-back{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.92rem;font-weight:500;background:transparent;border:none;cursor:pointer;padding:6px 0;transition:color .15s ease}.checkout-nav-back:hover{color:var(--ink)}.checkout-nav-title{font-size:1rem;font-weight:700;color:var(--ink);letter-spacing:-.01em}.checkout-box{background:var(--card);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 8px 32px #00000047}.checkout-hero-media{position:relative;width:100%;aspect-ratio:16 / 9;background:var(--surface-sunken);overflow:hidden}.checkout-cover-img{width:100%;height:100%;object-fit:cover;display:block}.checkout-cover-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#ea580c2e,#7c5cfc38);display:flex;align-items:center;justify-content:center}.checkout-body{padding:24px}@media (max-width: 480px){.checkout-body{padding:18px 16px}}.checkout-title-group{margin-bottom:12px}.checkout-course-title{font-size:1.4rem;font-weight:800;line-height:1.25;letter-spacing:-.02em;color:var(--ink);margin:0 0 6px}.checkout-course-desc{font-size:.92rem;line-height:1.5;color:var(--muted);margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.checkout-tags-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.checkout-tag{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;font-weight:600;padding:4px 10px;border-radius:8px;background:var(--surface-sunken);color:var(--ink-soft);border:1px solid var(--line)}.checkout-tag.accent{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 25%,transparent)}.checkout-divider{height:1px;background:var(--line);margin:20px 0}.checkout-promo-form{display:flex;gap:8px}.checkout-promo-field{flex:1;background:var(--surface-sunken);border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-size:.9rem;color:var(--ink);font-weight:600;letter-spacing:.04em;text-transform:uppercase;transition:border-color .15s ease}.checkout-promo-field:focus{outline:none;border-color:var(--accent)}.checkout-promo-submit{background:var(--surface-sunken);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:0 16px;font-size:.88rem;font-weight:600;cursor:pointer;transition:all .15s ease}.checkout-promo-submit:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent)}.checkout-promo-submit:disabled{opacity:.5;cursor:not-allowed}.checkout-promo-applied{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:12px;background:#10b9811f;border:1px solid rgba(16,185,129,.25);color:#10b981}.checkout-promo-applied-text{display:flex;align-items:center;gap:8px;font-size:.9rem}.checkout-promo-remove-btn{background:transparent;border:none;color:#ef4444;cursor:pointer;padding:4px;display:grid;place-items:center;border-radius:6px}.checkout-promo-remove-btn:hover{background:#ef444426}.checkout-promo-error{color:#ef4444;font-size:.8rem;margin-top:6px;padding-left:2px}.checkout-price-section{display:flex;flex-direction:column;gap:8px}.checkout-price-row{display:flex;justify-content:space-between;align-items:center;font-size:.92rem}.checkout-price-row.muted{color:var(--muted)}.checkout-price-row.discount{color:#10b981;font-weight:600}.checkout-price-row.total{margin-top:4px;font-size:1.1rem;font-weight:700;color:var(--ink)}.checkout-total-num{font-size:1.75rem;font-weight:800;letter-spacing:-.03em;color:var(--ink)}.checkout-submit-btn{height:52px;font-size:1.05rem;font-weight:700;border-radius:14px;margin-top:18px;box-shadow:0 4px 18px #ea580c59;transition:transform .15s ease,box-shadow .15s ease}.checkout-submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 24px #ea580c73}.checkout-trust-line{display:flex;align-items:center;justify-content:center;gap:6px;font-size:.78rem;color:var(--muted);margin-top:14px;text-align:center}.checkout-sandbox-hint{font-size:.76rem;color:#f59e0b;background:#f59e0b1a;border:1px solid rgba(245,158,11,.2);border-radius:8px;padding:6px 10px;margin-top:10px;text-align:center}.checkout-legal{font-size:.75rem;line-height:1.5;color:var(--muted);text-align:center;margin-top:16px}.checkout-legal button{background:transparent;border:none;padding:0;color:var(--ink-soft);text-decoration:underline;cursor:pointer;font-size:inherit;font-family:inherit}.checkout-legal button:hover{color:var(--accent)}
