:root{--bg:#f6f7fb;--surface:#fff;--ink:#101828;--muted:#7c879a;--line:#e8ebf2;--blue:#2f6bf2;--blue-soft:#edf3ff;--green:#2b9d6f;--green-soft:#e9f8f0;--purple:#7865d4;--orange:#d8892d;--shadow:0 18px 55px rgba(25,38,72,.08);--radius:22px}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;color:var(--ink);font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;min-width:44px;min-height:44px}button:focus-visible{outline:3px solid rgba(47,107,242,.35);outline-offset:3px}.app-shell{width:min(100%,960px);min-height:100vh;margin:auto;padding:34px 34px 112px}.app-view{display:none;animation:appear .28s ease-out}.app-view.is-active{display:block}@keyframes appear{from{opacity:.35;transform:translateY(5px)}to{opacity:1;transform:none}}.screen-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.screen-header h1{margin:0;font:700 clamp(32px,5vw,46px)/1.05 'Instrument Sans',sans-serif;letter-spacing:-.055em}.date-kicker,.section-label{margin:0 0 8px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.13em}.round-button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.8);color:var(--muted);font-size:18px;display:grid;place-items:center}.small-button,.text-button{color:var(--blue);font-weight:700;font-size:13px}.small-button{padding:0 14px;border:1px solid #dce6ff;border-radius:12px;background:var(--blue-soft)}.muted{color:var(--muted);margin:0;font-size:13px;line-height:1.4}.today-hero{display:flex;align-items:center;justify-content:space-between;padding:26px 28px;margin-bottom:18px;background:linear-gradient(135deg,#e9f0ff,#f8faff 72%);border:1px solid #dce7ff;border-radius:var(--radius)}.today-hero h2{margin:0 0 7px;font:700 clamp(22px,4vw,32px) 'Instrument Sans';letter-spacing:-.04em}.progress-dial{width:82px;height:82px;flex:0 0 auto;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:conic-gradient(var(--blue) 33%,rgba(47,107,242,.12) 0);position:relative}.progress-dial:after{content:'';position:absolute;inset:8px;background:#f0f5ff;border-radius:50%}.progress-dial span,.progress-dial small{position:relative;z-index:1}.progress-dial span{font:700 18px 'Instrument Sans'}.progress-dial small{font-size:9px;color:var(--muted)}.today-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.surface,.settings-group{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.surface{padding:22px}.section-heading,.view-heading,.calendar-toolbar,.exam-top,.settings-row,.focus-strip{display:flex;align-items:center}.section-heading,.view-heading{justify-content:space-between}.section-heading h3,.view-heading h2{margin:0;font:700 19px 'Instrument Sans';letter-spacing:-.035em}.count-badge{padding:5px 9px;border-radius:9px;background:var(--blue-soft);color:var(--blue);font-size:11px;font-weight:700}.lesson-list,.task-list{margin-top:16px}.lesson-item,.task-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.lesson-item:last-child,.task-item:last-child{border-bottom:0}.time{width:54px;color:var(--muted);font-size:11px;font-weight:600}.lesson-bar{width:3px;height:31px;border-radius:3px;background:var(--blue)}.lesson-item strong,.task-item strong{font-size:13px;display:block;line-height:1.25}.lesson-item small,.task-item small{color:var(--muted);font-size:11px}.task-item{width:100%;cursor:pointer;text-align:left}.task-check{width:22px;height:22px;min-width:22px;border:1.5px solid #c8d0dd;border-radius:7px;display:grid;place-items:center;color:#fff;font-size:12px}.task-item.is-done .task-check{background:var(--green);border-color:var(--green)}.task-item.is-done strong{text-decoration:line-through;color:var(--muted)}.task-copy{flex:1}.focus-strip{gap:13px;margin-top:18px;padding:14px 16px;background:#fff;border-radius:17px;border:1px solid var(--line)}.focus-icon{width:31px;height:31px;border-radius:10px;display:grid;place-items:center;background:#f1edff;color:var(--purple)}.focus-strip strong{font-size:12px}.focus-strip p{margin:3px 0 0;color:var(--muted);font-size:11px}.focus-strip .text-button{margin-left:auto}.segmented-control{display:grid;grid-template-columns:1fr 1fr;padding:3px;margin-bottom:23px;background:#e9edf4;border-radius:11px}.segment{min-height:34px;border-radius:9px;font-size:12px;font-weight:700;color:var(--muted)}.segment.is-selected{background:#fff;color:var(--ink);box-shadow:0 2px 7px rgba(25,38,72,.1)}.calendar-toolbar{justify-content:center;gap:20px;margin-bottom:20px}.calendar-toolbar h2{margin:0;font:700 21px 'Instrument Sans';letter-spacing:-.04em}.calendar-toolbar .round-button{width:36px;height:36px;min-width:36px}.calendar-grid,.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.calendar-weekdays{margin-bottom:7px;color:var(--muted);font-size:10px;font-weight:700;text-align:center}.calendar-cell{min-height:88px;padding:9px 7px;border:1px solid var(--line);border-radius:12px;background:#fff}.calendar-cell.outside{opacity:.35}.calendar-cell.current{background:var(--blue-soft);border-color:#a9c3ff}.calendar-cell.selected{box-shadow:inset 0 0 0 2px var(--blue)}.day-number{font-size:12px;font-weight:700}.calendar-event{margin-top:7px;padding:4px;border-radius:5px;font-size:9px;line-height:1.15;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.calendar-event.lesson{background:var(--blue-soft);color:#2c5bc6}.calendar-event.study{background:var(--green-soft);color:#237b58}.week-list{display:grid;gap:9px}.week-day{display:grid;grid-template-columns:54px 1fr auto;gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:#fff}.week-day.current{background:var(--blue-soft);border-color:#bad0ff}.week-day strong{font-size:12px}.week-day small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.week-day b{font-size:12px;color:var(--blue)}.calendar-key{display:flex;gap:18px;margin-top:16px;color:var(--muted);font-size:10px}.key-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.lesson-dot{background:var(--blue)}.study-dot{background:var(--green)}.done-dot{background:var(--purple)}.exam-overview{display:grid;grid-template-columns:1fr auto;gap:12px 24px;align-items:center;background:#101828;color:#fff;border-color:#101828}.exam-overview .section-label,.exam-overview .muted{color:#aeb9cb}.exam-overview strong{display:block;font:700 42px 'Instrument Sans';letter-spacing:-.06em}.overview-stats{display:flex;gap:22px}.overview-stats span{display:flex;flex-direction:column}.overview-stats b{font:700 22px 'Instrument Sans'}.overview-stats small{margin-top:3px;color:#aeb9cb;font-size:10px}.exam-overview .progress{grid-column:1/-1;margin:4px 0 0;background:#2a3446}.exam-overview .progress span{background:#81a8ff}.view-heading{margin:27px 0 12px}.view-heading span{color:var(--muted);font-size:11px}.exam-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.exam-card{padding:17px;background:#fff;border:1px solid var(--line);border-radius:17px}.exam-top{justify-content:space-between;gap:12px}.exam-card h3{margin:0;font-size:14px;line-height:1.25}.exam-pct{color:var(--blue);font:700 16px 'Instrument Sans'}.exam-meta{margin:7px 0 13px;color:var(--muted);font-size:11px}.progress{height:6px;background:#edf0f5;border-radius:9px;overflow:hidden}.progress span{display:block;height:100%;border-radius:inherit;background:var(--blue)}.degree-hero{display:flex;align-items:center;gap:24px;padding:25px;background:linear-gradient(135deg,#f0edff,#fff);border:1px solid #e4ddff;border-radius:var(--radius)}.degree-ring{width:106px;height:106px;flex:0 0 auto;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:conic-gradient(var(--purple) 66%,#e8e2ff 0)}.degree-ring:before{content:'';position:absolute}.degree-ring span,.degree-ring small{color:#fff;text-shadow:0 1px 3px rgba(45,27,112,.2)}.degree-ring span{font:700 24px 'Instrument Sans'}.degree-ring small{font-size:10px}.degree-hero h2{margin:0 0 7px;font:700 24px 'Instrument Sans';letter-spacing:-.04em}.roadmap{margin-top:28px}.roadmap-line{position:relative;display:grid;gap:12px}.roadmap-line:before{content:'';position:absolute;left:20px;top:25px;bottom:25px;width:2px;background:#e4e8f0}.roadmap-step{position:relative;display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:16px}.roadmap-step>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#edf0f5;color:var(--muted);font-size:12px;font-weight:700;z-index:1}.roadmap-step.is-done>span{background:var(--green);color:#fff}.roadmap-step.is-current{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.roadmap-step.is-current>span{background:var(--blue);color:#fff}.roadmap-step strong{display:block;font-size:13px}.roadmap-step small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.thesis-card{display:flex;align-items:center;gap:13px;margin-top:18px;padding:16px}.thesis-card h3{margin:0 0 5px;font:700 15px 'Instrument Sans'}.thesis-card .section-label{margin-bottom:5px}.thesis-card .round-button{margin-left:auto}.thesis-icon{width:35px;height:35px;display:grid;place-items:center;border-radius:11px;background:#fff3e4;color:var(--orange);font-size:21px}.profile-avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#dce7ff;color:#315eca;font-size:12px;font-weight:700}.settings-group{overflow:hidden;margin-bottom:20px}.settings-group>.section-label{padding:20px 20px 8px;margin:0}.settings-row{width:100%;gap:13px;padding:14px 20px;text-align:left;border-top:1px solid var(--line)}.settings-row>span:nth-child(2){flex:1}.settings-row strong,.settings-row small{display:block}.settings-row strong{font-size:13px}.settings-row small{margin-top:3px;color:var(--muted);font-size:11px}.settings-row>b{color:#a2adbf;font-size:20px;font-weight:400}.row-icon{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;font-size:13px;font-weight:700}.blue-icon{background:var(--blue-soft);color:var(--blue)}.purple-icon{background:#f0edff;color:var(--purple)}.green-icon{background:var(--green-soft);color:var(--green)}.orange-icon{background:#fff3e4;color:var(--orange)}.gray-icon{background:#edf0f5;color:var(--muted)}.settings-footer{text-align:center;color:var(--muted);font-size:10px;margin:36px 0}.tab-bar{position:fixed;z-index:5;bottom:14px;left:50%;transform:translateX(-50%);width:min(calc(100% - 28px),590px);display:grid;grid-template-columns:repeat(5,1fr);padding:8px 7px calc(8px + env(safe-area-inset-bottom));background:rgba(255,255,255,.83);border:1px solid rgba(225,229,238,.92);border-radius:25px;box-shadow:0 12px 35px rgba(28,39,71,.16);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:48px;border-radius:17px;color:#98a3b5}.tab span{font-size:18px;line-height:1}.tab small{font-size:10px;font-weight:600}.tab.is-active{color:var(--blue);background:var(--blue-soft)}.toast{position:fixed;z-index:10;bottom:99px;left:50%;transform:translate(-50%,10px);padding:11px 15px;border-radius:13px;background:#101828;color:#fff;font-size:12px;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:680px){.app-shell{padding:24px 18px 110px}.today-grid,.exam-list{grid-template-columns:1fr}.today-hero{padding:21px}.surface{padding:18px}.calendar-cell{min-height:76px;padding:7px 5px}.calendar-event{font-size:8px}.calendar-key{gap:10px}.degree-hero{padding:19px;gap:16px}.degree-ring{width:88px;height:88px}.degree-hero h2{font-size:20px}}@media(max-width:420px){.screen-header{margin-bottom:22px}.screen-header h1{font-size:34px}.today-hero h2{font-size:24px}.progress-dial{width:70px;height:70px}.calendar-grid,.calendar-weekdays{gap:4px}.calendar-cell{min-height:68px}.calendar-event{margin-top:4px;padding:3px}.degree-hero{align-items:flex-start;flex-direction:column}.degree-ring{width:78px;height:78px}.degree-ring span{font-size:20px}}
:root{--bg:#f6f7fb;--surface:#fff;--ink:#101828;--muted:#7c879a;--line:#e8ebf2;--blue:#2f6bf2;--blue-soft:#edf3ff;--green:#2b9d6f;--green-soft:#e9f8f0;--purple:#7865d4;--orange:#d8892d;--shadow:0 18px 55px rgba(25,38,72,.08);--radius:22px}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;color:var(--ink);font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;min-width:44px;min-height:44px}button:focus-visible{outline:3px solid rgba(47,107,242,.35);outline-offset:3px}.app-shell{width:min(100%,960px);min-height:100vh;margin:auto;padding:34px 34px 112px}.app-view{display:none;animation:appear .28s ease-out}.app-view.is-active{display:block}@keyframes appear{from{opacity:.35;transform:translateY(5px)}to{opacity:1;transform:none}}.screen-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.screen-header h1{margin:0;font:700 clamp(32px,5vw,46px)/1.05 'Instrument Sans',sans-serif;letter-spacing:-.055em}.date-kicker,.section-label{margin:0 0 8px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.13em}.round-button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.8);color:var(--muted);font-size:18px;display:grid;place-items:center}.small-button,.text-button{color:var(--blue);font-weight:700;font-size:13px}.small-button{padding:0 14px;border:1px solid #dce6ff;border-radius:12px;background:var(--blue-soft)}.muted{color:var(--muted);margin:0;font-size:13px;line-height:1.4}.today-hero{display:flex;align-items:center;justify-content:space-between;padding:26px 28px;margin-bottom:18px;background:linear-gradient(135deg,#e9f0ff,#f8faff 72%);border:1px solid #dce7ff;border-radius:var(--radius)}.today-hero h2{margin:0 0 7px;font:700 clamp(22px,4vw,32px) 'Instrument Sans';letter-spacing:-.04em}.progress-dial{width:82px;height:82px;flex:0 0 auto;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:conic-gradient(var(--blue) 33%,rgba(47,107,242,.12) 0);position:relative}.progress-dial:after{content:'';position:absolute;inset:8px;background:#f0f5ff;border-radius:50%}.progress-dial span,.progress-dial small{position:relative;z-index:1}.progress-dial span{font:700 18px 'Instrument Sans'}.progress-dial small{font-size:9px;color:var(--muted)}.today-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.surface,.settings-group{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.surface{padding:22px}.section-heading,.view-heading,.calendar-toolbar,.exam-top,.settings-row,.focus-strip{display:flex;align-items:center}.section-heading,.view-heading{justify-content:space-between}.section-heading h3,.view-heading h2{margin:0;font:700 19px 'Instrument Sans';letter-spacing:-.035em}.count-badge{padding:5px 9px;border-radius:9px;background:var(--blue-soft);color:var(--blue);font-size:11px;font-weight:700}.lesson-list,.task-list{margin-top:16px}.lesson-item,.task-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.lesson-item:last-child,.task-item:last-child{border-bottom:0}.time{width:54px;color:var(--muted);font-size:11px;font-weight:600}.lesson-bar{width:3px;height:31px;border-radius:3px;background:var(--blue)}.lesson-item strong,.task-item strong{font-size:13px;display:block;line-height:1.25}.lesson-item small,.task-item small{color:var(--muted);font-size:11px}.task-item{width:100%;cursor:pointer;text-align:left}.task-check{width:22px;height:22px;min-width:22px;border:1.5px solid #c8d0dd;border-radius:7px;display:grid;place-items:center;color:#fff;font-size:12px}.task-item.is-done .task-check{background:var(--green);border-color:var(--green)}.task-item.is-done strong{text-decoration:line-through;color:var(--muted)}.task-copy{flex:1}.focus-strip{gap:13px;margin-top:18px;padding:14px 16px;background:#fff;border-radius:17px;border:1px solid var(--line)}.focus-icon{width:31px;height:31px;border-radius:10px;display:grid;place-items:center;background:#f1edff;color:var(--purple)}.focus-strip strong{font-size:12px}.focus-strip p{margin:3px 0 0;color:var(--muted);font-size:11px}.focus-strip .text-button{margin-left:auto}.segmented-control{display:grid;grid-template-columns:1fr 1fr;padding:3px;margin-bottom:23px;background:#e9edf4;border-radius:11px}.segment{min-height:34px;border-radius:9px;font-size:12px;font-weight:700;color:var(--muted)}.segment.is-selected{background:#fff;color:var(--ink);box-shadow:0 2px 7px rgba(25,38,72,.1)}.calendar-toolbar{justify-content:center;gap:20px;margin-bottom:20px}.calendar-toolbar h2{margin:0;font:700 21px 'Instrument Sans';letter-spacing:-.04em}.calendar-toolbar .round-button{width:36px;height:36px;min-width:36px}.calendar-grid,.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.calendar-weekdays{margin-bottom:7px;color:var(--muted);font-size:10px;font-weight:700;text-align:center}.calendar-cell{min-height:88px;padding:9px 7px;border:1px solid var(--line);border-radius:12px;background:#fff}.calendar-cell.outside{opacity:.35}.calendar-cell.current{background:var(--blue-soft);border-color:#a9c3ff}.calendar-cell.selected{box-shadow:inset 0 0 0 2px var(--blue)}.day-number{font-size:12px;font-weight:700}.calendar-event{margin-top:7px;padding:4px;border-radius:5px;font-size:9px;line-height:1.15;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.calendar-event.lesson{background:var(--blue-soft);color:#2c5bc6}.calendar-event.study{background:var(--green-soft);color:#237b58}.week-list{display:grid;gap:9px}.week-day{display:grid;grid-template-columns:54px 1fr auto;gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:#fff}.week-day.current{background:var(--blue-soft);border-color:#bad0ff}.week-day strong{font-size:12px}.week-day small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.week-day b{font-size:12px;color:var(--blue)}.calendar-key{display:flex;gap:18px;margin-top:16px;color:var(--muted);font-size:10px}.key-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.lesson-dot{background:var(--blue)}.study-dot{background:var(--green)}.done-dot{background:var(--purple)}.exam-overview{display:grid;grid-template-columns:1fr auto;gap:12px 24px;align-items:center;background:#101828;color:#fff;border-color:#101828}.exam-overview .section-label,.exam-overview .muted{color:#aeb9cb}.exam-overview strong{display:block;font:700 42px 'Instrument Sans';letter-spacing:-.06em}.overview-stats{display:flex;gap:22px}.overview-stats span{display:flex;flex-direction:column}.overview-stats b{font:700 22px 'Instrument Sans'}.overview-stats small{margin-top:3px;color:#aeb9cb;font-size:10px}.exam-overview .progress{grid-column:1/-1;margin:4px 0 0;background:#2a3446}.exam-overview .progress span{background:#81a8ff}.view-heading{margin:27px 0 12px}.view-heading span{color:var(--muted);font-size:11px}.exam-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.exam-card{padding:17px;background:#fff;border:1px solid var(--line);border-radius:17px}.exam-top{justify-content:space-between;gap:12px}.exam-card h3{margin:0;font-size:14px;line-height:1.25}.exam-pct{color:var(--blue);font:700 16px 'Instrument Sans'}.exam-meta{margin:7px 0 13px;color:var(--muted);font-size:11px}.progress{height:6px;background:#edf0f5;border-radius:9px;overflow:hidden}.progress span{display:block;height:100%;border-radius:inherit;background:var(--blue)}.degree-hero{display:flex;align-items:center;gap:24px;padding:25px;background:linear-gradient(135deg,#f0edff,#fff);border:1px solid #e4ddff;border-radius:var(--radius)}.degree-ring{width:106px;height:106px;flex:0 0 auto;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:conic-gradient(var(--purple) 66%,#e8e2ff 0)}.degree-ring:before{content:'';position:absolute}.degree-ring span,.degree-ring small{color:#fff;text-shadow:0 1px 3px rgba(45,27,112,.2)}.degree-ring span{font:700 24px 'Instrument Sans'}.degree-ring small{font-size:10px}.degree-hero h2{margin:0 0 7px;font:700 24px 'Instrument Sans';letter-spacing:-.04em}.roadmap{margin-top:28px}.roadmap-line{position:relative;display:grid;gap:12px}.roadmap-line:before{content:'';position:absolute;left:20px;top:25px;bottom:25px;width:2px;background:#e4e8f0}.roadmap-step{position:relative;display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:16px}.roadmap-step>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#edf0f5;color:var(--muted);font-size:12px;font-weight:700;z-index:1}.roadmap-step.is-done>span{background:var(--green);color:#fff}.roadmap-step.is-current{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.roadmap-step.is-current>span{background:var(--blue);color:#fff}.roadmap-step strong{display:block;font-size:13px}.roadmap-step small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.thesis-card{display:flex;align-items:center;gap:13px;margin-top:18px;padding:16px}.thesis-card h3{margin:0 0 5px;font:700 15px 'Instrument Sans'}.thesis-card .section-label{margin-bottom:5px}.thesis-card .round-button{margin-left:auto}.thesis-icon{width:35px;height:35px;display:grid;place-items:center;border-radius:11px;background:#fff3e4;color:var(--orange);font-size:21px}.profile-avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#dce7ff;color:#315eca;font-size:12px;font-weight:700}.settings-group{overflow:hidden;margin-bottom:20px}.settings-group>.section-label{padding:20px 20px 8px;margin:0}.settings-row{width:100%;gap:13px;padding:14px 20px;text-align:left;border-top:1px solid var(--line)}.settings-row>span:nth-child(2){flex:1}.settings-row strong,.settings-row small{display:block}.settings-row strong{font-size:13px}.settings-row small{margin-top:3px;color:var(--muted);font-size:11px}.settings-row>b{color:#a2adbf;font-size:20px;font-weight:400}.row-icon{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;font-size:13px;font-weight:700}.blue-icon{background:var(--blue-soft);color:var(--blue)}.purple-icon{background:#f0edff;color:var(--purple)}.green-icon{background:var(--green-soft);color:var(--green)}.orange-icon{background:#fff3e4;color:var(--orange)}.gray-icon{background:#edf0f5;color:var(--muted)}.settings-footer{text-align:center;color:var(--muted);font-size:10px;margin:36px 0}.tab-bar{position:fixed;z-index:5;bottom:14px;left:50%;transform:translateX(-50%);width:min(calc(100% - 28px),590px);display:grid;grid-template-columns:repeat(5,1fr);padding:8px 7px calc(8px + env(safe-area-inset-bottom));background:rgba(255,255,255,.83);border:1px solid rgba(225,229,238,.92);border-radius:25px;box-shadow:0 12px 35px rgba(28,39,71,.16);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:48px;border-radius:17px;color:#98a3b5}.tab span{font-size:18px;line-height:1}.tab small{font-size:10px;font-weight:600}.tab.is-active{color:var(--blue);background:var(--blue-soft)}.toast{position:fixed;z-index:10;bottom:99px;left:50%;transform:translate(-50%,10px);padding:11px 15px;border-radius:13px;background:#101828;color:#fff;font-size:12px;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:680px){.app-shell{padding:24px 18px 110px}.today-grid,.exam-list{grid-template-columns:1fr}.today-hero{padding:21px}.surface{padding:18px}.calendar-cell{min-height:76px;padding:7px 5px}.calendar-event{font-size:8px}.calendar-key{gap:10px}.degree-hero{padding:19px;gap:16px}.degree-ring{width:88px;height:88px}.degree-hero h2{font-size:20px}}@media(max-width:420px){.screen-header{margin-bottom:22px}.screen-header h1{font-size:34px}.today-hero h2{font-size:24px}.progress-dial{width:70px;height:70px}.calendar-grid,.calendar-weekdays{gap:4px}.calendar-cell{min-height:68px}.calendar-event{margin-top:4px;padding:3px}.degree-hero{align-items:flex-start;flex-direction:column}.degree-ring{width:78px;height:78px}.degree-ring span{font-size:20px}}
:root{--bg:#f6f7fb;--surface:#fff;--ink:#101828;--muted:#7c879a;--line:#e8ebf2;--blue:#2f6bf2;--blue-soft:#edf3ff;--green:#2b9d6f;--green-soft:#e9f8f0;--purple:#7865d4;--orange:#d8892d;--shadow:0 18px 55px rgba(25,38,72,.08);--radius:22px}.page-count{display:flex;flex-direction:column;align-items:flex-end;flex:0 0 auto;color:var(--blue);font:700 18px/1 'Instrument Sans'}.page-count small{margin-top:3px;color:var(--muted);font-size:9px;font-weight:600}.task-item.is-done .page-count{color:var(--green)}
:root{--bg:#f6f7fb;--surface:#fff;--ink:#101828;--muted:#7c879a;--line:#e8ebf2;--blue:#2f6bf2;--blue-soft:#edf3ff;--green:#2b9d6f;--green-soft:#e9f8f0;--purple:#7865d4;--orange:#d8892d;--shadow:0 18px 55px rgba(25,38,72,.08);--radius:22px}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;color:var(--ink);font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;min-width:44px;min-height:44px}button:focus-visible{outline:3px solid rgba(47,107,242,.35);outline-offset:3px}.app-shell{width:min(100%,960px);min-height:100vh;margin:auto;padding:34px 34px 112px}.app-view{display:none;animation:appear .28s ease-out}.app-view.is-active{display:block}@keyframes appear{from{opacity:.35;transform:translateY(5px)}to{opacity:1;transform:none}}.screen-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.screen-header h1{margin:0;font:700 clamp(32px,5vw,46px)/1.05 'Instrument Sans',sans-serif;letter-spacing:-.055em}.date-kicker,.section-label{margin:0 0 8px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.13em}.round-button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.8);color:var(--muted);font-size:18px;display:grid;place-items:center}.small-button,.text-button{color:var(--blue);font-weight:700;font-size:13px}.small-button{padding:0 14px;border:1px solid #dce6ff;border-radius:12px;background:var(--blue-soft)}.muted{color:var(--muted);margin:0;font-size:13px;line-height:1.4}.today-hero{display:flex;align-items:center;justify-content:space-between;padding:26px 28px;margin-bottom:18px;background:linear-gradient(135deg,#e9f0ff,#f8faff 72%);border:1px solid #dce7ff;border-radius:var(--radius)}.today-hero h2{margin:0 0 7px;font:700 clamp(22px,4vw,32px) 'Instrument Sans';letter-spacing:-.04em}.progress-dial{width:82px;height:82px;flex:0 0 auto;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:conic-gradient(var(--blue) 33%,rgba(47,107,242,.12) 0);position:relative}.progress-dial:after{content:'';position:absolute;inset:8px;background:#f0f5ff;border-radius:50%}.progress-dial span,.progress-dial small{position:relative;z-index:1}.progress-dial span{font:700 18px 'Instrument Sans'}.progress-dial small{font-size:9px;color:var(--muted)}.today-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.surface,.settings-group{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.surface{padding:22px}.section-heading,.view-heading,.calendar-toolbar,.exam-top,.settings-row,.focus-strip{display:flex;align-items:center}.section-heading,.view-heading{justify-content:space-between}.section-heading h3,.view-heading h2{margin:0;font:700 19px 'Instrument Sans';letter-spacing:-.035em}.study-summary{margin:5px 0 0;color:var(--muted);font-size:10px}.count-badge{padding:5px 9px;border-radius:9px;background:var(--blue-soft);color:var(--blue);font-size:11px;font-weight:700}.lesson-list,.task-list{margin-top:16px}.lesson-item,.task-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.lesson-item:last-child,.task-item:last-child{border-bottom:0}.time{width:54px;color:var(--muted);font-size:11px;font-weight:600}.lesson-bar{width:3px;height:31px;border-radius:3px;background:var(--blue)}.lesson-item strong,.task-item strong{font-size:13px;display:block;line-height:1.25}.lesson-item small,.task-item small{color:var(--muted);font-size:11px}.task-item{width:100%;cursor:pointer;text-align:left}.task-check{width:22px;height:22px;min-width:22px;border:1.5px solid #c8d0dd;border-radius:7px;display:grid;place-items:center;color:#fff;font-size:12px}.task-item.is-done .task-check{background:var(--green);border-color:var(--green)}.task-item.is-done strong{text-decoration:line-through;color:var(--muted)}.task-copy{flex:1}.page-count{display:flex;flex-direction:column;align-items:flex-end;flex:0 0 auto;color:var(--blue);font:700 18px/1 'Instrument Sans'}.page-count small{margin-top:3px;color:var(--muted);font-size:9px;font-weight:600}.task-item.is-done .page-count{color:var(--green)}.focus-strip{gap:13px;margin-top:18px;padding:14px 16px;background:#fff;border-radius:17px;border:1px solid var(--line)}.focus-icon{width:31px;height:31px;border-radius:10px;display:grid;place-items:center;background:#f1edff;color:var(--purple)}.focus-strip strong{font-size:12px}.focus-strip p{margin:3px 0 0;color:var(--muted);font-size:11px}.focus-strip .text-button{margin-left:auto}.segmented-control{display:grid;grid-template-columns:1fr 1fr;padding:3px;margin-bottom:23px;background:#e9edf4;border-radius:11px}.segment{min-height:34px;border-radius:9px;font-size:12px;font-weight:700;color:var(--muted)}.segment.is-selected{background:#fff;color:var(--ink);box-shadow:0 2px 7px rgba(25,38,72,.1)}.calendar-toolbar{justify-content:center;gap:20px;margin-bottom:20px}.calendar-toolbar h2{margin:0;font:700 21px 'Instrument Sans';letter-spacing:-.04em}.calendar-toolbar .round-button{width:36px;height:36px;min-width:36px}.calendar-grid,.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.calendar-weekdays{margin-bottom:7px;color:var(--muted);font-size:10px;font-weight:700;text-align:center}.calendar-cell{min-height:88px;padding:9px 7px;border:1px solid var(--line);border-radius:12px;background:#fff}.calendar-cell.outside{opacity:.35}.calendar-cell.current{background:var(--blue-soft);border-color:#a9c3ff}.calendar-cell.selected{box-shadow:inset 0 0 0 2px var(--blue)}.day-number{font-size:12px;font-weight:700}.calendar-event{margin-top:7px;padding:4px;border-radius:5px;font-size:9px;line-height:1.15;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.calendar-event.lesson{background:var(--blue-soft);color:#2c5bc6}.calendar-event.study{background:var(--green-soft);color:#237b58}.week-list{display:grid;gap:9px}.week-day{display:grid;grid-template-columns:54px 1fr auto;gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:#fff}.week-day.current{background:var(--blue-soft);border-color:#bad0ff}.week-day strong{font-size:12px}.week-day small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.week-day b{font-size:12px;color:var(--blue)}.calendar-key{display:flex;gap:18px;margin-top:16px;color:var(--muted);font-size:10px}.key-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.lesson-dot{background:var(--blue)}.study-dot{background:var(--green)}.done-dot{background:var(--purple)}.exam-overview{display:grid;grid-template-columns:1fr auto;gap:12px 24px;align-items:center;background:#101828;color:#fff;border-color:#101828}.exam-overview .section-label,.exam-overview .muted{color:#aeb9cb}.exam-overview strong{display:block;font:700 42px 'Instrument Sans';letter-spacing:-.06em}.overview-stats{display:flex;gap:22px}.overview-stats span{display:flex;flex-direction:column}.overview-stats b{font:700 22px 'Instrument Sans'}.overview-stats small{margin-top:3px;color:#aeb9cb;font-size:10px}.exam-overview .progress{grid-column:1/-1;margin:4px 0 0;background:#2a3446}.exam-overview .progress span{background:#81a8ff}.view-heading{margin:27px 0 12px}.view-heading span{color:var(--muted);font-size:11px}.exam-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.exam-card{padding:17px;background:#fff;border:1px solid var(--line);border-radius:17px}.exam-top{justify-content:space-between;gap:12px}.exam-card h3{margin:0;font-size:14px;line-height:1.25}.exam-pct{color:var(--blue);font:700 16px 'Instrument Sans'}.exam-meta{margin:7px 0 13px;color:var(--muted);font-size:11px}.progress{height:6px;background:#edf0f5;border-radius:9px;overflow:hidden}.progress span{display:block;height:100%;border-radius:inherit;background:var(--blue)}.degree-hero{display:flex;align-items:center;gap:24px;padding:25px;background:linear-gradient(135deg,#f0edff,#fff);border:1px solid #e4ddff;border-radius:var(--radius)}.degree-ring{width:106px;height:106px;flex:0 0 auto;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:conic-gradient(var(--purple) 66%,#e8e2ff 0)}.degree-ring:before{content:'';position:absolute}.degree-ring span,.degree-ring small{color:#fff;text-shadow:0 1px 3px rgba(45,27,112,.2)}.degree-ring span{font:700 24px 'Instrument Sans'}.degree-ring small{font-size:10px}.degree-hero h2{margin:0 0 7px;font:700 24px 'Instrument Sans';letter-spacing:-.04em}.roadmap{margin-top:28px}.roadmap-line{position:relative;display:grid;gap:12px}.roadmap-line:before{content:'';position:absolute;left:20px;top:25px;bottom:25px;width:2px;background:#e4e8f0}.roadmap-step{position:relative;display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:16px}.roadmap-step>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#edf0f5;color:var(--muted);font-size:12px;font-weight:700;z-index:1}.roadmap-step.is-done>span{background:var(--green);color:#fff}.roadmap-step.is-current{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.roadmap-step.is-current>span{background:var(--blue);color:#fff}.roadmap-step strong{display:block;font-size:13px}.roadmap-step small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.thesis-card{display:flex;align-items:center;gap:13px;margin-top:18px;padding:16px}.thesis-card h3{margin:0 0 5px;font:700 15px 'Instrument Sans'}.thesis-card .section-label{margin-bottom:5px}.thesis-card .round-button{margin-left:auto}.thesis-icon{width:35px;height:35px;display:grid;place-items:center;border-radius:11px;background:#fff3e4;color:var(--orange);font-size:21px}.profile-avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#dce7ff;color:#315eca;font-size:12px;font-weight:700}.settings-group{overflow:hidden;margin-bottom:20px}.settings-group>.section-label{padding:20px 20px 8px;margin:0}.settings-row{width:100%;gap:13px;padding:14px 20px;text-align:left;border-top:1px solid var(--line)}.settings-row>span:nth-child(2){flex:1}.settings-row strong,.settings-row small{display:block}.settings-row strong{font-size:13px}.settings-row small{margin-top:3px;color:var(--muted);font-size:11px}.settings-row>b{color:#a2adbf;font-size:20px;font-weight:400}.row-icon{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;font-size:13px;font-weight:700}.blue-icon{background:var(--blue-soft);color:var(--blue)}.purple-icon{background:#f0edff;color:var(--purple)}.green-icon{background:var(--green-soft);color:var(--green)}.orange-icon{background:#fff3e4;color:var(--orange)}.gray-icon{background:#edf0f5;color:var(--muted)}.settings-footer{text-align:center;color:var(--muted);font-size:10px;margin:36px 0}.tab-bar{position:fixed;z-index:5;bottom:14px;left:50%;transform:translateX(-50%);width:min(calc(100% - 28px),590px);display:grid;grid-template-columns:repeat(5,1fr);padding:8px 7px calc(8px + env(safe-area-inset-bottom));background:rgba(255,255,255,.83);border:1px solid rgba(225,229,238,.92);border-radius:25px;box-shadow:0 12px 35px rgba(28,39,71,.16);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:48px;border-radius:17px;color:#98a3b5}.tab span{font-size:18px;line-height:1}.tab small{font-size:10px;font-weight:600}.tab.is-active{color:var(--blue);background:var(--blue-soft)}.toast{position:fixed;z-index:10;bottom:99px;left:50%;transform:translate(-50%,10px);padding:11px 15px;border-radius:13px;background:#101828;color:#fff;font-size:12px;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:680px){.app-shell{padding:24px 18px 110px}.today-grid,.exam-list{grid-template-columns:1fr}.today-hero{padding:21px}.surface{padding:18px}.calendar-cell{min-height:76px;padding:7px 5px}.calendar-event{font-size:8px}.calendar-key{gap:10px}.degree-hero{padding:19px;gap:16px}.degree-ring{width:88px;height:88px}.degree-hero h2{font-size:20px}}@media(max-width:420px){.screen-header{margin-bottom:22px}.screen-header h1{font-size:34px}.today-hero h2{font-size:24px}.progress-dial{width:70px;height:70px}.calendar-grid,.calendar-weekdays{gap:4px}.calendar-cell{min-height:68px}.calendar-event{margin-top:4px;padding:3px}.degree-hero{align-items:flex-start;flex-direction:column}.degree-ring{width:78px;height:78px}.degree-ring span{font-size:20px}}
:root{--bg:#f6f7fb;--surface:#fff;--ink:#101828;--muted:#7c879a;--line:#e8ebf2;--blue:#2f6bf2;--blue-soft:#edf3ff;--green:#2b9d6f;--green-soft:#e9f8f0;--purple:#7865d4;--orange:#d8892d;--shadow:0 18px 55px rgba(25,38,72,.08);--radius:22px}.exam-subject-state{display:block;margin-top:5px;color:var(--muted);font-size:10px;font-weight:600}
 .yesterday-surface{margin-top:18px;padding:22px 24px 14px;border:1px solid rgba(47,107,242,.14);background:linear-gradient(135deg,#fff 0%,#f8faff 100%)}.yesterday-surface .section-heading{margin-bottom:8px}.yesterday-surface .task-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.yesterday-surface .task-item{background:rgba(255,255,255,.72);border-color:#e3e9f6}.empty-state{margin:10px 0 4px;color:var(--muted);font-size:13px}@media(max-width:720px){.yesterday-surface{padding:18px 16px 10px}.yesterday-surface .task-list{grid-template-columns:1fr}}
.task-toggle{display:flex;align-items:center;gap:12px;flex:1;min-width:0;padding:0;text-align:left}
.page-input{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:11px;white-space:nowrap}
.page-input input{width:52px;min-height:38px;padding:6px 7px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:600 13px 'DM Sans';text-align:center}
.page-input input:focus-visible{outline:3px solid rgba(47,107,242,.35);outline-offset:2px;border-color:var(--blue)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.task-item:focus-within{background:var(--blue-soft);border-radius:9px}
@media(max-width:420px){.task-item{gap:7px}.task-toggle{gap:8px}.page-input input{width:46px}}
