:root{--cherry: #a31c3f;--cherry-d: #7e1230;--pink: #f26b7a;--sky: #9fd9ea;--honey: #ffc94d;--r-sm: 12px;--r-md: 20px;--r-lg: 28px;--f-display: "Rubik", system-ui, sans-serif;--f-body: "Manrope", system-ui, sans-serif;--dur: .22s;--spring: cubic-bezier(.34, 1.56, .64, 1)}[data-theme=dark]{--bg: #2e0f1d;--bg-2: #43142a;--surface: #521b33;--surface-2: #62233e;--line: rgba(255, 242, 217, .1);--text: #fff2d9;--muted: rgba(255, 242, 217, .62);--soft-pink: #f4c0d1;--bar: var(--pink);--btn: var(--cherry);--btn-text: #fff2d9}[data-theme=light]{--bg: #fff2d9;--bg-2: #fff9ee;--surface: #ffffff;--surface-2: #f7e6c8;--line: rgba(41, 32, 36, .1);--text: #292024;--muted: rgba(41, 32, 36, .62);--soft-pink: #a31c3f;--bar: #c2385a;--btn: var(--cherry);--btn-text: #fff2d9}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;min-height:100%}body{background:var(--bg);background-image:linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 100%);background-attachment:fixed;color:var(--text);font:500 16px/1.45 var(--f-body);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;padding:0}h1,h2,h3{font-family:var(--f-display);font-weight:900;letter-spacing:-.02em;margin:0;line-height:1.05}.screen{padding:16px 16px calc(96px + env(safe-area-inset-bottom));max-width:560px;margin:0 auto}.muted{color:var(--muted)}.eyebrow{font:700 12px/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--soft-pink)}.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:54px;border-radius:999px;background:var(--btn);color:var(--btn-text);font:800 17px/1 var(--f-display);letter-spacing:.01em;box-shadow:0 10px 30px -12px #f26b7ab3;transition:transform var(--dur) var(--spring)}.btn:active{transform:scale(.97)}.btn.ghost{background:var(--surface-2);box-shadow:none;color:var(--text)}.card{background:var(--surface);border-radius:var(--r-md);padding:16px}.bar{height:6px;border-radius:6px;background:var(--line);overflow:hidden}.bar>i{display:block;height:100%;background:var(--pink);border-radius:6px;transition:width .4s ease}.hello{display:flex;align-items:center;gap:12px;margin:4px 0 20px}.avatar{width:44px;height:44px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;overflow:hidden;font:900 18px var(--f-display);color:var(--soft-pink);flex:none}.avatar img{width:100%;height:100%;object-fit:cover}.continue{position:relative;overflow:hidden;padding:20px;border-radius:var(--r-lg);background:var(--cherry);color:#fff2d9}.continue .sticker{position:absolute;right:-14px;top:-10px;width:132px;transform:rotate(8deg)}.continue h2{font-size:30px;margin:8px 0 4px;max-width:70%}.continue .bar{background:#fff2d933;margin:16px 0}.continue .bar>i{background:#fff2d9}.continue .btn{background:#fff2d9;color:var(--cherry);box-shadow:none}.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.stat b{display:block;font:900 32px/1 var(--f-display)}.lesson-row{display:flex;gap:14px;align-items:center;padding:12px;border-radius:var(--r-md);background:var(--surface);width:100%;text-align:left;transition:transform var(--dur) var(--spring)}.lesson-row:active{transform:scale(.98)}.lesson-row+.lesson-row{margin-top:10px}.cover{position:relative;width:72px;height:72px;border-radius:18px;background:var(--surface-2);flex:none;display:grid;place-items:center}.cover img{width:88%}.cover .num{position:absolute;left:6px;top:4px;font:900 15px var(--f-display);color:var(--soft-pink)}.cover.locked img{filter:grayscale(1);opacity:.45}.lesson-row h3{font-size:18px}.meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-items:center;font-size:13px;color:var(--muted)}.tag{font:700 11px/1 var(--f-body);padding:5px 8px;border-radius:999px;background:var(--surface-2);color:var(--text)}.tag.done{background:var(--sky);color:#292024}.tag.free{background:var(--honey);color:#292024}.lesson-row .bar{margin-top:8px;height:4px}.player{position:relative;margin:-16px -16px 0;background:#000;aspect-ratio:9 / 12;max-height:62vh}.player video{width:100%;height:100%;object-fit:contain;display:block;background:#000}.controls{display:flex;align-items:center;gap:8px;padding:10px 0}.ctrl{min-width:44px;height:44px;border-radius:999px;background:var(--surface);display:grid;place-items:center;font:800 14px var(--f-display);padding:0 12px}.ctrl.on{background:var(--pink);color:#2e0f1d}.time{margin-left:auto;font:700 13px var(--f-body);color:var(--muted)}.seek{width:100%;accent-color:var(--pink)}.chapters{display:grid;gap:8px}.chapter{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r-sm);background:var(--surface);width:100%;text-align:left}.chapter.now{outline:2px solid var(--pink)}.chapter .t{font:800 13px var(--f-display);color:var(--soft-pink);min-width:40px}.chapter .loop{margin-left:auto;font:700 12px var(--f-body);color:var(--muted);padding:6px 10px;border-radius:999px;background:var(--surface-2)}.chapter .loop.on{background:var(--pink);color:#2e0f1d}.steps{margin:0;padding-left:20px}.steps li+li{margin-top:6px}.section{margin-top:24px}.section>h3{font-size:20px;margin-bottom:12px}.lock-box{text-align:center;padding:28px 20px}.lock-box img{width:120px}.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:center;gap:8px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--bg-2) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line)}.tab{flex:1;max-width:140px;padding:8px 0;border-radius:14px;font:700 12px var(--f-body);color:var(--muted);display:grid;justify-items:center;gap:2px}.tab .i{font-size:20px;line-height:1}.tab.on{color:var(--text);background:var(--surface)}.center{min-height:70vh;display:grid;place-items:center;text-align:center;padding:24px}.skeleton{background:var(--surface);border-radius:var(--r-md);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.55}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.level{display:flex;gap:14px;align-items:center}.level img{width:72px;flex:none}.streak-chip{padding:8px 12px;border-radius:999px;background:var(--surface);font:900 16px var(--f-display)}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:14px}.calendar i{aspect-ratio:1;border-radius:8px;background:var(--surface-2);display:block}.calendar i.active{background:var(--pink)}.calendar i.freeze{background:var(--sky)}.ach-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ach{background:var(--surface);border-radius:var(--r-md);padding:10px 8px 12px;text-align:center;display:grid;gap:4px;justify-items:center}.ach img{width:72px;height:72px}.ach b{font:800 13px/1.15 var(--f-display)}.ach span{font-size:11px;color:var(--muted);line-height:1.2}.ach.off img,.mini-ach.off img{filter:grayscale(1) brightness(.55);opacity:.6}.mini-ach{display:grid;justify-items:start;gap:2px;text-align:left}.mini-ach img{width:56px;height:56px}.mini-ach b{font:800 15px/1.15 var(--f-display)}.checklist{list-style:none;padding:0;margin:0;display:grid;gap:10px}.checklist li{background:var(--surface);border-radius:var(--r-sm);padding:14px 14px 14px 46px;position:relative}.checklist li:before{content:"✓";position:absolute;left:14px;top:12px;width:22px;height:22px;border-radius:50%;background:var(--pink);color:#2e0f1d;display:grid;place-items:center;font-weight:900;font-size:13px}.sheet-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#14060c99;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:560px;background:var(--bg-2);border-radius:28px 28px 0 0;padding:24px 20px calc(24px + env(safe-area-inset-bottom));text-align:center}.sheet.pop{animation:rise .42s var(--spring)}.sheet .xp{display:inline-block;margin:6px 0;padding:8px 16px;border-radius:999px;background:var(--honey);color:#292024;font:900 22px var(--f-display)}@keyframes rise{0%{transform:translateY(40%);opacity:0}to{transform:none;opacity:1}}.tab{padding:8px 0;font-size:11px}.card-preview{width:62%;max-width:240px;aspect-ratio:9 / 16;margin:0 auto 16px;border-radius:18px;overflow:hidden;box-shadow:0 20px 50px -20px #000000b3}.card-preview img{width:100%;height:100%;display:block}.sheet{max-height:92vh;overflow-y:auto}.link{color:var(--soft-pink);font:700 15px var(--f-body);text-decoration:underline;text-underline-offset:3px;display:block;margin-left:auto;margin-right:auto}.answer{width:100%;text-align:left;padding:16px 18px;border-radius:var(--r-md);background:var(--surface);font:700 16px/1.3 var(--f-body);transition:transform var(--dur) var(--spring)}.answer:active{transform:scale(.98);background:var(--pink);color:#2e0f1d}.quiz-card{display:flex;gap:12px;align-items:center;text-align:left;width:100%}.quiz-card img{width:64px;flex:none}.quiz-card b{display:block;font:800 17px/1.2 var(--f-display);margin-bottom:4px}.quiz-card span{font-size:13px}.xp-chip{display:inline-block;margin-top:4px;padding:6px 14px;border-radius:999px;background:var(--honey);color:#292024;font:900 18px var(--f-display)}button.ach:disabled{cursor:default}.btn:disabled{opacity:.5}.screen.admin{max-width:1040px}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin:0 -16px 10px;padding-left:16px;padding-right:16px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:none;padding:10px 14px;border-radius:999px;background:var(--surface);font:700 14px/1 var(--f-body);color:var(--muted);min-height:40px}.chip.on{background:var(--btn);color:var(--btn-text)}.chips.small .chip{padding:8px 12px;font-size:13px;min-height:34px}.chips.small .chip.on{background:var(--surface-2);color:var(--text);outline:2px solid var(--pink);outline-offset:-2px}.note{font-size:14px;margin:10px 0 0}.card.note{margin-top:12px}.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:12px}.kpi{display:grid;gap:4px;padding:14px}.kpi b{font:900 28px/1 var(--f-display);letter-spacing:-.02em;overflow-wrap:anywhere}.kpi span{font-size:13px;color:var(--muted);line-height:1.25}.kpi small{font-size:12px}.hbars{display:grid;gap:12px}.hbar-head{display:flex;justify-content:space-between;gap:10px;font-size:14px;margin-bottom:5px}.hbar-head span{min-width:0;overflow-wrap:anywhere}.hbar-head b{white-space:nowrap;font:800 14px var(--f-display)}.hbar-head small{font:600 12px var(--f-body)}.hbar-track{height:10px;border-radius:4px;background:var(--line)}.hbar-track>i{display:block;height:100%;min-width:0;border-radius:4px;background:var(--bar);transition:width .4s ease}.charts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,400px),1fr));gap:12px}.chart-head{display:flex;justify-content:space-between;gap:8px;font-size:14px;margin-bottom:10px}.chart-head b{font:800 14px var(--f-display);white-space:nowrap}.cols{display:flex;align-items:flex-end;gap:2px;height:110px;border-bottom:1px solid var(--line)}.col{flex:1;height:100%;display:flex;align-items:flex-end;min-width:0;padding:0}.col>i{display:block;width:100%;background:var(--bar);border-radius:4px 4px 0 0;opacity:.85}.col.on>i,.col:hover>i{opacity:1;outline:2px solid var(--text);outline-offset:1px}.chart-axis{display:flex;justify-content:space-between;font-size:12px;margin-top:6px}.tbl-wrap{overflow-x:auto;border-radius:var(--r-md);background:var(--surface)}.tbl{border-collapse:collapse;width:100%;font-size:14px}.tbl th,.tbl td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}.tbl th{font:700 12px/1.2 var(--f-body);color:var(--muted);white-space:nowrap}.tbl td.n,.tbl th.n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.tbl tr:last-child td{border-bottom:0}.tbl small{font-size:12px}.tbl td{white-space:nowrap}.src{font:700 14px var(--f-body);color:var(--soft-pink);text-align:left;text-decoration:underline;text-underline-offset:3px}.src.on{color:var(--text);text-decoration:none}.field{width:100%;min-height:46px;padding:10px 14px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);color:var(--text);font:500 16px/1.35 var(--f-body)}.field:focus{outline:2px solid var(--pink);outline-offset:0}textarea.field{resize:vertical}.form label{display:grid;gap:6px;font:700 13px var(--f-body);color:var(--muted);margin-top:12px}.form .label{font:700 13px var(--f-body);color:var(--muted);margin-top:16px}.form label.check{display:flex;align-items:center;gap:10px;color:var(--text);font-size:15px}.form label.check input{width:22px;height:22px;accent-color:var(--cherry)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-row>label{margin-top:12px}.card .form-row{margin-top:0}.hint{font-size:13px;margin:6px 0 0}.stickers{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px;margin-top:8px}.stickers button{aspect-ratio:1;border-radius:12px;background:var(--surface);display:grid;place-items:center}.stickers button.on{outline:2px solid var(--pink);background:var(--surface-2)}.stickers img{width:80%}.chapter-edit{display:grid;grid-template-columns:1fr 74px 74px 44px;gap:6px;margin-top:8px;align-items:center}.error-note{margin-top:14px;outline:2px solid var(--pink);font-size:14px}.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:10px 0;font-size:14px}.facts dt{color:var(--muted)}.facts dd{margin:0}@media(max-width:420px){.form-row{grid-template-columns:1fr}.chapter-edit{grid-template-columns:1fr 64px 64px 40px}}
