:root{--ink:#263b35;--muted:#64756f;--navy:#173d35;--navy-2:#24584c;--paper:#f4f7f1;--card:#fffefa;--line:#dbe5dd;--teal:#2f7d6c;--red:#b95558;--amber:#c8882f;--blue:#587db0;--violet:#7b68a6;--soft-sage:#eaf2eb;--soft-mint:#dcece5;--soft-peach:#f8e9df;--shadow-sm:0 2px 10px #1f3d320d;--shadow-md:0 12px 34px #1f3d3214;--shadow-lg:0 22px 55px #19382e24}html{background:var(--paper)}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--text-md);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.5}button,input,select,textarea{font-family:var(--font-body)}button{transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s,transform .18s}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #e1a956}::selection{color:#173d35;background:#cce6dc}.app-shell{grid-template-columns:276px minmax(0,1fr)}.sidebar{padding:var(--space-7) var(--space-6) var(--space-6);background:#183d34;border-right:1px solid #ffffff12;box-shadow:10px 0 32px #1a3b3114}.brand-lockup{gap:var(--space-4);margin-bottom:var(--space-7);grid-template-columns:48px 1fr}.brand-mark{border-radius:var(--radius-lg);color:#5b3a24;width:48px;height:48px;font:700 var(--text-xl) var(--font-display);background:#f9d5ae;box-shadow:inset 0 0 0 1px #ffffff85,0 7px 16px #0a241d33}.brand-lockup h1{font:650 var(--text-2xl)/1.1 var(--font-display);letter-spacing:-.025em}.eyebrow{margin-bottom:var(--space-2);color:#74867f;font-size:var(--text-2xs);letter-spacing:.12em;font-weight:800}.eyebrow.light{color:#a7c7ba}.nav-section{margin:var(--space-6) var(--space-3) var(--space-2);color:#87a89d;font-size:var(--text-3xs);letter-spacing:.14em}.sidebar nav{gap:var(--space-1);padding-right:var(--space-1)}.nav-item{min-height:48px;padding:var(--space-3);border-radius:var(--radius-lg);color:#d4e2dc;font-size:var(--text-sm);border:1px solid #0000}.nav-label{gap:var(--space-3)}.nav-symbol{color:#9fc5b7;width:20px;font-size:var(--text-lg);text-align:center}.nav-item:hover{background:#ffffff13;border-color:#ffffff0f}.nav-item.active{color:#24463d;background:#fffefa;border-color:#fffefa;box-shadow:0 10px 24px #061e1738}.nav-item.active .nav-symbol{color:#2f7d6c}.nav-item b{color:#52371c;min-width:28px;height:24px;font-size:var(--text-2xs);background:#f5bd6d}.nav-item small{color:#9eb6ae;font-size:var(--text-3xs)}.nav-item.active small{color:#6f817a}.sidebar-note{padding:var(--space-4);border-radius:var(--radius-xl);background:#fff1;border-color:#b2d7c92e}.sidebar-note strong{font-size:var(--text-sm)}.sidebar-note p{color:#acc2ba;font-size:var(--text-2xs)}.save-state{color:#9bb2aa;font-size:var(--text-2xs)}.save-state .save-dot{background:#6bbfa4}.workspace{padding:var(--space-8) clamp(var(--space-7), 4.5vw, var(--space-11)) var(--space-11)}.topbar{margin-bottom:var(--space-7);align-items:center}.topbar h2{margin-bottom:var(--space-2);color:#213932;font:650 clamp(var(--text-4xl), 4vw, var(--text-5xl))/1.05 var(--font-display);letter-spacing:-.035em}.topbar .muted{color:#697b74;max-width:64ch;font-size:var(--text-sm)}.search-box{width:min(352px,36vw)}.search-box input{border-radius:var(--radius-lg);height:48px;box-shadow:var(--shadow-sm);font-size:var(--text-sm);background:#fffefaeb;border-color:#d5e1d8}.search-box input:focus{border-color:#6ba493;box-shadow:0 0 0 4px #488b771a}.search-icon{color:#6f817a}.panel-card,.review-panel,.summary-card,.hours-summary article,.goal-metrics article,.subject-overview,.stage-toolbar,.chapter-card,.empty-state{border-color:var(--line);box-shadow:var(--shadow-sm);background:#fffefaf5}.panel-card,.review-panel{border-radius:var(--radius-2xl)}.summary-grid{gap:var(--space-4);margin-bottom:var(--space-6)}.summary-card{gap:var(--space-2);min-height:132px;padding:var(--space-5);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border-top-width:0;position:relative;overflow:hidden}.summary-card:after{content:"";opacity:.07;background:currentColor;border-radius:50%;width:92px;height:92px;position:absolute;inset:auto -28px -34px auto}.summary-card.urgent{color:#a5484c;background:#fdf6f3}.summary-card.today{color:#9a691f;background:#fef9ec}.summary-card.upcoming{color:#4f709e;background:#f6f9fc}.summary-card.ready{color:#286e60;background:#f4f9f6}.summary-card span{color:currentColor;font-size:var(--text-sm);font-weight:800}.summary-card strong{color:#243a34;font:650 var(--text-4xl)/1 var(--font-display)}.summary-card small{color:#64756f;font-size:var(--text-2xs)}button.summary-card:hover,button.summary-card.selected{box-shadow:var(--shadow-md);transform:translateY(-3px)}.section-heading{min-height:76px;padding:var(--space-5) var(--space-6);border-color:var(--line)}.section-heading h3,.panel-heading h3,.subject-settings-intro h3,.deck-sidebar-heading h3,.deck-create h3,.card-maker h3,.study-deck-heading h3,.deck-overview h3{color:#233c35;font-family:var(--font-display);letter-spacing:-.02em;font-weight:650}.section-heading h3{font-size:var(--text-3xl)}.ghost-button,.primary-button,.danger-button,.hours-submit{border-radius:var(--radius-md);min-height:40px;padding:var(--space-2) var(--space-4);font-size:var(--text-xs);font-weight:800}.ghost-button{color:#38554c;background:#fffefa;border-color:#d4e0d7}.ghost-button:hover{background:#f0f6f1;border-color:#9fbbae}.primary-button,.hours-submit{background:#317b6b;box-shadow:0 5px 12px #29706026}.primary-button:hover,.hours-submit:hover{background:#2a6e5f;box-shadow:0 8px 16px #29706033}.primary-button:disabled,.hours-submit:disabled{opacity:.5;box-shadow:none;cursor:not-allowed}.review-list{padding:0 var(--space-6)}.review-row{gap:var(--space-4);border-color:#e5ebe6;min-height:88px}.review-copy{gap:var(--space-1)}.review-copy span{color:#74847e;font-size:var(--text-3xs);letter-spacing:.06em;font-weight:800}.review-copy strong{color:#2b4039;font-size:var(--text-sm);line-height:1.42}.date-badge{padding:var(--space-2) var(--space-3);font-size:var(--text-3xs)}.status-select{border-radius:var(--radius-md);height:40px;font-size:var(--text-2xs)}.status-not-started{color:#53635d;background:#edf1ee}.status-learning{color:#7e581d;background:#fbefd4}.status-practising{color:#48658e;background:#e8eef8}.status-covered{color:#685787;background:#eee9f7}.status-exam-ready{color:#246759;background:#deefe7}.queue-groups{background:#f1f5f1}.queue-group{border-bottom-color:#f0f4f0}.queue-group-heading{border-color:var(--line);background:#f8faf6;min-height:64px}.queue-group-heading strong{font-size:var(--text-sm)}.queue-group-heading small{color:#71817b;font-size:var(--text-3xs)}.queue-group-heading>b{color:#55665f;background:#e8eeea}.review-row.is-selected,.study-topic-group.selected{background:#edf7f1}.review-check,.queue-group-heading input{border-radius:var(--radius-sm);border-color:#8fa49b;width:20px;height:20px}.review-check:checked,.queue-group-heading input:checked{background:#347f6d;border-color:#347f6d}.hours-glance{padding:var(--space-4) var(--space-5);border-radius:var(--radius-xl);background:#e8f4ed;border-color:#cfe1d6}.hours-glance-mark{color:#2a7263;background:#cfe8dc}.hours-glance strong{font-size:var(--text-md)}.hours-glance span{font-size:var(--text-xs)}.hours-glance button{border-radius:var(--radius-md);min-height:40px;font-size:var(--text-xs);background:#2f7d6c}input,select,textarea{color:var(--ink)}.hours-form input,.hours-form select,.goal-form input,.goal-form select,.deck-create input,.deck-create select,.card-maker textarea,.subject-composer input,.subject-composer select,.paper-form input,.paper-form select,.paper-form textarea,.paper-attempt-form input,.paper-attempt-form select,.paper-attempt-form textarea{border-radius:var(--radius-md);font-size:var(--text-sm);background:#fbfcf9;border-color:#d5e1d8}.tasks-page,.hours-page,.goals-page,.flashcards-page,.notes-page,.calendar-page,.papers-page,.subjects-page{gap:var(--space-5)}.tasks-page p,.hours-page p,.goals-page p,.flashcards-page p,.notes-page p,.calendar-page p,.papers-page p,.subjects-page p{line-height:1.55}.panel-card h3,.review-panel h3,.task-board h3,.notes-library h3,.paper-database h3,.card-library h3,.goal-timeline h3{color:#294139;font-family:var(--font-display);letter-spacing:-.02em}.task-composer label>span,.task-edit-row label>span,.hours-form label>span,.goal-form label>span,.deck-create label>span,.card-maker label>span,.note-label-fields label>span,.paper-form label>span,.paper-attempt-form label>span,.subject-composer label>span{color:#65776f;font-size:var(--text-3xs);letter-spacing:.08em;font-weight:900}.empty-state{padding:var(--space-7) var(--space-6);color:#73837d;font-size:var(--text-sm)}.task-composer{border-radius:var(--radius-2xl)}.task-composer-copy{padding:var(--space-7);background:#225448}.task-composer-copy h3{margin:var(--space-1) 0 var(--space-3);color:#fffefa;font:650 var(--text-3xl)/1.1 var(--font-display)}.task-composer-copy>p:last-child{color:#d3e3dc;font-size:var(--text-sm);line-height:1.65}.task-composer form{padding:var(--space-6);gap:var(--space-3)}.task-composer input,.task-composer select,.task-edit-row input,.task-edit-row select,.task-filters select{border-radius:var(--radius-md);height:44px;font-size:var(--text-xs);background:#fbfcf9}.task-composer .primary-button{height:44px}.task-summary{gap:var(--space-4)}.task-summary article,.hours-summary article,.paper-summary article,.goal-metrics article{border:1px solid var(--line);border-radius:var(--radius-xl);min-height:104px;padding:var(--space-5);box-shadow:var(--shadow-sm);background:#fbfdf8;border-top:0}.task-summary article:nth-child(2),.hours-summary article:nth-child(2),.paper-summary article:nth-child(2){background:#fbf7f1}.task-summary article:nth-child(3),.hours-summary article:nth-child(3),.paper-summary article:nth-child(3){background:#f9f7fc}.task-summary article:nth-child(4),.hours-summary article:nth-child(4),.paper-summary article:nth-child(4){background:#f5f9f6}.task-summary span,.hours-summary span,.paper-summary span,.goal-metrics span{color:#687a73;font-size:var(--text-2xs);letter-spacing:.025em}.task-summary strong,.hours-summary strong,.paper-summary strong,.goal-metrics strong{color:#2a443b;font:650 var(--text-3xl)/1 var(--font-display)}.task-summary small,.hours-summary small,.paper-summary small,.goal-metrics small{color:#7a8a84;font-size:var(--text-3xs)}.task-board{border-radius:var(--radius-2xl)}.task-filters>div{border-radius:var(--radius-md);background:#edf2ed}.task-filters button{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:#63746d;font-size:var(--text-3xs)}.task-filters button.active{color:#24594d;box-shadow:var(--shadow-sm)}.task-list{padding:0 var(--space-6)}.task-row{border-color:#e7ece8;grid-template-columns:32px 8px minmax(180px,1fr) 80px 96px 76px;min-height:80px}.task-check{border-radius:var(--radius-sm);border-color:#aebdb6;width:28px;height:28px}.task-copy strong{color:#2d433c;font-size:var(--text-sm)}.task-copy span{color:#72827c;font-size:var(--text-3xs)}.priority-badge{padding:var(--space-2);font-size:var(--text-3xs)}.priority-badge.low{color:#596b64;background:#edf1ee}.priority-badge.medium{color:#7f5a20;background:#fbefd4}.priority-badge.high{color:#914846;background:#f5e3e1}.task-row-actions button,.task-edit-row>div button:not(.primary-button){color:#60746c;font-size:var(--text-3xs)}.due-task-panel article{border-color:#e7ece8;min-height:68px}.due-task-panel article strong{font-size:var(--text-sm)}.due-task-panel article small{font-size:var(--text-3xs)}.hours-summary{gap:var(--space-4)}.hours-layout{gap:var(--space-5)}.hours-form,.hours-chart{padding:var(--space-6);border-radius:var(--radius-2xl)}.hours-form{gap:var(--space-3)}.hours-form input,.hours-form select{min-height:44px}.hours-chart h3,.hours-form h3{font:650 var(--text-2xl)/1.15 var(--font-display)}.bar-chart{gap:var(--space-3);min-height:232px}.bar-chart b{border-radius:var(--radius-sm) var(--radius-sm) var(--radius-xs) var(--radius-xs);background:#4c9481;box-shadow:inset 0 1px #ffffff4d}.bar-chart article:nth-child(2n) b{background:#d69f4d}.bar-chart article:nth-child(3n) b{background:#7191bc}.bar-chart span{color:#73827c;font-size:var(--text-3xs)}.session-list{padding:0 var(--space-6)}.session-row{border-color:#e7ece8;min-height:72px}.session-row strong{font-size:var(--text-sm)}.session-row span,.session-row small{color:#71827b;font-size:var(--text-3xs)}.study-topic-group{border-radius:var(--radius-lg);background:#fbfcf9;border-color:#dfe7e1}.study-topic-group:hover{background:#f2f7f3;border-color:#a9c4b8}.goal-switcher{border-radius:var(--radius-xl);padding:var(--space-1);background:#e9f0ea}.goal-switcher button{border-radius:var(--radius-md);color:#60726a;min-height:40px;font-size:var(--text-2xs)}.goal-switcher button.active{color:#225a4d;box-shadow:var(--shadow-sm);background:#fffefa}.goal-setup,.goal-hero{border-radius:var(--radius-2xl);overflow:hidden}.goal-setup-copy,.goal-hero-copy{background:#225549}.goal-hero{background:#1e4a40;box-shadow:0 14px 34px #1a453a29}.goal-hero-copy{background:0 0}.goal-setup-copy{padding:var(--space-7)}.goal-setup-copy h3,.goal-hero-copy h3{color:#fffefa;font:650 var(--text-3xl)/1.08 var(--font-display)}.goal-setup-copy p,.goal-hero-copy p{color:#d2e3dc;font-size:var(--text-sm)}.goal-form{padding:var(--space-7);gap:var(--space-3)}.goal-form input,.goal-form select{min-height:44px}.goal-ring{background:conic-gradient(#83cbb7 var(--progress), #ffffff2e 0);box-shadow:none}.goal-ring:before{background:#1b4038}.goal-ring>div{color:#fffefa;background:0 0}.goal-ring strong{color:#fffefa}.goal-ring span{color:#bcd3ca}.goal-hero-copy .goal-plan-tags span{color:#d2e4dd;border-color:#bcdcd059}.goal-hero-copy button{color:#f2f7f4;border-color:#bcdcd066}.goal-next{min-height:120px;padding:var(--space-5) var(--space-6);border-radius:var(--radius-xl);align-content:center;gap:var(--space-2);background:#ffffff13;border:1px solid #cde5dc40;box-shadow:inset 0 1px #ffffff0f}.goal-next .eyebrow{color:#a9cdbf}.goal-next strong{color:#fffefa;font-size:var(--text-md)}.goal-next>span{color:#c8ddd5;font-size:var(--text-xs)}.goal-metrics{gap:var(--space-4)}.goal-timeline{border-radius:var(--radius-2xl)}.timeline-list{padding:var(--space-1) var(--space-6) var(--space-6)}.timeline-item{min-height:80px}.timeline-marker{box-shadow:none;background:0 0;border-color:#0000}.timeline-marker:after{background:#dce5df}.timeline-marker i{color:#5d7168;background:#edf3ee;border-color:#b8c9c0}.timeline-copy strong{font-size:var(--text-sm)}.timeline-copy span,.timeline-date{color:#70817a;font-size:var(--text-3xs)}.flashcards-page{grid-template-columns:264px minmax(0,1fr)}.deck-sidebar{border-radius:var(--radius-2xl);top:28px}.deck-sidebar-heading{padding:var(--space-6) var(--space-5) var(--space-4)}.deck-sidebar-heading h3{font:650 var(--text-2xl)/1 var(--font-display)}.deck-sidebar-heading button{border-radius:var(--radius-md);background:#347f6d;width:40px;height:40px}.deck-list{padding:var(--space-3);gap:var(--space-2)}.deck-list>button{border-radius:var(--radius-md);min-height:64px;padding:var(--space-3)}.deck-list>button:hover{background:#f2f6f1}.deck-list>button.active{color:#23594c;background:#e5f1eb}.deck-list>button strong{font-size:var(--text-sm)}.deck-list>button small{font-size:var(--text-3xs)}.deck-list>button b{color:#596b64;background:#e5ebe6}.deck-create,.card-maker,.card-library,.deck-overview,.study-deck{border-radius:var(--radius-2xl)}.deck-overview{padding:var(--space-6)}.deck-overview h3{font:650 var(--text-3xl)/1.1 var(--font-display)}.deck-tools{gap:var(--space-2)}.card-maker{padding:var(--space-6);gap:var(--space-3)}.card-maker textarea{min-height:112px;line-height:1.55}.card-list{padding:0 var(--space-6)}.card-list article{border-color:#e7ece8;min-height:76px}.card-list strong{font-size:var(--text-sm)}.card-list p{color:#65776f;font-size:var(--text-xs)}.flashcard-stage{border-radius:var(--radius-2xl);min-height:328px;box-shadow:var(--shadow-lg);background:#1f4b41}.flashcard-stage h3{color:#fffef9;font:650 var(--text-3xl)/1.25 var(--font-display)}.flashcard-stage p{color:#d6e6df;font-size:var(--text-md)}.flashcard-stage strong{color:#fffef9;max-width:780px;font:650 clamp(var(--text-xl), 2.7vw, var(--text-3xl))/1.38 var(--font-display);overflow-wrap:anywhere}.reveal-answer{border-radius:var(--radius-md);color:#255e51;background:#fffefa;min-height:48px}.study-rating button{border-radius:var(--radius-md);min-height:48px}.study-progress{color:#71827b;font-size:var(--text-2xs)}.deck-list>button .due-badge{color:#8a5a12;background:#f4e3c4}.deck-list>button.active .due-badge{color:#7a4e0d;background:#efd39c}.deck-overview{gap:var(--space-4);display:grid}.deck-overview-head{justify-content:space-between;align-items:flex-start;gap:var(--space-5);flex-wrap:wrap;display:flex}.deck-overview-head>div:first-child{min-width:0}.deck-overview .deck-file-actions{flex-wrap:wrap;justify-content:flex-end}.deck-overview .deck-file-actions .ghost-button{min-height:40px;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);white-space:nowrap;justify-content:center;align-items:center;display:inline-flex}.mastery-meter{border-radius:var(--radius-xl);gap:var(--space-1);background:#eef1ee;height:12px;display:flex;overflow:hidden}.mastery-meter i{height:100%;display:block}.mastery-legend{gap:var(--space-4);flex-wrap:wrap;display:flex}.mastery-legend span{align-items:center;gap:var(--space-2);font-size:var(--text-3xs);color:#647268;font-weight:850;display:inline-flex}.mastery-legend i{border-radius:var(--radius-xs);width:8px;height:8px}.seg-new{background:#c6d0cb}.seg-learning{background:#e0a94b}.seg-confident{background:var(--teal)}.study-launch{padding:var(--space-6);gap:var(--space-4);display:grid}.study-launch-copy h3{font:650 var(--text-2xl)/1.15 var(--font-display);margin:var(--space-1) 0}.study-launch-copy p:last-child{color:var(--muted);font-size:var(--text-xs);margin:0}.study-setup{gap:var(--space-3);display:grid}.scope-tabs{gap:var(--space-1);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-1);background:#f1f3f0;grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,472px);display:grid}.scope-tabs button{border-radius:var(--radius-sm);min-height:40px;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:#5f6d66;justify-content:center;align-items:center;gap:var(--space-2);white-space:nowrap;background:0 0;border:0;font-weight:850;display:inline-flex}.scope-tabs button b{font-size:var(--text-3xs);color:#5c6b64;border-radius:var(--radius-xl);padding:var(--space-1) var(--space-2);text-align:center;background:#e4e8e4;min-width:20px}.scope-tabs button.active{color:#1f5749;background:#fff;box-shadow:0 2px 8px #19382e17}.scope-tabs button.active b{color:#176e63;background:#d7ece5}.study-setup-row{align-items:end;gap:var(--space-4);flex-wrap:wrap;display:flex}.setup-select{gap:var(--space-2);display:grid}.setup-select>span{font-size:var(--text-3xs);color:#5d697c;text-transform:uppercase;letter-spacing:.06em;font-weight:900}.setup-select select{border:1px solid var(--line);border-radius:var(--radius-md);height:40px;color:var(--ink);padding:0 var(--space-3);font-size:var(--text-xs);background:#faf9f6}.setup-check{align-items:center;gap:var(--space-2);font-size:var(--text-2xs);color:#5f6d66;font-weight:800;display:inline-flex}.setup-check input{accent-color:var(--teal);width:16px;height:16px}.study-start{min-width:132px;min-height:44px;font-size:var(--text-sm);margin-left:auto}.card-maker label>span{justify-content:space-between;align-items:center;display:flex}.card-maker>div>p:last-child{font-size:var(--text-2xs);line-height:1.5}.swap-sides{min-height:32px;color:var(--teal);padding:var(--space-1) var(--space-2);font-size:var(--text-2xs);text-transform:none;letter-spacing:0;cursor:pointer;background:0 0;border:0;font-weight:900}.mastery-tag.m-new{color:#667468;background:#eef1ee}.mastery-tag.m-learning{color:#8a5a12;background:#fbf0da}.mastery-tag.m-confident{color:#236e65;background:#e6f2ee}.study-rating{gap:var(--space-3)}.study-rating button{gap:var(--space-1);height:auto;min-height:72px;padding:var(--space-3);font-size:var(--text-sm);place-items:center;display:grid}.study-rating button b{font-size:var(--text-3xs);color:#94a09a;border-radius:var(--radius-sm);border:1px solid #d7ddd6;place-items:center;width:16px;height:16px;font-weight:900;display:grid}.study-rating button small{font-size:var(--text-3xs);color:var(--muted);font-weight:800}.study-rating button:first-child b{color:#a24842;border-color:#e2c5c2}.study-rating button:last-child b{color:#14796f;border-color:#bfe0d8}.study-footer{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.study-nav{border:1px solid var(--line);border-radius:var(--radius-md);min-height:40px;padding:var(--space-2) var(--space-4);font-size:var(--text-xs);color:#5f6d66;background:#fff;font-weight:850}.study-nav:disabled{opacity:.4}.study-hint{font-size:var(--text-3xs);color:var(--muted);text-align:center;flex:1;min-width:160px}.study-summary{padding:var(--space-7);justify-items:center;gap:var(--space-2);text-align:center;display:grid}.study-summary .summary-badge{color:#22705f;width:56px;height:56px;font-size:var(--text-2xl);margin-bottom:var(--space-1);background:#e6f2ee;border-radius:50%;place-items:center;font-weight:900;display:grid}.study-summary h3{font:650 var(--text-3xl)/1.1 var(--font-display);margin:0}.study-summary>p{color:var(--muted);font-size:var(--text-sm);margin:0}.summary-breakdown{gap:var(--space-3);width:100%;max-width:420px;margin:var(--space-3) 0 var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.summary-breakdown article{border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-3);gap:var(--space-1);display:grid}.summary-breakdown strong{font:650 var(--text-3xl)/1 var(--font-display)}.summary-breakdown span{font-size:var(--text-3xs);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:850}.summary-breakdown .again strong{color:#a24842}.summary-breakdown .good strong{color:#b07a1e}.summary-breakdown .easy strong{color:#14796f}.summary-actions{gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;justify-content:center;display:flex}.summary-actions .primary-button,.summary-actions .ghost-button{min-height:44px;padding:0 var(--space-5)}.notes-page{grid-template-columns:minmax(312px,380px) minmax(0,1fr)}.note-upload,.notes-library{border-radius:var(--radius-2xl)}.note-upload{padding:var(--space-6)}.note-upload h3{font:650 var(--text-2xl)/1.1 var(--font-display)}.note-upload p{color:#6b7c75;font-size:var(--text-sm)}.note-label-fields input,.note-label-fields select{border-radius:var(--radius-md);background:#fbfcf9;min-height:44px}.note-grid{gap:var(--space-4);padding:var(--space-6)}.note-grid article{border-radius:var(--radius-lg);min-height:152px;box-shadow:var(--shadow-sm);background:#fbfcf8;border-color:#dfe7e1}.note-grid article:hover{box-shadow:var(--shadow-md);border-color:#a9c4b8;transform:translateY(-2px)}.note-file-icon{color:#347f6d;border-radius:var(--radius-md);background:#e5f1eb}.note-file-copy strong{color:#2c433b;font-size:var(--text-sm)}.note-file-copy span,.note-file-copy small{color:#71817b;font-size:var(--text-3xs)}.calendar-page{grid-template-columns:minmax(0,1fr) 312px}.calendar-panel,.calendar-agenda{border-radius:var(--radius-2xl)}.calendar-toolbar{min-height:80px;padding:var(--space-5) var(--space-6)}.calendar-toolbar h3{font:650 var(--text-2xl)/1 var(--font-display)}.calendar-toolbar button{border-radius:var(--radius-md);color:#31594d;background:#fbfcf9;border-color:#d7e2da;width:40px;height:40px}.calendar-legend{padding:var(--space-3) var(--space-6);background:#f3f7f2}.calendar-legend span{color:#64766f;font-size:var(--text-3xs)}.calendar-weekdays{background:#eaf1eb}.calendar-weekdays span{color:#5e7169;font-size:var(--text-3xs);letter-spacing:.08em}.calendar-grid{gap:var(--space-1);background:#dfe7e1}.calendar-grid>button{min-height:120px;padding:var(--space-3);background:#fffefa}.calendar-grid>button:hover{background:#f6faf6}.calendar-grid>button.today{background:#edf6f0;box-shadow:inset 0 0 0 2px #6ba493}.calendar-grid>button>b{color:#394f47;font-size:var(--text-xs)}.calendar-grid>button.today>b{color:#fff;background:#347f6d;border-radius:50%;place-items:center;width:28px;height:28px;display:grid}.calendar-grid>button span{border-radius:var(--radius-sm);font-size:var(--text-3xs)}.agenda-list{padding:var(--space-2) var(--space-5) var(--space-6)}.agenda-list article{border-color:#e7ece8;min-height:64px}.agenda-list strong{font-size:var(--text-sm)}.agenda-list span,.agenda-list small{color:#70817a;font-size:var(--text-3xs)}.agenda-empty{padding:var(--space-7) var(--space-5);color:#73837d;font-size:var(--text-xs)}.paper-summary,.paper-splits{gap:var(--space-4)}.paper-composer,.paper-analytics,.paper-database,.paper-detail{border-radius:var(--radius-2xl)}.paper-composer{overflow:hidden}.paper-form{padding:var(--space-6);gap:var(--space-3)}.paper-form input,.paper-form select,.paper-form textarea{min-height:44px}.paper-analytics{padding:var(--space-6)}.paper-analytics h3{font:650 var(--text-2xl)/1.1 var(--font-display)}.paper-chart{min-height:232px}.paper-chart b{border-radius:var(--radius-sm) var(--radius-sm) var(--radius-xs) var(--radius-xs);background:#509582}.paper-splits article{border-radius:var(--radius-lg);background:#f9fbf7;border-color:#dfe7e1}.paper-db-heading{padding:var(--space-6)}.paper-db-heading h3{font:650 var(--text-2xl)/1 var(--font-display)}.paper-filters{padding:var(--space-4) var(--space-6);background:#f3f7f2}.paper-filters input,.paper-filters select{border-radius:var(--radius-md);min-height:40px;font-size:var(--text-2xs);background:#fffefa}.paper-table thead{background:#eaf1eb}.paper-table th{color:#5b6f67;font-size:var(--text-3xs);letter-spacing:.08em}.paper-table td{padding-top:var(--space-4);padding-bottom:var(--space-4);font-size:var(--text-2xs);border-color:#e7ece8}.paper-table tbody tr:hover{background:#f5f9f5}.paper-name-button{color:#295e51;font-size:var(--text-xs)}.stage-tag,.difficulty-badge,.paper-chip{border-radius:var(--radius-pill);font-size:var(--text-3xs)}.paper-attempt-form{padding:var(--space-6);gap:var(--space-3)}.paper-attempt-history{padding:0 var(--space-6) var(--space-6)}.paper-row{border-color:#e7ece8;min-height:72px}.paper-score{color:#2f7665;font:650 var(--text-2xl)/1 var(--font-display)}.subject-settings-intro,.subject-composer,.subject-list,.subject-import{border-radius:var(--radius-2xl)}.subject-settings-intro{padding:var(--space-6);background:#f6faf7}.subject-settings-intro h3{font:650 var(--text-2xl)/1.1 var(--font-display)}.subject-settings-intro p{color:#697a73;font-size:var(--text-sm)}.subject-composer{padding:var(--space-6);gap:var(--space-4)}.subject-composer input,.subject-composer select{min-height:44px}.subject-pick{border-radius:var(--radius-md);background:#f7faf6;min-height:48px}.subject-pick.active{background:#eaf4ee;border-color:#6ba493;box-shadow:0 0 0 3px #488b7714}.subject-stage-presets button,.subject-import-mode button{border-radius:var(--radius-md);min-height:40px}.subject-stage-presets button.active,.subject-import-mode button.active{color:#fff;background:#347f6d}.subject-list{overflow:hidden}.subject-row{min-height:80px;padding-left:var(--space-6);padding-right:var(--space-6);border-color:#e7ece8}.subject-row:hover{background:#f7faf6}.subject-row-copy strong{color:#2b433a;font-size:var(--text-sm)}.subject-row-copy span,.subject-row-copy small{color:#71827b;font-size:var(--text-3xs)}.subject-import{padding:var(--space-6)}.subject-import h3{font:650 var(--text-2xl)/1.1 var(--font-display)}.subject-create-import{margin-top:var(--space-2);background:#f3f8f4;border-color:#cbded3}.subject-create-import .subject-import-head strong{color:#29483e;font-size:var(--text-md)}.official-chapters{border-radius:var(--radius-lg);background:#f8faf7;border-color:#dfe7e1}.stage-toolbar{padding:var(--space-4) var(--space-5);border-radius:var(--radius-xl)}.stage-toolbar strong{color:#2c443b;font-size:var(--text-sm)}.stage-switch{padding:var(--space-1);border-radius:var(--radius-md);background:#eaf0eb}.stage-switch button{border-radius:var(--radius-sm);color:#62736c;min-height:36px;font-size:var(--text-3xs)}.stage-switch button.active{color:#24594c;box-shadow:var(--shadow-sm);background:#fffefa}.subject-overview{gap:var(--space-7);padding:var(--space-5) var(--space-6);border-radius:var(--radius-xl);grid-template-columns:repeat(4,auto) minmax(220px,1fr)}.subject-overview strong{color:#2a443b;font:650 var(--text-2xl)/1 var(--font-display)}.subject-overview small{color:#70817a;font-size:var(--text-3xs)}.subject-progress{gap:var(--space-2);background:0 0;border-radius:0;height:auto;display:grid}.subject-progress>span{justify-content:flex-end;gap:var(--space-2);color:#687a73;font-size:var(--text-2xs);background:0 0;display:flex}.subject-progress .progress-bar{border-radius:var(--radius-pill);background:#e5ece7;height:8px}.subject-progress .progress-band.exam-ready{background:#2f7d6c}.subject-progress .progress-band.covered{background:#65a895}.subject-progress .progress-band.practising{background:#8da4c4}.subject-progress .progress-band.learning{background:#dfb96e}.chapter-card{margin-bottom:var(--space-4);border-radius:var(--radius-xl);overflow:hidden}.chapter-header{gap:var(--space-5);min-height:92px;padding:var(--space-4) var(--space-6);background:#fffefa;grid-template-columns:minmax(360px,1fr) auto 108px 164px}.chapter-header:hover{background:#f7faf6}.chapter-toggle{gap:var(--space-3);color:#376456;background:0 0;border:0;border-radius:0;grid-template-columns:36px 56px minmax(0,1fr);width:auto;min-width:0;height:100%;padding:0}.chapter-toggle:hover{background:0 0}.chevron{border-radius:var(--radius-md);color:#55736a;width:32px;height:32px;font-size:var(--text-2xl);background:#f5f8f4;border:1px solid #d8e2db;place-items:center;display:grid}.chapter-code{color:#536d64;font-size:var(--text-sm)}.chapter-title{gap:var(--space-1);min-width:0}.chapter-title small{color:#628078;font-size:var(--text-3xs);line-height:1.35}.chapter-title strong{color:#294139;font:650 var(--text-lg)/1.2 var(--font-display)}.chapter-stats{gap:var(--space-2)}.chapter-stats span{border-radius:var(--radius-pill);padding:var(--space-2);color:#5f7169;font-size:var(--text-3xs);background:#edf3ee}.chapter-body{background:#fbfcf9;border-color:#e7ece8}.chapter-help{color:#71817b;font-size:var(--text-2xs)}.timeline-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#142b246b}.topic-timeline-drawer{border-radius:var(--radius-2xl) 0 0 var(--radius-2xl);background:#fffefa;width:min(472px,94vw);box-shadow:-24px 0 60px #142b2433}.topic-timeline-drawer>header{color:#fffefa;background:#1e4a40}.topic-timeline-drawer>header .eyebrow{color:#a9cdbf}.topic-timeline-drawer>header>span{color:#c9ded6}.topic-timeline-drawer>header h3{color:#fffefa;font-family:var(--font-display)}.topic-timeline-drawer .timeline-topic-meta span{color:#d7e7e1;background:#ffffff14}.topic-timeline-drawer .chapter-progress-bar{background:#ffffff2e}.topic-timeline-drawer .chapter-progress-bar i{background:#83cbb7}.topic-timeline-drawer .chapter-progress-stats span{color:#bdd4cb;background:#ffffff12;border-color:#ffffff29}.topic-timeline-drawer .chapter-progress-stats strong{color:#fffefa;font-family:var(--font-display)}.timeline-close{border-radius:var(--radius-md);color:#315f52;background:#edf3ee;width:40px;height:40px}.timeline-note-form{border-radius:var(--radius-lg);background:#f7faf6;border-color:#dfe7e1}.topic-history-list{border-color:#e5ebe6}.history-marker{box-shadow:none;background:0 0}.history-marker i{color:#2f6f60;background:#e4f0eb;border-color:#6ca28f}.toast{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:#204e43;border-color:#315f52;bottom:24px;right:24px}.toast span{color:#4b321d;background:#f4bd72}@media (max-width:1180px){.app-shell{grid-template-columns:248px minmax(0,1fr)}.workspace{padding-left:var(--space-7);padding-right:var(--space-7)}.calendar-page{grid-template-columns:1fr}.calendar-agenda{position:static}.subject-overview{grid-template-columns:repeat(2,1fr)}.subject-progress{grid-column:1/-1}}@media (max-width:1100px){.flashcards-page{grid-template-columns:1fr}.deck-sidebar{position:static}.deck-list{display:flex;overflow-x:auto}.deck-list>button{min-width:220px}}@media (max-width:850px){.app-shell{display:block}.sidebar{padding:var(--space-4) var(--space-5) var(--space-3);box-shadow:0 6px 25px #163a3124}.brand-lockup{margin-bottom:var(--space-3)}.sidebar nav{gap:var(--space-2)}.nav-item{background:#ffffff0b;min-height:44px}.workspace{padding:var(--space-7) var(--space-5) var(--space-10)}.topbar h2{font-size:var(--text-4xl)}.notes-page,.flashcards-page,.hours-layout,.goal-setup,.goal-hero{grid-template-columns:1fr}.goal-next{padding:var(--space-5);border:1px solid #cde5dc40}.deck-sidebar{position:static}.task-composer{grid-template-columns:1fr}.task-summary,.hours-summary,.paper-summary,.goal-metrics{grid-template-columns:repeat(2,1fr)}.calendar-grid>button{min-height:100px}}@media (max-width:640px){body{font-size:var(--text-sm)}.sidebar{border-radius:0 0 var(--radius-2xl) var(--radius-2xl)}.brand-mark{border-radius:var(--radius-lg);width:40px;height:40px}.workspace{padding:var(--space-6) var(--space-4) var(--space-10)}.topbar{gap:var(--space-5);margin-bottom:var(--space-6)}.topbar h2{font-size:var(--text-3xl)}.topbar .muted{font-size:var(--text-sm)}.search-box,.search-box input{width:100%}.summary-grid{gap:var(--space-3)}.summary-card{min-height:120px;padding:var(--space-4)}.summary-card strong{font-size:var(--text-3xl)}.section-heading{min-height:68px;padding:var(--space-5)}.section-heading h3{font-size:var(--text-2xl)}.review-row{min-height:0}.ghost-button,.primary-button,.danger-button,.hours-submit{min-height:44px}.task-summary,.hours-summary,.paper-summary,.goal-metrics{grid-template-columns:1fr 1fr}.task-summary article,.hours-summary article,.paper-summary article,.goal-metrics article{min-height:96px;padding:var(--space-4)}.task-row{padding:var(--space-3) 0;grid-template-columns:32px 8px minmax(0,1fr) auto}.task-row>:nth-child(5),.task-row>:nth-child(6){display:none}.task-filters{flex-direction:column;align-items:stretch}.task-filters select{width:100%}.calendar-toolbar{align-items:flex-start}.calendar-grid>button{min-height:80px;padding:var(--space-2)}.calendar-grid>button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.subject-overview{gap:var(--space-5);grid-template-columns:1fr 1fr}.chapter-header{gap:var(--space-3);padding:var(--space-3);grid-template-columns:minmax(0,1fr) minmax(120px,140px)}.chapter-toggle{grid-area:1/1/auto/-1;grid-template-columns:32px 44px minmax(0,1fr);width:100%;min-height:56px}.chapter-header .status-select{grid-area:2/2;width:100%}.chapter-timeline-button{grid-area:2/1;width:100%;min-height:40px}.chapter-title strong{font-size:var(--text-md)}.paper-table{min-width:720px}.paper-database{overflow-x:auto}.deck-overview-head{display:grid}.deck-overview .deck-file-actions{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.deck-overview .deck-file-actions .ghost-button{width:100%;min-height:48px;padding:var(--space-3)}.deck-overview .deck-file-actions .danger{grid-column:1/-1}.study-launch{padding:var(--space-6) var(--space-5)}.scope-tabs{width:100%}.scope-tabs button{padding:var(--space-2);font-size:var(--text-2xs)}.study-setup-row{align-items:center;gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.setup-select select{width:100%}.study-start{grid-column:1/-1;width:100%;min-height:48px;margin-left:0}.card-maker{padding:var(--space-6) var(--space-5)}.card-maker h3{font-size:var(--text-2xl)}.card-maker textarea{min-height:120px;font-size:var(--text-sm)}.flashcard-stage{min-height:312px;padding:var(--space-7) var(--space-5)}.flashcard-stage strong{font-size:clamp(var(--text-xl), 6vw, var(--text-2xl));line-height:1.4}.reveal-answer{min-height:52px;font-size:var(--text-sm)}.study-footer{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.study-footer .study-hint{min-width:0;padding:var(--space-1) 0;font-size:var(--text-3xs);grid-area:1/1/auto/-1;line-height:1.5}.study-footer .study-nav{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.bottom-nav,.mobile-scrim{display:none}@media (max-width:850px){.app-shell{display:block}.sidebar{width:min(320px,86vw);height:100dvh;padding:var(--space-6) var(--space-5) calc(var(--space-5) + env(safe-area-inset-bottom));border-radius:0 var(--radius-2xl) var(--radius-2xl) 0;box-shadow:none;z-index:60;transition:transform .26s;position:fixed;top:0;left:0;transform:translate(-100%)}.app-shell.menu-open .sidebar{transform:none;box-shadow:0 18px 50px #09162673}.mobile-scrim{appearance:none;z-index:55;opacity:0;pointer-events:none;background:#0b1a2c80;border:0;padding:0;transition:opacity .26s;display:block;position:fixed;inset:0}.app-shell.menu-open .mobile-scrim{opacity:1;pointer-events:auto}.workspace{padding:var(--space-6) var(--space-4) calc(var(--space-12) + env(safe-area-inset-bottom))}.bottom-nav{z-index:58;background:var(--navy);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 26px #10223d4d}.bottom-nav-item{align-content:center;justify-items:center;gap:var(--space-1);min-height:56px;padding:var(--space-2) var(--space-1);color:#9fb2c9;font-size:var(--text-2xs);background:0 0;border:0;font-weight:600;line-height:1;display:grid;position:relative}.bottom-nav-item svg{font-size:var(--text-lg)}.bottom-nav-item.active{color:#fff}.bottom-nav-item.active svg{color:#b9e1d6}.bottom-nav-item.active:before{content:"";border-radius:0 0 var(--radius-xl) var(--radius-xl);background:#b9e1d6;width:32px;height:4px;position:absolute;top:0}.bottom-nav-item b{margin-left:var(--space-1);min-width:16px;height:16px;padding:0 var(--space-1);border-radius:var(--radius-xl);color:#463119;font-size:var(--text-3xs);background:#f0be64;place-items:center;display:grid;position:absolute;top:4px;left:50%}}@media (max-width:380px){.bottom-nav-item{font-size:var(--text-3xs);padding:var(--space-2) var(--space-1)}.workspace{padding-left:var(--space-3);padding-right:var(--space-3)}}
.exam-planner{gap:var(--space-4);display:grid}.exam-list{padding:0 var(--space-5) var(--space-5);gap:var(--space-4);margin:0;list-style:none;display:grid}.exam-card{border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-5);gap:var(--space-3);box-shadow:var(--shadow-sm);background:#fff;border-left:4px solid #9c3f66;display:grid}.exam-card.past{opacity:.72;border-left-color:#b7bcc2}.exam-head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.exam-title{gap:var(--space-3);grid-template-columns:12px 1fr;align-items:start;min-width:0;display:grid}.exam-title .subject-pin{margin-top:var(--space-1)}.exam-title strong{font-size:var(--text-md);line-height:1.3;display:block}.exam-title small{margin-top:var(--space-1);color:var(--muted);font-size:var(--text-2xs);display:block}.exam-countdown{text-align:right;flex:none}.exam-countdown strong{font-size:var(--text-sm);color:#9c3f66;white-space:nowrap;font-weight:900;display:block}.exam-countdown.soon strong{color:#b64d45}.exam-countdown small{margin-top:var(--space-1);color:var(--muted);font-size:var(--text-3xs);display:block}.exam-progress{border-radius:var(--radius-xl);background:#ece9e2;height:8px;overflow:hidden}.exam-progress>div{border-radius:inherit;background:var(--teal);height:100%;transition:width .2s}.exam-stats{gap:var(--space-1) var(--space-4);font-size:var(--text-3xs);color:var(--muted);flex-wrap:wrap;margin:0;display:flex}.exam-stats b{color:var(--ink);font-size:var(--text-2xs)}.exam-stats .behind{color:#a8514a;font-weight:850}.exam-notes{color:var(--muted);font-size:var(--text-2xs);margin:0;line-height:1.5}.exam-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.exam-actions button{border:1px solid var(--line);border-radius:var(--radius-sm);color:#5a6675;padding:var(--space-2) var(--space-3);font-size:var(--text-3xs);background:#faf9f6;font-weight:900}.exam-actions button:hover{color:var(--ink);border-color:#b6cfc2}.exam-actions button.danger{color:#a35d58}.exam-actions button.danger:hover{color:#8d3b3d;border-color:#d8b4b0}.exam-plan{padding-top:var(--space-3);gap:var(--space-3);border-top:1px solid #ece9e2;display:grid}.exam-plan .muted{font-size:var(--text-3xs);margin:0}.exam-plan-days{gap:var(--space-2);max-height:340px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.exam-plan-days>li{gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:#f8f7f3;grid-template-columns:96px minmax(0,1fr);display:grid}.exam-plan-days>li.today{box-shadow:inset 3px 0 0 var(--teal);background:#dcece5}.exam-plan-days>li.missed{background:#faeeec}.plan-date strong{font-size:var(--text-2xs);font-weight:900;display:block}.plan-date small{margin-top:var(--space-1);color:var(--muted);font-size:var(--text-3xs);display:block}.exam-plan-days ul{gap:var(--space-1);min-width:0;margin:0;padding:0;list-style:none;display:grid}.exam-plan-days ul li{font-size:var(--text-2xs);color:#48535f;line-height:1.45}.exam-plan-days ul li b{color:var(--ink);margin-right:var(--space-1);font-weight:900}.exam-plan-days ul li.done{color:#8a9490;text-decoration:line-through}.exam-form{padding-bottom:var(--space-5)}.exam-form-grid{gap:var(--space-3);padding:var(--space-5) var(--space-5) 0;grid-template-columns:repeat(auto-fit,minmax(192px,1fr));display:grid}.exam-form-grid label,.exam-notes-field{gap:var(--space-2);display:grid}.exam-form-grid label>span,.exam-notes-field>span,.pace-picker legend{font-size:var(--text-3xs);color:#687487;text-transform:uppercase;letter-spacing:.05em;font-weight:900}.exam-form-grid input,.exam-form-grid select,.exam-notes-field input{border:1px solid var(--line);border-radius:var(--radius-sm);height:40px;color:var(--ink);padding:0 var(--space-3);font-size:var(--text-2xs);background:#faf9f6;min-width:0}.exam-notes-field{padding:var(--space-4) var(--space-5) 0}.pace-picker{margin:var(--space-4) var(--space-5) 0;gap:var(--space-2);border:0;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));padding:0;display:grid}.pace-picker legend{padding:0 0 var(--space-2)}.pace-picker button{border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink);padding:var(--space-3);text-align:left;gap:var(--space-1);background:#fff;display:grid}.pace-picker button:hover{border-color:#b6cfc2}.pace-picker button.active{border-color:var(--teal);box-shadow:inset 3px 0 0 var(--teal);background:#cfe6dd}.pace-picker strong{font-size:var(--text-2xs);font-weight:900}.pace-picker small{color:var(--muted);font-size:var(--text-3xs);line-height:1.4}.topic-picker{margin:var(--space-5) var(--space-5) 0;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.topic-picker-head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-4);border-bottom:1px solid var(--line);background:#f8f7f3;display:flex}.topic-picker-head strong{font-size:var(--text-xs);display:block}.topic-picker-head small{margin-top:var(--space-1);color:var(--muted);font-size:var(--text-3xs);max-width:52ch;line-height:1.5;display:block}.topic-picker-actions{align-items:center;gap:var(--space-2);flex:none;display:flex}.topic-picker-actions span{font-size:var(--text-3xs);color:var(--teal);white-space:nowrap;font-weight:900}.topic-picker-actions button{border:1px solid var(--line);border-radius:var(--radius-sm);color:#5a6675;padding:var(--space-2) var(--space-3);font-size:var(--text-3xs);background:#fff;font-weight:900}.topic-picker-actions button:hover{color:var(--ink);border-color:#b6cfc2}.topic-picker>.muted{padding:var(--space-6) var(--space-4);font-size:var(--text-2xs);margin:0}.topic-tree{padding:var(--space-2) 0;max-height:44vh;margin:0;list-style:none;overflow-y:auto}.topic-tree>li{border-bottom:1px solid #f0eee8}.topic-tree>li:last-child{border-bottom:0}.topic-chapter{gap:var(--space-3);padding:var(--space-3) var(--space-4);cursor:pointer;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;display:grid}.topic-chapter:hover{background:#f8f7f3}.topic-chapter>span{font-size:var(--text-2xs);font-weight:800;line-height:1.4}.topic-chapter b{color:var(--teal);margin-right:var(--space-2)}.topic-chapter small{color:var(--muted);font-size:var(--text-3xs);font-variant-numeric:tabular-nums}.topic-chapter.partial small{color:var(--teal);font-weight:900}.topic-points{padding:0 0 var(--space-2) var(--space-9);gap:var(--space-1);margin:0;list-style:none;display:grid}.topic-points label{gap:var(--space-2);padding:var(--space-1) var(--space-4) var(--space-1) 0;cursor:pointer;grid-template-columns:16px minmax(0,1fr);align-items:start;display:grid}.topic-points label:hover{background:#f8f7f3}.topic-points span{font-size:var(--text-3xs);color:#4d5764;line-height:1.45}.topic-points b{color:#7c8794;margin-right:var(--space-1);font-weight:900}.topic-points label.done span{color:#94a09a}.topic-picker input[type=checkbox]{accent-color:var(--teal);width:16px;height:16px;margin:var(--space-1) 0 0}.exam-form-actions{padding:var(--space-5) var(--space-5) 0;justify-content:flex-end;display:flex}.exam-form-actions .primary-button{min-height:40px;padding:0 var(--space-5)}.calendar-legend span.exam:before{background:#9c3f66}.calendar-legend span.exam-task:before{background:#c2657f}.calendar-grid span.exam{color:#7d3352;background:#f7e8ee;border-color:#9c3f66;font-weight:900}.calendar-grid span.exam-task{color:#8c4a5e;background:#fbeef2;border-color:#c2657f}.agenda-list article>i.exam{background:#9c3f66}.agenda-list article>i.exam-task{background:#c2657f}@media (max-width:760px){.exam-head{flex-direction:column}.exam-countdown{text-align:left}.exam-plan-days>li{gap:var(--space-2);grid-template-columns:1fr}.topic-picker-head{flex-direction:column}.topic-points{padding-left:var(--space-7)}}
.auth-shell{background:var(--paper);grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100vh;display:grid}@media (max-width:900px){.auth-shell{grid-template-columns:minmax(0,1fr)}.auth-aside{display:none}}.auth-aside{padding:clamp(var(--space-8), 5vw, var(--space-10));color:#eaf4ee;background:#163a32;flex-direction:column;justify-content:space-between;display:flex;position:relative}.auth-aside .brand-lockup{margin-bottom:0}.auth-aside h1{color:#fff}.auth-aside .eyebrow{color:#a7c7ba}.auth-pitch h2{margin:0 0 var(--space-4);font:650 clamp(var(--text-3xl), 3.4vw, var(--text-4xl))/1.12 var(--font-display);letter-spacing:-.03em;color:#fffdf8}.auth-pitch p{color:#b6cec4;max-width:34ch;font-size:var(--text-md);margin:0;line-height:1.6}.auth-highlights{margin:var(--space-7) 0 0;gap:var(--space-4);padding:0;list-style:none;display:grid}.auth-highlights li{gap:var(--space-3);color:#cfe3d9;font-size:var(--text-sm);grid-template-columns:24px 1fr;align-items:start;line-height:1.5;display:grid}.auth-highlights i{border-radius:var(--radius-sm);color:#b9e1d6;width:24px;height:24px;font-style:normal;font-size:var(--text-sm);background:#b9e1d629;place-items:center;display:grid}.auth-highlights strong{color:#f3faf6;font-weight:800}.auth-main{padding:clamp(var(--space-7), 5vw, var(--space-10)) clamp(var(--space-5), 5vw, var(--space-10));place-items:center;display:grid}.auth-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-2xl);width:min(432px,100%);padding:clamp(var(--space-6), 4vw, var(--space-8));box-shadow:var(--shadow-md)}.auth-card h2{margin:0 0 var(--space-2);font:650 var(--text-3xl)/1.15 var(--font-display);letter-spacing:-.03em}.auth-card>p.muted{margin:0 0 var(--space-6);font-size:var(--text-sm)}.auth-field{gap:var(--space-2);margin-bottom:var(--space-4);display:grid}.auth-field label{font-size:var(--text-sm);color:var(--ink);font-weight:800}.auth-field input,.auth-field select{width:100%;height:48px;padding:0 var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink);box-shadow:var(--shadow-sm);background:#fff}.auth-field input::placeholder{color:#99a6a0}.auth-field small{color:var(--muted);font-size:var(--text-xs)}.auth-submit{width:100%;min-height:48px;margin-top:var(--space-2);border-radius:var(--radius-md);background:var(--navy);color:#fffdf8;font-size:var(--text-md);border:0;font-weight:800;box-shadow:0 10px 22px #173d3538}.auth-submit:hover:not(:disabled){background:var(--navy-2)}.auth-submit:disabled{opacity:.6;cursor:progress}.auth-alert{margin:0 0 var(--space-5);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);border:1px solid;line-height:1.5}.auth-alert.error{color:#8d3b3d;background:#fbeceb;border-color:#edc9c6}.auth-alert.info{background:var(--soft-mint);color:#1f5d50;border-color:#bcd9cd}.auth-swap{margin:var(--space-6) 0 0;text-align:center;font-size:var(--text-sm);color:var(--muted)}.auth-swap a{color:var(--teal);font-weight:800;text-decoration:none}.auth-swap a:hover{text-decoration:underline}.onboarding-shell{min-height:100vh;padding:clamp(var(--space-7), 5vw, var(--space-10)) var(--space-5) var(--space-11);place-items:start center;display:grid}.onboarding-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-2xl);width:min(760px,100%);padding:clamp(var(--space-6), 4vw, var(--space-8));box-shadow:var(--shadow-md)}.onboarding-steps{gap:var(--space-2);margin-bottom:var(--space-6);display:flex}.onboarding-steps span{border-radius:var(--radius-xl);background:var(--soft-sage);flex:1;height:8px}.onboarding-steps span.done{background:var(--teal)}.onboarding-card h2{margin:0 0 var(--space-2);font:650 clamp(var(--text-2xl), 3vw, var(--text-3xl))/1.15 var(--font-display);letter-spacing:-.03em}.onboarding-card>p.muted{margin:0 0 var(--space-7)}.onboarding-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.subject-picker{gap:var(--space-3);margin-bottom:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.subject-option{gap:var(--space-3);text-align:left;padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-lg);color:var(--ink);box-shadow:var(--shadow-sm);background:#fff;grid-template-columns:24px 1fr;align-items:start;display:grid}.subject-option:hover{border-color:#b6cfc2}.subject-option[aria-pressed=true]{border-color:var(--teal);box-shadow:inset 3px 0 0 var(--teal);background:#cfe6dd}.subject-option .large-subject-pin{width:24px;height:24px;margin-top:var(--space-1);border-radius:50%}.subject-option strong{font-size:var(--text-md);font-weight:800;display:block}.subject-option small{color:var(--muted);font-size:var(--text-xs);line-height:1.5}.onboarding-actions{justify-content:space-between;align-items:center;gap:var(--space-4);margin-top:var(--space-7);padding-top:var(--space-6);border-top:1px solid var(--line);display:flex}.onboarding-actions .ghost-button{border:1px solid var(--line);color:var(--muted);border-radius:var(--radius-md);min-height:44px;padding:0 var(--space-5);background:#fff;font-weight:800}.onboarding-actions .ghost-button:hover{color:var(--ink);border-color:#b6cfc2}.onboarding-actions .auth-submit{width:auto;min-width:192px;margin-top:0}.onboarding-summary{gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--soft-sage);margin-bottom:var(--space-2);border:1px solid #cfe0d4;display:grid}.onboarding-summary div{justify-content:space-between;gap:var(--space-4);font-size:var(--text-sm);display:flex}.onboarding-summary dt,.onboarding-summary span:first-child{color:var(--muted)}.onboarding-summary strong{text-align:right;font-weight:800}.sidebar-account{margin-top:var(--space-3)}.sidebar-account button{border-radius:var(--radius-md);color:#c3d8ce;width:100%;min-height:40px;font-size:var(--text-sm);background:#ffffff0d;border:1px solid #ffffff24;font-weight:800}.sidebar-account button:hover{color:#fff;background:#ffffff1a}.onboarding-card{width:min(880px,100%)}.picker-controls{gap:var(--space-3);margin-bottom:var(--space-4);display:grid}.picker-tabs{gap:var(--space-2);flex-wrap:wrap;display:flex}.picker-tabs button{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--muted);font-size:var(--text-sm);background:#fff;font-weight:700;display:inline-flex}.picker-tabs button:hover{color:var(--ink);border-color:#b6cfc2}.picker-tabs button.active{background:var(--navy);border-color:var(--navy);color:#fffdf8}.picker-tabs button b{min-width:24px;height:20px;padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--soft-sage);color:var(--navy);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;place-items:center;display:grid}.picker-tabs button.active b{color:#fffdf8;background:#ffffff2e}.picker-search{display:block;position:relative}.picker-search svg{font-size:var(--text-lg);color:#758578;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.picker-search input{width:100%;height:44px;padding:0 var(--space-4) 0 var(--space-8);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink);box-shadow:var(--shadow-sm);background:#fff}.picker-chips{gap:var(--space-2);padding:var(--space-3);margin-bottom:var(--space-4);border-radius:var(--radius-lg);background:var(--soft-sage);border:1px solid #cfe0d4;flex-wrap:wrap;display:flex}.picker-chip{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-2);border-radius:var(--radius-pill);color:var(--ink);font-size:var(--text-sm);background:#fff;border:1px solid #bcd4c4;font-weight:700;display:inline-flex}.picker-chip:hover{border-color:var(--red);color:var(--red)}.picker-chip svg{color:var(--muted);font-size:var(--text-sm)}.picker-chip:hover svg{color:var(--red)}.subject-picker{max-height:min(46vh,420px);padding:var(--space-1);scrollbar-width:thin;scrollbar-color:#bcd4c4 transparent;overflow-y:auto}.subject-option:disabled{opacity:.45;cursor:not-allowed}.subject-option:disabled:hover{border-color:var(--line)}.subject-option em{margin-top:var(--space-2);font-style:normal;font-size:var(--text-xs);letter-spacing:.02em;color:var(--muted);font-weight:800;display:block}.subject-option em.bundled{color:var(--teal)}.subject-option em.official{color:var(--blue)}.picker-count{margin:var(--space-4) 0 0;font-size:var(--text-sm);font-variant-numeric:tabular-nums}
.brand-mark{width:48px;height:48px;padding:var(--space-1);border-radius:var(--radius-lg);color:inherit;font:inherit;background:#fff;place-items:center;display:grid;box-shadow:inset 0 0 0 1px #173d3514,0 7px 16px #0a241d38}.brand-mark svg{width:100%;height:100%;display:block}.auth-main .brand-mark,.onboarding-card .brand-mark{box-shadow:inset 0 0 0 1px #173d351f}.brand-lockup .eyebrow{text-transform:uppercase;letter-spacing:.14em}@media (max-width:900px){.brand-mark{border-radius:var(--radius-md);width:40px;height:40px}}
