:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#25352f;background:#f6f8f7;font-synthesis:none}*{box-sizing:border-box}body{margin:0;display:flex}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #c39135;outline-offset:3px}aside{position:fixed;inset:0 auto 0 0;width:250px;background:#172f2b;color:#f4f6f3;padding:40px 26px;display:flex;flex-direction:column}.brand{font-weight:650;font-size:25px;letter-spacing:-1px;color:inherit;text-decoration:none;white-space:nowrap}.logo{font-size:32px;vertical-align:-2px;margin-right:7px;color:#d9e8b1}.brand-dot{color:#c4d987}.side-label{font-size:12px;letter-spacing:1.8px;color:#9cafa7;margin:60px 12px 20px}.nav-active{padding:15px 12px;background:#2c443c;border:1px solid #3a5146;border-radius:8px;display:flex;gap:12px;align-items:center;font-size:14px}.nav-count{margin-left:auto;color:#c8d6b2;font-size:12px}.side-bottom{margin-top:auto;padding:40px 10px 0}.quarter-mark{font-size:68px;font-weight:300;letter-spacing:-5px;color:#d8e9ae}.quarter-mark span{font-size:16px;letter-spacing:0;margin-left:5px}.side-bottom h2{font-size:22px;font-weight:500;line-height:1.5;margin:15px 0}.side-bottom p{font-size:14px;line-height:1.8;color:#aebdb5}.local{border-top:1px solid #3b5149;margin-top:35px;padding-top:20px;font-size:12px;color:#b2c0b7}main{margin-left:250px;padding:46px 5%;width:calc(100% - 250px);max-width:1600px}.eyebrow{font-size:12px;font-weight:650;letter-spacing:2px;color:#728178}.title-row{display:flex;align-items:center;justify-content:space-between;gap:16px}h1{font-size:42px;letter-spacing:-1.8px;font-weight:550;margin:14px 0 8px}.subtitle{color:#758077;font-size:16px;margin:0 0 32px}button{border:1px solid #dbe2dd;border-radius:7px;background:white;color:#34483c;padding:9px 13px}.primary{background:#284e3d;border-color:#284e3d;color:white;padding:12px 18px;font-size:14px}.primary:hover{background:#1a3829}.overview{display:grid;grid-template-columns:1fr 1fr 1.2fr 1.15fr;background:#fff;border:1px solid #e0e6e1;border-radius:12px;padding:26px 0;margin-bottom:30px}.overview>div{padding:0 26px;border-right:1px solid #e8ece8}.overview>div:last-child{border:0}.metric-label{font-size:11px;letter-spacing:1.3px;color:#758278;font-weight:650}.overview strong{font-size:32px;font-weight:500;display:block;margin-top:10px}.overview small{font-size:18px;color:#9aa49d}.bar{height:4px;background:#edf1ea;border-radius:3px;margin-top:9px;overflow:hidden}.bar div{height:100%;background:#608551;width:0;transition:width .2s}.note{display:flex;flex-direction:column;justify-content:center}.note span{font-size:10px;letter-spacing:1.2px;color:#748566}.note p{font-family:Georgia,serif;font-style:italic;font-size:20px;line-height:1.4;margin:10px 0 0}.planner{background:white;border:1px solid #dde4dd;border-radius:12px;overflow:hidden}.toolbar{padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #e4e9e4}.date-controls{display:flex;align-items:center;gap:8px}.date-controls button{font-size:18px;padding:5px 10px}#today{font-size:13px;margin-left:8px;padding:8px 12px}input[type=date]{border:0;background:transparent;font-weight:600;font-size:16px;width:155px;color:#344637;padding:5px}.interval{font-size:13px;color:#7d897f}.schedule-heading{display:flex;justify-content:space-between;background:#fafbf9;padding:15px 24px;color:#7a857b;font-size:12px}.schedule-heading span:first-child{font-weight:650;color:#50634f;text-transform:uppercase;letter-spacing:1px}#schedule{max-height:590px;overflow-y:auto;scroll-behavior:smooth;scroll-padding-top:10px}.hour{display:grid;grid-template-columns:92px 1fr;border-top:1px solid #e2e8e1;min-height:172px}.hour-label{padding:19px 12px 0 24px;font-size:17px;font-weight:550;color:#354d3b}.hour-label small{display:block;font-size:11px;letter-spacing:1px;color:#97a294;margin-top:5px}.slots{padding:7px 20px 7px 0;display:grid;gap:3px}.slot{display:flex;align-items:center;min-height:37px;border-radius:5px;background:#fbfcfa;gap:12px;padding:0 10px;border:1px solid transparent}.slot:hover{background:#f1f5ee}.minute{font-size:12px;color:#97a08f;font-variant-numeric:tabular-nums;min-width:40px}.slot-add,.task-title{border:0;background:transparent;flex:1;text-align:left;padding:8px 0;font-size:14px;border-radius:2px;min-width:0;overflow-wrap:anywhere}.slot-add{color:#a2ac9e}.slot-add span{opacity:0}.slot:hover .slot-add span,.slot-add:focus span{opacity:1}.slot.filled{background:#eef3e6;border-color:#e2ead6}.slot.done{background:#f5f6f4}.slot.done .task-title{color:#929c8d;text-decoration:line-through}.slot input[type=checkbox]{accent-color:#436440;width:16px;height:16px;margin:0;flex:none}.slot.current{border-color:#94a780;box-shadow:inset 3px 0 #6f884e}.duration{font-size:11px;color:#8b997f}footer{padding:17px 24px;font-size:12px;color:#99a391;border-top:1px solid #e5eae2}footer span{margin:0 8px}.save-status{font-size:12px;color:#88937f;text-align:right}dialog{width:min(460px,calc(100% - 32px));border:1px solid #dce4d7;border-radius:14px;padding:26px;color:#263d2a;box-shadow:0 20px 80px #15291830}dialog::backdrop{background:#152b2355;backdrop-filter:blur(3px)}.modal-top{display:flex;align-items:center;justify-content:space-between}.modal-top button{border:0;font-size:23px;padding:0 6px}dialog h2{font-size:26px;font-weight:550;margin:22px 0}.field-label{font-size:14px;display:block;margin-bottom:10px}#task{width:100%;border:1px solid #cbd6c6;border-radius:7px;padding:13px;font-size:16px}.modal-actions{display:flex;justify-content:space-between;gap:15px;margin-top:28px}.delete{color:#9c5145;border:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(min-width:1450px){main{padding-left:80px;padding-right:80px}}@media(max-width:1100px){aside{width:210px;padding:35px 18px}main{margin-left:210px;width:calc(100% - 210px);padding:35px 4%}.overview>div{padding:0 18px}.note{display:none}.overview{grid-template-columns:1fr 1fr 1fr}.overview>div:nth-child(3){border:0}}@media(max-width:720px){body{display:block}aside{position:static;width:100%;padding:15px 20px;display:block}.brand{font-size:22px}.logo{font-size:27px}.side-label,.nav-active,.side-bottom{display:none}main{margin:0;width:100%;padding:28px 16px}h1{font-size:32px}.primary{padding:11px;font-size:12px}.overview{padding:20px 0;margin-bottom:20px}.overview>div{padding:0 13px}.metric-label{font-size:9px;letter-spacing:.7px}.overview strong{font-size:28px}.toolbar{padding:14px 12px}.interval{display:none}.schedule-heading{padding:12px;font-size:10px}.schedule-heading span:last-child{max-width:135px;text-align:right}.hour{grid-template-columns:64px 1fr}.hour-label{padding-left:12px;font-size:16px}.slots{padding-right:10px}.slot{gap:7px;padding:0 7px}.duration{display:none}.slot-add span{opacity:1}.slot-add{font-size:13px}.minute{min-width:36px}#schedule{max-height:65vh}}
/* Vertical analytics and planner layout. */
.overview{display:flex;flex-direction:column;padding:0;gap:0}.overview>div{padding:18px 24px;border-right:0;border-bottom:1px solid #e8ece8;display:flex;align-items:center;justify-content:space-between;gap:20px}.overview>div:nth-child(3){border-bottom:1px solid #e8ece8}.overview>div:last-child{border-bottom:0}.overview strong{margin-top:0}.overview .progress-stat{flex-wrap:wrap}.progress-stat .bar{width:100%;margin-top:0}.overview .note{flex-direction:row}.note p{margin:0}.planner{width:100%}@media(max-width:720px){.overview>div{padding:15px 18px}.overview .note{display:none}.overview>div:nth-child(3){border-bottom:0}.metric-label{font-size:11px}.note p{font-size:16px}}
.task-title,.drag-handle{touch-action:none}.task-title{cursor:grab}.drag-handle{border:0;background:transparent;color:#738267;padding:6px 8px;font-size:23px;line-height:1;cursor:grab;flex:none}.drag-handle:hover{background:#dfe8d5}.slot.dragging{opacity:.45}.slot.drop-target{border:2px dashed #476f36;background:#e1edd2}.is-dragging,.is-dragging *{cursor:grabbing!important;user-select:none}.is-dragging #schedule{scroll-behavior:auto}
.time-grid{display:grid;grid-template-columns:110px minmax(0,1fr);grid-template-rows:repeat(192,44px);position:relative}.time-row{grid-column:1 / -1;display:flex;align-items:center;border-bottom:1px solid #e8ece5;min-width:0}.time-label{width:110px;flex:none;padding-left:15px;font-size:12px;color:#77836e}.time-row .slot-add{padding-left:10px}.task-block{grid-column:2;z-index:1;background:#eef3e6;border:1px solid #becfaf;border-left:4px solid #70934f;border-radius:7px;margin:1px 16px 1px 0;position:relative;min-height:0;overflow:hidden;padding:1px 12px 10px;display:flex;flex-direction:column;justify-content:flex-start}.block-head{display:flex;align-items:center;gap:10px;min-height:24px}.block-head input{accent-color:#436440;flex:none}.task-block .task-title{padding:2px 0;font-size:14px}.range-label{font-size:11px;color:#708161;line-height:13px}.resize-handle{position:absolute;bottom:0;left:0;width:100%;height:10px;padding:0;border:0;border-radius:0;background:#c4d5b2;color:#496734;cursor:ns-resize;touch-action:none;font-size:12px;line-height:9px}.resize-handle:hover,.resize-handle:focus{background:#8ead73}.task-block.done{background:#f0f2ed}.task-block.done .task-title{text-decoration:line-through;color:#8c9586}#minutes{padding:9px;width:100%;margin-top:7px;border:1px solid #cbd6c6;border-radius:6px}label[for=minutes]{margin-top:20px}#formerror{color:#a53a31;font-size:14px}.time-row.drop-target{background:#d3e6ba;border-bottom:3px solid #61873e}@media(max-width:720px){.time-grid{grid-template-columns:80px minmax(0,1fr)}.time-label{width:80px;font-size:11px;padding-left:6px}.task-block{margin-right:5px;padding-left:6px}.range-label{font-size:10px}}
.block-head{min-height:20px}.task-block .task-title{line-height:18px;padding:0}.range-label{line-height:11px}
/* Analytics sidebar beside the daily timeline. */
main{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;align-items:start}main>header{grid-column:1 / -1}.subtitle{margin-bottom:0}.overview{grid-column:1;grid-row:2;position:sticky;top:24px;margin:0}.overview>div{display:block;padding:22px 20px}.overview strong{margin-top:12px}.overview .progress-stat{display:block}.progress-stat .bar{margin-top:14px}.overview .note{display:none}.overview>div:nth-child(3){border-bottom:0}.metric-label{font-size:11px}.planner{grid-column:2;grid-row:2;min-width:0}.save-status{grid-column:2;margin:0}.toolbar{flex-wrap:wrap;padding:16px}.schedule-heading{gap:12px}.interval{font-size:12px}@media(max-width:1100px){main{grid-template-columns:165px minmax(0,1fr);gap:18px}.overview>div{padding:20px 15px}.interval{display:none}.date-controls{flex-wrap:wrap}.schedule-heading span:last-child{max-width:170px;text-align:right}}@media(max-width:900px){main{grid-template-columns:minmax(0,1fr)}main>header,.overview,.planner,.save-status{grid-column:1;grid-row:auto}.overview{position:static}.overview>div{display:flex;align-items:center;justify-content:space-between;padding:14px 18px}.overview strong{margin-top:0}.overview .progress-stat{display:flex;flex-wrap:wrap}.progress-stat .bar{margin-top:0}.overview .note{display:none}}
.edit-task{border:0;background:transparent;color:#34572c;font-size:12px;font-weight:600;padding:1px 7px;flex:none;line-height:18px}.edit-task:hover{background:#d7e5c9}.block-head .task-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.edit-task:focus-visible{outline:2px solid #6c8d4a;outline-offset:0}
.account-bar{grid-column:1 / -1;display:flex;gap:12px;justify-content:space-between;align-items:center;font-size:14px;min-width:0}.account-bar span{overflow-wrap:anywhere}.account-bar a{color:#345b3f;white-space:nowrap}.sync-actions{grid-column:1 / -1}.sync-actions:has(#sync-error:empty):not(:has(button:not([hidden]))){display:none}.sync-actions button{margin:4px;min-height:44px}.sync-actions p{font-size:14px;color:#984334}.overview{grid-row:auto}.planner{grid-row:auto}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:24px;background:#172f2b}.auth-card{background:#fff;border-radius:18px;padding:28px;max-width:450px;width:100%;color:#25352f}.auth-card h1{font-size:36px;margin:32px 0 20px}.auth-card p{line-height:1.6;font-size:16px}.auth-primary,.auth-secondary{display:block;padding:15px;text-align:center;border-radius:8px;text-decoration:none;margin:12px 0}.auth-primary{background:#284e3d;color:#fff}.auth-secondary{border:1px solid #cad9bd;color:#284e3d}.auth-card .auth-note{font-size:14px;color:#687561}.auth-card details{border-top:1px solid #e0e7db;padding-top:18px;margin-top:20px}.auth-card summary{cursor:pointer;min-height:32px}.auth-card details a{color:#284e3d}.time-grid{grid-template-rows:repeat(192,64px)}.block-head{min-height:30px}.task-block .task-title{font-size:16px;line-height:22px}.range-label{font-size:12px;line-height:16px}.resize-handle{height:14px;line-height:13px}.edit-task{min-height:30px;font-size:14px}.task-block{padding-bottom:14px}.block-head input{width:20px;height:20px}.slot-add{min-height:44px}.time-label{font-size:14px}.metric-label{font-size:12px}.save-status{font-size:14px}button,a,input,summary{-webkit-tap-highlight-color:transparent}#task,#minutes{font-size:16px;min-height:44px}@media(max-width:900px){main{display:flex;flex-direction:column;gap:16px;padding:20px 12px;margin:0;width:100%}main>*{width:100%}aside{position:static;width:100%;padding:14px 18px}body{display:block}.side-label,.nav-active,.side-bottom{display:none}.brand{font-size:23px}header .eyebrow,.subtitle{display:none}h1{font-size:30px;margin:0}.title-row{gap:10px}.primary{min-height:44px}.overview{display:flex;flex-direction:row;width:100%}.overview>div{display:block;padding:12px 10px;width:33.333%;border-bottom:0;border-right:1px solid #e1e7da}.overview .progress-stat{display:block}.overview strong{font-size:24px;margin-top:7px}.overview .bar{margin-top:8px}.metric-label{font-size:11px;letter-spacing:.4px}.overview small{font-size:15px}.toolbar{padding:8px}.date-controls{width:100%;justify-content:space-between;gap:3px}.date-controls button{min-width:40px;min-height:44px}input[type=date]{width:150px}.schedule-heading{padding:10px}.schedule-heading span{font-size:12px}.schedule-heading span:last-child{max-width:160px}.time-grid{grid-template-columns:76px minmax(0,1fr)}.time-label{width:76px;font-size:12px}#schedule{max-height:66dvh}.account-bar{font-size:13px}.save-status{text-align:left}.modal-actions button{min-height:44px}.modal-top button{min-width:44px;min-height:44px}.task-block .task-title{touch-action:pan-y}.resize-handle{touch-action:none}}
.drag-handle{touch-action:none;min-width:30px;min-height:30px;padding:2px;font-size:22px}.sync-actions [hidden]{display:none}main[inert]{opacity:.65}.overview .note{display:none}
/* Keep the schedule at the top; move page controls into the navigation rail. */
aside header{margin-top:32px}aside header .eyebrow,aside header .subtitle{display:none}aside .title-row{display:flex;flex-direction:column;align-items:flex-start;gap:15px}aside h1{font-size:25px;letter-spacing:-.5px;color:#fff;margin:0}aside .primary{background:#d8e9ae;border-color:#d8e9ae;color:#213b2b;min-height:44px}aside .account-bar{margin-top:24px;display:flex;flex-direction:column;align-items:flex-start;color:#c6d5c9;font-size:13px}aside .account-bar a{color:#d8e9ae;min-height:32px}aside .side-label,aside .nav-active{display:none}main{padding-top:24px;row-gap:16px}.overview{grid-column:1;grid-row:1}.planner{grid-column:2;grid-row:1}.sync-actions{grid-column:1 / -1;grid-row:3}.save-status{grid-column:2;grid-row:2}#schedule{max-height:calc(100dvh - 210px)}@media(max-width:900px){aside{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px 16px}aside header{margin:0}aside .title-row{align-items:flex-end}aside h1{display:none}aside .primary{font-size:13px;padding:8px 12px}aside .account-bar{grid-column:1 / -1;margin:0;flex-direction:row;align-items:center;justify-content:space-between;font-size:12px}aside .account-bar a{min-height:24px}main{padding:8px 10px 16px;gap:12px}.planner{order:0}.save-status{order:1}.overview{order:2}.sync-actions{order:3}#schedule{max-height:calc(100dvh - 265px);min-height:260px}}
.repeat-label{display:flex;align-items:center;gap:10px;margin-top:20px;font-size:16px;min-height:44px}.repeat-label input{width:20px;height:20px;accent-color:#436440}#edit-scope{width:100%;padding:12px;font-size:16px;border:1px solid #cbd6c6;border-radius:7px;background:white;color:#25352f}#routine-hint{font-size:14px;line-height:1.5;color:#617354}#routine-scope[hidden]{display:none}
.alert-controls{margin-top:18px}.alert-controls button{width:100%;min-height:44px;background:#294b3c;color:#e7f0de;border-color:#52705b}.alert-controls p{font-size:12px;line-height:1.5;color:#b9c9bc;margin:8px 0}#task-alert-banner{position:fixed;bottom:20px;right:20px;z-index:100;max-width:min(560px,calc(100vw - 24px));background:#183b29;color:white;padding:16px;border:1px solid #8bac73;border-radius:12px;box-shadow:0 6px 30px #0003;display:flex;align-items:center;gap:12px}#task-alert-banner[hidden]{display:none}#task-alert-message{font-size:16px;overflow-wrap:anywhere}#task-alert-banner button{min-height:44px;flex:none}button:disabled{cursor:wait;opacity:.65}@media(max-width:900px){.alert-controls{grid-column:1 / -1;margin:0;display:flex;gap:12px;align-items:center}.alert-controls button{width:auto;flex:none;font-size:13px}.alert-controls p{margin:0;font-size:12px}#task-alert-banner{right:12px;bottom:12px;flex-wrap:wrap}}
#today:disabled{cursor:default;opacity:.5;background:#f0f3ed;color:#71816a;border-color:#dce3d6}#today:not(:disabled){cursor:pointer;color:#284e3d;background:#fff}#today:not(:disabled):hover{background:#e8efdf}

.view-control{display:flex;align-items:center;gap:8px;font-size:14px}.view-control select{font:inherit;min-height:44px;padding:8px 12px;border:1px solid #dbe2dd;border-radius:7px;background:#fff;color:#34483c}.view-control select:focus-visible{outline:3px solid #c39135;outline-offset:2px}.time-label{overflow-wrap:anywhere}.time-row:nth-child(96n + 1){border-top:2px solid #70934f;background:#f0f5ea}#view-range{margin:0}

/* Synchronized day columns with shared time labels. */
#schedule{overflow:auto;position:relative;isolation:isolate}
.parallel-grid{min-width:calc(76px + 240px * 2);width:100%}
.parallel-grid .day-heading{position:sticky;top:0;z-index:5;background:#eaf1e3;border-bottom:1px solid #b8cbaa;border-right:1px solid #dce5d5;padding:14px 12px;font-size:14px;font-weight:600;white-space:nowrap}
.parallel-grid .time-corner{left:0;grid-column:1;grid-row:1;z-index:7}
.parallel-grid .time-label{position:sticky;left:0;z-index:3;width:76px;display:flex;align-items:center;padding-left:10px;background:#fafcf8;border-bottom:1px solid #e8ece5;font-size:13px}
.parallel-grid .time-row{border-top:0;border-right:1px solid #dce5d5;background:white}
.parallel-grid .time-row.drop-target{background:#d3e6ba;border-bottom:3px solid #61873e}
.parallel-grid .task-block{margin:1px 5px;padding-left:6px;padding-right:6px}
.parallel-grid .block-head{gap:4px}
.parallel-grid .range-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.parallel-grid .slot-add{font-size:14px}
