:root{--bg:#0f0c29;--glass:#ffffff0d;--glass-2:#ffffff17;--line:#ffffff1a;--fg:#fff;--muted:#a09cbf;--lime:#cf0;--lime-ink:#0f0c29;--lav:#d8b4fe;--mint:#99f6e4;--pink:#f9a8d4;--blue:#93c5fd;--yellow:#fcd34d;--r-card:28px;--r-row:18px;--font:"Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--head:"Space Grotesk", "Manrope", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace}@supports (corner-shape:squircle){:root{--r-card:44px;--r-row:28px}.glass,.dock,.tile,.row,.btn,.chip,.field,.seg button{corner-shape:squircle}}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100vh;color:var(--fg);font:500 15px/1.5 var(--font);overflow-x:hidden}a{color:inherit;text-decoration:none}button,input{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0}:focus-visible{outline:2px solid var(--lime);outline-offset:2px}[hidden]{display:none!important}.glow{z-index:0;filter:blur(90px);pointer-events:none;border-radius:50%;position:fixed}.glow.a{background:#d8b4fe33;width:320px;height:320px;top:-96px;right:-96px}.glow.b{background:#93c5fd1f;width:288px;height:288px;top:45%;left:-128px}.glow.c{background:#ccff000f;width:384px;height:384px;bottom:-96px;right:-64px}.app{z-index:1;max-width:760px;margin:0 auto;padding:0 20px 128px;position:relative}.ic{flex-shrink:0;line-height:0;display:inline-flex}.ic svg{width:1em;height:1em}.eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:800}h1{font:700 32px/1.1 var(--head);letter-spacing:-.02em}h2{font:700 18px/1.2 var(--head);letter-spacing:-.01em}h3{font:700 16px/1.25 var(--head)}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:700}.muted{color:var(--muted)}.head{justify-content:space-between;align-items:flex-end;gap:12px;padding:44px 0 20px;display:flex}.head h1{margin-top:6px}.stack{flex-direction:column;gap:20px;display:flex}.section-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.glass{background:var(--glass);border:1px solid var(--line);border-radius:var(--r-card);-webkit-backdrop-filter:blur(14px);padding:22px;box-shadow:0 8px 32px #0003}.card-title{font:600 16px/1.2 var(--font);color:#ffffffe6;align-items:center;gap:10px;display:flex}.badge-ic{background:color-mix(in srgb, var(--c,var(--lav)) 20%, transparent);width:36px;height:36px;color:var(--c,var(--lav));border-radius:50%;place-items:center;font-size:18px;display:grid}.streak{background:var(--glass);border:1px solid var(--line);white-space:nowrap;border-radius:12px;align-items:center;gap:6px;padding:8px 12px;display:inline-flex}.streak .ic{color:var(--lime);font-size:16px}.streak b{font:700 15px var(--head);font-variant-numeric:tabular-nums}.streak span:last-child{letter-spacing:.15em;text-transform:uppercase;color:var(--muted);font-size:9px;font-weight:700}.streak.off .ic{color:var(--muted)}.bar{background:#ffffff14;border-radius:99px;height:6px;overflow:hidden}.bar>i{border-radius:inherit;background:var(--c,var(--lime));height:100%;box-shadow:0 0 10px color-mix(in srgb, var(--c,var(--lime)) 55%, transparent);transition:width .6s;display:block}.btn{height:42px;font:700 14px var(--head);white-space:nowrap;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:0 18px;transition:transform .12s,background .2s;display:inline-flex}.btn:active{transform:scale(.96)}.btn.lime{background:var(--lime);color:var(--lime-ink);box-shadow:0 6px 22px #ccff0038}.btn.lime:hover{background:#d9ff3a}.btn.ghost{background:var(--glass-2);border:1px solid var(--line);color:var(--fg)}.btn.ghost:hover{background:#ffffff24}.btn.danger{color:#ff8f8f}.btn .ic{font-size:16px}.continue .meta{justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.continue .meta>span,.card-title{white-space:nowrap}.continue .course{color:var(--muted);font-size:12px;font-weight:600}.continue h3{letter-spacing:-.01em;font-size:22px}.continue .pct-row{justify-content:space-between;align-items:baseline;margin:18px 0 8px;display:flex}.continue .big{font:700 28px var(--mono)}.continue .big small{color:var(--muted);margin-left:2px;font-size:13px;font-weight:500}.continue .foot{justify-content:space-between;align-items:center;gap:12px;margin-top:18px;display:flex}.continue .foot p{font-size:14px;font-weight:600}.goal-line{justify-content:space-between;align-items:flex-end;margin:14px 0 10px;display:flex}.goal-line .num{font-size:28px}.goal-line small{color:var(--muted);font-size:13px;font-weight:500;font-family:var(--font)}.week{grid-template-columns:repeat(7,1fr);align-items:end;gap:8px;margin-top:18px;display:grid}.week .d{color:var(--muted);letter-spacing:.1em;flex-direction:column;align-items:center;gap:6px;font-size:10px;font-weight:800;display:flex}.week .col{background:#ffffff0f;border-radius:8px;align-items:flex-end;width:100%;height:44px;display:flex;overflow:hidden}.week .col i{background:var(--mint);border-radius:8px;width:100%;min-height:0;transition:height .5s;display:block}.week .d.today{color:var(--lime)}.week .d.hit .col i{background:var(--lime)}.tiles{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.tile{background:var(--glass);border:1px solid var(--line);border-radius:20px;flex-direction:column;gap:10px;padding:16px 14px;display:flex}.tile .ic{color:var(--muted);font-size:22px}.tile .num{font-size:22px;line-height:1}.tile .lbl{color:var(--muted);font-size:11px;font-weight:700;line-height:1.3}.rows{flex-direction:column;gap:12px;display:flex}.row{border-radius:var(--r-row);background:var(--glass);border:1px solid var(--line);align-items:center;gap:14px;padding:14px;transition:background .2s,transform .12s;display:flex}.row:hover{background:var(--glass-2)}.row:active{transform:scale(.985)}.row .body{flex:1;min-width:0}.row h4{font:700 14px/1.3 var(--head);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.row p{color:var(--muted);margin-top:2px;font-size:12px}.row .chev{color:var(--muted);font-size:20px}.icon-tile{background:color-mix(in srgb, var(--c,var(--lav)) 16%, transparent);width:46px;height:46px;color:var(--c,var(--lav));border:1px solid color-mix(in srgb, var(--c,var(--lav)) 28%, transparent);border-radius:14px;flex-shrink:0;place-items:center;font-size:24px;display:grid}.field{position:relative}.field .ic{color:var(--muted);font-size:20px;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.field input{background:var(--glass);border:1px solid var(--line);width:100%;height:50px;color:var(--fg);border-radius:16px;outline:none;padding:0 16px 0 46px}.field input::placeholder{color:var(--muted)}.field input:focus{border-color:var(--lime);box-shadow:0 0 0 1px var(--lime)}.chips{scrollbar-width:none;gap:8px;margin:0 -20px;padding:0 20px 2px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{color:var(--muted);background:var(--glass);border:1px solid var(--line);border-radius:12px;flex-shrink:0;padding:9px 16px;font-size:13px;font-weight:600}.chip[aria-pressed=true]{color:var(--fg);background:var(--glass-2);border-color:#ffffff38}.subjects{grid-template-columns:repeat(5,1fr);gap:12px 8px;display:grid}.subj{color:#fff9;flex-direction:column;align-items:center;gap:8px;font-size:11px;font-weight:700;display:flex}.subj .icon-tile{border-radius:18px;width:54px;height:54px;font-size:26px;transition:transform .15s,background .2s}.subj[aria-pressed=true]{color:var(--fg)}.subj[aria-pressed=true] .icon-tile{background:color-mix(in srgb, var(--c) 32%, transparent);border-color:var(--c);transform:translateY(-2px)}.grade-head{justify-content:space-between;align-items:center;margin:8px 0 12px;display:flex}.courses{gap:14px;display:grid}.course{flex-direction:column;gap:14px;padding:18px;display:flex}.course .top{align-items:center;gap:14px;display:flex}.course .top .body{flex:1;min-width:0}.course .top h3{font-size:16px}.course .top p{color:var(--muted);margin-top:2px;font-size:12px}.course .top .num{font-size:18px}.map{flex-wrap:wrap;gap:5px;display:flex}.dot{background:#ffffff1a;border-radius:5px;width:15px;height:15px;transition:transform .12s}.dot:hover{transform:scale(1.35)}.dot[data-l=attempted]{background:var(--yellow)}.dot[data-l=familiar]{background:var(--blue)}.dot[data-l=proficient]{background:var(--mint)}.dot[data-l=mastered]{background:var(--lime);box-shadow:0 0 8px #ccff0080}.course .foot{justify-content:space-between;align-items:center;gap:10px;display:flex}.pill{letter-spacing:.14em;text-transform:uppercase;background:var(--glass-2);border:1px solid var(--line);color:var(--muted);border-radius:99px;align-items:center;gap:6px;padding:5px 11px;font-size:10px;font-weight:800;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.pill[data-l=attempted]{color:var(--yellow)}.pill[data-l=familiar]{color:var(--blue)}.pill[data-l=proficient]{color:var(--mint)}.pill[data-l=mastered]{color:var(--lime)}.legend{color:var(--muted);flex-wrap:wrap;gap:6px 14px;font-size:11px;font-weight:600;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{background:#ffffff24;border-radius:3px;width:10px;height:10px}.empty{text-align:center;color:var(--muted);padding:40px 20px}.set{flex-direction:column;gap:14px;display:flex}.set label{font-size:13px;font-weight:700}.set .hint{color:var(--muted);font-size:12px}.set input[type=text]{border:1px solid var(--line);background:#ffffff0f;border-radius:14px;outline:none;width:100%;height:46px;padding:0 14px}.set input[type=text]:focus{border-color:var(--lime)}.seg{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.seg button{border:1px solid var(--line);height:44px;font:700 14px var(--mono);color:var(--muted);background:#ffffff0f;border-radius:12px}.seg button[aria-pressed=true]{background:var(--lime);border-color:var(--lime);color:var(--lime-ink)}.btn-row{flex-wrap:wrap;gap:10px;display:flex}.status{color:var(--mint);min-height:18px;font-size:12px;font-weight:600}.status.err{color:#ff8f8f}.dock{z-index:50;left:50%;bottom:max(16px, env(safe-area-inset-bottom));border:1px solid var(--line);-webkit-backdrop-filter:blur(22px);background:#141038c7;border-radius:33px;align-items:center;width:min(420px,100% - 32px);height:66px;padding:0 8px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 18px 50px #00000073}.dock a{color:#ffffff80;letter-spacing:.04em;border-radius:26px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;height:52px;font-size:10px;font-weight:700;transition:color .2s,background .2s;display:flex}.dock a .ic{font-size:22px}.dock a[aria-current=page]{color:var(--lime);background:#ffffff14;box-shadow:0 0 16px #ffffff12}.dock a:not([aria-current]):hover{color:#fff}@media (min-width:720px){.courses{grid-template-columns:1fr 1fr}.tiles{gap:16px}}@media (max-width:380px){h1{font-size:27px}.tiles{gap:8px}.tile{padding:14px 10px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
