:root{--color-primary: #0066cc;--color-primary-focus: #0071e3;--color-primary-on-dark: #2997ff;--color-ink: #1d1d1f;--color-body: #1d1d1f;--color-body-on-dark: #ffffff;--color-body-muted: #cccccc;--color-ink-muted-80: #333333;--color-ink-muted-48: #7a7a7a;--color-divider-soft: #f0f0f0;--color-hairline: #e0e0e0;--color-canvas: #ffffff;--color-canvas-parchment: #f5f5f7;--color-surface-pearl: #fafafc;--color-surface-tile-1: #272729;--color-surface-tile-2: #2a2a2c;--color-surface-tile-3: #252527;--color-surface-black: #000000;--color-surface-chip-translucent: #d2d2d7;--color-on-primary: #ffffff;--color-on-dark: #ffffff;--text-body: var(--color-body);--text-body-on-dark: var(--color-body-on-dark);--text-muted: var(--color-ink-muted-48);--surface-page: var(--color-canvas);--surface-page-alt: var(--color-canvas-parchment);--surface-card: var(--color-canvas);--border-hairline: var(--color-hairline);--link-color: var(--color-primary);--link-color-on-dark: var(--color-primary-on-dark)}:root{--type-hero-display-size: 56px;--type-hero-display-weight: 600;--type-hero-display-lh: 1.07;--type-hero-display-ls: -.28px;--type-display-lg-size: 40px;--type-display-lg-weight: 600;--type-display-lg-lh: 1.1;--type-display-lg-ls: 0px;--type-display-md-size: 34px;--type-display-md-weight: 600;--type-display-md-lh: 1.47;--type-display-md-ls: -.374px;--type-lead-size: 28px;--type-lead-weight: 400;--type-lead-lh: 1.14;--type-lead-ls: .196px;--type-lead-airy-size: 24px;--type-lead-airy-weight: 300;--type-lead-airy-lh: 1.5;--type-lead-airy-ls: 0px;--type-tagline-size: 21px;--type-tagline-weight: 600;--type-tagline-lh: 1.19;--type-tagline-ls: .231px;--type-body-strong-size: 17px;--type-body-strong-weight: 600;--type-body-strong-lh: 1.24;--type-body-strong-ls: -.374px;--type-body-size: 17px;--type-body-weight: 400;--type-body-lh: 1.47;--type-body-ls: -.374px;--type-dense-link-size: 17px;--type-dense-link-weight: 400;--type-dense-link-lh: 2.41;--type-dense-link-ls: 0px;--type-caption-size: 14px;--type-caption-weight: 400;--type-caption-lh: 1.43;--type-caption-ls: -.224px;--type-caption-strong-size: 14px;--type-caption-strong-weight: 600;--type-caption-strong-lh: 1.29;--type-caption-strong-ls: -.224px;--type-button-large-size: 18px;--type-button-large-weight: 300;--type-button-large-lh: 1;--type-button-large-ls: 0px;--type-button-utility-size: 14px;--type-button-utility-weight: 400;--type-button-utility-lh: 1.29;--type-button-utility-ls: -.224px;--type-fine-print-size: 12px;--type-fine-print-weight: 400;--type-fine-print-lh: 1;--type-fine-print-ls: -.12px;--type-micro-legal-size: 10px;--type-micro-legal-weight: 400;--type-micro-legal-lh: 1.3;--type-micro-legal-ls: -.08px;--type-nav-link-size: 12px;--type-nav-link-weight: 400;--type-nav-link-lh: 1;--type-nav-link-ls: -.12px}:root{--space-xxs: 4px;--space-xs: 8px;--space-sm: 12px;--space-md: 17px;--space-lg: 24px;--space-xl: 32px;--space-xxl: 48px;--space-section: 80px}:root{--radius-none: 0px;--radius-xs: 5px;--radius-sm: 8px;--radius-md: 11px;--radius-lg: 18px;--radius-pill: 9999px;--radius-full: 9999px}:root{--shadow-product: 3px 5px 30px 0 rgba(0, 0, 0, .22);--border-hairline-soft: 1px solid rgba(0, 0, 0, .08);--ring-divider-soft: 3px solid var(--color-divider-soft)}:root{--font-display: -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;--font-text: -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xxs);border:none;border-radius:var(--radius-pill);min-height:44px;padding:0 var(--space-lg);font-family:var(--font-text);font-size:var(--type-body-strong-size);font-weight:var(--type-body-strong-weight);line-height:1;cursor:pointer;transform:scale(1);transition:transform .1s ease}.btn:active{transform:scale(.95)}.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.btn-secondary{background:var(--color-canvas-parchment);color:var(--color-ink)}.btn-ghost{background:transparent;color:var(--color-primary);padding:0 var(--space-xs)}.card{background:var(--color-canvas);border:1px solid var(--color-hairline);border-radius:var(--radius-lg);padding:18px}.tag{display:inline-flex;align-items:center;gap:var(--space-xxs);border-radius:var(--radius-pill);padding:4px 10px;font-family:var(--font-text);font-size:var(--type-caption-size);font-weight:var(--type-caption-strong-weight);line-height:1.2;white-space:nowrap}.tag-solid{background:var(--color-primary);color:var(--color-on-primary)}.tag-outline{background:transparent;color:var(--color-primary);border:1px solid var(--color-primary)}.tag-hairline{background:transparent;color:var(--color-ink-muted-48);border:1px solid var(--color-hairline)}.tag-category{background:var(--color-canvas-parchment);color:var(--color-ink)}.section-label{margin:0;font-family:var(--font-text);font-size:13px;font-weight:600;color:var(--color-ink-muted-48)}.section-title{margin:0 0 10px;font-family:var(--font-text);font-size:16px;font-weight:600;color:var(--color-ink)}.tag-row{display:flex;flex-wrap:wrap;gap:6px}.form-field-input{width:100%;min-height:44px;font-family:var(--font-text);font-size:16px;color:var(--color-ink);background:var(--color-canvas);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);padding:.6rem}.form-field-input:focus{outline:2px solid var(--color-primary-focus);outline-offset:1px}input[type=checkbox],input[type=radio]{accent-color:var(--color-primary)}.checkbox-row{display:flex;align-items:center;gap:var(--space-xs);min-height:44px}*,*:before,*:after{box-sizing:border-box}:root{color-scheme:light}body{margin:0;padding:0;background:var(--color-canvas);color:var(--color-ink);font-family:var(--font-text);-webkit-font-smoothing:antialiased}.nav-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) 20px;padding-top:max(var(--space-sm),env(safe-area-inset-top));border-bottom:1px solid var(--color-hairline);background:var(--color-canvas)}.nav-bar-title{font-family:var(--font-display);font-size:var(--type-body-strong-size);font-weight:var(--type-body-strong-weight);color:var(--color-ink)}.nav-bar-action{display:flex;align-items:center;justify-content:flex-end;min-height:44px;min-width:44px}.nav-bar-action button{width:auto}main{display:flex;flex-direction:column;gap:1rem;max-width:430px;margin-inline:auto;padding:20px;padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));padding-bottom:max(20px,env(safe-area-inset-bottom))}form{display:flex;flex-direction:column;gap:.75rem}fieldset{border:1px solid var(--color-hairline);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:.5rem}.field{display:flex;flex-direction:column;gap:.25rem}.hint{margin:0;opacity:.75;font-size:.9rem}.field-error{margin:0;color:#b3261e}input,select,textarea,button{width:100%;font-family:var(--font-text);font-size:16px;padding:.6rem;min-height:44px}input,select,textarea{color:var(--color-ink);background:var(--color-canvas);border:1px solid var(--color-hairline);border-radius:var(--radius-sm)}input[type=checkbox],input[type=radio]{width:auto;min-height:auto}textarea{min-height:4rem;resize:vertical}button{border:none;border-radius:var(--radius-pill);background:var(--color-canvas-parchment);color:var(--color-ink);font-weight:var(--type-body-strong-weight);cursor:pointer;transform:scale(1);transition:transform .1s ease}button:active{transform:scale(.95)}.task-overview{display:flex;flex-direction:column;gap:30px;padding-bottom:120px}.task-section{display:flex;flex-direction:column;gap:12px}.task-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.task-card{display:flex;flex-direction:column;gap:var(--space-sm)}.task-card-head{display:flex;gap:var(--space-sm);align-items:flex-start}.task-card-title-group{flex:1;min-width:0}.task-card-title{display:block;font-family:var(--font-text);font-size:var(--type-body-strong-size);font-weight:var(--type-body-strong-weight);line-height:var(--type-body-strong-lh);letter-spacing:var(--type-body-strong-ls);color:var(--color-ink);text-decoration:none;overflow-wrap:anywhere}.task-card-title:hover,.task-card-title:focus{text-decoration:underline}.task-card-due{margin-top:2px;font-size:var(--type-caption-size);font-weight:var(--type-caption-weight);color:var(--color-ink-muted-80)}.task-card-thumb{flex:none;width:72px;height:72px;border-radius:var(--radius-lg);overflow:hidden}.task-card-thumb img{width:100%;height:100%;object-fit:cover;display:block}.task-complete-form{display:flex;flex-direction:column;gap:var(--space-sm)}.task-complete-actions{display:flex;gap:var(--space-xs)}.task-complete-actions button{width:auto;flex:1}.task-card-actions{display:flex;align-items:center;gap:var(--space-xs)}.task-card-actions button{width:auto}.task-card-complete{flex:1}.overview-suggestions-link{text-align:center}.fab{position:fixed;right:24px;bottom:max(24px,env(safe-area-inset-bottom));width:52px;height:52px;min-height:52px;border-radius:50%;padding:0;font-size:24px;line-height:1;box-shadow:0 3px 10px #00000038}.task-detail{display:flex;flex-direction:column;gap:22px;padding-bottom:140px}.task-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm)}.task-detail-title{margin:0;font-family:var(--font-text);font-size:22px;font-weight:600;letter-spacing:-.374px;color:var(--color-ink)}.task-detail-head .btn{width:auto;flex:none}.task-detail-due{margin:0;font-size:15px;color:var(--color-ink-muted-80)}.task-detail-rhythm{margin:0;font-size:13px;color:var(--color-ink-muted-48)}.task-notes{margin:0;font-size:15px;white-space:pre-wrap;overflow-wrap:anywhere}.task-detail-section{display:flex;flex-direction:column;gap:10px}.task-detail-section>.btn-ghost{align-self:flex-start;width:auto}.task-detail-complete{width:100%}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.history-item{padding-bottom:12px;border-bottom:1px solid var(--color-divider-soft);font-size:14px}.history-item:last-child{border-bottom:none;padding-bottom:0}.history-note{color:var(--color-ink-muted-48);margin-top:.25rem;overflow-wrap:anywhere}.photo-gallery{display:flex;flex-direction:column;gap:10px}.photo-add{align-self:flex-start;width:auto}.photo-gallery-compact .photo-add{padding:0 var(--space-xs)}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.photo-grid-compact{display:flex;flex-wrap:wrap;gap:10px}.photo-tile{position:relative;aspect-ratio:1 / 1}.photo-grid-compact .photo-tile{width:72px;height:72px;aspect-ratio:auto;flex:none}.photo-tile-open{display:block;width:100%;height:100%;padding:0;border:1px solid var(--color-hairline);border-radius:var(--radius-lg);overflow:hidden;min-width:44px;min-height:44px}.photo-tile-open img{width:100%;height:100%;object-fit:cover;display:block}.photo-tile-remove{position:absolute;top:-14px;right:-14px;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;background:transparent;display:flex;align-items:center;justify-content:center}.photo-tile-remove-dot{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--color-ink);color:var(--color-on-primary);font-size:15px;line-height:1}.photo-viewer-overlay{padding:1rem;border:none;background:transparent;width:100%;height:100%;max-width:100%;max-height:100%}.photo-viewer-overlay[open]{display:flex;align-items:center;justify-content:center}.photo-viewer-overlay::backdrop{background:#000c}.photo-viewer{display:flex;flex-direction:column;gap:.5rem;width:100%;height:100%;max-width:100%;max-height:100%;min-height:0}.photo-viewer:focus{outline:none}.photo-viewer img{flex:1 1 auto;min-height:0;max-width:100%;max-height:100%;width:100%;object-fit:contain}.photo-viewer-close{align-self:flex-end;width:auto}.photo-viewer-confirm{display:flex;flex-direction:column;gap:.5rem}.step-list{display:flex;flex-direction:column;gap:12px}.step-list-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.step-list-head .section-title{margin:0}.step-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}.step-item{padding-bottom:12px;border-bottom:1px solid var(--color-divider-soft);display:flex;flex-direction:column;gap:10px}.step-item:last-child{border-bottom:none;padding-bottom:0}.step-text{overflow-wrap:anywhere;white-space:pre-wrap}.step-actions-toggle{width:auto;min-width:44px;font-size:18px;line-height:1}.step-actions{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.step-actions button{width:auto;min-width:44px}.step-add-form{display:flex;flex-direction:column;gap:.5rem}.material-list{display:flex;flex-direction:column;gap:10px}.material-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.material-item{padding:10px 0;border-bottom:1px solid var(--color-divider-soft)}.material-item:last-child{border-bottom:none}.material-row{display:flex;align-items:center;gap:var(--space-xs)}.material-item-label{overflow-wrap:anywhere}.material-item.purchased .material-item-label{text-decoration:line-through;opacity:.55}.material-actions{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-left:auto}.material-actions button{width:auto;min-width:44px}.material-add-form{display:flex;flex-direction:column;gap:.5rem}.material-add-row{display:flex;gap:var(--space-xs);align-items:flex-end}.material-add-row .field:first-child{flex:1;min-width:0}.material-add-qty{width:64px;flex:none}.onboarding{display:flex;flex-direction:column;gap:1rem}.onboarding-progress{margin:0}.onboarding-intro{margin:0;font-size:15px;color:var(--color-ink-muted-80)}.onboarding-question{border:none;padding:0;gap:0}.onboarding-question-title{padding:0;font-family:var(--font-text);font-size:20px;font-weight:600;color:var(--color-ink)}.onboarding-answer-list{display:flex;flex-direction:column}.onboarding-answer-row{display:flex;align-items:center;gap:.75rem;padding:12px 0;border-bottom:1px solid var(--color-divider-soft);font-size:16px;color:var(--color-ink)}.onboarding-answer-row:last-child{border-bottom:none}.onboarding-answer-row input{width:20px;height:20px;min-height:auto;flex:none}.onboarding-footer{display:flex;gap:var(--space-xs)}.onboarding-footer .btn{width:auto;flex:2}.onboarding-footer .btn-secondary{flex:1}.onboarding-suggestions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.onboarding-suggestion{display:flex;align-items:flex-start;gap:.75rem;cursor:pointer}.onboarding-suggestion input{width:20px;height:20px;min-height:auto;margin-top:2px;flex:none}.onboarding-suggestion-body{display:flex;flex-direction:column;gap:2px;min-width:0}.onboarding-suggestion-title{font-size:17px;font-weight:600;letter-spacing:-.374px;color:var(--color-ink)}.onboarding-suggestion-rhythm{font-size:14px;color:var(--color-ink-muted-48)}.onboarding-suggestion-meta{font-size:12px;color:var(--color-ink-muted-48)}.onboarding-suggestions-footer{display:flex;flex-direction:column;gap:var(--space-xs)}.onboarding-suggestions-footer .btn{width:100%}.login{display:flex;flex-direction:column;margin-top:15vh}.sheet{padding:0;border:1px solid var(--color-hairline);border-bottom:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:430px;margin:auto auto 0;max-height:82%;max-height:82dvh;overflow-y:auto;overscroll-behavior:contain;background:var(--color-canvas)}.sheet::backdrop{background:#0006}.sheet-body{padding:20px;padding-bottom:max(20px,env(safe-area-inset-bottom))}.sheet-body:focus{outline:none}.sheet-form{gap:16px}.sheet-title{font-size:19px;font-weight:600;margin:0 0 16px}.sheet-form label,.sheet-form .field-label{font-size:13px;color:var(--color-ink-muted-48)}.sheet-footer{display:flex;gap:8px}.sheet-footer .btn{flex:1;width:auto}html:has(dialog[open]){overflow:hidden}.segmented{display:flex;background:var(--color-canvas-parchment);border-radius:var(--radius-sm);padding:3px;gap:2px}.segmented label{flex:1;display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:6px;font-size:14px;color:var(--color-ink);cursor:pointer}.segmented input{position:absolute;width:1px;height:1px;min-height:1px;padding:0;opacity:0}.segmented input:checked+span{font-weight:600}.segmented input:focus-visible+span{outline:2px solid var(--color-primary-focus);outline-offset:2px}
