:root{--bg:oklch(97% .004 250);--surface:oklch(99.5% .001 250);--surface-hover:oklch(95.5% .005 250);--fg:oklch(24% .018 250);--muted:oklch(47% .016 250);--line:oklch(89% .006 250);--control:oklch(60% .014 250);--track:oklch(91% .006 250);--accent:oklch(50% .115 68);--accent-soft:oklch(95% .035 80);--on-accent:oklch(99% .004 75);--done:oklch(47% .095 158);--on-done:oklch(99% .004 158);--danger:oklch(50% .17 25);--focus:oklch(47% .13 250);--notice-bg:oklch(24% .018 250);--notice-fg:oklch(97% .004 250);--notice-action:oklch(82% .12 75);--notice-danger:oklch(84% .09 25);--display:"IBM Plex Sans Condensed", "Arial Narrow", Arial, sans-serif;--body:"IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;--mono:"IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:oklch(20% .012 250);--surface:oklch(24% .014 250);--surface-hover:oklch(28% .015 250);--fg:oklch(94% .005 250);--muted:oklch(76% .013 250);--line:oklch(33% .014 250);--control:oklch(62% .014 250);--track:oklch(33% .014 250);--accent:oklch(80% .12 72);--accent-soft:oklch(31% .05 65);--on-accent:oklch(20% .03 65);--done:oklch(78% .12 158);--on-done:oklch(20% .03 158);--danger:oklch(78% .13 25);--focus:oklch(80% .1 250);--notice-bg:oklch(94% .005 250);--notice-fg:oklch(20% .012 250);--notice-action:oklch(47% .115 68);--notice-danger:oklch(46% .17 25)}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scrollbar-color:var(--control) transparent;scroll-padding-block-end:72px}body{background:var(--bg);color:var(--fg);font-family:var(--body);caret-color:var(--accent);margin:0;font-size:.9375rem;line-height:1.5}::selection{background:var(--accent-soft);color:var(--fg)}h1,h2,h3,p{margin:0}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.icon{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.icon-grip{stroke-width:2.4px}.wrap{max-width:1120px;padding:max(14px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) calc(88px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));margin:0 auto}.skip-link{background:var(--surface);color:var(--fg);z-index:10;border-radius:6px;padding:8px 12px;position:absolute;top:8px;left:16px;transform:translateY(-200%)}.skip-link:focus{transform:none}.topbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:28px;display:flex}.owner{font-family:var(--mono);color:var(--muted);font-size:.75rem}.masthead{grid-template-columns:minmax(0,340px) minmax(0,1fr);align-items:end;gap:16px 48px;margin-bottom:36px;display:grid}h1{font-family:var(--display);letter-spacing:-.01em;text-wrap:balance;font-size:clamp(2.125rem,5vw,2.875rem);font-weight:700;line-height:1.02}.masthead-side{gap:16px;display:grid}.sub{color:var(--muted);max-width:62ch}.overall{gap:8px;display:grid}.overall-row{font-family:var(--mono);color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:baseline;gap:12px;font-size:.8125rem;display:flex}.overall-row strong{color:var(--fg);font-weight:500}.bar,.sec-bar{background:var(--track);display:block;overflow:hidden}.bar{border-radius:3px;height:6px}.sec-bar{border-radius:2px;grid-column:2/-1;height:3px}.fill{background:var(--accent);transform-origin:0;height:100%;display:block;transform:scaleX(0)}[dir=rtl] .fill{transform-origin:100%}.sec-bar .fill{background:var(--done)}.grid{grid-template-columns:minmax(0,340px) minmax(0,1fr);align-items:start;gap:32px 48px;display:grid}.rail{background:var(--surface);border:1px solid var(--line);border-radius:14px}.routine{padding:18px 18px 14px}.routine+.routine{border-top:1px solid var(--line)}.routine-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.routine h2{font-family:var(--display);font-size:1.375rem;font-weight:600;line-height:1.2}.routine-when{font-family:var(--mono);color:var(--muted);font-variant-numeric:tabular-nums;font-size:.75rem}.hint{color:var(--muted);margin-bottom:6px;font-size:.8125rem}.week-progress{border-top:1px solid var(--line);gap:10px;margin-top:14px;padding-top:14px;display:grid}.week-dots{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.week-day{justify-items:center;gap:4px;display:grid}.dot{background:var(--track);border-radius:3px;width:100%;height:6px;display:block;overflow:hidden}.dot:after{content:"";background:var(--done);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.day-part .dot:after{transform:scaleX(.5)}.day-full .dot:after{transform:none}.dot-letter{font-family:var(--mono);color:var(--muted);font-size:.6875rem}.is-today .dot-letter{color:var(--fg);text-underline-offset:3px;font-weight:500;text-decoration:underline}.streak{font-family:var(--mono);color:var(--muted);font-size:.75rem}.streak b{color:var(--accent);font-variant-numeric:tabular-nums;font-size:.9375rem;font-weight:500}.sections{outline:none;display:grid}.sec{border-top:1px solid var(--line)}.sec:last-child{border-bottom:1px solid var(--line)}.sec>summary{cursor:pointer;border-radius:6px;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:2px 10px;padding:16px 4px;list-style:none;display:grid}.sec>summary::-webkit-details-marker{display:none}.sec>summary .icon{color:var(--muted)}.sec[open]>summary .icon{transform:rotate(90deg)}.sec-title{font-family:var(--display);font-size:1.3125rem;font-weight:600;line-height:1.25}.count{font-family:var(--mono);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.8125rem}.count.complete{color:var(--done)}.sec-why{color:var(--muted);grid-column:2/-1;max-width:68ch;margin-bottom:8px;font-size:.8438rem}.sec-body{padding:0 4px 18px 30px}.goals{margin:0;padding:0;list-style:none}.row-view{grid-template-columns:24px minmax(0,1fr);gap:10px;padding:9px 0;display:grid}.row+.row{border-top:1px solid var(--line)}.row input[type=checkbox]{appearance:none;border:1.5px solid var(--control);background:var(--surface);cursor:pointer;border-radius:6px;flex:none;place-items:center;width:24px;height:24px;margin:0;padding:0;display:grid}@media (hover:hover){.row input[type=checkbox]:hover{border-color:var(--fg)}.link-btn:hover{color:var(--fg);text-decoration-color:currentColor}.grip:hover{background:var(--surface-hover);color:var(--fg)}.btn:hover{background:var(--surface-hover)}.btn-primary:hover{background:var(--accent)}.btn-quiet:hover,.btn-add:hover{color:var(--fg)}}.row input[type=checkbox]:checked{background:var(--done);border-color:var(--done)}.row input[type=checkbox]:after{content:"";border-left:2px solid var(--on-done);border-bottom:2px solid var(--on-done);opacity:0;width:11px;height:6px;transform:translateY(-1px)rotate(-45deg)}.row input[type=checkbox]:checked:after{opacity:1}.row-body{gap:4px;min-width:0;display:grid}.row-label{cursor:pointer;overflow-wrap:anywhere;gap:2px;min-width:0;display:grid;position:relative}.row-item .row-label:before{content:"";width:10px;position:absolute;inset:0 auto 0 -10px}.t{font-weight:500}.n{color:var(--muted);text-wrap:pretty;font-size:.8438rem}.d{font-family:var(--mono);color:var(--done);font-size:.75rem}.is-done .t{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px}.row-actions{flex-wrap:wrap;align-items:center;gap:2px 12px;margin-top:2px;display:none}.is-editing .row-actions{display:flex}.link-btn{appearance:none;min-width:24px;min-height:32px;font:inherit;color:var(--muted);text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:6px 1px;font-size:.8125rem}.link-btn[aria-disabled=true]{opacity:.5;cursor:default;text-decoration:none}.grip{appearance:none;width:32px;height:32px;color:var(--muted);cursor:grab;touch-action:none;background:0 0;border:0;border-radius:6px;place-items:center;margin-left:-8px;padding:0;display:grid}.is-dragging{opacity:.6}.is-dragging .grip{cursor:grabbing}.goals-step{padding:0}.row-step .row-view{grid-template-columns:28px minmax(0,1fr);gap:12px;padding:12px 0;position:relative}.row-step+.row-step{border-top:0}.row-step:not(:last-child) .row-view:before{content:"";background:var(--line);width:2px;position:absolute;top:40px;bottom:-12px;left:13px}.step-num{border:1.5px solid var(--control);width:28px;height:28px;font-family:var(--mono);color:var(--muted);background:var(--bg);border-radius:50%;place-items:center;font-size:.8125rem;display:grid;position:relative}.is-next .step-num{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.is-done .step-num{border-color:var(--done);background:var(--done);color:var(--on-done)}.is-opt .step-num{border-style:dashed}.step-head{grid-template-columns:24px minmax(0,1fr);align-items:start;gap:10px;display:grid}.row-step .row-label{font-weight:600;display:block}.row-step .row-label .t{margin-right:8px;font-weight:600}.row-step .n{max-width:64ch;display:block}.badge{font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);white-space:nowrap;vertical-align:1px;border-radius:999px;padding:1px 8px;font-size:.6875rem;font-weight:500;display:inline-block}.step-meta{font-family:var(--mono);color:var(--muted);flex-wrap:wrap;gap:2px 14px;font-size:.75rem;display:flex}.step-meta .tag{color:var(--fg)}.path-h{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:22px;padding-bottom:4px;font-size:.75rem;font-weight:500}.row-skip .row-view{grid-template-columns:28px minmax(0,1fr);gap:12px;padding:7px 0}.row-skip+.row-skip{border-top:0}.row-skip .row-label{cursor:default}.skip-mark{color:var(--muted);justify-items:center;padding-top:3px;display:grid}.empty{color:var(--muted);padding:6px 0;font-size:.8438rem}.list-controls{margin-top:6px}.list-buttons{justify-content:space-between;align-items:center;gap:12px;display:flex}.btn{appearance:none;border:1px solid var(--control);min-height:36px;color:var(--fg);font:inherit;cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:6px 12px;font-size:.875rem;font-weight:500;display:inline-flex}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-quiet,.btn-add{color:var(--muted);border-color:#0000;padding-inline:8px}.btn-add{color:var(--fg);margin-left:-8px}.btn-quiet[aria-pressed=true]{color:var(--fg);background:var(--surface-hover);border-color:var(--line)}.goal-form{gap:12px;padding:12px 0;display:grid}.row .goal-form{padding:12px 0 14px}.field{gap:4px;min-width:0;display:grid}.field label{font-size:.8125rem;font-weight:500}.field input,.field textarea{border:1px solid var(--control);background:var(--surface);width:100%;min-height:40px;color:var(--fg);font:inherit;resize:vertical;border-radius:8px;padding:8px 10px;font-size:1rem}.field [aria-invalid=true]{border-color:var(--danger);border-width:2px}.field-error{color:var(--danger);font-size:.8125rem}.form-actions{flex-wrap:wrap;gap:8px;display:flex}.notice{left:50%;bottom:max(16px, env(safe-area-inset-bottom));background:var(--notice-bg);width:max-content;max-width:calc(100vw - 32px);color:var(--notice-fg);z-index:20;border-radius:10px;align-items:center;gap:12px;padding:8px 14px;font-size:.8438rem;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px oklch(0% 0 0/.22)}.notice.is-idle{opacity:0;pointer-events:none;transform:translate(-50%,6px)}.notice[data-tone=error] .notice-text{color:var(--notice-danger)}.notice-action{appearance:none;min-height:28px;font:inherit;color:var(--notice-action);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;flex:none;padding:2px 0;font-weight:600;text-decoration:underline}.notice :focus-visible{outline-color:currentColor}.load-state{max-width:420px;color:var(--muted);justify-items:start;gap:12px;margin:20vh auto 0;padding:0 16px;display:grid}.login{width:min(100%,360px);padding:max(18vh, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 24px max(16px, env(safe-area-inset-left));gap:18px;margin:0 auto;display:grid}.login h1{font-size:2.125rem}.login-form{gap:12px;display:grid}.login-message{color:var(--muted);min-height:21px;font-size:.875rem}.login-message.is-error{color:var(--danger)}.login-form .btn{min-height:44px}@media (pointer:coarse){.btn{min-height:44px}.link-btn{min-height:40px}.grip{width:40px;height:40px}}@media (width<=820px){.masthead,.grid{grid-template-columns:minmax(0,1fr)}.masthead{margin-bottom:24px}.topbar{margin-bottom:18px}.sec-body{padding-left:0}}@media (prefers-reduced-motion:no-preference){.fill{transition:transform .24s cubic-bezier(.23,1,.32,1)}.row input[type=checkbox]{transition:transform .12s ease-out}.row input[type=checkbox]:active{transform:scale(.96)}.row input[type=checkbox]:after{transition:opacity .1s ease-out}.btn{transition:transform .15s ease-out}.btn:active{transform:scale(.96)}.sec>summary .icon{transition:transform .12s ease-out}.notice{transition:opacity .15s ease-out,transform .15s ease-out}}@media (prefers-reduced-motion:reduce){.notice{transition:opacity .12s ease-out}.notice.is-idle{transform:translate(-50%)}}@media (forced-colors:active){.row input[type=checkbox]:checked{background:highlight;border-color:highlight}.row input[type=checkbox]:after{border-color:highlighttext}.fill,.dot:after{background:highlight}.bar,.sec-bar,.dot{border:1px solid canvastext}}
