:root{--bg:#f5f4f0;--surface:#fff;--surface-2:#eeece6;--text:#1e1f22;--muted:#6c6d72;--line:#e0ddd5;--accent:#2a8a7e;--accent-soft:#d8efeb;--accent-ink:#fff;--accent-2:#d9763f;--accent-2-soft:#fbe8dc;--good:#2f8a57;--good-soft:#e1f3e8;--bad:#c64a3f;--bad-soft:#fbe5e2;--lvl-mudah:#3f9a6b;--lvl-sedang:#c28a1e;--lvl-sulit:#c65a6e;--radius:16px;--shadow:0 1px 2px #0000000a, 0 4px 16px #0000000a;--math:"Cambria Math", Cambria, "STIX Two Math", "Latin Modern Math", "Times New Roman", Georgia, serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111315;--surface:#1a1d20;--surface-2:#24282c;--text:#ebeae6;--muted:#9a9ea4;--line:#2d3136;--accent:#5cc4b5;--accent-soft:#1d3834;--accent-ink:#0b1f1c;--accent-2:#f0925f;--accent-2-soft:#3a2a20;--good:#62cf92;--good-soft:#17301f;--bad:#ef7a6e;--bad-soft:#3a2020;--lvl-mudah:#62cf92;--lvl-sedang:#e5b45a;--lvl-sulit:#ef8ea0;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#111315;--surface:#1a1d20;--surface-2:#24282c;--text:#ebeae6;--muted:#9a9ea4;--line:#2d3136;--accent:#5cc4b5;--accent-soft:#1d3834;--accent-ink:#0b1f1c;--accent-2:#f0925f;--accent-2-soft:#3a2a20;--good:#62cf92;--good-soft:#17301f;--bad:#ef7a6e;--bad-soft:#3a2020;--lvl-mudah:#62cf92;--lvl-sedang:#e5b45a;--lvl-sulit:#ef8ea0;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0}button,input{font:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0;line-height:1.25}h1{font-size:1.3rem}h2{font-size:1.1rem}h3{font-size:1rem}p{margin:0}.app{max-width:600px;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 8px) 16px calc(env(safe-area-inset-bottom) + 92px);margin:0 auto}.top{z-index:5;background:var(--bg);align-items:center;gap:10px;padding:10px 0 12px;display:flex;position:sticky;top:0}.top h1{font-size:1.15rem}.brand-mark{flex:none;display:inline-flex}.home-main{padding-top:12px}.tabs{z-index:10;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tabs a{max-width:130px;color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px 0 8px;font-size:.72rem;display:flex}.tabs a.on{color:var(--accent);font-weight:600}.stack{flex-direction:column;gap:14px;display:flex}.stack.tight{gap:8px}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1;min-width:0}.block{display:block}.nowrap{white-space:nowrap}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:650}.eyebrow.accent{color:var(--accent)}.section-title{margin-top:6px;font-size:1.05rem}.empty{text-align:center;color:var(--muted);padding:32px 0}.empty a{color:var(--accent);text-decoration:underline}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:10px;min-width:0;padding:16px;display:flex}.card-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.card.hero{border-color:color-mix(in srgb, var(--accent) 35%, var(--line));gap:12px;padding:18px}.card.banner{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));background:var(--accent-soft);gap:8px}.card.tip p{font-size:.95rem}.link-card{gap:6px;transition:transform .1s}.link-card:active{transform:scale(.99)}.link-title{font-weight:650;display:block}.hello{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.hello h1{margin-top:2px;font-size:1.6rem}.streak{background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:4px;padding:6px 11px;font-size:.85rem;font-weight:650;display:inline-flex}.streak.on{background:var(--accent-2-soft);color:var(--accent-2)}.btn{border:1px solid var(--line);background:var(--surface-2);cursor:pointer;text-align:center;border-radius:12px;justify-content:center;align-items:center;gap:6px;min-width:0;min-height:44px;padding:0 16px;font-weight:550;transition:transform 80ms,filter .1s;display:inline-flex}.btn:active{transform:scale(.97)}.btn:focus-visible,.option:focus-visible,.seg button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.05)}.btn.ghost{background:0 0;border-color:#0000}.btn.danger{color:var(--bad)}.btn.big{min-height:52px;font-size:1.02rem}.btn.sm{align-self:flex-start;min-height:36px;padding:0 12px;font-size:.85rem}.btn.full{width:100%}.icon-btn{cursor:pointer;background:0 0;border:0;border-radius:10px;flex:none;place-items:center;width:40px;height:40px;margin-left:-8px;display:inline-grid}.icon-btn:hover{background:var(--surface-2)}.link{color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:0;font-size:.85rem;font-weight:600}.seg{background:var(--surface-2);border-radius:12px;gap:4px;padding:4px;display:flex}.seg button{min-height:38px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;font-size:.9rem;font-weight:550}.seg button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #00000014}.field-label{color:var(--muted);margin-bottom:-4px;font-size:.8rem;font-weight:600}.level-list{flex-direction:column;gap:8px;display:flex}.level-row{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:12px;align-items:center;gap:12px;padding:12px;transition:transform 80ms;display:flex}.level-row:active{transform:scale(.99)}.level-row .grow{flex-direction:column;display:flex}.level-name{color:var(--text);font-weight:650}.lvl-badge{color:#fff;border-radius:10px;flex:none;place-items:center;width:36px;height:36px;font-weight:700;display:grid}.lvl-badge.lvl-mudah{background:var(--lvl-mudah)}.lvl-badge.lvl-sedang{background:var(--lvl-sedang)}.lvl-badge.lvl-sulit{background:var(--lvl-sulit)}:root[data-theme=dark] .lvl-badge,.lvl-badge{color:var(--surface)}.status{color:var(--text);white-space:nowrap;align-items:center;gap:3px;font-size:.82rem;font-weight:650;display:inline-flex}.status.good{color:var(--good)}.status.go{color:var(--accent)}.progress-row{align-items:center;gap:12px;display:flex}.progress-track{background:var(--surface-2);border-radius:999px;flex:1;height:7px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .35s}.progress-label{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.82rem;font-weight:600}.question{gap:14px;padding:18px}.q-meta{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:3px 9px;font-size:.72rem;font-weight:650}.chip.soft{background:var(--surface-2);color:var(--muted)}.chip.lvl-mudah,.pill.lvl-mudah{background:color-mix(in srgb, var(--lvl-mudah) 16%, transparent);color:var(--lvl-mudah)}.chip.lvl-sedang,.pill.lvl-sedang{background:color-mix(in srgb, var(--lvl-sedang) 18%, transparent);color:var(--lvl-sedang)}.chip.lvl-sulit,.pill.lvl-sulit{background:color-mix(in srgb, var(--lvl-sulit) 16%, transparent);color:var(--lvl-sulit)}.q-body{flex-direction:column;gap:10px;font-size:1.05rem;line-height:1.6;display:flex}.options{flex-direction:column;gap:10px;display:flex}.option{border:1.5px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:14px;align-items:center;gap:12px;width:100%;padding:12px 14px;font-size:1rem;transition:border-color .12s,background .12s,transform 80ms;display:flex}.option:not(:disabled):hover{border-color:color-mix(in srgb, var(--accent) 55%, var(--line))}.option:not(:disabled):active{transform:scale(.99)}.option:disabled{cursor:default}.opt-letter{background:var(--surface-2);width:30px;height:30px;color:var(--muted);border-radius:9px;flex:none;place-items:center;font-size:.85rem;font-weight:700;display:grid}.opt-text{min-width:0;overflow-x:auto}.option.right{border-color:var(--good);background:var(--good-soft)}.option.right .opt-letter{background:var(--good);color:var(--surface)}.option.wrong{border-color:var(--bad);background:var(--bad-soft)}.option.wrong .opt-letter{background:var(--bad);color:var(--surface)}.option.dim{opacity:.55}.feedback{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);flex-direction:column;gap:10px;padding:16px;animation:.2s rise;display:flex}.feedback.good{border-color:color-mix(in srgb, var(--good) 45%, var(--line))}.feedback.bad{border-color:color-mix(in srgb, var(--bad) 40%, var(--line))}.feedback-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.feedback.good .feedback-head strong{color:var(--good)}.feedback.bad .feedback-head strong{color:var(--bad)}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.steps{background:var(--surface-2);border-radius:12px;flex-direction:column;gap:8px;padding:12px 14px;font-size:.95rem;display:flex;overflow-x:auto}.steps strong{color:var(--accent)}.math{font-family:var(--math);white-space:nowrap;letter-spacing:.01em;font-size:1.08em}.math .var{padding:0 .04em;font-style:italic}.math sub{font-size:.7em;font-style:italic}.frac{vertical-align:middle;flex-direction:column;align-items:center;margin:0 .12em;font-size:.88em;line-height:1.15;display:inline-flex}.frac>span{padding:0 .2em}.frac>span:first-child{border-bottom:1px solid}.sys{max-width:100%;padding:2px 0 2px 17px;display:flex;position:relative;overflow-x:auto}.brace{fill:none;stroke:currentColor;stroke-width:1.4px;vector-effect:non-scaling-stroke;opacity:.8;width:11px;height:100%;position:absolute;top:0;left:0}.brace path{vector-effect:non-scaling-stroke}.sys-rows{flex-direction:column;gap:4px;padding:2px 0;display:flex}.sys-row,.calc-row{align-items:baseline;gap:14px;display:flex}.lbl{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem}.calc{border-left:2px solid var(--line);flex-direction:column;gap:3px;max-width:100%;padding-left:14px;display:flex;overflow-x:auto}.option .sys{padding:0}.option .sys-rows{gap:2px}.result{text-align:center;align-items:center;padding:24px 18px;position:relative}.ring{width:132px;height:132px}.ring-track{fill:none;stroke:var(--surface-2);stroke-width:9px}.ring-fill{fill:none;stroke:var(--accent);stroke-width:9px;stroke-linecap:round;transition:stroke-dashoffset .8s}.result-score{font-variant-numeric:tabular-nums;margin-top:-94px;margin-bottom:44px}.big-num{font-size:2.2rem;font-weight:750}.result-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px;display:flex}.review{gap:0;padding:0;overflow:hidden}.review-head{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:13px 14px;font-size:.9rem;font-weight:550;display:flex}.dot{width:24px;height:24px;color:var(--surface);border-radius:50%;flex:none;place-items:center;display:grid}.dot.good{background:var(--good)}.dot.bad{background:var(--bad)}.chev{color:var(--muted);transition:transform .15s;display:inline-flex;transform:rotate(90deg)}.chev.up{transform:rotate(-90deg)}.review-body{flex-direction:column;gap:12px;padding:0 14px 14px;display:flex}.review-answers{flex-direction:column;gap:8px;display:flex}.ans{border-radius:10px;flex-direction:column;gap:4px;padding:10px 12px;display:flex;overflow-x:auto}.ans.good{background:var(--good-soft)}.ans.bad{background:var(--bad-soft)}.ans .small{font-weight:650}.ans.good .small{color:var(--good)}.ans.bad .small{color:var(--bad)}.lesson-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.lesson-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:13px 14px;display:flex}.lesson-row:last-child{border-bottom:0}.lesson-row:active{background:var(--surface-2)}.lesson-num{background:var(--surface-2);width:30px;height:30px;color:var(--muted);border-radius:50%;flex:none;place-items:center;font-size:.85rem;font-weight:700;display:grid}.lesson-row.done .lesson-num{background:var(--accent-soft);color:var(--accent)}.lesson-title{font-weight:600;display:block}.lesson-head{flex-direction:column;gap:4px;display:flex}.lesson-head h1{font-size:1.5rem}.lesson-body{gap:14px;padding:18px;line-height:1.65}.lesson-h{margin-top:8px;font-size:1.05rem}.lesson-body>p,.box p,.example-body p,.try p{overflow-wrap:anywhere}.box{background:var(--accent-soft);border-left:3px solid var(--accent);border-radius:12px;flex-direction:column;gap:8px;padding:14px;display:flex}.box.tip{background:color-mix(in srgb, var(--lvl-sedang) 12%, var(--surface));border-left-color:var(--lvl-sedang)}.box.warn{background:var(--bad-soft);border-left-color:var(--bad)}.box-title{font-size:.9rem;font-weight:700}.example{border:1px solid var(--line);border-radius:12px;overflow:hidden}.example-title{background:var(--surface-2);flex-direction:column;gap:2px;padding:10px 14px;font-size:.95rem;font-weight:600;display:flex}.example-body{flex-direction:column;gap:10px;padding:12px 14px 14px;display:flex}.try{border:1.5px dashed color-mix(in srgb, var(--accent) 50%, var(--line));border-radius:12px;flex-direction:column;gap:8px;padding:14px;display:flex}.try-answer{flex-direction:column;gap:8px;animation:.2s rise;display:flex}.steplist,.bullets{flex-direction:column;gap:6px;margin:0;padding-left:22px;display:flex}.steplist li::marker{color:var(--accent);font-weight:700}.table-wrap{border:1px solid var(--line);border-radius:10px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:8px 10px}th{background:var(--surface-2);font-weight:650}tr:last-child td{border-bottom:0}.lesson-nav{grid-template-columns:1fr 1fr;gap:8px;display:grid}.lesson-nav .btn{font-size:.85rem}.graph-demo{flex-direction:column;align-items:stretch;gap:10px;display:flex}.plot{background:var(--surface);border-radius:12px;align-self:center;width:100%;max-width:320px}.plot .grid line{stroke:var(--line);stroke-width:1px}.plot .axis{stroke:var(--muted);stroke-width:1.4px}.tick-label text{fill:var(--muted);font-size:10px}.graph-line{stroke-width:3px;stroke-linecap:round}.graph-line.l0,.legend-item.l0>i{stroke:var(--accent);background:var(--accent)}.graph-line.l1,.legend-item.l1>i{stroke:var(--accent-2);background:var(--accent-2)}.graph-point{fill:var(--text);stroke:var(--surface);stroke-width:2.5px}.legend{flex-wrap:wrap;justify-content:center;gap:14px;font-size:.9rem;display:flex}.legend-item{align-items:center;gap:6px;display:inline-flex}.legend-item>i{border-radius:2px;width:16px;height:3px;display:inline-block}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.stat{gap:2px;padding:14px}.stat-num{font-variant-numeric:tabular-nums;align-items:center;gap:4px;font-size:1.6rem;font-weight:750;display:inline-flex}.accent-2{color:var(--accent-2)}.cal{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;width:100%;max-width:360px;margin:0 auto;display:grid}.cal-head{text-align:center;color:var(--muted);font-size:.7rem;font-weight:650}.cal-day{aspect-ratio:1;background:var(--surface-2);color:var(--muted);font-variant-numeric:tabular-nums;border-radius:9px;place-items:center;font-size:.75rem;display:grid}.cal-day.c1{background:color-mix(in srgb, var(--accent) 35%, var(--surface-2));color:var(--text)}.cal-day.c2{background:color-mix(in srgb, var(--accent) 65%, var(--surface-2));color:var(--accent-ink)}.cal-day.c3{background:var(--accent);color:var(--accent-ink);font-weight:700}.cal-day.today{outline:2px solid var(--accent-2);outline-offset:1px}.cal-day.future{opacity:.35}.cal-legend{justify-content:flex-end;align-items:center;gap:5px;display:flex}.cal-legend i{aspect-ratio:auto;border-radius:4px;width:14px;height:14px}.bar-row{flex-direction:column;gap:6px;display:flex}.history{flex-direction:column;display:flex}.history-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex}.history-row:last-child{border-bottom:0}.history-levels{gap:5px;display:flex}.pill{font-variant-numeric:tabular-nums;border-radius:999px;padding:3px 8px;font-size:.75rem;font-weight:650}.pill.off{opacity:.4}@media (width>=560px){.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
