@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,500;9..144,600&display=swap";@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.block{display:block}.grid{display:grid}.rounded{border-radius:.25rem}.border{border-width:1px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{font-family:DM Sans,sans-serif;color:#22312d;background:#f6f7f5;font-synthesis:none}*{box-sizing:border-box}h1,h2,h3,p{margin-top:0}.app-shell{min-height:100vh;display:flex}.sidebar{width:244px;flex:none;background:#fdfefd;border-right:1px solid #e7ebe7;padding:31px 17px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:11px;padding:0 14px 44px}.brand strong{font:800 22px Manrope,sans-serif;letter-spacing:-1.2px;display:block;line-height:1.1}.brand small{font-size:8px;letter-spacing:2px;color:#8d9a95;font-weight:700}.brand-mark{width:30px;height:30px;display:grid;grid-template-columns:repeat(2,10px);grid-template-rows:repeat(2,10px);gap:3px;transform:rotate(-12deg)}.brand-mark span{border-radius:3px;background:#457f6f}.brand-mark span:nth-child(2),.brand-mark span:nth-child(3){background:#afd5c4}.side-label,.card-label{font-size:10px;letter-spacing:1.7px;font-weight:800;color:#8c9993}.side-label{padding:0 17px;margin-bottom:13px}.sidebar nav{display:grid;gap:4px}.nav-link{width:100%;border:0;background:transparent;color:#64726c;display:flex;align-items:center;gap:13px;border-radius:10px;padding:12px 15px;text-align:left;font-weight:700;font-size:13px}.nav-link:hover,.nav-link.active{background:#eaf2ed;color:#2e6655}.nav-dot{margin-left:auto;width:5px;height:5px;background:#4d9077;border-radius:50%}.side-bottom{margin-top:auto}.quiet-card{display:flex;gap:11px;background:#e8f3ec;border-radius:12px;padding:15px;color:#3d7863;margin-bottom:22px}.quiet-card strong{font-size:12px}.quiet-card p{font-size:11px;margin:4px 0 0;color:#749383}.side-user{border-top:1px solid #e8ece8;padding:19px 8px 0;display:flex;gap:10px;align-items:center}.avatar{width:30px;height:30px;border-radius:50%;background:#f0ddd0;color:#8a5a42;font-weight:800;font-size:12px;display:grid;place-items:center}.side-user strong,.side-user small{display:block;font-size:11px}.side-user small{color:#9aa49e;margin-top:3px}.main{flex:1;min-width:0}.topbar{height:72px;border-bottom:1px solid #e7ebe7;background:#ffffffa6;display:flex;align-items:center;justify-content:space-between;padding:0 46px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.date-pill{display:flex;align-items:center;gap:8px;color:#697a71;font-size:12px;font-weight:700}.icon-btn{border:0;background:transparent;display:inline-grid;place-items:center;color:#718078;width:32px;height:32px;border-radius:8px;flex:none}.icon-btn:hover{background:#eaf2ed;color:#2e6655}.content{max-width:1450px;margin:auto;padding:42px 46px 90px}.page-intro{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:31px}.page-intro h1{font:800 clamp(28px,3vw,38px)/1.2 Manrope,sans-serif;letter-spacing:-1.6px;margin:0 0 8px;color:#20312b}.period{color:#6fa98b}.page-intro p{color:#8c9992;font-size:14px;margin:0}.btn{border:0;border-radius:9px;min-height:39px;padding:0 15px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:800;font-size:12px;white-space:nowrap;transition:transform .15s,background .15s}.btn:hover{transform:translateY(-1px)}.btn-secondary{background:#fff;border:1px solid #e1e8e2;color:#426d5a}.btn-dark{background:#2d4d40;color:#fff}.btn-dark:hover{background:#1f3d30}.today-grid{display:grid;grid-template-columns:minmax(0,1.32fr) minmax(320px,.9fr);gap:17px}.feature-card{border-radius:16px;background:linear-gradient(125deg,#e0efe7,#eaf5ea 63%,#f2f7e7);padding:30px 32px;min-height:312px;position:relative;overflow:hidden}.feature-card:after{content:"";position:absolute;right:-70px;bottom:-150px;width:330px;height:330px;border:1px solid rgba(65,124,92,.1);border-radius:50%;box-shadow:0 0 0 50px #ffffff14,0 0 0 100px #ffffff0d}.feature-card>*{position:relative;z-index:1}.feature-top{display:flex;justify-content:space-between;gap:10px}.feature-kicker,.feature-duration{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:800;letter-spacing:1.2px;color:#3f8268}.feature-duration{letter-spacing:0;font-size:11px;background:#ffffffa6;padding:7px 10px;border-radius:7px}.feature-subject{display:flex;align-items:center;gap:10px;margin-top:35px;color:#49665a;font-size:12px;font-weight:800}.subject-icon{width:35px;height:35px;flex:none;border-radius:10px;color:#fff;display:inline-grid;place-items:center;font:800 14px Manrope,sans-serif;box-shadow:inset 0 -5px 12px #0000000f}.feature-card h2{font:800 clamp(25px,2.3vw,32px)/1.16 Manrope,sans-serif;letter-spacing:-1.2px;margin:14px 0 10px;max-width:520px}.feature-card p{color:#638174;font-size:12px;line-height:1.55;max-width:440px;margin-bottom:22px}.feature-card .btn{min-height:44px}.feature-card .btn svg:last-child{margin-left:8px}.progress-hero{border:1px solid #e7ebe7;background:#fff;border-radius:16px;padding:29px 28px;display:flex;flex-direction:column;min-height:312px}.progress-hero-number{font:800 34px Manrope,sans-serif;letter-spacing:-1.3px;margin:35px 0 15px}.progress-hero-number span{color:#b4c0b9;font-size:18px}.track{height:8px;width:100%;background:#edf1ec;border-radius:20px;overflow:hidden}.track>div{height:100%;border-radius:20px;background:#5a9b7c;min-width:0;transition:width .25s}.progress-hero>p{color:#9ba7a0;font-size:11px;margin:11px 0 auto}.progress-hero-footer{border-top:1px solid #eef1ee;display:grid;grid-template-columns:repeat(3,1fr);padding-top:21px;margin-top:26px}.progress-hero-footer>div+div{border-left:1px solid #eef1ee;padding-left:20px}.progress-hero-footer strong,.progress-hero-footer span{display:block}.progress-hero-footer strong{font:800 18px Manrope,sans-serif}.progress-hero-footer span{color:#9ca7a0;font-size:10px;margin-top:4px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:34px 0 14px}.section-heading h3{font:800 17px Manrope,sans-serif;letter-spacing:-.4px;margin:0 0 4px}.section-heading p{font-size:11px;color:#99a59e;margin:0}.text-button{border:0;background:transparent;color:#4b9274;display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:800}.sessions-panel,.soft-card,.setting-card,.chart-card,.insights-card,.target-table{background:#fff;border:1px solid #e7ebe7;border-radius:13px}.empty-state{min-height:190px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:24px}.empty-icon{width:42px;height:42px;border-radius:11px;background:#edf5ee;color:#4a9274;display:grid;place-items:center;margin-bottom:12px}.empty-state strong{font-size:13px}.empty-state p{color:#9aa69e;font-size:11px;margin:7px 0 14px}.session-row{display:flex;align-items:center;gap:16px;padding:18px 20px;border-bottom:1px solid #edf0ed}.session-row:last-child{border-bottom:0}.session-time{font-weight:800;font-size:12px;width:60px}.session-time span{display:block;font-size:10px;color:#abb6ae;font-weight:500;margin-top:3px}.session-detail{flex:1;min-width:0}.session-detail strong,.session-detail span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-detail strong{font-size:12px}.session-detail span{color:#9ba8a0;font-size:11px;margin-top:3px}.status-badge{font-size:10px;text-transform:capitalize;border-radius:6px;background:#eff5ed;color:#5a896d;padding:5px 8px;font-weight:800}.status-badge.missed{background:#fff2ec;color:#b47961}.status-badge.completed{background:#e6f5ec;color:#43856a}.row-actions{display:flex;align-items:center;gap:4px}.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-top:18px}.soft-card{padding:23px 25px;min-height:166px}.soft-card .card-label{display:flex;justify-content:space-between}.soft-card .card-label span{letter-spacing:0;font-size:10px}.mini-total{margin:22px 0 13px}.mini-total strong,.exam-big{font:800 23px Manrope,sans-serif;letter-spacing:-.8px}.mini-total span,.exam-big span{font-size:12px;color:#9aa69e;font-weight:500;margin-left:6px}.soft-card p{font-size:11px;color:#9aa69e;line-height:1.5;margin:12px 0 0}.exam-big{margin-top:26px}.intro-actions{display:flex;gap:8px}.planner-toolbar{display:flex;align-items:center;justify-content:space-between;margin:8px 0 18px;gap:10px}.week-switch{display:flex;align-items:center;gap:8px}.week-switch h3{font:800 15px Manrope,sans-serif;min-width:215px;text-align:center;margin:0}.today-link{border:0;background:transparent;color:#4b9274;font-size:12px;font-weight:800;margin-left:8px}.segmented{display:flex;background:#e9eee9;border-radius:9px;padding:3px}.segmented button{border:0;background:transparent;border-radius:7px;color:#87958a;padding:7px 15px;font-size:11px;font-weight:800}.segmented button.selected{background:#fff;box-shadow:0 1px 5px #dce5dc;color:#315b48}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid #e6ebe6;border-radius:13px;overflow:hidden;background:#fff}.calendar.day-calendar{grid-template-columns:1fr}.calendar-day{min-width:0;min-height:440px;border-right:1px solid #e9ede9;display:flex;flex-direction:column}.calendar-day:last-child{border-right:0}.day-head{padding:17px 12px;border-bottom:1px solid #e9ede9;display:flex;align-items:center;justify-content:space-between}.day-head>div{display:flex;align-items:center;gap:7px}.day-head span{color:#97a59a;font-size:10px;font-weight:800}.day-head strong{font:800 16px Manrope,sans-serif}.is-today .day-head strong{color:#3a8567}.day-head small{font-size:9px;color:#a8b3aa}.day-body{padding:10px 7px;flex:1}.calendar-session{width:100%;position:relative;text-align:left;border:1px solid #eef0ec;border-left:3px solid #89ab9a;background:#fbfcfa;border-radius:7px;padding:8px 7px;margin-bottom:7px;display:flex;flex-direction:column;gap:3px;min-height:73px}.calendar-session:hover{background:#f1f7f2}.calendar-session.completed{opacity:.68}.calendar-session.missed{opacity:.6;border-style:dashed}.calendar-session strong{font-size:10px;line-height:1.25;color:#35463e}.calendar-session small{font-size:9px;color:#9ca99e;line-height:1.2}.calendar-time{font-size:9px;color:#85998b;font-weight:800;display:flex;justify-content:space-between;align-items:center}.session-check{position:absolute;right:6px;top:6px;color:#3e906e}.missed-label{color:#b47961;font-size:9px;font-weight:800}.add-day{border:1px dashed #dbe5db;background:transparent;color:#8eaa95;border-radius:7px;width:100%;min-height:32px;display:flex;justify-content:center;align-items:center;gap:4px;font-size:10px;font-weight:800}.day-footer{padding:10px;border-top:1px solid #e9ede9;font-size:9px;color:#9aa89d;font-weight:700}.helper-note{display:flex;align-items:flex-start;gap:10px;margin-top:18px;color:#8b9b90;font-size:11px;line-height:1.55}.helper-note svg{color:#6c9c7c;flex:none}.subject-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.subject-card{text-align:left;background:#fff;border:1px solid #e7ebe7;border-radius:13px;padding:21px;min-height:181px}.subject-card:hover{border-color:#b5d1bb;transform:translateY(-2px);box-shadow:0 8px 24px #365b4010}.subject-card-head{display:flex;justify-content:space-between;align-items:flex-start;color:#adc1af}.subject-card h3{font:800 15px Manrope,sans-serif;margin:19px 0 4px}.subject-card p{font-size:10px;color:#9caaa0;margin:0 0 18px}.subject-card-meta{display:flex;align-items:center;justify-content:space-between;gap:6px;color:#6e8274;font-size:10px;font-weight:800;margin-bottom:10px}.priority-tag{font-size:8px;letter-spacing:.6px;color:#bd8267;background:#fdf1e9;border-radius:5px;padding:4px 5px}.subject-card .track{height:5px}.subject-detail-top{background:#fff;border:1px solid #e7ebe7;border-radius:14px;padding:24px;display:flex;align-items:center;gap:20px;margin-bottom:17px}.subject-detail-icon{width:58px;height:58px;border-radius:14px;display:grid;place-items:center;color:#fff;font:800 26px Manrope,sans-serif}.subject-detail-top>div:nth-child(2){flex:1;max-width:640px}.subject-detail-top h2{font:800 26px Manrope,sans-serif;margin:7px 0}.subject-detail-top h2 span{color:#b2c0b5;font-size:17px}.subject-detail-top p{font-size:10px;color:#9eaaa1;margin:7px 0 0}.detail-grid,.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.setting-card{padding:24px}.setting-heading{display:flex;gap:13px;align-items:center;margin-bottom:23px}.setting-icon{width:34px;height:34px;display:grid;place-items:center;color:#48866c;background:#eef6ef;border-radius:8px}.setting-heading h3{font:800 14px Manrope,sans-serif;margin:0 0 3px}.setting-heading p{color:#9daaa0;font-size:11px;margin:0}.detail-fields,.modal-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.detail-fields label,.modal-fields label,.form-pair label,.completion-card label{display:flex;flex-direction:column;gap:6px;font-size:11px;color:#718177;font-weight:700}.detail-fields input,.detail-fields select,.modal-fields input,.modal-fields select,.form-pair input,.completion-card select,.topic-add input,.topic-row select{width:100%;background:#fff;border:1px solid #e2e9e2;border-radius:7px;min-height:35px;padding:6px 9px;outline:0;color:#3c5146}.detail-fields input:focus,.detail-fields select:focus,.topic-add input:focus,.modal-fields input:focus{border-color:#76a887}.topic-card{min-height:300px}.topic-add{display:flex;gap:8px}.topic-add input{flex:1}.topic-list{margin-top:15px}.topic-row{display:flex;align-items:center;gap:7px;padding:10px 0;border-bottom:1px solid #edf1ed}.topic-row>div{flex:1;min-width:120px}.topic-row strong,.topic-row small{display:block}.topic-row strong{font-size:11px}.topic-row small{font-size:9px;color:#9ba89e;margin-top:4px}.topic-row select{width:auto;max-width:130px;font-size:10px}.topic-empty{text-align:center;padding:37px 10px;color:#a0ada2;font-size:11px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat-card{background:#fff;border:1px solid #e7ebe7;border-radius:12px;padding:22px}.stat-card strong{display:block;font:800 25px Manrope,sans-serif;margin:25px 0 4px}.stat-card p{color:#9eaaa1;font-size:10px;margin:0}.analytics-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr);gap:17px;margin-top:20px}.chart-card,.insights-card{padding:22px}.chart-card .section-heading{margin:0 0 12px}.chart-wrap{height:300px;width:100%}.chart-legend{display:flex;gap:15px;justify-content:center;font-size:10px;color:#9ba79e}.chart-legend span{display:flex;align-items:center;gap:5px}.chart-legend i,.target-row i{width:7px;height:7px;display:inline-block;border-radius:50%}.insights-card .card-label{display:block;margin-bottom:21px}.insight-row{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #edf1ed;padding:13px 0;font-size:11px;color:#819085}.insight-row strong{color:#2c3e34}.insight-callout{display:flex;gap:8px;padding:12px;background:#eff6ef;color:#56836c;border-radius:8px;margin-top:24px}.insight-callout p{font-size:10px;line-height:1.5;margin:0}.target-row{display:grid;grid-template-columns:2fr .7fr .7fr .5fr;gap:15px;padding:12px 20px;border-bottom:1px solid #edf1ed;font-size:11px;color:#92a096}.target-row:last-child{border:0}.target-row>span:first-child{font-weight:800;color:#405549;display:flex;align-items:center;gap:8px}.target-row strong{color:#324d3d}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.choice{border:1px solid #e2eae2;background:#fff;padding:12px 7px;border-radius:8px;color:#76897b;font-size:11px;font-weight:800}.choice.selected{border-color:#6ba585;color:#3c765b;background:#ecf6ef}.setting-note{font-size:11px;color:#af8062;line-height:1.5;margin:15px 0 0}.custom-days{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:16px}.custom-days label{display:flex;gap:7px;align-items:center;font-size:10px}.custom-days input{width:45px;border:1px solid #e1e8e2;border-radius:5px;padding:4px}.custom-days small{color:#9ca99e}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-pair small{font-weight:500;color:#9aa89c}.availability-list{display:grid}.availability-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #edf1ed;font-size:11px;color:#586a5c}.availability-row label{display:flex;align-items:center;gap:9px}.availability-row input[type=checkbox]{accent-color:#4f8d6d}.availability-row input[type=time]{border:1px solid #e2e9e2;background:#fff;border-radius:6px;color:#5c7061;padding:4px 6px;font-size:11px}.modal-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;background:#1c2d2590;display:grid;place-items:center;padding:18px}.modal,.confirm-box{background:#fff;border-radius:16px;width:min(100%,480px);box-shadow:0 30px 90px #0c211d33;padding:24px}.modal-head{display:flex;justify-content:space-between;align-items:start}.modal-head h2,.confirm-box h3{font:800 22px Manrope,sans-serif;letter-spacing:-.6px;margin:0 0 22px}.modal-fields{grid-template-columns:1fr}.modal-fields .form-pair{grid-template-columns:1fr 1fr}.modal-footer{display:flex;align-items:center;gap:8px;margin-top:25px}.spacer{flex:1}.danger{color:#b46355}.confirm-box{text-align:center}.modal-icon{width:43px;height:43px;background:#eaf3e9;color:#4d9372;border-radius:11px;display:grid;place-items:center;margin:0 auto 13px}.confirm-box h3{margin-bottom:9px}.confirm-box p{font-size:12px;line-height:1.7;color:#839389}.confirm-actions{display:flex;justify-content:center;gap:8px;margin-top:23px;flex-wrap:wrap}.toast{position:fixed;right:24px;bottom:20px;z-index:40;background:#2d4d40;color:#fff;border-radius:9px;box-shadow:0 12px 35px #21352c33;padding:12px 14px;display:flex;align-items:center;gap:8px;font-size:12px}.toast button{background:transparent;border:0;color:#fff;margin-left:5px}.focus-overlay{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;background:#f3f7f2;display:flex;align-items:center;justify-content:center;text-align:center;padding:25px}.focus-close{position:absolute;top:25px;right:25px;border:0;background:transparent;display:flex;gap:7px;align-items:center;color:#718578;font-size:12px;font-weight:800}.focus-content{width:min(100%,560px)}.focus-content h2{font:800 35px Manrope,sans-serif;letter-spacing:-1.5px;margin:0 0 6px}.focus-content>p{color:#91a096;font-size:13px}.timer-ring{width:280px;height:280px;border-radius:50%;margin:35px auto 30px;background:conic-gradient(var(--ring) var(--pct),#dce9de 0);padding:12px}.timer-ring>div{height:100%;border-radius:50%;background:#f3f7f2;display:flex;flex-direction:column;align-items:center;justify-content:center}.timer-ring strong{font:800 57px Manrope,sans-serif;letter-spacing:-3px}.timer-ring span{font-size:11px;color:#91a397}.timer-actions{display:flex;justify-content:center;gap:9px;margin-bottom:15px}.focus-content>small{font-size:11px;color:#9baa9d}.completion-card{background:#fff;border:1px solid #e5ede5;border-radius:16px;padding:25px;text-align:left;max-width:400px;margin:26px auto 0}.completion-card .modal-icon{margin-left:0}.completion-card h3{font:800 20px Manrope,sans-serif;margin:0 0 6px}.completion-card p{font-size:11px;color:#9aaa9c;margin-bottom:20px}.completion-card label{margin-bottom:12px}.completion-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:20px}.mobile-only{display:none}.dark{color-scheme:dark}.dark body,.dark :root{background:#17241e;color:#e4eee6}.dark .main{background:#17241e}.dark .sidebar,.dark .topbar,.dark .progress-hero,.dark .sessions-panel,.dark .soft-card,.dark .subject-card,.dark .subject-detail-top,.dark .setting-card,.dark .stat-card,.dark .chart-card,.dark .insights-card,.dark .target-table,.dark .calendar,.dark .modal,.dark .confirm-box,.dark .completion-card{background:#223229;border-color:#37483c;color:#e4eee6}.dark .page-intro h1,.dark .feature-card h2,.dark .feature-card,.dark .section-heading h3,.dark .subject-card h3,.dark .stat-card strong,.dark .progress-hero-number,.dark .insight-row strong,.dark .target-row strong,.dark .timer-ring strong{color:#e4eee6}.dark .feature-card{background:linear-gradient(125deg,#315d47,#3d6449)}.dark .feature-card p,.dark .feature-subject{color:#d1e4d5}.dark .track{background:#394b3e}.dark .btn-secondary,.dark input,.dark select,.dark .choice,.dark .segmented button.selected{background:#2e4034;color:#dce9de;border-color:#4a604f}.dark .nav-link.active,.dark .nav-link:hover,.dark .quiet-card,.dark .insight-callout{background:#2d4937}.dark .calendar-day,.dark .day-head,.dark .day-footer,.dark .session-row,.dark .insight-row,.dark .target-row,.dark .topic-row,.dark .availability-row{border-color:#37483c}.dark .calendar-session{background:#2b3c30;border-color:#435847}.dark .calendar-session strong,.dark .target-row>span:first-child{color:#e1ede3}.dark .focus-overlay,.dark .timer-ring>div{background:#17241e}.dark .modal-backdrop{background:#0d1b13b3}@media (max-width:1120px){.sidebar{width:205px}.content{padding:35px 28px 75px}.topbar{padding:0 28px}.today-grid{grid-template-columns:1.2fr .9fr}.calendar{overflow-x:auto;grid-template-columns:repeat(7,minmax(135px,1fr))}.calendar.day-calendar{grid-template-columns:1fr}.day-head{padding:14px 8px}.day-head small{display:none}}@media (max-width:760px){.sidebar{position:fixed;z-index:15;left:-250px;width:240px;box-shadow:10px 0 30px #1c2d251a;transition:left .2s}.sidebar.open{left:0}.mobile-only{display:inline-grid}.topbar{height:58px;padding:0 17px}.content{padding:28px 17px 80px}.date-pill{font-size:10px}.page-intro{align-items:start;flex-direction:column;margin-bottom:23px}.page-intro h1{font-size:29px}.page-intro p{font-size:12px}.today-grid,.bottom-grid,.analytics-grid,.detail-grid,.settings-grid{grid-template-columns:1fr}.feature-card,.progress-hero{min-height:260px}.feature-card,.progress-hero{padding:23px}.progress-hero-number{margin-top:22px}.subject-grid,.stats-grid{grid-template-columns:repeat(2,1fr)}.planner-toolbar{align-items:start;flex-wrap:wrap}.week-switch h3{min-width:0;font-size:13px}.calendar{overflow-x:auto}.calendar-day{min-height:310px}.session-row{gap:10px;padding:13px}.session-row .status-badge{display:none}.subject-detail-top{flex-wrap:wrap}.subject-detail-top .btn{width:100%}.target-row{grid-template-columns:1.5fr .5fr .6fr .4fr;gap:5px;padding:10px;font-size:9px}.topic-row{flex-wrap:wrap}.topic-row>div{flex-basis:100%}}@media (max-width:430px){.subject-grid{grid-template-columns:1fr}.feature-card h2{font-size:24px}.intro-actions{width:100%;flex-wrap:wrap}.intro-actions .btn{flex:1}.date-pill{display:none}.stats-grid{gap:8px}.stat-card{padding:17px}.stat-card strong{font-size:21px}.day-head small{display:none}.completion-actions{flex-wrap:wrap}.timer-ring{width:235px;height:235px}.timer-ring strong{font-size:48px}}.reminder-fields{display:grid;gap:12px}.reminder-fields>label:not(.reminder-toggle){display:flex;flex-direction:column;gap:6px;font-size:11px;color:#718177;font-weight:700}.reminder-fields input[type=email],.reminder-fields select{width:100%;background:#fff;border:1px solid #e2e9e2;border-radius:7px;min-height:35px;padding:6px 9px;color:#3c5146}.reminder-toggle{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:#405549}.reminder-toggle input{accent-color:#4f8d6d}.reminder-status{font-size:11px;color:#4b9274;margin:0}.reminder-fields .setting-note{margin:0}.dark .reminder-fields input[type=email],.dark .reminder-fields select{background:#2e4034;color:#dce9de;border-color:#4a604f}.half-start{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;font-weight:700;color:#718177;margin-top:16px}.half-start input{border:1px solid #e2e9e2;background:#fff;color:#3c5146;border-radius:7px;padding:6px 9px;min-height:34px}.dark .half-start input{background:#2e4034;color:#dce9de;border-color:#4a604f}.ontrack-info.half-term-info{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:760px){.ontrack-info.half-term-info{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:430px){.ontrack-info.half-term-info{grid-template-columns:1fr}}.ontrack-summary,.ontrack-section{background:#fff;border:1px solid #e7ebe7;border-radius:14px;padding:22px;margin:22px 0}.ontrack-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.ontrack-heading h2{font:800 20px Manrope,sans-serif;margin:7px 0 0}.ontrack-status{font-size:11px;font-weight:800;color:#397e67;background:#edf7f0;border-radius:99px;padding:8px 12px;white-space:nowrap}.ontrack-status.at-risk{color:#956b32;background:#fff5e4}.ontrack-status.behind-schedule{color:#a35d4b;background:#fff0e9}.ontrack-figures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:22px 0}.ontrack-figures>div{padding:0 17px;border-right:1px solid #e7ebe7;min-width:0}.ontrack-figures>div:last-child{border-right:0}.ontrack-figures span,.ontrack-figures small,.ontrack-info span{display:block;color:#85958a;font-size:11px}.ontrack-figures strong{display:block;color:#2f4d3e;font:800 26px Manrope,sans-serif;margin:7px 0;white-space:nowrap}.ontrack-figures small{line-height:1.4}.pace-behind{color:#b0644f!important}.pace-ahead{color:#397e67!important}.ontrack-advice{display:grid;gap:4px;margin-top:12px}.ontrack-advice p{font-size:11px;line-height:1.5;color:#765f4e;background:#fbf5ec;border-radius:7px;padding:9px 11px;margin:0}.ontrack-details{margin-top:16px}.ontrack-section{margin:12px 0}.ontrack-section summary{cursor:pointer;font:800 14px Manrope,sans-serif;color:#405549;display:flex;justify-content:space-between;gap:15px;align-items:center}.ontrack-section summary span{font:500 10px Manrope,sans-serif;color:#9aaa9d}.ontrack-section[open] summary{margin-bottom:20px}.ontrack-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ontrack-info>div{background:#f7faf7;border-radius:8px;padding:13px}.ontrack-info strong{display:block;font-size:13px;color:#3c5146;margin-top:6px}.ontrack-explain{font-size:11px;color:#85958a;line-height:1.5;margin:14px 0}.ontrack-chart{width:100%;height:310px}.ontrack-legend{display:flex;justify-content:center;gap:20px;font-size:11px;color:#748678}.ontrack-legend span{display:flex;align-items:center;gap:6px}.ontrack-legend i{width:18px;border-top:2px solid}.ontrack-legend .planned-line{border-color:#a9b6ac}.ontrack-legend .actual-line{border-color:#397e67}.ontrack-legend .forecast-line{border-color:#c18464;border-top-style:dashed}.ontrack-subjects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ontrack-subject{border:1px solid #e7ebe7;background:#fff;border-radius:9px;padding:14px;text-align:left}.ontrack-subject:hover{border-color:#8db69d}.ontrack-subject-head,.ontrack-subject-meta{display:flex;justify-content:space-between;gap:8px;align-items:center}.ontrack-subject-head strong{font-size:12px;color:#405549;display:flex;align-items:center;gap:7px}.ontrack-subject-head i{width:8px;height:8px;border-radius:50%}.ontrack-subject-head span{font-size:10px;font-weight:800}.ontrack-subject-meta{font-size:10px;color:#829287;margin:13px 0 9px;flex-wrap:wrap}.dark .ontrack-summary,.dark .ontrack-section,.dark .ontrack-subject{background:#223229;border-color:#37483c}.dark .ontrack-heading h2,.dark .ontrack-figures strong,.dark .ontrack-section summary,.dark .ontrack-info strong,.dark .ontrack-subject-head strong{color:#e4eee6}.dark .ontrack-info{background:#2e4034}.dark .ontrack-advice p{background:#44382e;color:#ead5ba}.dark .ontrack-figures>div{border-color:#37483c}@media (max-width:760px){.ontrack-figures{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:18px}.ontrack-figures>div:nth-child(2){border-right:0}.ontrack-figures>div:nth-child(3){padding-left:0}.ontrack-subjects,.ontrack-info{grid-template-columns:1fr}}@media (max-width:430px){.ontrack-summary,.ontrack-section{padding:17px}.ontrack-figures strong{font-size:21px}.ontrack-figures>div{padding-right:8px;padding-left:8px}.ontrack-heading h2{font-size:17px}}.intro-actions{flex-wrap:wrap;justify-content:flex-end}.btn-danger{background:#fff1ed;border:1px solid #edc9c0;color:#a3473a}.btn-danger:hover{background:#fbe4de}.danger-icon{background:#fff1ed;color:#a3473a}.dark .btn-danger{background:#50352f;border-color:#755047;color:#ffd9cd}@media (max-width:760px){.intro-actions{justify-content:flex-start}}.account-chip{display:flex;align-items:center;gap:8px;max-width:210px;min-height:34px;padding:4px 9px 4px 4px;border:1px solid #e1e8e2;border-radius:9px;background:#fff;color:#426d5a;font-size:11px;font-weight:800}.account-chip>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-dot{width:25px;height:25px;flex:none;display:grid;place-items:center;border-radius:50%;background:#dcefe3;color:#34775a}.google-signin{min-height:34px}.google-mark{font:700 18px Arial,sans-serif;color:#4285f4;line-height:1}.google-mark-light{color:#fff}.account-card .setting-heading{margin-bottom:16px}.account-details{display:flex;align-items:center;gap:10px;margin-bottom:18px}.account-details strong,.account-details small{display:block}.account-details strong{font-size:12px}.account-details small{font-size:11px;color:#89998e;margin-top:3px;overflow-wrap:anywhere}.account-note,.account-error{font-size:11px;line-height:1.5;margin:14px 0 0}.account-note{color:#89998e}.account-error{color:#b04739}.side-user>div:last-child{min-width:0}.side-user strong,.side-user small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dark .account-chip{background:#2e4034;color:#dce9de;border-color:#4a604f}@media (max-width:760px){.account-chip{max-width:125px}.date-pill{display:none}.google-signin{font-size:0;min-width:36px;padding:0 9px}.google-signin .google-mark{font-size:18px}}.access-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#e4f0e8,#f8faf5)}.access-card{width:min(100%,430px);padding:34px;background:#fff;border:1px solid #dfe9e1;border-radius:18px;box-shadow:0 18px 50px #345c4020}.access-card .brand{padding:0 0 30px}.access-card h1{font:800 25px Manrope,sans-serif;letter-spacing:-.7px;color:#20312b;margin:0 0 10px}.access-card p{color:#66796d;font-size:13px;line-height:1.6;margin-bottom:22px}.access-card p strong{overflow-wrap:anywhere}.access-card .btn{min-height:43px}.access-card .account-error{color:#b04739;margin:16px 0 0}.dark .access-page{background:#17241e}.dark .access-card{background:#223229;border-color:#37483c}.dark .access-card h1{color:#e4eee6}:root{--paper:#f8f6f1;--surface:#fffefa;--ink:#242b3b;--muted:#747b84;--rule:#dddcd7;--accent:#bc674c;--sage:#4b6d65;font-family:DM Sans,sans-serif;color:var(--ink);background:var(--paper)}body{background:var(--paper)}.app-shell{display:block;background:var(--paper)}.sidebar{height:82px;width:100%;padding:0 max(24px,4vw);display:flex;flex-direction:row;align-items:center;position:sticky;top:0;z-index:12;background:var(--surface);border:0;border-bottom:1px solid var(--rule)}.brand{padding:0;margin-right:auto;gap:12px}.brand strong{font-family:Fraunces,Georgia,serif;font-size:27px;font-weight:600;letter-spacing:-1.1px;color:var(--ink)}.brand small{font-size:8px;color:var(--muted);letter-spacing:1.1px}.brand-mark{width:31px;height:31px;display:block;position:relative;transform:none;border:2px solid var(--ink);border-radius:50%}.brand-mark span{position:absolute;background:var(--accent);width:8px;height:8px;border-radius:50%;left:10px;top:10px}.brand-mark span:not(:first-child){display:none}.side-label,.side-bottom{display:none}.sidebar nav{display:flex;align-items:stretch;gap:4px;height:100%;margin-left:28px}.nav-link{height:100%;width:auto;padding:0 17px;border-radius:0;gap:8px;font-size:12px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent}.nav-link.active,.nav-link:hover{color:var(--ink);background:transparent;border-bottom-color:var(--accent)}.nav-dot{display:none}.main{background:var(--paper)}.topbar{height:38px;background:transparent;border:0;padding:0 max(24px,4vw)}.content{max-width:1680px;padding:18px clamp(20px,3vw,48px) 80px}.page-intro{padding-bottom:18px;border-bottom:1px solid var(--rule);margin-bottom:20px}.page-intro h1{font-family:Fraunces,Georgia,serif;font-weight:500;font-size:clamp(38px,4vw,58px);line-height:1.06;letter-spacing:-1.7px;color:var(--ink)}.page-intro p{font-size:13px;color:var(--muted)}.card-label{color:var(--accent);font-size:10px;letter-spacing:1.5px}.period{color:var(--accent)}.btn{border-radius:3px;font-weight:700;min-height:43px}.btn-dark{background:var(--ink)}.btn-dark:hover{background:#3b465c}.btn-secondary{background:transparent;border-color:var(--rule);color:var(--ink)}.today-grid{grid-template-columns:minmax(0,1.4fr) minmax(360px,.9fr);gap:0;border-bottom:1px solid var(--rule)}.feature-card{min-height:340px;border-radius:0;background:var(--ink);color:#f8f4eb;padding:28px 32px;display:flex;flex-direction:column;align-items:flex-start}.feature-card:after{width:125px;height:125px;right:27px;top:27px;bottom:auto;border:1px solid #f5efe85c;border-radius:50%;box-shadow:none}.feature-card:before{content:"";position:absolute;right:82px;top:82px;width:15px;height:15px;background:#e8ab83;border-radius:50%;z-index:1}.feature-top{width:100%}.feature-kicker,.feature-duration{color:#efba9f}.feature-duration{background:#ffffff1a;color:#f7f1e9;border-radius:2px}.feature-subject{margin-top:58px;color:#f4e7d8;font-size:13px}.subject-icon{border-radius:50%;box-shadow:none}.feature-card h2{font-family:Fraunces,Georgia,serif;font-size:clamp(34px,3.3vw,51px);font-weight:500;letter-spacing:-1px;color:#fffaf1;line-height:1.05;margin:18px 0 10px}.feature-card p{color:#cad0d4;font-size:12px;margin:12px 0 25px}.feature-card .btn-dark{background:#f1c69e;color:var(--ink)}.feature-card .btn-dark:hover{background:#f7d8b8}.feature-method{font-size:11px;letter-spacing:.6px;color:#e6aa87;text-transform:uppercase;font-weight:700}.feature-topic-link{background:transparent;border:0;color:#e2b59d;display:flex;align-items:center;gap:5px;margin-top:13px;padding:4px 0;font-size:11px}.progress-hero{border:0;border-top:1px solid var(--rule);border-radius:0;background:var(--surface);padding:28px;min-height:340px}.progress-hero-number{font-family:Fraunces,Georgia,serif;font-weight:500;font-size:41px;margin:60px 0 20px;color:var(--ink)}.progress-hero-number span{font-family:DM Sans,sans-serif;font-size:15px;color:var(--muted)}.track{height:4px;background:#e5e0d9;border-radius:0}.track>div{border-radius:0;background:var(--accent)}.progress-hero>p{color:var(--muted)}.progress-hero-footer{border-color:var(--rule)}.progress-hero-footer>div+div{border-color:var(--rule);padding-left:12px}.progress-hero-footer strong{font-family:Fraunces,Georgia,serif;font-size:20px;font-weight:500}.today-metrics{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--rule);background:var(--surface)}.today-metrics>div{padding:20px 24px;border-right:1px solid var(--rule)}.today-metrics>div:last-child{border-right:0}.today-metrics span{display:block;color:var(--muted);font-size:10px;margin-bottom:9px}.today-metrics strong{font-family:Fraunces,Georgia,serif;font-size:21px;font-weight:500}.section-heading h3,.setting-heading h3{font-family:Fraunces,Georgia,serif;font-weight:500;font-size:23px;letter-spacing:-.3px;color:var(--ink)}.sessions-panel,.soft-card,.setting-card,.ontrack-summary,.ontrack-section,.subject-card,.subject-detail-top{border:0;border-top:1px solid var(--rule);border-radius:0;background:var(--surface)}.session-row{border-color:var(--rule);padding:20px}.session-time{font-weight:600}.bottom-grid{gap:1px;background:var(--rule)}.soft-card{min-height:150px}.calendar{border:1px solid var(--rule);border-radius:0}.calendar-day,.day-head,.day-footer{border-color:var(--rule)}.calendar-session{border-radius:2px;background:#faf8f3}.subject-grid{gap:1px;background:var(--rule);border:1px solid var(--rule)}.subject-card{min-height:0}.subject-card:hover{box-shadow:none;transform:none;background:#fbf7ef}.subject-card h3{font-family:Fraunces,Georgia,serif;font-size:21px;font-weight:500;color:var(--ink)}.settings-grid,.detail-grid{gap:1px;background:var(--rule)}.setting-card{padding:26px}.ontrack-summary{margin-top:0}.ontrack-heading h2{font-family:Fraunces,Georgia,serif;font-size:26px;font-weight:500}.ontrack-status{border-radius:2px}.ontrack-status.not-started{background:#ece9e2;color:#665f55}.ontrack-status.slightly-behind{background:#fff0e8;color:#9f5a45}.ontrack-figures strong{font-family:Fraunces,Georgia,serif;font-weight:500;color:var(--ink)}.ontrack-section summary{font-family:Fraunces,Georgia,serif;font-size:20px;font-weight:500}.ontrack-info>div{border-radius:0;background:#f5f2ec}.modal,.confirm-box,.completion-card{border-radius:4px}.focus-overlay{background:var(--paper)}.timer-ring>div{background:var(--paper)}.subject-target-note{font-size:11px;color:var(--muted);line-height:1.5;align-self:end}.dark{--paper:#171c26;--surface:#222938;--ink:#f1eadf;--muted:#acb0b5;--rule:#3a4250;--accent:#e3a07f;color-scheme:dark}.dark body,.dark .app-shell,.dark .main{background:var(--paper);color:var(--ink)}.dark .sidebar,.dark .topbar,.dark .progress-hero,.dark .sessions-panel,.dark .soft-card,.dark .subject-card,.dark .subject-detail-top,.dark .setting-card,.dark .ontrack-summary,.dark .ontrack-section{background:var(--surface);border-color:var(--rule);color:var(--ink)}.dark .feature-card{background:#2b3447}.dark .feature-card h2{color:#fff7ec}.dark .feature-card p{color:#cdd3d8}.dark .page-intro h1,.dark .section-heading h3,.dark .setting-heading h3,.dark .progress-hero-number,.dark .subject-card h3,.dark .ontrack-heading h2,.dark .ontrack-figures strong,.dark .ontrack-section summary{color:var(--ink)}.dark .today-metrics{background:var(--surface);border-color:var(--rule)}.dark .today-metrics>div{border-color:var(--rule)}.dark .ontrack-info>div{background:#2d3545}.dark .btn-secondary{background:transparent;color:var(--ink);border-color:var(--rule)}.dark .brand-mark{border-color:var(--ink)}@media (max-width:920px){.sidebar{height:72px}.sidebar nav{margin-left:12px}.nav-link{padding:0 11px}.nav-link svg{display:none}.today-grid{grid-template-columns:1.25fr .9fr}.feature-card,.progress-hero{min-height:350px}.feature-card{padding:28px}.progress-hero{padding:25px}.today-metrics>div{padding:18px 14px}}@media (max-width:700px){.sidebar{height:64px;padding:0 16px;position:sticky}.brand{margin-right:auto}.brand strong{font-size:23px}.brand small{display:none}.sidebar nav{position:fixed;left:0;right:0;bottom:0;top:auto;height:58px;margin:0;background:var(--surface);border-top:1px solid var(--rule);display:grid;grid-template-columns:repeat(5,1fr);z-index:18}.nav-link{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:4px 0;font-size:10px;height:58px;border-bottom:0;border-top:2px solid transparent}.nav-link svg{display:block;width:17px;height:17px}.nav-link.active{border-top-color:var(--accent)}.topbar{height:34px;padding:0 17px}.topbar .mobile-only{display:none}.content{padding:24px 17px 100px}.page-intro h1{font-size:38px}.page-intro{gap:15px}.today-grid{display:block}.feature-card{min-height:360px}.progress-hero{min-height:220px}.progress-hero-number{margin:22px 0 14px}.progress-hero-footer{margin-top:17px;padding-top:16px}.today-metrics{grid-template-columns:repeat(2,1fr)}.today-metrics>div:nth-child(2){border-right:0}.today-metrics>div:nth-child(-n+2){border-bottom:1px solid var(--rule)}.bottom-grid{grid-template-columns:1fr}.subject-grid{grid-template-columns:1fr 1fr}.calendar{grid-template-columns:repeat(7,minmax(140px,1fr))}.ontrack-figures{grid-template-columns:repeat(2,1fr)}.modal-backdrop{padding:12px}.modal{max-height:90vh;overflow:auto}.toast{bottom:70px}.focus-overlay{z-index:25}}@media (max-width:430px){.feature-card h2{font-size:37px}.feature-card{padding:25px}.subject-grid{grid-template-columns:1fr}.session-row{flex-wrap:wrap}.session-detail{min-width:140px}.row-actions{margin-left:auto}.progress-hero-footer strong{font-size:17px}.today-metrics strong{font-size:18px}}.catchup{margin:28px 0;border-top:1px solid var(--rule);background:var(--surface);padding:0 22px 8px}.catchup .section-heading{margin:20px 0 8px}.catchup-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:13px 0;border-top:1px solid var(--rule)}.catchup-row strong,.catchup-row span{display:block}.catchup-row strong{font-size:13px}.catchup-row span{font-size:11px;color:var(--muted);margin-top:4px}.catchup-options{display:flex;gap:7px;flex-wrap:wrap}.catchup-options .btn{font-size:10px;min-height:32px;padding:0 10px}.dark .catchup{background:var(--surface)}@media (max-width:700px){.catchup-row{display:block}.catchup-options{margin-top:12px}.catchup{padding:0 15px 8px}}:root{--chart-planned:#7b858a;--chart-actual:#3f6b62;--chart-forecast:#bd765b}.dark{--chart-planned:#aeb8c1;--chart-actual:#9ccbb7;--chart-forecast:#efaa86}button,input,select{font:inherit}button{cursor:pointer}button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.55}:where(button,input,select,summary):focus-visible{outline:3px solid var(--accent);outline-offset:3px}:where(.track>div){transition:width .25s ease}.content{width:100%;margin:0 auto}.page-intro{gap:24px}.page-intro p{line-height:1.55}.btn,.icon-btn,.choice,.segmented button,.today-link{transition:background-color .16s ease,color .16s ease,border-color .16s ease}.btn-secondary:hover,.today-link:hover{background:color-mix(in srgb,var(--accent) 9%,var(--surface));border-color:var(--accent)}.icon-btn{width:42px;height:42px;color:var(--ink);border-radius:3px}.icon-btn:hover{background:color-mix(in srgb,var(--accent) 11%,transparent)}.nav-link{min-width:64px}.nav-link.active{font-weight:800}.feature-card{min-height:350px;justify-content:flex-start}.feature-card:before,.feature-card:after{display:none}.feature-subject{margin-top:26px}.feature-card h2{max-width:16ch;margin-bottom:16px}.feature-details{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;margin-bottom:20px;color:#e6dfd6;font-size:13px;line-height:1.4}.feature-details span{display:inline-flex;align-items:center;gap:8px}.feature-details svg{color:#e9af90;flex:none}.feature-card .btn-dark{min-height:48px;padding:0 19px;font-size:13px}.feature-empty{margin:auto 0}.feature-empty p{font-size:13px}.feature-topic-link{font-size:12px;min-height:36px}.feature-topic-link:hover{text-decoration:underline}.progress-hero{min-height:340px;display:flex;flex-direction:column}.progress-hero-number{margin:28px 0 17px;font-variant-numeric:tabular-nums}.progress-hero>p{font-size:12px;line-height:1.5}.progress-hero-footer{margin-top:auto;padding-top:22px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.progress-hero-footer>div{min-width:0;padding:0 9px}.progress-hero-footer>div:first-child{padding-left:0}.progress-hero-footer>div:last-child{padding-right:0}.progress-hero-footer strong{font-family:DM Sans,sans-serif;font-size:15px;font-weight:700;line-height:1.2;white-space:normal;font-variant-numeric:tabular-nums}.progress-hero-footer span{font-size:10px;line-height:1.35;margin-top:6px}.section-heading{margin-top:25px}.session-row{gap:16px}.session-time,.calendar-time,.subject-card-figures strong,.ontrack-figures strong{font-variant-numeric:tabular-nums}.session-detail span{line-height:1.5}.empty-state{padding:44px 22px}.empty-state p{max-width:36ch;margin-left:auto;margin-right:auto;line-height:1.5}.planner-toolbar{gap:16px}.week-switch{gap:8px}.week-switch h3{font-variant-numeric:tabular-nums}.mobile-week-strip{display:none}.calendar{grid-template-columns:repeat(7,minmax(0,1fr));overflow:hidden}.calendar-day{min-height:370px;background:var(--surface)}.calendar-day.is-today{background:color-mix(in srgb,var(--accent) 5%,var(--surface))}.day-head{min-height:75px;padding:12px 10px;border-bottom:1px solid var(--rule)}.day-head strong{font-variant-numeric:tabular-nums}.day-head small{display:block;color:var(--muted);font-size:10px}.day-body{padding:12px;flex:1}.calendar-session{min-height:94px;padding:12px;border:1px solid var(--rule);border-left:4px solid var(--sage);background:var(--surface);margin-bottom:8px;gap:5px;transition:background-color .16s ease,border-color .16s ease,transform .16s ease}.calendar-session:hover{background:color-mix(in srgb,var(--accent) 8%,var(--surface));border-top-color:var(--accent);border-right-color:var(--accent);border-bottom-color:var(--accent);transform:translateY(-1px)}.calendar-session.completed{background:color-mix(in srgb,var(--sage) 8%,var(--surface))}.calendar-session.missed{background:color-mix(in srgb,var(--accent) 8%,var(--surface));border-style:dashed;border-left-style:solid}.calendar-session strong{font-size:12px;line-height:1.25;color:var(--ink)}.calendar-session small{font-size:11px;line-height:1.3;color:var(--muted)}.calendar-session-meta{margin-top:auto;padding-top:4px;font-size:10px;font-weight:700;color:var(--muted)}.calendar-time{font-size:11px;color:var(--ink)}.calendar-time svg{opacity:.5}.add-day{min-height:42px}.day-footer{font-size:11px;color:var(--muted)}.subject-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1px}.subject-card{min-height:0;padding:22px 23px;display:flex;flex-direction:column;gap:0;transition:background-color .16s ease}.subject-card-head{margin-bottom:17px}.subject-card-index{font:500 12px DM Sans,sans-serif;color:var(--muted);font-variant-numeric:tabular-nums}.subject-card-title{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;min-height:52px}.subject-card-title h3{font-size:20px;line-height:1.18;margin:0}.subject-card-title svg{flex:none;color:var(--muted)}.subject-card-figures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:19px 0 16px}.subject-card-figures div{min-width:0}.subject-card-figures strong,.subject-card-figures span{display:block}.subject-card-figures strong{font-size:14px;line-height:1.2;color:var(--ink);white-space:nowrap}.subject-card-figures span{font-size:10px;color:var(--muted);margin-top:4px}.subject-card-foot{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:10px;color:var(--muted);font-size:10px}.priority-tag{font-size:10px;letter-spacing:0;text-transform:none}.subject-detail-top{gap:22px}.subject-detail-top p{line-height:1.5}.ontrack-summary{padding:27px 30px}.ontrack-figures{margin:26px 0 23px}.ontrack-figures>div{padding:0 19px}.ontrack-figures>div:first-child{padding-left:0}.ontrack-figures strong{font-family:DM Sans,sans-serif;font-size:24px;font-weight:700;line-height:1.15;white-space:normal}.ontrack-figures .pace-figure strong{font-family:Fraunces,Georgia,serif;font-size:27px;font-weight:500}.ontrack-figures span,.ontrack-figures small{font-size:11px;line-height:1.4;color:var(--muted)}.ontrack-advice p{font-size:12px;line-height:1.5;border-left:2px solid var(--accent);border-radius:0;background:transparent;color:var(--ink)}.ontrack-section{padding:24px 30px}.ontrack-section summary span{font-size:11px;color:var(--muted)}.ontrack-info>div{background:var(--paper);border:1px solid var(--rule)}.ontrack-info span,.ontrack-explain{font-size:11px;color:var(--muted)}.ontrack-info strong{color:var(--ink)}.chart-heading{display:flex;justify-content:space-between;gap:12px;margin:26px 0 4px;font-size:12px}.chart-heading span{color:var(--muted)}.ontrack-chart{height:clamp(300px,28vw,390px)}.ontrack-legend .planned-line{border-color:var(--chart-planned)}.ontrack-legend .actual-line{border-color:var(--chart-actual)}.ontrack-legend .forecast-line{border-color:var(--chart-forecast)}.ontrack-subject{background:var(--surface);border-color:var(--rule);border-radius:2px}.ontrack-subject:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--surface))}.ontrack-subject-head strong{color:var(--ink)}.ontrack-subject-meta{color:var(--muted)}.setting-card{padding:26px 28px}.setting-heading p,.setting-note,.account-note{line-height:1.55}:where(.setting-card,.modal,.subject-detail-top) input:not([type=checkbox]),:where(.setting-card,.modal) select{min-height:42px;border:1px solid var(--rule);border-radius:3px;background:var(--surface);color:var(--ink);padding:8px 10px}:where(.setting-card,.modal) input[type=checkbox]{accent-color:var(--accent);width:17px;height:17px}.choice{min-height:42px;border-radius:3px}.choice.selected{border-color:var(--accent)}.dark .calendar-session{background:var(--surface);border-color:var(--rule);border-left-color:var(--sage)}.dark .calendar-session:hover{background:#303848;border-top-color:var(--accent);border-right-color:var(--accent);border-bottom-color:var(--accent)}.dark .calendar-session.completed{background:#2c3b3b}.dark .calendar-session.missed{background:#3a343d}.dark .ontrack-info>div,.dark .ontrack-subject{background:var(--surface);border-color:var(--rule)}.dark .ontrack-figures span,.dark .ontrack-figures small,.dark .ontrack-info span,.dark .ontrack-explain,.dark .ontrack-subject-meta{color:var(--muted)}.dark .ontrack-advice p{background:transparent;color:var(--ink)}.dark .pace-ahead{color:#a7d0b8!important}.dark .pace-behind{color:#f0ae96!important}.dark .ontrack-status.at-risk,.dark .ontrack-status.slightly-behind{background:#493a36;color:#f3c1a9}.dark .ontrack-status.on-track,.dark .ontrack-status.target-achieved{background:#2d463d;color:#b7e4ca}@media (max-width:1050px){.calendar-session{padding:8px}.calendar-session strong{font-size:11px}.day-body{padding:7px}}@media (max-width:760px){.ontrack-summary,.ontrack-section{padding:21px}.ontrack-figures{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 0}.ontrack-figures>div:nth-child(3){padding-left:0}.ontrack-figures>div:nth-child(2){border-right:0}.settings-grid,.detail-grid{gap:1px}}@media (max-width:700px){.sidebar nav{height:calc(62px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}.nav-link{min-height:58px}.content{padding-bottom:calc(104px + env(safe-area-inset-bottom))}.feature-card{min-height:330px}.feature-subject{margin-top:34px}.feature-card h2{margin-bottom:18px}.feature-details{margin-bottom:24px}.progress-hero{min-height:230px;padding:25px}.progress-hero-number{margin:24px 0 12px}.progress-hero-footer{margin-top:24px}.mobile-week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;margin:12px 0 10px;background:var(--rule);border:1px solid var(--rule)}.mobile-week-strip button{min-width:0;min-height:71px;border:0;background:var(--surface);color:var(--ink);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px}.mobile-week-strip button.selected{background:color-mix(in srgb,var(--accent) 14%,var(--surface));box-shadow:inset 0 -3px var(--accent)}.mobile-week-strip button span{font-size:10px;color:var(--muted)}.mobile-week-strip button strong{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}.mobile-week-strip button i{font-size:10px;font-style:normal;color:var(--accent)}.calendar,.calendar.week-calendar{display:block;overflow:visible}.calendar.week-calendar .calendar-day:not(.is-selected){display:none}.calendar-day{min-height:230px}.day-head{min-height:58px;display:flex;align-items:center}.day-body{padding:12px}.calendar-session{min-height:88px;padding:12px}.calendar-session strong{font-size:13px}.planner-toolbar{align-items:center}.week-switch{flex:1;min-width:0}.week-switch h3{font-size:13px}.segmented{margin-left:auto}.subject-grid{grid-template-columns:1fr 1fr}.subject-card{padding:20px}.subject-card-figures{gap:6px}.subject-card-figures strong{font-size:12px}.ontrack-figures strong{font-size:21px}.chart-heading{flex-direction:column;gap:2px}}@media (max-width:540px){.subject-grid{grid-template-columns:1fr}.subject-card-title{min-height:0}.subject-card-figures strong{font-size:14px}.progress-hero-footer strong{font-size:13px}.ontrack-figures .pace-figure strong{font-size:23px}.week-switch h3{font-size:12px}.planner-toolbar .segmented{width:100%;justify-content:flex-end}.ontrack-chart{height:240px}}@media (max-width:380px){.progress-hero-footer{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:15px}.progress-hero-footer>div:last-child{padding-left:0}.mobile-week-strip button span{font-size:9px}}.content:has(.ontrack-summary){max-width:1760px;padding-top:10px}.content:has(.ontrack-summary) .page-intro{margin-bottom:12px;padding-bottom:11px}.content:has(.ontrack-summary) .page-intro h1{font-size:clamp(32px,3vw,46px);margin-bottom:4px}.ontrack-summary{padding:21px 26px 18px}.ontrack-heading h2{font-size:23px;margin:2px 0 0}.ontrack-figures{display:grid;grid-template-columns:minmax(245px,1.45fr) repeat(3,minmax(0,1fr));margin:17px 0 16px;gap:0}.ontrack-figures>div{padding:4px 19px;border-left:1px solid var(--rule);min-width:0}.ontrack-figures>div:first-child{padding-left:0;border-left:0}.ontrack-figures span,.ontrack-figures small{display:block}.ontrack-figures strong{display:block;margin:5px 0 3px;font-size:clamp(21px,2vw,29px);white-space:nowrap;line-height:1.12}.ontrack-figures .pace-figure strong{font-size:clamp(30px,3vw,42px);line-height:1.05}.ontrack-figures .pace-figure strong.pace-behind{color:#a34e3c}.dark .ontrack-figures .pace-figure strong.pace-behind{color:#f5ab90}.ontrack-figures .pace-figure strong.pace-ahead{color:var(--ink)}.ontrack-summary-foot{display:flex;justify-content:space-between;gap:16px;margin-top:9px;font-size:11px;line-height:1.4;color:var(--muted)}.ontrack-summary-foot span:last-child{text-align:right}.ontrack-details{margin-top:10px}.ontrack-section{margin:0;padding:19px 25px}.progress-section-heading{display:flex;align-items:end;justify-content:space-between;gap:12px}.progress-section-heading h2{font-family:Fraunces,Georgia,serif;font-weight:500;font-size:23px;line-height:1.15;color:var(--ink);margin:3px 0 0}.progress-section-note,.progress-heading-meta{color:var(--muted);font-size:11px;line-height:1.4}.progress-section-note{margin:7px 0 13px}.progress-sort{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px;white-space:nowrap}.progress-sort select{min-height:38px;padding:0 30px 0 10px;border:1px solid var(--rule);background:var(--surface);color:var(--ink);border-radius:2px;font-size:12px}.subject-progress-head,.subject-progress-row{display:grid;grid-template-columns:minmax(170px,1.45fr) minmax(130px,1.1fr) minmax(75px,.63fr) minmax(65px,.57fr) minmax(78px,.7fr) minmax(100px,.85fr);align-items:center;gap:10px}.subject-progress-head{padding:0 11px 7px;font-size:10px;color:var(--muted);border-bottom:1px solid var(--rule)}.subject-progress-head span:nth-child(n+3):nth-child(-n+5){text-align:right}.subject-progress-row{width:100%;min-height:40px;padding:4px 11px;border:0;border-bottom:1px solid var(--rule);background:transparent;color:var(--ink);text-align:left;font-size:12px}.subject-progress-row:last-child{border-bottom:0}.subject-progress-row:hover,.subject-progress-row:focus-visible{background:color-mix(in srgb,var(--accent) 7%,var(--surface))}.subject-progress-name{display:flex;align-items:center;gap:9px;min-width:0}.subject-progress-name i,.history-subject i{width:8px;height:8px;flex:none;border-radius:50%}.subject-progress-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.subject-progress-bar{display:flex;align-items:center;gap:8px}.subject-progress-bar .track{height:5px;flex:1;min-width:0}.subject-progress-bar .track>span{display:block;height:100%}.subject-progress-bar small{width:32px;text-align:right;font-size:11px;color:var(--muted)}.subject-progress-number{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.subject-progress-status{font-size:11px;white-space:nowrap;color:var(--muted)}.subject-progress-status.behind{color:#a34e3c;font-weight:700}.subject-progress-status.near{color:#40695b;font-weight:700}.dark .subject-progress-status.behind{color:#f5ab90}.dark .subject-progress-status.near{color:#a5d9bd}.progress-secondary-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.85fr);align-items:start;gap:10px;margin-top:10px}.progress-chart-section,.progress-half-term{min-width:0}.ontrack-chart{height:235px;margin-top:12px}.progress-chart-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.ontrack-legend{margin-top:8px}.progress-chart-note{color:var(--muted);font-size:11px;line-height:1.45;margin:10px 0 0}.progress-chart-empty{padding:20px 0 5px;max-width:47ch}.progress-chart-empty strong{font-family:Fraunces,Georgia,serif;font-size:18px;font-weight:500}.progress-chart-empty p{font-size:12px;line-height:1.55;color:var(--muted);margin:6px 0 0}.half-term-primary{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0 17px}.half-term-primary div+div,.half-term-secondary div+div{padding-left:14px;border-left:1px solid var(--rule)}.half-term-primary span,.half-term-secondary span{display:block;font-size:11px;color:var(--muted)}.half-term-primary strong{display:block;font-family:Fraunces,Georgia,serif;font-size:clamp(22px,2vw,29px);font-weight:500;margin-top:4px}.half-term-secondary{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:21px}.half-term-secondary strong{display:block;font-size:16px;font-weight:700;margin-top:4px;font-variant-numeric:tabular-nums}.half-term-secondary .pace-behind{color:#a34e3c}.dark .half-term-secondary .pace-behind{color:#f5ab90}.half-term-note{font-size:11px;line-height:1.4;margin:14px 0 0}.progress-history{margin-top:10px}.progress-history-empty{margin:13px 0 0;color:var(--muted);font-size:12px}.revision-history{padding:0;margin-top:9px}.history-date{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:15px 0 0}.history-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(130px,1.3fr) 70px;align-items:center;gap:12px;padding:8px 0;font-size:12px}.history-row strong{text-align:right;font-variant-numeric:tabular-nums}.history-subject{display:flex;align-items:center;gap:9px;font-weight:700}.history-topic{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-more{min-height:42px;padding:0 12px;margin-top:9px;border:1px solid var(--rule);background:var(--surface);color:var(--ink);font-size:12px;font-weight:700}.history-more:hover{background:color-mix(in srgb,var(--accent) 9%,var(--surface))}@media (max-width:1050px){.ontrack-figures{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:16px}.ontrack-figures .pace-figure{grid-column:1/-1;border-left:0;border-bottom:1px solid var(--rule);padding:0 0 13px}.ontrack-figures>div:nth-child(2){border-left:0;padding-left:0}.progress-secondary-grid{grid-template-columns:1fr}}@media (max-width:760px){.content:has(.ontrack-summary){padding-top:10px}.ontrack-summary,.ontrack-section{padding:18px}.subject-progress-head{display:none}.subject-progress-row{grid-template-columns:minmax(0,1fr) minmax(95px,1fr) auto;gap:7px 12px;min-height:72px;padding:11px 0}.subject-progress-name{grid-column:1/3}.subject-progress-bar{grid-column:1/3;grid-row:2}.subject-progress-status{grid-column:3;grid-row:1}.subject-progress-number{grid-row:3;text-align:left;color:var(--muted);font-size:11px}.subject-progress-number:before{content:attr(data-label) " · ";font-size:10px}.subject-progress-number:nth-of-type(3){grid-column:1}.subject-progress-number:nth-of-type(4){grid-column:2}.subject-progress-number:nth-of-type(5){grid-column:3}}@media (max-width:540px){.content:has(.ontrack-summary) .page-intro h1{font-size:32px}.ontrack-heading h2{font-size:21px}.ontrack-figures{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 0}.ontrack-figures .pace-figure{grid-column:1/-1}.ontrack-figures>div:nth-child(2),.ontrack-figures>div:nth-child(4){border-left:0;padding-left:0}.ontrack-figures>div:nth-child(4){grid-column:1/-1;border-top:1px solid var(--rule);padding-top:12px}.ontrack-figures strong{font-size:22px}.ontrack-summary-foot,.ontrack-summary-foot span{display:block}.ontrack-summary-foot span:last-child{text-align:left;margin-top:5px}.progress-section-heading{align-items:start;flex-wrap:wrap}.progress-sort{width:100%;justify-content:space-between}.progress-sort select{flex:1;max-width:230px}.progress-heading-meta{margin-top:4px}.subject-progress-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.subject-progress-name{grid-column:1/3}.subject-progress-status{grid-column:3;white-space:normal;text-align:right}.subject-progress-bar{grid-column:1/-1;grid-row:2}.history-row{grid-template-columns:minmax(0,1fr) auto;gap:3px 8px}.history-topic{grid-column:1;grid-row:2}.history-row strong{grid-column:2;grid-row:1/3}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.ontrack-summary>p{font-size:12px;line-height:1.5;color:var(--muted);margin:0 0 17px}@media (max-width:540px){.subject-card{padding:14px 18px}.subject-card-head{margin-bottom:5px}.subject-card-head .subject-icon{width:30px;height:30px;font-size:13px}.subject-card-title h3{font-size:18px}.subject-card-figures{margin:9px 0}.subject-card-figures span{margin-top:2px}.subject-card-foot{margin-top:7px}}@media (min-width:701px) and (max-width:900px){.mobile-week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;margin:12px 0 10px;background:var(--rule);border:1px solid var(--rule)}.mobile-week-strip button{min-height:65px;border:0;background:var(--surface);color:var(--ink);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px}.mobile-week-strip button.selected{background:color-mix(in srgb,var(--accent) 14%,var(--surface));box-shadow:inset 0 -3px var(--accent)}.mobile-week-strip button span{font-size:11px;color:var(--muted)}.mobile-week-strip button strong{font-size:17px;font-variant-numeric:tabular-nums}.mobile-week-strip button i{font-size:10px;font-style:normal;color:var(--accent)}.calendar.week-calendar{display:block}.calendar.week-calendar .calendar-day:not(.is-selected){display:none}.calendar-day{min-height:250px}.day-head{display:flex;align-items:center}.calendar-session{min-height:86px;padding:12px}.calendar-session strong{font-size:13px}}.dark .btn-secondary,.dark .account-chip,.dark .today-link,.dark .text-button{color:#f1eadf;border-color:var(--rule)}.dark .nav-link.active,.dark .nav-link:hover{background:transparent;color:#f1eadf;border-bottom-color:var(--accent)}.dark .track{background:#424856}.dark .calendar-session-meta,.dark .calendar-session small,.dark .day-head small,.dark .day-footer{color:#b9bec5}.dark .btn-dark{background:#f1c69e;color:#242b3b}.dark .btn-dark:hover{background:#f8dab8;color:#242b3b}.dark .segmented{background:#2d3545;border:1px solid var(--rule)}.dark .segmented button{color:#bfc5cd;background:transparent}.dark .segmented button.selected{background:#48546a;color:#fff7ec;border-color:transparent}.dark .add-day{color:#c9d6d0;border-color:#697481}.dark .add-day:hover{color:#f1eadf;background:#374253}.dark .calendar-day.is-today .day-head strong{color:var(--accent)}.dark .helper-note{color:#bac4ca}.availability-row{display:grid;grid-template-columns:minmax(86px,1fr) minmax(86px,100px) minmax(86px,100px);gap:7px}.availability-row input[type=time]{width:100%;min-width:0}.settings-grid .account-card{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:12px 24px}.account-card .setting-heading{grid-column:1;grid-row:1;margin:0}.account-card .account-details{grid-column:2;grid-row:1;margin:0}.account-card>.btn{grid-column:3;grid-row:1}.account-card .account-note,.account-card .account-error{grid-column:1/-1;margin:0}.account-card .account-note{max-width:90ch}.dark .choice{background:#30394b;color:#f1eadf;border-color:#515d70}.dark .choice.selected{background:#465265;color:#fff7ec;border-color:var(--accent)}.dark .setting-card input:not([type=checkbox]),.dark .setting-card select,.dark .modal input:not([type=checkbox]),.dark .modal select{background:#293244;color:#f1eadf;border-color:#566174}.dark .setting-card input:disabled{background:#252b39;color:#8994a3}.dark .setting-card .setting-note,.dark .account-note{color:#b8bdc6}@media (max-width:700px){.settings-grid .account-card{display:flex;flex-direction:column;align-items:flex-start}.account-card .account-details{margin:0}.account-card .account-note{margin-top:2px}}.revision-history{padding:0 22px 16px}.revision-history>p{color:var(--muted);font-size:12px}.history-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--rule);font-size:12px}.history-row div{display:grid;gap:4px}.history-row span{color:var(--muted)}.page-intro>div:first-child{min-width:0}.page-intro p{max-width:68ch}.feature-card h2{max-width:18ch}.subject-detail-top>div:nth-child(2){min-width:0}.subject-detail-top>.btn{margin-left:auto}.ontrack-summary>p,.ontrack-explain{max-width:100ch}.settings-column{display:grid;gap:1px;align-content:start}@media (min-width:1400px){.ontrack-subjects{grid-template-columns:repeat(3,minmax(0,1fr))}.availability-list{grid-template-columns:repeat(2,minmax(0,1fr));-moz-column-gap:24px;column-gap:24px}.availability-row{grid-template-columns:minmax(76px,1fr) repeat(2,minmax(90px,100px))}.calendar-session strong{font-size:13px}.calendar-session small{font-size:12px}}@media (min-width:701px) and (max-width:1100px){.day-head{align-items:flex-start;flex-direction:column;gap:3px}}@media (max-width:900px){.subject-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.today-grid{grid-template-columns:minmax(0,1fr)}.feature-card,.progress-hero{min-height:0}.progress-hero-number{margin:20px 0 12px}.progress-hero-footer{margin-top:20px}.settings-grid,.detail-grid{grid-template-columns:minmax(0,1fr)}.ontrack-figures{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 0}.ontrack-figures>div:nth-child(2){border-right:0}.ontrack-figures>div:nth-child(3){padding-left:0}}@media (max-width:700px){.topbar{height:30px}.content{padding:16px 17px calc(104px + env(safe-area-inset-bottom))}.page-intro{align-items:flex-start;flex-direction:column;gap:14px;padding-bottom:16px;margin-bottom:18px}.feature-card{padding:23px 25px 26px}.feature-subject{margin-top:22px}.feature-card h2{margin:12px 0 14px}.feature-details{margin-bottom:18px}.section-heading{margin-top:23px}}@media (max-width:540px){.subject-grid{grid-template-columns:minmax(0,1fr)}}.app-shell:has(.planner-content){min-height:100dvh}.main:has(.planner-content){height:calc(100dvh - 82px);display:flex;flex-direction:column;overflow:hidden}.main:has(.planner-content) .topbar{flex:none}.planner-content{flex:1;min-height:0;min-width:0;width:100%;max-width:none;margin:0;padding:0 clamp(20px,2.3vw,38px) 12px;display:flex}.planner-workspace{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column}.planner-workspace .planner-toolbar{flex:none;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:0;padding:13px 0 14px;border-bottom:1px solid var(--rule)}.planner-toolbar-main,.planner-toolbar-actions{display:flex;align-items:center;gap:12px;min-width:0}.planner-toolbar-main{flex:1}.planner-toolbar-actions{justify-content:flex-end;flex-wrap:wrap;gap:8px}.planner-workspace .week-switch{gap:3px;min-width:0}.planner-workspace .week-switch h1{font:500 clamp(19px,1.9vw,27px)/1.15 "Fraunces",Georgia,serif;letter-spacing:-.5px;color:var(--ink);margin:0 5px;white-space:nowrap;font-variant-numeric:tabular-nums}.planner-workspace .week-switch .icon-btn{width:34px;height:36px;color:var(--ink)}.planner-workspace .today-link{margin:0;border:1px solid var(--rule);padding:8px 11px;border-radius:3px;color:var(--ink);background:var(--surface)}.planner-workspace .segmented{border:1px solid var(--rule);border-radius:3px;background:transparent;padding:2px}.planner-workspace .segmented button{border-radius:2px;padding:7px 11px}.planner-workspace .segmented button.selected{background:color-mix(in srgb,var(--accent) 15%,var(--surface));box-shadow:none;color:var(--ink)}.planner-workspace .btn{min-height:36px;padding:0 11px}.planner-workspace .planner-generate{background:var(--ink);color:var(--surface)}.planner-workspace .planner-generate:hover{background:color-mix(in srgb,var(--ink) 85%,var(--accent))}.planner-workspace .planner-delete{background:transparent;border:1px solid var(--rule);color:var(--muted)}.planner-workspace .planner-delete:hover{color:var(--ink);border-color:var(--muted)}.planner-workspace .calendar-surface{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column}.planner-workspace .calendar-headings{flex:none;min-width:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--rule);background:var(--surface)}.planner-workspace .calendar-headings.day-calendar{grid-template-columns:minmax(0,1fr)}.planner-workspace .calendar-heading-day{min-width:0;border-right:1px solid var(--rule)}.planner-workspace .calendar-heading-day:last-child{border-right:0}.planner-workspace .calendar{flex:1;min-height:0;min-width:0;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(100%,max-content);align-items:stretch;overflow:auto;border:0;border-bottom:1px solid var(--rule);border-radius:0;background:var(--surface);scrollbar-gutter:stable}.planner-workspace .calendar.day-calendar{grid-template-columns:minmax(0,1fr)}.planner-workspace .calendar-day{min-height:0;border-right:1px solid var(--rule);background:var(--surface)}.planner-workspace .calendar-day:last-child{border-right:0}.planner-workspace .calendar-day.is-today{background:color-mix(in srgb,var(--accent) 4%,var(--surface))}.planner-workspace .day-head{min-height:66px;padding:11px 12px 9px;display:flex;align-items:flex-start;flex-direction:column;justify-content:center;gap:3px;background:var(--surface);border:0}.planner-workspace .is-today .day-head{background:color-mix(in srgb,var(--accent) 10%,var(--surface));box-shadow:inset 0 3px var(--accent)}.planner-workspace .day-head>div{gap:7px}.planner-workspace .day-head span{font-size:11px;letter-spacing:.02em;color:var(--muted)}.planner-workspace .day-head strong{font:500 22px/1 Fraunces,Georgia,serif;color:var(--ink)}.planner-workspace .day-head small{min-height:12px;font-size:10px}.planner-workspace .day-body{flex:1;min-height:0;padding:10px 8px;display:flex;flex-direction:column;gap:7px}.planner-workspace .calendar-session{min-height:90px;margin:0;padding:10px 10px 9px;border:1px solid var(--rule);border-left:4px solid var(--sage);border-radius:2px;background:color-mix(in srgb,var(--surface) 90%,var(--paper));gap:4px}.planner-workspace .calendar-session:hover{transform:none;background:color-mix(in srgb,var(--accent) 8%,var(--surface));border-top-color:var(--rule);border-right-color:var(--rule);border-bottom-color:var(--rule)}.planner-workspace .calendar-session.completed{opacity:.78;background:color-mix(in srgb,var(--sage) 9%,var(--surface))}.planner-workspace .calendar-session.missed{opacity:.85;background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.planner-workspace .calendar-session strong{font-size:12px;line-height:1.25;overflow-wrap:anywhere}.planner-workspace .calendar-session small{font-size:11px;line-height:1.25;overflow-wrap:anywhere}.planner-workspace .calendar-session-meta{font-size:10px}.planner-workspace .calendar-time{font-size:11px}.planner-workspace .empty-day-add{flex:1;min-height:110px;width:100%;border:0;background:transparent;display:flex;align-items:center;justify-content:center;gap:5px;color:var(--muted);font-size:11px;font-weight:700;opacity:.38}.planner-workspace .empty-day-add span{opacity:0}.planner-workspace .empty-day-add:hover,.planner-workspace .empty-day-add:focus-visible{opacity:1;background:color-mix(in srgb,var(--accent) 6%,transparent)}.planner-workspace .empty-day-add:hover span,.planner-workspace .empty-day-add:focus-visible span{opacity:1}.planner-workspace .add-day{flex:none;min-height:32px;margin-top:2px;justify-content:flex-start;padding:0 7px;border:0;border-radius:2px;color:var(--muted);background:transparent;opacity:.7}.planner-workspace .add-day:hover,.planner-workspace .add-day:focus-visible{opacity:1;background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:var(--ink)}.planner-workspace .day-footer{border-top:1px solid var(--rule);background:var(--surface);font-size:10px}.planner-footnote{flex:none;min-height:28px;padding-top:8px;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px}.planner-footnote svg{flex:none;color:var(--accent)}.dark .planner-workspace .calendar-session{background:#293244;border-color:var(--rule)}.dark .planner-workspace .calendar-session.completed{background:#2c3b3b}.dark .planner-workspace .calendar-session.missed{background:#3a343d}.dark .planner-workspace .planner-generate{color:#171c26}@media (max-width:1100px){.planner-workspace .planner-toolbar{align-items:flex-start}.planner-toolbar-main,.planner-toolbar-actions{width:100%}.planner-toolbar-actions{justify-content:flex-start}}@media (min-width:701px) and (max-width:900px){.main:has(.planner-content){height:calc(100dvh - 72px)}.planner-workspace .calendar-headings.week-calendar{grid-template-columns:minmax(0,1fr)}.planner-workspace .calendar.week-calendar{display:block}.planner-workspace .calendar-day{min-height:100%}}@media (max-width:700px){.main:has(.planner-content){height:calc(100dvh - 64px)}.planner-content{padding:0 12px calc(66px + env(safe-area-inset-bottom))}.planner-workspace .planner-toolbar{gap:8px;padding:10px 0}.planner-toolbar-main{justify-content:space-between;gap:6px}.planner-toolbar-actions{gap:6px}.planner-workspace .planner-toolbar .segmented{width:auto;margin-left:0}.planner-workspace .week-switch h1{font-size:clamp(16px,4.5vw,20px);white-space:normal;text-align:center;margin:0 2px}.planner-workspace .week-switch .icon-btn{width:28px;height:32px}.planner-workspace .today-link{padding:7px 8px;font-size:11px}.planner-workspace .segmented button{padding:6px 9px}.planner-workspace .btn{min-height:34px;padding:0 8px;font-size:11px}.planner-workspace .planner-delete span{display:none}.planner-workspace .mobile-week-strip{flex:none;margin:0;border:0;border-bottom:1px solid var(--rule);background:var(--surface)}.planner-workspace .mobile-week-strip button{min-height:62px}.planner-workspace .calendar-headings.week-calendar{grid-template-columns:minmax(0,1fr)}.planner-workspace .calendar,.planner-workspace .calendar.week-calendar{display:block;overflow:auto}.planner-workspace .calendar-day{min-height:100%}.planner-workspace .day-head{min-height:58px}.planner-workspace .day-body{padding:12px}.planner-workspace .empty-day-add{min-height:160px;opacity:.65}.planner-workspace .empty-day-add span{opacity:1}.planner-footnote{font-size:10px}}.modal-fields textarea,.focus-description textarea{width:100%;min-height:72px;resize:vertical;border:1px solid var(--rule,#e2e9e2);border-radius:7px;background:var(--surface,#fff);color:var(--ink,#3c5146);padding:9px;font:inherit;line-height:1.45;outline:0}.modal-fields textarea:focus,.focus-description textarea:focus{border-color:var(--accent,#76a887)}.description-count{display:block;align-self:flex-end;color:var(--muted,#9aa89c);font-size:10px;font-weight:500}.focus-description{width:min(420px,100%);margin:8px auto 18px;text-align:left}.focus-description label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:var(--muted)}.focus-description textarea{min-height:60px}.feature-card h2{overflow-wrap:anywhere}.revision-method-card{margin-top:18px;padding:23px 25px}.revision-method-card ul{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.revision-method-card li{border:1px solid #e7ebe7;border-radius:9px;padding:12px 14px;background:#fbfcfa}.revision-method-card li strong,.revision-method-card li span{display:block}.revision-method-card li strong{font-size:12px;color:#35463e}.revision-method-card li span{font-size:11px;line-height:1.5;color:#87958a;margin-top:5px}.dark .revision-method-card li{background:#25372d;border-color:#3b5144}.dark .revision-method-card li strong{color:#edf5ee}.dark .revision-method-card li span{color:#b8c9bb}
