:root{--paper:#f7f5f0;--cream:#eeeae1;--white:#fffefa;--ink:#222320;--muted:#88877f;--line:#e4e1d9;--line2:#d7d3ca;--soft:#f1efe9;--dark:#292a27;--green:#687366;--shadow:0 10px 32px rgba(40,38,31,.055);--radius:14px;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--paper)}button,input,textarea,select{font:inherit}button{color:inherit;cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid #777b71;outline-offset:3px}.app-shell{min-height:100vh;display:grid;grid-template-columns:238px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;padding:32px 18px 22px 25px;background:#f0eee8;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);font:700 12px/1.05 'Manrope',sans-serif;letter-spacing:.16em}.brand b{font-weight:500}.brand-mark{width:31px;height:31px;border:1px solid #aaa79f;border-radius:50%;display:grid;place-items:center;font:500 15px 'Manrope',sans-serif;letter-spacing:0}.side-label{font-size:9px;letter-spacing:.17em;color:#9b998f;font-weight:700;margin:55px 0 13px 9px}.nav{display:grid;gap:4px}.nav-item{border:0;background:transparent;text-align:left;padding:11px 12px;border-radius:8px;font-size:13px;color:#77766f;transition:background .18s,color .18s;display:flex;gap:12px;align-items:center}.nav-item:hover{background:#e9e6de;color:var(--ink)}.nav-item.active{color:var(--ink);background:#e5e2da;font-weight:600}.nav-icon{font-size:17px;width:17px;text-align:center;color:#77776f}.sidebar-bottom{margin-top:auto}.sync{display:flex;align-items:center;gap:8px;padding:12px 9px;color:#79786f;font-size:10px}.sync-dot{width:6px;height:6px;background:#82907d;border-radius:50%}.quiet-button{border:0;background:none;color:#6f6e66;font-size:11px;padding:9px;text-align:left}.quiet-button:hover{color:var(--ink)}.sidebar-note{font:italic 11px/1.6 'Manrope',sans-serif;color:#97948b;border-top:1px solid var(--line2);padding:14px 9px 0;margin-top:12px}.main{grid-column:2;min-width:0;padding:0 clamp(24px,5vw,80px);max-width:1700px;width:100%;margin:0 auto}.topbar{height:72px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.breadcrumb{display:flex;align-items:center;gap:10px;font-size:9px;letter-spacing:.14em;color:#9a988f}.breadcrumb b{font-weight:600;color:#5d5e57}.crumb-slash{color:#c9c6bd}.top-actions{display:flex;align-items:center;gap:13px}.icon-button{border:1px solid var(--line2);background:transparent;border-radius:6px;padding:7px 11px;font-size:10px;color:#66665e}.icon-button:hover{background:var(--white)}.avatar{width:28px;height:28px;border:1px solid #d2cfc6;border-radius:50%;background:#e9e6de;font-size:10px;color:#5c5b55}.page{display:none;animation:rise .3s ease both}.page.active{display:block}@keyframes rise{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.hero{padding:43px 0 25px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.eyebrow{font-size:9px;letter-spacing:.16em;color:#929087;font-weight:700}.title{font:500 clamp(28px,3vw,39px)/1.15 'Manrope',sans-serif;letter-spacing:-.045em;margin:10px 0 7px}.subtitle{color:#8e8b82;font-size:12px;margin:0}.date-controls{display:flex;gap:8px;align-items:center}.date-arrow{width:31px;height:31px;border:1px solid var(--line2);border-radius:6px;background:transparent;font-size:14px}.date-arrow:hover{background:var(--white)}.date-picker{height:31px;border:1px solid var(--line2);border-radius:6px;background:transparent;color:#65645d;font-size:10px;padding:0 8px}.progress-panel{border:1px solid var(--line);background:rgba(255,254,250,.58);border-radius:10px;padding:15px 18px;margin-bottom:24px;display:flex;align-items:center;gap:17px}.progress-ring{width:37px;height:37px;border:1.5px solid #ccc9bf;border-radius:50%;display:grid;place-items:center;font-size:10px;color:#77766f;flex:none;position:relative}.progress-ring:after{content:'';position:absolute;inset:-2px;border-radius:inherit;border:2px solid transparent;border-top-color:#797e73;transform:rotate(var(--angle,0deg))}.progress-text{font-size:11px;font-weight:600}.progress-sub{font-size:10px;color:#918f86;margin-top:3px}.progress-bar{height:2px;background:#e9e6de;flex:1;margin-left:auto;max-width:200px}.progress-bar i{height:100%;display:block;background:#777d72;transition:width .3s}.section-kicker{display:flex;justify-content:space-between;align-items:center;margin:25px 0 11px;font-size:9px;letter-spacing:.14em;color:#939087;font-weight:700}.section-kicker button{border:0;background:none;color:#77766f;font-size:10px;letter-spacing:0;font-weight:500}.task-list{display:grid;gap:9px}.task-card{background:var(--white);border:1px solid var(--line);border-radius:10px;transition:box-shadow .2s,border .2s,transform .2s;overflow:hidden}.task-card:hover{border-color:#d3d0c7;box-shadow:0 5px 18px rgba(40,38,31,.035)}.task-card.complete{background:#f9f8f4}.task-head{display:grid;grid-template-columns:35px 22px minmax(150px,1fr) auto auto;gap:12px;align-items:center;padding:13px 16px;min-height:65px}.task-number{font:500 11px 'Manrope',sans-serif;color:#aaa79e}.check-wrap{position:relative;width:17px;height:17px}.check-wrap input{opacity:0;position:absolute;inset:0;cursor:pointer}.check-ui{position:absolute;inset:0;border:1px solid #bab7ae;border-radius:4px;pointer-events:none}.check-wrap input:checked+.check-ui{background:#6f776a;border-color:#6f776a}.check-wrap input:checked+.check-ui:after{content:'✓';color:white;font-size:12px;position:absolute;left:2px;top:-1px}.task-title{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-card.complete .task-title{text-decoration:line-through;color:#929087}.task-meta{font-size:9px;color:#949188;white-space:nowrap}.grade-pill{padding:4px 7px;border-radius:4px;background:#f0eee8;font-size:8px;letter-spacing:.06em;color:#74736b;white-space:nowrap}.task-expand{border:0;background:transparent;width:23px;height:23px;color:#8e8c83;font-size:14px}.task-body{border-top:1px solid #eeece6;padding:16px 20px 18px 84px;display:none}.task-card.open .task-body{display:block;animation:rise .2s ease}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 22px}.field{display:grid;gap:5px;min-width:0}.field label{font-size:9px;letter-spacing:.08em;color:#939087;text-transform:uppercase}.field input,.field textarea,.field select,.review-field{width:100%;border:0;border-bottom:1px solid #e7e4dc;background:transparent;border-radius:0;padding:7px 0;color:#373832;font-size:11px;resize:vertical}.field input::placeholder,.field textarea::placeholder{color:#b1aea5}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-bottom-color:#85877d}.field.full{grid-column:1/-1}.rating-row{display:flex;gap:9px;align-items:center}.rating-row input[type=range]{width:125px;accent-color:#777d72}.rating-value{font-size:11px;color:#484943;min-width:29px}.rating-box{display:grid;gap:6px}.rating-label{font-size:9px;color:#8b8980}.rating-pair{display:flex;gap:20px;align-items:center;padding:10px 0 3px}.rating-pair>div{display:grid;gap:4px}.rating-pair strong{font:500 14px 'Manrope',sans-serif}.rating-pair span{font-size:8px;text-transform:uppercase;letter-spacing:.12em;color:#99968d}.error-chip{font-size:9px;color:#696e63;background:#f0eee8;padding:5px 7px;border-radius:4px}.task-actions{display:flex;align-items:center;gap:10px;margin-top:15px;flex-wrap:wrap}.small-button{border:1px solid var(--line2);background:transparent;border-radius:5px;padding:7px 10px;font-size:10px;color:#68675f}.small-button:hover{background:#f3f1eb}.small-button.dark{background:#30312d;border-color:#30312d;color:#fff}.small-button.dark:hover{background:#494a44}.small-button.danger{color:#9c6c63}.task-actions .spacer{flex:1}.inline-select{background:transparent;border:0;font-size:10px;color:#74736b}.g1-box{border:1px solid #e8e5dd;border-radius:8px;background:#faf9f5;padding:13px;margin-top:12px}.g1-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.g1-title{font-size:10px;font-weight:600}.timer{font:500 16px 'Manrope',sans-serif;letter-spacing:.03em}.timer.running{color:#52604d}.g1-form{display:grid;grid-template-columns:1fr 1fr;gap:9px}.timer-controls{display:flex;gap:7px;align-items:center}.g1-list{display:grid;gap:10px;margin-top:10px}.g1-entry{padding-top:10px;border-top:1px solid #e9e6de}.g1-entry-head{display:flex;justify-content:space-between;font-size:10px;font-weight:600}.g1-entry p{margin:5px 0;color:#79776e;font-size:10px;line-height:1.5}.tiny{font-size:9px;color:#929087}.grade-prompt{margin-top:13px;background:#f1efe9;border-radius:7px;padding:11px 12px}.grade-prompt p{margin:0 0 8px;font-size:10px;color:#69685f}.grade-prompt .task-actions{margin:0}.empty{border:1px dashed #d8d5cc;border-radius:10px;text-align:center;padding:38px 20px;background:rgba(255,254,250,.3)}.empty-mark{font:300 28px 'Manrope',sans-serif;color:#aaa79e}.empty h3{font:500 16px 'Manrope',sans-serif;margin:9px 0 5px}.empty p{font-size:11px;color:#918f86;margin:0 0 15px}.add-row{display:flex;gap:10px;margin-top:13px}.add-button{height:39px;padding:0 15px;border:1px solid var(--line2);border-radius:7px;background:transparent;color:#6d6c64;font-size:11px}.add-button:hover{background:var(--white)}.add-button.primary{background:#2d2e2a;color:white;border-color:#2d2e2a}.add-button.primary:hover{background:#474842}.next-goal{margin:31px 0 30px;border-top:1px solid var(--line);padding:17px 0;display:flex;align-items:center;gap:12px}.goal-label{font-size:9px;letter-spacing:.12em;color:#918f86;white-space:nowrap}.goal-input{max-width:85px;border:0;border-bottom:1px solid #d9d6ce;background:transparent;padding:5px 2px;font:500 14px 'Manrope',sans-serif}.goal-help{font-size:10px;color:#a29f96}.review-card{border:1px solid var(--line);background:#f2f0ea;border-radius:10px;padding:17px;margin:28px 0}.review-head{display:flex;justify-content:space-between;align-items:center}.review-head h3{margin:0;font:500 14px 'Manrope',sans-serif}.review-card p{font-size:10px;color:#88867d}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.review-card textarea{background:transparent;border:0;border-bottom:1px solid #dbd8cf;font-size:10px;padding:6px 0;resize:vertical}.footer{border-top:1px solid var(--line);padding:15px 0 25px;color:#aaa79e;font-size:9px;text-align:center}.footer span{padding:0 4px}.page-head{padding:43px 0 25px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.page-head h1{margin:10px 0 5px;font:500 34px 'Manrope',sans-serif;letter-spacing:-.04em}.page-head p{font-size:11px;color:#8f8d84;margin:0}.calendar-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.month-label{font:500 17px 'Manrope',sans-serif}.calendar-actions{display:flex;align-items:center;gap:7px}.segmented{display:flex;border:1px solid var(--line2);border-radius:6px;padding:2px}.segmented button{border:0;background:transparent;padding:5px 9px;border-radius:4px;font-size:9px;color:#88867e}.segmented button.active{background:#e8e5dd;color:#3e3f3a}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);background:var(--white)}.weekday{padding:10px 8px;font-size:8px;letter-spacing:.1em;color:#9c9990;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.day-cell{height:104px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px;position:relative;cursor:pointer;transition:background .15s}.day-cell:hover{background:#f8f6f1}.day-cell.outside{background:#faf9f6;color:#c2bfb6}.day-cell.selected{box-shadow:inset 0 0 0 1.5px #767a70;background:#f7f5ef}.day-cell.today .day-num{background:#30312d;color:white}.day-num{font-size:10px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;color:#77766e}.day-dots{display:flex;gap:4px;margin-top:11px}.day-dot{width:5px;height:5px;border-radius:50%;background:#b4b1a8}.day-dot.done{background:#737a6c}.day-count{font-size:8px;color:#aaa79e;margin-top:6px}.calendar-summary{display:flex;justify-content:space-between;align-items:center;padding:16px 0;color:#77766f;font-size:10px}.summary-list{display:grid;gap:7px;margin-bottom:25px}.summary-row{border:1px solid var(--line);background:var(--white);padding:10px 12px;border-radius:7px;display:flex;align-items:center;gap:10px}.summary-row button{margin-left:auto}.filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 15px}.filter-bar input,.filter-bar select{border:1px solid var(--line2);border-radius:6px;background:transparent;padding:8px 10px;font-size:10px;color:#6e6d65}.filter-bar input[type=search]{min-width:190px;flex:1}.history-group{margin:22px 0}.history-date{font:500 13px 'Manrope',sans-serif;margin-bottom:8px}.history-record{display:grid;grid-template-columns:30px 1fr auto auto;gap:10px;align-items:center;padding:11px;border:1px solid var(--line);background:var(--white);margin-bottom:5px;border-radius:7px}.history-record .task-title{font-size:11px}.history-record span{font-size:9px;color:#8d8b82}.history-record button{border:0;background:transparent;font-size:9px;color:#77766f}.insight-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:5px 0 18px}.kpi{background:var(--white);border:1px solid var(--line);border-radius:9px;padding:14px}.kpi-label{font-size:8px;letter-spacing:.1em;color:#96938a;text-transform:uppercase}.kpi-value{font:500 23px 'Manrope',sans-serif;margin-top:8px}.kpi-note{font-size:9px;color:#9a978e;margin-top:3px}.chart-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:12px}.chart-card{border:1px solid var(--line);border-radius:9px;background:var(--white);padding:16px;min-width:0}.chart-card.wide{grid-column:1/-1}.chart-title{font:500 13px 'Manrope',sans-serif;margin:0 0 4px}.chart-caption{font-size:9px;color:#96938a;margin:0 0 15px}.chart{width:100%;height:205px;overflow:visible}.chart text{font:9px 'DM Sans',sans-serif;fill:#9b988f}.chart .gridline{stroke:#eeece6;stroke-width:1}.chart .line-a{fill:none;stroke:#343530;stroke-width:2}.chart .line-b{fill:none;stroke:#a8a69d;stroke-width:2;stroke-dasharray:4 4}.chart .line-c{fill:none;stroke:#7f8778;stroke-width:2}.chart .bar-a{fill:#b4b2a9}.chart .bar-b{fill:#666d60}.chart-legend{display:flex;gap:16px;font-size:9px;color:#818078;margin:8px 0 0}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;background:#343530}.legend-dot.alt{background:#a8a69d}.chart-empty{text-align:center;color:#9b988f;padding:60px 10px;font-size:10px}.category-table{width:100%;border-collapse:collapse;font-size:10px}.category-table th{text-align:left;color:#96938a;font-size:8px;font-weight:500;letter-spacing:.08em;padding:8px;border-bottom:1px solid var(--line)}.category-table td{padding:10px 8px;border-bottom:1px solid #efede7}.modal-backdrop{position:fixed;inset:0;background:rgba(30,30,27,.26);z-index:10;display:grid;place-items:center;padding:18px}.modal{width:min(480px,100%);background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:23px;box-shadow:0 20px 70px rgba(30,30,27,.18);animation:rise .18s ease}.modal h2{font:500 20px 'Manrope',sans-serif;margin:9px 0 7px}.modal p{font-size:11px;line-height:1.6;color:#828077}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.toast{position:fixed;z-index:20;bottom:22px;left:50%;transform:translate(-50%,15px);background:#30312d;color:#fff;border-radius:7px;padding:10px 15px;font-size:10px;opacity:0;pointer-events:none;transition:all .22s}.toast.show{opacity:1;transform:translate(-50%,0)}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.backup-option{padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--white)}.backup-option strong{font-size:11px}.backup-option p{margin:5px 0 10px;font-size:9px}
@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;inset:auto 0 0;width:100%;height:62px;padding:5px 8px;background:rgba(241,239,233,.96);border:0;border-top:1px solid var(--line);backdrop-filter:blur(14px)}.brand,.side-label,.sidebar-bottom{display:none}.nav{display:grid;grid-template-columns:repeat(4,1fr);height:100%;gap:3px}.nav-item{justify-content:center;flex-direction:column;gap:3px;padding:3px;font-size:9px}.nav-icon{font-size:15px}.main{grid-column:1;padding:0 clamp(16px,4vw,38px);padding-bottom:72px}.topbar{height:58px}.footer{padding-bottom:8px}}@media(max-width:620px){.main{padding-left:15px;padding-right:15px}.hero,.page-head{padding-top:27px;align-items:flex-start;flex-direction:column}.hero{gap:15px}.title{font-size:29px}.progress-panel{padding:12px}.progress-bar{max-width:90px}.task-head{grid-template-columns:25px 20px minmax(0,1fr) auto;gap:8px;padding:11px}.task-head .task-meta{display:none}.task-body{padding:14px}.detail-grid{grid-template-columns:1fr 1fr;gap:11px}.field.full{grid-column:1/-1}.g1-form{grid-template-columns:1fr}.rating-pair{gap:14px}.next-goal{flex-wrap:wrap}.goal-help{width:100%}.review-grid{grid-template-columns:1fr}.insight-kpis{grid-template-columns:1fr 1fr}.chart-grid{grid-template-columns:1fr}.chart-card.wide{grid-column:auto}.day-cell{height:76px;padding:5px}.day-count{font-size:7px}.calendar-bar{align-items:flex-start;gap:10px;flex-direction:column}.filter-bar{display:grid;grid-template-columns:1fr 1fr}.filter-bar input[type=search]{grid-column:1/-1}.history-record{grid-template-columns:22px 1fr auto;gap:6px}.history-record>span:nth-child(3){display:none}.history-record button{grid-column:3}.weekday{font-size:7px;padding:8px 4px}.calendar-actions{width:100%;justify-content:space-between}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.calendar-head-actions{display:flex;align-items:center;gap:8px}.calendar-legend{display:flex;align-items:center;gap:16px;margin:0 0 10px;color:#8e8c83;font-size:9px}.calendar-legend span{display:flex;align-items:center;gap:6px}.calendar-legend .day-dot{margin:0}.calendar-bar{margin-top:4px}.day-cell{z-index:0;transition:background .15s,transform .18s,box-shadow .18s}.day-cell.selected{z-index:3;transform:scale(1.035);box-shadow:inset 0 0 0 1.5px #767a70,0 5px 16px rgba(40,38,31,.1)}.day-dot.deadline{background:transparent;border:1px solid #7d8176;width:6px;height:6px}.day-dot.deadline.done{background:#737a6c;border-color:#737a6c}.day-count{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.summary-count{display:block;margin-top:4px;color:#8e8c83;font-size:9px}.deadline-pill{border:1px solid var(--line2);background:var(--soft)!important;letter-spacing:.04em}.deadline-row .task-title{flex:1}.deadline-note{font-size:9px;color:#99968d;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deadline-check{display:flex;align-items:center;cursor:pointer}.deadline-check input{accent-color:#737a6c;width:14px;height:14px}.deadline-row.deadline-complete .task-title{text-decoration:line-through;color:#95938a}.calendar-empty{border:1px dashed var(--line2);border-radius:8px;padding:15px;display:flex;align-items:center;justify-content:space-between;color:#918f86;font-size:10px}.calendar-empty .small-button{flex:none}
:root[data-theme="dark"] .calendar-legend{color:#aaa79e}:root[data-theme="dark"] .day-cell.selected{box-shadow:inset 0 0 0 1.5px #a5ab9c,0 5px 16px rgba(0,0,0,.3)}:root[data-theme="dark"] .day-dot.deadline{border-color:#a6ad9d}:root[data-theme="dark"] .day-dot.deadline.done{background:#a4ad9c;border-color:#a4ad9c}:root[data-theme="dark"] .deadline-note{color:#aaa79e}
@media(max-width:620px){.calendar-head-actions{width:100%;justify-content:space-between}.calendar-legend{gap:9px;font-size:8px}.deadline-note{display:none}.summary-row.deadline-row{gap:6px;padding:9px}.deadline-row .task-title{white-space:normal}.calendar-empty{align-items:flex-start;gap:10px;flex-direction:column}}
.modal{max-height:calc(100vh - 36px);overflow-y:auto}.auto-backup-option{margin-bottom:10px}.auto-backup-option p{max-width:62ch}.auto-backup-status{margin:10px 0;color:#737269;font-size:10px;line-height:1.5}.auto-backup-option .task-actions{margin-top:10px}:root[data-theme="dark"] .auto-backup-status{color:#c0bdb4}
.slot-card{background:transparent;border-style:dashed}.slot-card:hover{background:var(--white)}.slot-action{border:0;background:transparent;text-align:left;color:#aaa79e;font-weight:400;cursor:pointer}.slot-action:hover{color:#62635b}
.history-trail{margin-top:14px;border-top:1px solid var(--line);padding-top:9px;color:#85837a}.history-trail summary{font-size:9px;letter-spacing:.06em;cursor:pointer}.history-trail ol{margin:8px 0 0;padding-left:18px;display:grid;gap:6px}.history-trail li{font-size:9px;line-height:1.5;color:#68675f}.history-trail li span{display:block;color:#aaa79e;font-size:8px}
:root[data-theme="dark"]{color-scheme:dark;--paper:#191a18;--cream:#22231f;--white:#242521;--ink:#eeece5;--muted:#aaa79e;--line:#363732;--line2:#4b4c45;--soft:#292a26;--dark:#e3e0d8;--green:#a4ad9c;--shadow:0 10px 32px rgba(0,0,0,.2)}
:root[data-theme="dark"] body{background:var(--paper);color:var(--ink)}
:root[data-theme="dark"] .sidebar{background:#20211e}
:root[data-theme="dark"] .sidebar-note{color:#a5a298}
:root[data-theme="dark"] .nav-item{color:#b0aea5}
:root[data-theme="dark"] .nav-item:hover,:root[data-theme="dark"] .nav-item.active{background:#30312c;color:var(--ink)}
:root[data-theme="dark"] .breadcrumb{color:#aaa79e}
:root[data-theme="dark"] .breadcrumb b{color:#d8d5cc}
:root[data-theme="dark"] .icon-button,:root[data-theme="dark"] .date-picker,:root[data-theme="dark"] .date-arrow,:root[data-theme="dark"] .small-button,:root[data-theme="dark"] .add-button{color:#d1cec5;border-color:var(--line2)}
:root[data-theme="dark"] .icon-button:hover,:root[data-theme="dark"] .date-arrow:hover,:root[data-theme="dark"] .small-button:hover,:root[data-theme="dark"] .add-button:hover{background:#30312c}
:root[data-theme="dark"] .avatar{background:#30312c;border-color:var(--line2);color:var(--ink)}
:root[data-theme="dark"] .progress-panel{background:#22231f}
:root[data-theme="dark"] .progress-ring{border-color:#57584f;color:#c4c1b8}
:root[data-theme="dark"] .progress-bar{background:#383933}
:root[data-theme="dark"] .task-card.complete{background:#20211e}
:root[data-theme="dark"] .task-card:hover{border-color:#55564e}
:root[data-theme="dark"] .task-body{border-color:#363732}
:root[data-theme="dark"] .field input,:root[data-theme="dark"] .field textarea,:root[data-theme="dark"] .field select,:root[data-theme="dark"] .review-field,:root[data-theme="dark"] .review-card textarea{color:var(--ink);border-color:#4b4c45}
:root[data-theme="dark"] .field input::placeholder,:root[data-theme="dark"] .field textarea::placeholder{color:#858379}
:root[data-theme="dark"] .g1-box,:root[data-theme="dark"] .review-card,:root[data-theme="dark"] .grade-prompt,:root[data-theme="dark"] .backup-option{background:#20211e;border-color:var(--line)}
:root[data-theme="dark"] .grade-prompt p,:root[data-theme="dark"] .modal p{color:#b1aea5}
:root[data-theme="dark"] .empty,:root[data-theme="dark"] .slot-card{background:transparent;border-color:#494a43}
:root[data-theme="dark"] .slot-card:hover{background:#22231f}
:root[data-theme="dark"] .slot-action{color:#aaa79e}
:root[data-theme="dark"] .segmented button.active{background:#3a3b35;color:var(--ink)}
:root[data-theme="dark"] .day-cell:hover{background:#2a2b26}
:root[data-theme="dark"] .day-cell.outside{background:#20211e;color:#696960}
:root[data-theme="dark"] .day-cell.selected{background:#2d2e29}
:root[data-theme="dark"] .day-cell.today .day-num{background:#e4e1d8;color:#242521}
:root[data-theme="dark"] .filter-bar input,:root[data-theme="dark"] .filter-bar select{color:var(--ink);border-color:var(--line2);background:#20211e}
:root[data-theme="dark"] .history-record,:root[data-theme="dark"] .summary-row,:root[data-theme="dark"] .kpi,:root[data-theme="dark"] .chart-card{background:#22231f;border-color:var(--line)}
:root[data-theme="dark"] .chart .gridline{stroke:#393a35}
:root[data-theme="dark"] .chart text{fill:#aaa79e}
:root[data-theme="dark"] .chart .line-a{stroke:#e0ddd4}
:root[data-theme="dark"] .chart .line-b{stroke:#88877e}
:root[data-theme="dark"] .chart .line-c{stroke:#a4ad9c}
:root[data-theme="dark"] .chart .bar-a{fill:#77786f}
:root[data-theme="dark"] .chart .bar-b{fill:#a4ad9c}
:root[data-theme="dark"] .category-table th,:root[data-theme="dark"] .category-table td{border-color:#393a35}
:root[data-theme="dark"] .modal{background:var(--paper);border-color:var(--line)}
:root[data-theme="dark"] .modal-backdrop{background:rgba(0,0,0,.52)}
:root[data-theme="dark"] .footer{color:#a5a298}
:root[data-theme="dark"] .small-button.dark{background:#dedbd2;border-color:#dedbd2;color:#252621}
:root[data-theme="dark"] .small-button.danger{color:#d3a39a}
:root[data-theme="dark"] .error-chip,:root[data-theme="dark"] .grade-pill{background:#353630;color:#cfccc3}
:root #page-calendar{position:relative}
.day-detail-popover{position:absolute;z-index:12;width:min(470px,calc(100vw - 56px));max-height:min(360px,55vh);overflow:auto;padding:15px;background:var(--white);border:1px solid var(--line2);border-radius:12px;box-shadow:0 14px 36px rgba(35,34,29,.14),0 2px 6px rgba(35,34,29,.05);opacity:0;transform:scale(.985) translateY(-4px);pointer-events:none;transition:opacity .19s ease,transform .24s cubic-bezier(.2,.75,.25,1)}
.day-detail-popover.open{opacity:1;transform:scale(1) translateY(0);pointer-events:auto}
.popover-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line);font-size:12px}
.popover-items{display:grid;gap:7px;padding:10px 0}
.popover-items .summary-row{padding:9px 8px;background:var(--paper);border:1px solid var(--line);border-radius:8px;gap:9px}
.popover-items .task-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.popover-items .tiny{white-space:nowrap}
.popover-empty{padding:9px 2px;color:var(--muted);font-size:11px}
.popover-footer{display:flex;justify-content:flex-end;padding-top:8px;border-top:1px solid var(--line)}
.day-cell.selected{animation:date-focus .24s cubic-bezier(.2,.75,.25,1) both}
.day-cell.calendar-spacer{cursor:default;background:var(--paper)}.day-cell.calendar-spacer:hover{background:var(--paper)}
@keyframes date-focus{from{transform:scale(1)}to{transform:scale(1.035)}}
:root[data-theme="dark"] .day-detail-popover{background:#22231f;border-color:#484941;box-shadow:0 14px 36px rgba(0,0,0,.45)}
:root[data-theme="dark"] .popover-items .summary-row{background:#292a25;border-color:#3d3e37}
:root[data-theme="dark"] .popover-heading,:root[data-theme="dark"] .popover-footer{border-color:#3d3e37}
@media(max-width:620px){.day-detail-popover{width:min(390px,calc(100vw - 36px));max-height:44vh;padding:12px}.popover-items .summary-row{flex-wrap:wrap}.popover-items .task-title{flex:1 1 55%}.popover-items .summary-row .small-button{padding:6px 8px}}
@media(prefers-reduced-motion:reduce){.day-detail-popover,.day-cell.selected{animation:none!important;transition:none!important}}
.calibration-summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 22px;margin:8px 0 18px;border:1px solid var(--line);border-radius:10px;background:var(--white)}
.calibration-summary>div:first-child{display:grid;gap:4px}.calibration-summary strong{font:500 27px/1.1 'Manrope',sans-serif;letter-spacing:-.04em}.calibration-summary strong small{font:400 12px 'DM Sans',sans-serif;color:var(--muted);letter-spacing:0}.calibration-summary p{margin:0;color:var(--muted);font-size:10px}.grade-mae{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px;white-space:nowrap}.grade-mae b{color:var(--ink);font-size:12px;font-weight:500}.signed-chart-card{margin-bottom:40px}.signed-chart{display:grid;gap:12px;padding:10px 0 4px}.signed-axis,.signed-row{display:grid;grid-template-columns:minmax(190px,1fr) minmax(220px,1.2fr);gap:20px;align-items:center}.signed-axis-scale{display:grid;grid-template-columns:repeat(7,1fr);color:var(--muted);font-size:9px}.signed-axis-scale span{text-align:center}.signed-label{display:grid;gap:4px;min-width:0}.signed-label strong{font-size:11px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.signed-label small{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.signed-plot{position:relative;height:28px;border-radius:4px;background:repeating-linear-gradient(to right,transparent 0,transparent calc(16.666% - .5px),var(--line) calc(16.666% - .5px),var(--line) calc(16.666% + .5px),transparent calc(16.666% + .5px));}.signed-plot:after{content:'';position:absolute;top:0;bottom:0;left:50%;width:1px;background:var(--muted);opacity:.8}.signed-bar{position:absolute;top:9px;height:10px;border-radius:3px;z-index:1}.signed-bar.positive{background:#555750}.signed-bar.negative{background:#92968a}.signed-bar.accurate{display:none}.signed-value{position:absolute;top:0;z-index:2;transform:translateX(-50%);font-size:10px;line-height:28px;font-variant-numeric:tabular-nums}.signed-value.positive{color:#41433d}.signed-value.negative{color:#777c6f}.signed-value.accurate{color:var(--muted)}.signed-footnote{margin-top:15px}.chart-empty{padding:32px 16px;border:1px dashed var(--line2);border-radius:8px;color:var(--muted);font-size:11px;text-align:center}
:root[data-theme="dark"] .calibration-summary{background:#22231f;border-color:var(--line)}:root[data-theme="dark"] .signed-bar.positive{background:#d0cec4}:root[data-theme="dark"] .signed-bar.negative{background:#858a7c}:root[data-theme="dark"] .signed-value.positive{color:#e3e1d8}:root[data-theme="dark"] .signed-value.negative{color:#b9beae}
@media(max-width:680px){.calibration-summary{align-items:flex-start;flex-direction:column;gap:12px}.signed-axis,.signed-row{grid-template-columns:minmax(0,1fr);gap:5px}.signed-axis>span{display:none}.signed-axis-scale{padding-left:2px}.signed-chart{gap:16px}}
.history-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;white-space:nowrap}.history-record .history-actions button.danger{color:#a7776c}.history-record .history-actions button.danger:hover{color:#7e453a}
@media(max-width:620px){.history-actions{grid-column:3;gap:5px}.history-record .history-actions button{padding:5px 3px;font-size:8px}}
:root{--motion-standard:cubic-bezier(.22,.61,.36,1);--motion-emphasized:cubic-bezier(.2,.8,.2,1)}
button,.nav-item,.icon-button,.quiet-button,.task-expand,.small-button,.add-button,.date-arrow,.segmented button,.history-record button{transition-timing-function:var(--motion-standard)}
button:not(.check-wrap):active{transform:scale(.985)}
.page.active{animation:app-page-in .34s var(--motion-standard) both;transform-origin:50% 0}
@keyframes app-page-in{from{opacity:0;transform:translateY(7px) scale(.996)}to{opacity:1;transform:translateY(0) scale(1)}}
.task-card{transition:transform .22s var(--motion-standard),box-shadow .22s var(--motion-standard),border-color .2s var(--motion-standard),background-color .22s var(--motion-standard)}
.task-card:hover{transform:translateY(-1px);box-shadow:0 7px 20px rgba(40,38,31,.055)}
.task-card.complete{transition:background-color .24s var(--motion-standard),border-color .24s var(--motion-standard)}
.task-body{transform-origin:top;animation:detail-reveal .24s var(--motion-standard) both!important}
@keyframes detail-reveal{from{opacity:0;transform:translateY(-5px) scaleY(.985)}to{opacity:1;transform:translateY(0) scaleY(1)}}
.history-record,.chart-card,.calibration-summary,.kpi,.progress-panel{transition:transform .22s var(--motion-standard),box-shadow .22s var(--motion-standard),border-color .22s var(--motion-standard),background-color .22s var(--motion-standard)}
.history-record:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(40,38,31,.045)}
.chart-card:hover{box-shadow:0 8px 24px rgba(40,38,31,.04)}
.modal-backdrop{animation:veil-in .2s ease-out both}
.modal{animation:modal-in .28s var(--motion-emphasized) both}
@keyframes veil-in{from{opacity:0}to{opacity:1}}
@keyframes modal-in{from{opacity:0;transform:translateY(9px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}
.toast{transition:opacity .22s var(--motion-standard),transform .28s var(--motion-emphasized)}
button,.nav-item,input,textarea,select{transition-property:background-color,border-color,color,box-shadow,transform;transition-duration:.18s}
button:hover{box-shadow:0 2px 8px rgba(35,34,29,.055)}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{transition:outline-offset .16s var(--motion-standard),box-shadow .16s var(--motion-standard)}
.signed-bar{transform-box:fill-box;animation:signed-bar-in .42s var(--motion-emphasized) both}
.signed-bar.positive{transform-origin:left center}.signed-bar.negative{transform-origin:right center}
@keyframes signed-bar-in{from{transform:scaleX(0);opacity:.45}to{transform:scaleX(1);opacity:1}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}button:active,.task-card:hover,.history-record:hover{transform:none!important}}
#page-rulebook .page-head{padding-bottom:20px}.rulebook-list{max-width:920px;margin:12px 0 46px;border-top:1px solid var(--line)}.rule-entry{display:grid;grid-template-columns:76px minmax(0,1fr);gap:20px;padding:25px 4px 26px;border-bottom:1px solid var(--line);animation:rule-entry-in .36s var(--motion-standard) both}.rule-entry:nth-child(2){animation-delay:25ms}.rule-entry:nth-child(3){animation-delay:50ms}.rule-entry:nth-child(4){animation-delay:75ms}.rule-entry:nth-child(5){animation-delay:100ms}.rule-number{padding-top:5px;color:var(--muted);font-size:9px;font-weight:600;letter-spacing:.13em}.rule-entry h2{margin:0 0 8px;font:500 17px/1.35 'Manrope',sans-serif;letter-spacing:-.025em}.rule-entry p{max-width:680px;margin:0;color:#77766f;font-size:12px;line-height:1.85}.rule-entry strong{color:var(--ink);font-weight:600}@keyframes rule-entry-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}:root[data-theme="dark"] .rule-entry p{color:#aaa79e}:root[data-theme="dark"] .rule-entry strong{color:var(--ink)}
@media(max-width:900px){.nav{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:620px){.rulebook-list{margin-top:4px}.rule-entry{grid-template-columns:46px minmax(0,1fr);gap:12px;padding:19px 0 21px}.rule-entry h2{font-size:15px}.rule-entry p{font-size:11px;line-height:1.75}.rule-number{font-size:8px}}

/* Supabase account gate */
[hidden]{display:none!important}
body.auth-pending .app-shell{display:none}
.auth-gate{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:var(--cream,#f7f5f0);animation:veil-in .24s ease-out both}
.auth-card{width:min(100%,430px);padding:38px 40px 30px;border:1px solid var(--line,#e3e0d7);border-radius:14px;background:var(--white,#fffefa);box-shadow:0 18px 55px rgba(38,36,29,.07);animation:modal-in .3s var(--motion-emphasized,cubic-bezier(.2,.8,.2,1)) both}
.auth-mark{display:grid;place-items:center;width:38px;height:38px;margin-bottom:24px;border-radius:11px;background:#2d2d29;color:#f8f6f0;font:600 19px 'Manrope',sans-serif}
.auth-card .eyebrow{margin-bottom:9px}
.auth-card h1{margin:0 0 7px;font:500 29px/1.2 'Manrope',sans-serif;letter-spacing:-.045em;color:var(--ink,#292a27)}
.auth-copy,.local-import-options p,.auth-local-note{color:var(--muted,#85847d);font-size:12px;line-height:1.7}
.auth-copy{margin:0 0 24px}
.google-sign-in{display:flex;align-items:center;justify-content:center;gap:11px;width:100%;min-height:48px;padding:0 16px;border:1px solid var(--line,#e3e0d7);border-radius:8px;background:var(--white,#fffefa);color:var(--ink,#292a27);font:500 13px 'Manrope',sans-serif;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}
.google-sign-in svg{width:19px;height:19px;flex:none}
.google-sign-in:hover{background:var(--cream,#f7f5f0);border-color:#c9c6bc;transform:translateY(-1px)}
.google-sign-in:focus-visible{outline:2px solid #88877f;outline-offset:3px}
.google-sign-in:disabled{opacity:.55;cursor:wait;transform:none}
.auth-form,.auth-mode-toggle,.username-recovery-panel{display:none!important}
:root[data-theme="dark"] .google-sign-in{background:#252621;border-color:#4a4b43;color:#edebe3}
:root[data-theme="dark"] .google-sign-in:hover{background:#30312b}
.auth-form{display:grid;gap:9px}
.auth-form label{margin-top:5px;color:var(--ink,#292a27);font-size:11px;font-weight:500}
.auth-form input{width:100%;min-height:43px;padding:0 12px;border:1px solid var(--line,#e3e0d7);border-radius:8px;background:transparent;color:var(--ink,#292a27);font:inherit;font-size:13px;outline:none}
.auth-form input:focus{border-color:#88877f;box-shadow:0 0 0 3px rgba(80,80,70,.08)}
.auth-form button{width:100%;min-height:43px;margin-top:13px}
.auth-form .auth-forgot{justify-self:end;width:auto;min-height:0;margin:0;padding:2px 0;border:0;background:none;color:var(--muted,#85847d);font:inherit;font-size:11px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.auth-form .auth-forgot:hover{color:var(--ink,#292a27)}
.auth-form .auth-forgot:focus-visible{outline:2px solid #88877f;outline-offset:3px;border-radius:2px}
.auth-message{min-height:18px;margin:12px 0 2px;color:var(--muted,#85847d);font-size:11px;line-height:1.55}
.auth-message.error{color:#a05243}
.username-recovery-panel{margin-top:18px;padding:18px;border:1px solid var(--line,#e3e0d7);border-radius:10px;background:rgba(255,255,255,.32);animation:veil-in .22s ease-out both}
.username-recovery-panel h2{margin:10px 0 6px;font-size:19px;font-weight:500;letter-spacing:-.035em}
.username-recovery-panel p{margin:0 0 14px;color:var(--muted,#85847d);font-size:12px;line-height:1.55}
.username-recovery-panel code{display:block;margin:12px 0;padding:13px;border:1px solid var(--line,#e3e0d7);border-radius:7px;background:var(--cream,#f7f5f0);color:var(--ink,#292a27);font:600 13px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere;user-select:all}
.username-recovery-panel .recovery-saved-check{display:flex;align-items:center;gap:8px;margin:14px 0 2px;color:var(--ink,#292a27);font-size:11px}
.username-recovery-panel .recovery-saved-check input{width:15px;height:15px;accent-color:#30312e}
.username-recovery-panel button{width:100%;margin-top:10px}
:root[data-theme="dark"] .username-recovery-panel{background:#22231f;border-color:#41423b}
:root[data-theme="dark"] .username-recovery-panel h2,:root[data-theme="dark"] .username-recovery-panel .recovery-saved-check{color:#edebe3}
:root[data-theme="dark"] .username-recovery-panel code{background:#1b1c19;color:#edebe3;border-color:#41423b}
.auth-mode-toggle{display:block;padding:8px 0;border:0;background:none;color:var(--ink,#292a27);font:inherit;font-size:11px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.auth-local-note{margin:18px 0 0;padding-top:15px;border-top:1px solid var(--line,#e3e0d7);font-size:10px}
.local-import-options{display:grid;gap:9px}
.local-import-options h2{margin:0;font:500 17px 'Manrope',sans-serif;letter-spacing:-.02em}
.local-import-options p{margin:0 0 5px}
.local-import-options button{width:100%;min-height:40px}
.username-recovery-panel{display:grid;gap:12px;margin:18px 0 4px;padding:18px;border:1px solid var(--line,#e3e0d7);border-radius:10px;background:color-mix(in srgb,var(--cream,#f7f5f0) 48%,var(--white,#fffefa));animation:modal-in .22s var(--motion-emphasized,cubic-bezier(.2,.8,.2,1)) both}
.username-recovery-panel h2{margin:0;font:500 18px/1.3 'Manrope',sans-serif;letter-spacing:-.025em}
.username-recovery-panel p{margin:0;color:var(--muted,#85847d);font-size:11px;line-height:1.6}
.username-recovery-panel code{display:block;overflow-wrap:anywhere;padding:12px;border:1px dashed var(--line,#e3e0d7);border-radius:7px;background:var(--white,#fffefa);color:var(--ink,#292a27);font:600 13px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.07em;user-select:all}
.username-recovery-panel .small-button{width:100%;min-height:40px}
.recovery-saved-check{display:flex;align-items:flex-start;gap:8px;color:var(--ink,#292a27);font-size:11px;line-height:1.5;cursor:pointer}
.recovery-saved-check input{accent-color:#77796f;margin-top:2px}
.account-email{max-width:170px;overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.profile-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(250px,.85fr);gap:12px;max-width:900px}
.profile-card{padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--white)}
.profile-card h2{margin:0 0 5px;font:500 15px 'Manrope',sans-serif;letter-spacing:-.02em}
.profile-card>p{margin:0 0 15px;color:var(--muted);font-size:10px;line-height:1.6}
.profile-identity{display:flex;align-items:center;gap:13px;margin-bottom:18px}
.profile-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--soft);font:500 17px 'Manrope',sans-serif}
.profile-name{font-size:13px;font-weight:600;overflow-wrap:anywhere}
.profile-details{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:0}
.profile-details div{min-width:0}
.profile-details dt{margin-bottom:5px;color:var(--muted);font-size:8px;letter-spacing:.1em;text-transform:uppercase}
.profile-details dd{margin:0;font-size:10px;overflow-wrap:anywhere}
.profile-card.danger-zone{border-color:#e2d7d1}
.profile-card.danger-zone h2{color:#865e55}
.profile-card .small-button{margin-top:4px}
:root[data-theme="dark"] .profile-card{background:#252621;border-color:#41423b}
:root[data-theme="dark"] .profile-card.danger-zone{border-color:#57433e}
:root[data-theme="dark"] .profile-card.danger-zone h2{color:#d6a89d}
@media(max-width:720px){.profile-layout{grid-template-columns:1fr}}
.sync.cloud-error{color:#a05243}
:root[data-theme="dark"] .auth-gate{background:#1c1d1a}
:root[data-theme="dark"] .auth-card{background:#242520;border-color:#41423b;box-shadow:0 18px 55px rgba(0,0,0,.25)}
:root[data-theme="dark"] .auth-card h1,:root[data-theme="dark"] .auth-form label,:root[data-theme="dark"] .auth-mode-toggle{color:#edebe3}
:root[data-theme="dark"] .auth-form input{border-color:#4a4b43;color:#edebe3}
:root[data-theme="dark"] .auth-local-note{border-color:#41423b}
:root[data-theme="dark"] .username-recovery-panel{background:#292a25;border-color:#41423b}
:root[data-theme="dark"] .username-recovery-panel code{background:#20211e;border-color:#41423b;color:#edebe3}
:root[data-theme="dark"] .recovery-saved-check{color:#edebe3}
@media(max-width:520px){.auth-gate{padding:16px}.auth-card{padding:29px 23px 22px}.account-email{display:none}}
@media(prefers-reduced-motion:reduce){.auth-gate,.auth-card{animation:none}}
