:root{color:#1f2522;background:#f6f1e8;font-family:Aptos,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(135deg,rgba(73,134,231,.12),transparent 38%),linear-gradient(210deg,rgba(81,183,73,.12),transparent 42%),#f6f1e8}button,input,select,textarea{font:inherit}.app-shell{position:relative;width:min(100%,680px);margin:0 auto;padding:22px 16px 40px}.drawer-toggle{position:fixed;z-index:41;top:16px;left:16px;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:0;border-radius:8px;color:#f9fbf8;background:#1f2522;box-shadow:0 10px 24px #1f25222e;cursor:pointer}.drawer-scrim{position:fixed;z-index:39;inset:0;border:0;background:#1f252238}.side-drawer{position:fixed;z-index:40;top:0;bottom:0;left:0;width:min(33.333vw,360px);min-width:280px;display:grid;align-content:start;gap:8px;padding:72px 16px 20px;border-right:1px solid rgba(31,37,34,.14);background:#fffaf2;box-shadow:16px 0 50px #1f252224;transform:translate(-105%);transition:transform .18s ease}.side-drawer.open{transform:translate(0)}.drawer-head{display:grid;gap:2px;margin-bottom:12px}.drawer-head strong{font-size:1.25rem}.drawer-head span{color:#65716b;font-size:.86rem;font-weight:800}.side-drawer button{display:flex;align-items:center;gap:9px;width:100%;min-height:42px;border:0;border-radius:8px;padding:0 10px;color:#344039;background:transparent;cursor:pointer;font-weight:850;text-align:left}.side-drawer button:hover,.side-drawer button.active{background:#1f252214}.drawer-list-nav{display:grid;gap:4px;margin:-2px 0 8px 18px}.drawer-list-row{display:grid;grid-template-columns:24px 1fr;align-items:center;border-radius:8px}.drawer-list-row.active{background:#46d6db29}.drawer-list-row.dragging{position:relative;z-index:2;background:#fffaf2;box-shadow:0 10px 24px #1f252224}.side-drawer .drawer-list-drag{min-height:32px;padding:0;color:#65716b;cursor:grab}.side-drawer .drawer-list-link{display:grid;align-content:center;gap:1px;min-height:36px;padding:4px 8px}.drawer-list-link span,.drawer-list-link small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-list-link small{color:#65716b;font-size:.68rem;font-weight:800}.top-band{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:8px 0 20px}.date-line,.section-kicker{margin:0;color:#65716b;font-size:.84rem;font-weight:700;letter-spacing:0;text-transform:uppercase}.date-controls{display:inline-flex;align-items:center;gap:6px;margin-bottom:2px}.date-button,.date-nav{border:0;cursor:pointer}.date-button{padding:3px 2px;background:transparent}.date-button:hover{color:#1f2522}.date-pick-wrap{position:relative;display:inline-flex;align-items:center}.date-nav{width:28px;height:28px;border-radius:8px;color:#4c5751;background:#1f25220f}.date-nav:hover{background:#1f25221a}.date-picker{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;opacity:0;pointer-events:auto;cursor:pointer}h1,h2{margin:0;letter-spacing:0}h1{font-size:clamp(2.2rem,12vw,4.8rem);line-height:.95}h2{margin-top:4px;font-size:1.55rem;line-height:1.12}.score{display:grid;place-items:center;min-width:72px;aspect-ratio:1;border:1px solid rgba(31,37,34,.16);border-radius:8px;background:#ffffff9e}.score strong{font-size:1.8rem;line-height:1}.score span{color:#65716b;font-size:.82rem}.focus-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;padding:18px;border-radius:8px;color:#f9fbf8;background:#1f2522}.focus-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px;min-width:0}.focus-columns>div{min-width:0}.focus-columns h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.time-pill{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:8px 10px;border-radius:999px;background:#ffffff1f;white-space:nowrap}.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:16px}.week-day{display:grid;place-items:center;gap:3px;min-height:58px;border:1px solid rgba(31,37,34,.14);border-radius:8px;color:#4c5751;background:#ffffff94;cursor:pointer}.week-day.active{color:#f9fbf8;background:#1f2522}.week-day span{font-size:.76rem;font-weight:800}.week-day strong{font-size:1.2rem}.week-day small{display:inline-flex;align-items:center;color:#9d2525;line-height:1}.task-form,.task-list,.day-review,.timeline,.panel-page,.shopping-form,.shopping-list{padding:16px;border:1px solid rgba(31,37,34,.14);border-radius:8px;background:#ffffffb8;box-shadow:0 16px 50px #1f252214}.shopping-page{display:grid;gap:16px;padding-top:54px}.shopping-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.shopping-form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:12px}.shopping-list{display:grid;gap:4px}.shopping-item{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:8px;min-height:48px;padding:6px 0;border-top:1px solid rgba(31,37,34,.08)}.shopping-item:first-child{border-top:0}.shopping-item.done{opacity:.55}.shopping-item.done input{text-decoration:line-through}.shopping-item input{border:0;background:transparent;font-weight:900}.shopping-item input:focus{box-shadow:none}.panel-page{display:grid;gap:14px;margin-top:58px}.account-box,.account-form,.list-grid{display:grid;gap:12px}.account-box p,.sync-status{margin:0;color:#65716b;font-size:.9rem;font-weight:800}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:6px}.segmented button{min-height:38px;border:0;border-radius:8px;color:#4c5751;background:#1f25220f;cursor:pointer;font-weight:850}.segmented button.active{color:#f9fbf8;background:#1f2522}.settings-toggle{justify-content:flex-start}.list-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.list-card{border:1px solid rgba(31,37,34,.12);border-radius:8px;background:#fffaf2ad}.list-card.active{outline:2px solid #46d6db;outline-offset:-2px}.list-card>button:first-child{width:100%;display:grid;gap:3px;border:0;padding:12px;background:transparent;cursor:pointer;text-align:left}.list-share-button{width:calc(100% - 16px);margin:0 8px 8px;min-height:32px;border:0;border-radius:8px;color:#4c5751;background:#1f25220f;cursor:pointer;font-size:.82rem;font-weight:850}.list-share-button:hover{background:#1f25221a}.list-card span{color:#65716b;font-size:.82rem;font-weight:800}.task-form{display:grid;gap:12px;margin-bottom:16px}.day-review{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:16px}.day-review p{margin:3px 0 0;color:#4c5751;font-weight:700}.timeline{margin-bottom:16px}.timeline-grid{position:relative;height:560px;overflow-y:auto;overflow-x:hidden;border:1px solid rgba(31,37,34,.1);border-radius:8px;background:#fffaf2b3;scrollbar-color:rgba(31,37,34,.28) transparent}.timeline-canvas{position:relative;height:1440px;min-width:0}.timeline-hour{position:absolute;left:0;right:0;border-top:1px solid rgba(31,37,34,.08);color:#65716b;font-size:.74rem;font-weight:800}.timeline-hour:first-child{border-top:0}.timeline-hour span{display:inline-block;width:56px;padding:4px 0 0 8px}.timeline-block{position:absolute;left:66px;right:10px;display:grid;align-content:start;gap:1px;overflow:hidden;border:1px solid rgba(31,37,34,.15);border-radius:6px;padding:5px 8px;color:#1f2522;cursor:pointer;text-align:left;box-shadow:0 8px 18px #1f25221a}.timeline-block strong,.timeline-block span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-block[data-tooltip]{overflow:visible}.timeline-block strong{min-width:0;font-size:.88rem;line-height:1.1}.timeline-block-time{font-size:.78rem;font-weight:800;line-height:1.05;opacity:.78}.timeline-block.short{display:flex;align-items:center;gap:7px;padding:3px 8px}.timeline-block.short .timeline-block-time{flex:0 0 auto;font-size:.72rem;line-height:1}.timeline-block.short strong{min-width:0;font-size:.82rem;line-height:1}.timeline-cluster{display:flex;align-items:center;gap:7px;padding:3px 8px}.timeline-cluster .timeline-block-time{flex:0 0 auto;font-size:.72rem;line-height:1}.timeline-cluster strong{min-width:0;font-size:.82rem;line-height:1}.timeline-marker{position:absolute;left:66px;width:min(310px,calc(100% - 76px));height:18px;display:flex;align-items:center;gap:7px;transform:translateY(-50%);border:0;padding:0;color:#1f2522;background:transparent;cursor:pointer;text-align:left}.timeline-marker:before{content:"";flex:0 0 auto;width:10px;height:10px;border:1px solid rgba(31,37,34,.2);border-radius:999px;box-shadow:0 2px 8px #1f252224}.timeline-marker span{max-width:0;overflow:hidden;color:#4c5751;font-size:.68rem;font-weight:800;line-height:1;opacity:0;white-space:nowrap}.timeline-marker:hover span,.timeline-marker:focus span,.timeline-marker:focus-visible span{max-width:90px;opacity:.82}.timeline-marker.blue:before{background:#46d6db}.timeline-marker.green:before{background:#7ae7bf}.timeline-marker.red:before{background:#ff887c}.timeline-block[data-tooltip]:after,.timeline-marker[data-tooltip]:after{position:absolute;z-index:20;left:18px;top:50%;width:max-content;max-width:min(290px,calc(100vw - 80px));transform:translateY(-50%);border:1px solid rgba(31,37,34,.16);border-radius:6px;padding:7px 9px;color:#f9fbf8;background:#1f2522;box-shadow:0 10px 24px #1f25222e;content:attr(data-tooltip);font-size:.76rem;font-weight:800;line-height:1.25;opacity:0;pointer-events:none;white-space:normal}.timeline-block[data-tooltip]:after{left:10px;top:calc(100% + 6px);transform:none}.timeline-block[data-tooltip]:hover:after,.timeline-block[data-tooltip]:focus:after,.timeline-block[data-tooltip]:focus-visible:after,.timeline-marker[data-tooltip]:hover:after,.timeline-marker[data-tooltip]:focus:after,.timeline-marker[data-tooltip]:focus-visible:after{opacity:1}.timeline-block.blue{background:#46d6db}.timeline-block.green{background:#7ae7bf}.timeline-block.red{background:#ff887c}.timeline-block.conflict,.timeline-marker.conflict:before,.task-item.conflict{outline:2px solid #dc2127;outline-offset:-2px}.conflict-note{display:inline-flex;align-items:center;gap:6px;color:#9d2525;font-size:.86rem;font-weight:900}label{display:grid;gap:6px;color:#4c5751;font-size:.86rem;font-weight:700}input,select,textarea{width:100%;border:1px solid rgba(31,37,34,.18);border-radius:8px;padding:12px;color:#1f2522;background:#fffaf2;outline:none}input:focus,select:focus,textarea:focus{border-color:#46d6db;box-shadow:0 0 0 3px #46d6db2e}textarea{min-height:76px;resize:vertical}.form-row{display:grid;grid-template-columns:.8fr .8fr 1fr 1fr;gap:12px}.custom-repeat-row{display:grid;grid-template-columns:.7fr .7fr 1.8fr;align-items:end;gap:12px;padding:12px;border:1px solid rgba(31,37,34,.1);border-radius:8px;background:#fffaf29e}.custom-repeat-row p{margin:0 0 12px;color:#4c5751;font-size:.86rem;font-weight:800}.primary-button,.quiet-button,.icon-button,.drag-handle{display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer}.primary-button{gap:8px;min-height:46px;border-radius:8px;color:#f9fbf8;background:#1f2522;font-weight:800}.quiet-button{gap:6px;color:#4c5751;background:transparent;font-size:.88rem;font-weight:800}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.section-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}.compact-toggle{display:inline-flex;grid-template-columns:none;align-items:center;gap:6px;color:#4c5751;font-size:.82rem;font-weight:800}.compact-toggle input{width:auto}.task-item{display:grid;grid-template-columns:28px 38px 88px 1fr 16px 28px 34px 34px;align-items:center;gap:8px;min-height:62px;padding:9px 0;border-top:1px solid rgba(31,37,34,.1)}.task-item.dragging{position:relative;z-index:5;border-radius:8px;background:#fffaf2f5;box-shadow:0 18px 44px #1f252224}.task-item.done{opacity:.55}.task-item.warning{background:#ffc10714}.task-item.done .task-main strong{text-decoration:line-through}.task-main{display:grid;gap:2px;min-width:0}.task-time{display:grid;gap:3px;min-width:0;color:#65716b;font-size:.74rem;font-weight:800}.task-time span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-time input{min-height:28px;padding:4px 5px;border-radius:6px;background:#fffaf2e6;font-size:.78rem}.task-main strong,.task-main span{overflow-wrap:anywhere}.task-title-input{padding:0;border:0;background:transparent;font-size:1rem;font-weight:900}.task-title-input:focus{box-shadow:none}.task-meta-edit{display:grid;grid-template-columns:78px minmax(90px,140px);gap:6px}.task-meta-edit input,.task-meta-edit select{min-height:30px;padding:4px 6px;border-radius:6px;font-size:.78rem}.task-main span{color:#65716b;font-size:.86rem}.task-description{min-height:44px;margin-top:6px;padding:8px 9px;border-radius:8px;background:#fffaf2c7;color:#344039;font-size:.84rem;line-height:1.35;resize:vertical}.task-description:placeholder-shown{min-height:36px}.icon-button{width:34px;height:34px;border-radius:8px;color:#1f2522;background:#1f25220f}.drag-handle{width:28px;height:34px;border-radius:8px;color:#65716b;background:transparent;cursor:grab;touch-action:none}.drag-handle:active{cursor:grabbing}.drag-handle:hover{background:#1f252212}.icon-button:hover{background:#1f25221a}.icon-button.danger{color:#9d2525}.warning-button{display:inline-flex;align-items:center;justify-content:center;width:28px;height:34px;border:0;border-radius:8px;color:#9d6a00;background:#ffc10729;cursor:pointer}.warning-button:hover{background:#ffc10742}.priority-dot{display:block;width:12px;height:12px;border-radius:50%}.priority-dot.blue{background:#46d6db}.priority-dot.green{background:#51b749}.priority-dot.red{background:#dc2127}.empty-state{display:grid;place-items:center;gap:8px;padding:28px 0 12px;color:#65716b;text-align:center}.empty-state p{margin:0}.modal-backdrop{position:fixed;z-index:50;inset:0;display:grid;place-items:center;padding:18px;background:#1f25225c}.modal-panel{width:min(100%,460px);max-height:min(84vh,720px);overflow:auto;border:1px solid rgba(31,37,34,.16);border-radius:8px;padding:16px;background:#fffaf2;box-shadow:0 22px 70px #1f252238}.modal-panel.large{width:min(100%,640px)}.modal-copy,.warning-copy,.conflict-card p{margin:4px 0 0;color:#4c5751;font-size:.86rem;font-weight:700}.warning-copy{color:#9d6a00}.modal-list,.conflict-list{display:grid;gap:8px}.modal-list-item,.conflict-card{width:100%;border:1px solid rgba(31,37,34,.12);border-radius:8px;padding:10px;background:#ffffffad}.modal-list-item{display:grid;gap:2px;cursor:pointer;text-align:left}.modal-list-item span{color:#65716b;font-size:.78rem;font-weight:800}.modal-list-item strong,.conflict-card strong{color:#1f2522}.conflict-card{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.conflict-actions{display:grid;gap:6px;min-width:120px}button:disabled{cursor:not-allowed;opacity:.45}@media(max-width:460px){.app-shell{padding:66px 12px 40px}.drawer-toggle{top:12px;left:12px}.focus-strip{align-items:flex-start;flex-direction:column}.side-drawer{width:min(86vw,340px)}.focus-columns,.form-row,.shopping-form{grid-template-columns:1fr}.task-item{grid-template-columns:24px 34px 1fr 16px 28px 34px 34px}.task-time{grid-column:3 / -1;grid-row:2}.task-main{grid-column:3 / -1}.conflict-card{grid-template-columns:1fr}.custom-repeat-row{grid-template-columns:1fr 1fr}.custom-repeat-row p{grid-column:1 / -1;margin-bottom:0}.week-strip{grid-template-columns:repeat(7,minmax(42px,1fr));gap:4px}.week-day{min-height:50px}.week-day span{font-size:.68rem}.day-review{flex-direction:column}.timeline-grid{height:520px}.timeline-block{left:54px;right:6px;padding:4px 6px}.timeline-marker{left:54px;width:min(280px,calc(100% - 60px))}.timeline-hour span{width:48px;padding-left:6px}.timeline-block strong{font-size:.8rem}.timeline-block-time{font-size:.7rem}.task-item{grid-template-columns:26px 32px 72px 1fr 12px 32px 32px;gap:6px}.task-meta-edit{grid-template-columns:68px minmax(76px,1fr)}.task-time{font-size:.68rem}.task-time input{font-size:.72rem;padding-inline:3px}.drag-handle{width:26px}}
