:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f7f8fc;--surface:#fff;--surface-soft:#f0f3f9;--text:#172033;--muted:#6e7b91;--line:#e1e6ef;--accent:#3f5ce8;--accent-soft:#e7ebff;--learning:#f4b840;--learning-soft:#fff1d0;--mastered:#38a96a;--mastered-soft:#dff6e8;--shadow:0 14px 42px #1b2c4c14}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#11141c;--surface:#1a1f2a;--surface-soft:#242b38;--text:#f3f6fb;--muted:#a2afc3;--line:#323b4b;--accent:#9dafef;--accent-soft:#26325c;--learning:#f5c35c;--learning-soft:#493c1f;--mastered:#66c891;--mastered-soft:#1d4932;--shadow:0 14px 42px #00000040}}*{box-sizing:border-box}html{background:var(--bg);min-height:100%}body{background:var(--bg);min-height:100dvh;color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,sans-serif}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.app-shell{min-height:100dvh;padding:max(24px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(22px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left))}.tracker{width:min(100%,1040px);margin:0 auto}.topbar{justify-content:space-between;align-items:flex-start;min-height:66px;display:flex;position:relative}.subject-trigger{max-width:calc(100vw - 120px);color:var(--text);letter-spacing:-.04em;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;padding:0;font-size:clamp(23px,4vw,31px);font-weight:760;display:flex}.subject-trigger span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.year{color:var(--muted);margin:4px 0 0;font-size:13px}.top-actions{align-items:center;gap:8px;display:flex}.percent{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:8px 10px;font-size:13px;font-weight:750}.icon-button{border:1px solid var(--line);width:37px;height:37px;color:var(--muted);background:var(--surface);cursor:pointer;border-radius:50%;padding:0 0 6px;font-size:22px;line-height:1}.settings-menu{z-index:4;border:1px solid var(--line);width:240px;box-shadow:var(--shadow);background:var(--surface);border-radius:16px;padding:7px;position:absolute;top:48px;right:0}.settings-menu button{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:11px 12px;font-size:14px;display:block}.settings-menu button:hover{background:var(--surface-soft)}.settings-menu hr{border:0;border-top:1px solid var(--line);margin:5px 0}.progress-section{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:24px;margin-top:34px;padding:24px}.section-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.section-head h1{letter-spacing:-.025em;margin:0;font-size:20px}.section-head p{color:var(--muted);margin:6px 0 0;font-size:14px}.section-head p span{margin:0 4px}.section-head strong{color:var(--accent);white-space:nowrap;font-size:15px}.progress-bar{background:var(--surface-soft);border-radius:999px;height:10px;margin-top:23px;display:flex;overflow:hidden}.progress-bar span{height:100%;transition:width .2s}.mastered-segment{background:var(--mastered)}.learning-segment{background:var(--learning)}.legend{color:var(--muted);flex-wrap:wrap;gap:10px 18px;margin:18px 3px 20px;font-size:13px;display:flex}.legend span{align-items:center;gap:6px;display:flex}.dot{border-radius:50%;width:8px;height:8px}.neutral{background:#c9d1dd}.learning{background:var(--learning)}.mastered{background:var(--mastered)}.task-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.task-card{aspect-ratio:1;border:1px solid var(--line);min-height:66px;color:var(--text);background:var(--surface);cursor:pointer;border-radius:18px;font-size:clamp(19px,5vw,24px);font-weight:760;transition:transform .18s,background .18s,border-color .18s,box-shadow .18s}.task-card:active{transform:scale(.94)}.task-card:focus-visible,.subject-trigger:focus-visible,.icon-button:focus-visible,.primary-button:focus-visible{outline:3px solid color-mix(in srgb,var(--accent),transparent 55%);outline-offset:3px}.task-card.learning{border-color:color-mix(in srgb,var(--learning),var(--line) 30%);background:var(--learning-soft)}.task-card.mastered{border-color:color-mix(in srgb,var(--mastered),var(--line) 30%);background:var(--mastered-soft);color:color-mix(in srgb,var(--mastered),var(--text) 40%)}.save-row{min-height:46px;color:var(--muted);text-align:center;justify-content:center;align-items:center;gap:10px;padding:18px 0 0;font-size:13px;display:flex}.save-row button{color:var(--accent);cursor:pointer;background:0 0;border:0;font-weight:700}.sheet-layer{z-index:10;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0c121f6b;align-items:flex-end;display:flex;position:fixed;inset:0}.subject-sheet{width:min(100%,560px);max-height:80dvh;padding:10px 18px max(21px,env(safe-area-inset-bottom));background:var(--surface);border-radius:27px 27px 0 0;margin:0 auto;animation:.2s ease-out sheet-in;overflow:auto;box-shadow:0 -20px 60px #0000002e}.sheet-handle{background:var(--line);border-radius:999px;width:38px;height:5px;margin:2px auto 16px}.subject-sheet h2{margin:0 0 12px;font-size:20px}.subject-option{width:100%;min-height:58px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:14px;justify-content:space-between;align-items:center;padding:12px 11px;font-weight:650;display:flex}.subject-option.selected{color:var(--accent);background:var(--accent-soft)}.subject-option small{color:var(--muted);font-weight:600}.toast{z-index:9;left:50%;bottom:max(20px,calc(env(safe-area-inset-bottom) + 12px));border:1px solid var(--line);width:min(100vw - 36px,460px);color:var(--text);background:var(--surface);box-shadow:var(--shadow);border-radius:15px;align-items:center;gap:11px;padding:13px 15px;font-size:14px;display:flex;position:fixed;transform:translate(-50%)}.toast button{color:var(--accent);cursor:pointer;background:0 0;border:0;margin-left:auto;font-weight:750}.skeleton{padding-top:12px}.skeleton-line,.skeleton-card,.skeleton-task,.skeleton-bar{background:linear-gradient(100deg,var(--surface-soft) 35%,color-mix(in srgb,var(--surface-soft),var(--surface) 70%) 50%,var(--surface-soft) 65%);background-size:200% 100%;animation:1.4s linear infinite pulse}.skeleton-line{border-radius:8px;width:190px;height:17px}.skeleton-line.title{width:260px;height:30px}.skeleton-card{border-radius:24px;height:135px;margin-top:34px;padding:24px}.skeleton-bar{border-radius:99px;height:10px;margin-top:25px}.skeleton-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:20px;display:grid}.skeleton-task{aspect-ratio:1;border-radius:18px}@keyframes pulse{to{background-position:-200% 0}}.login-shell{width:100%;min-height:100dvh;padding:max(24px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr);place-items:center;display:grid;overflow-x:hidden}.login-card{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;max-width:420px;box-shadow:var(--shadow);text-align:center;border-radius:28px;padding:34px 28px 28px}.app-mark{color:#fff;background:var(--accent);letter-spacing:-.06em;border-radius:18px;place-items:center;width:58px;height:58px;margin:0 auto 19px;font-size:16px;font-weight:800;display:grid}.eyebrow{color:var(--accent);letter-spacing:.1em;margin:0;font-size:12px;font-weight:800}.login-card h1{letter-spacing:-.055em;margin:7px 0;font-size:32px}.muted{color:var(--muted);margin:0 0 26px;line-height:1.5}.login-card input{border:1px solid var(--line);width:100%;height:62px;color:var(--text);background:var(--surface-soft);letter-spacing:.25em;text-align:center;border-radius:16px;outline:0;font-size:25px;font-weight:750;transition:border-color .18s,box-shadow .18s}.login-card input:focus{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent),transparent 85%)}.input-help{color:var(--muted);margin:9px 0 17px;font-size:13px}.primary-button{color:#fff;background:var(--accent);cursor:pointer;border:0;border-radius:15px;width:100%;min-height:53px;font-weight:750;transition:transform .18s,opacity .18s}.primary-button:active{transform:scale(.98)}.primary-button:disabled{opacity:.7;cursor:wait}.form-error{color:#d34c51;margin:-3px 0 15px;font-size:13px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes sheet-in{0%{opacity:.7;transform:translateY(24px)}}@media (min-width:600px){.app-shell{padding-top:max(36px,env(safe-area-inset-top))}.task-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}.task-card{min-height:88px}.sheet-layer{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;padding:93px 18px 0;display:block}.subject-sheet{width:360px;max-height:560px;box-shadow:var(--shadow);border-radius:18px;margin:0;padding:13px}.sheet-handle{display:none}.subject-sheet h2{margin:5px 8px 9px;font-size:17px}.subject-option{min-height:52px}.skeleton-grid{grid-template-columns:repeat(7,1fr);gap:12px}}@media (min-width:900px){.task-grid{grid-template-columns:repeat(9,minmax(0,1fr))}.task-card{min-height:94px}.progress-section{padding:28px}}
