.checks{margin:var(--s-4) 0 0}.checks ul{list-style:none;margin:0 0 var(--s-2);padding:0;display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-3)}.checks li{display:inline-flex;align-items:center;gap:var(--s-1)}.check{display:inline-flex;align-items:center;gap:var(--s-2);border:1px solid var(--c-line);background:var(--c-surface);border-radius:999px;padding:var(--s-1) var(--s-3);font-size:var(--fz-sm);color:var(--c-ink-soft)}.check-box{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid var(--c-line-strong);border-radius:4px;font-size:11px;line-height:1}.check.on{background:var(--c-accent-soft);border-color:var(--c-accent);color:var(--c-ink)}.check.on .check-box{background:var(--c-accent);border-color:var(--c-accent);color:#fff}.check-edit{color:var(--c-ink-faint);font-size:var(--fz-xs)}.checks-foot{display:flex;align-items:center;gap:var(--s-4)}.checks-empty{margin:var(--s-4) 0 0}.checks-empty .link.small,.checks-foot .link.small{color:var(--c-ink-faint);font-size:var(--fz-sm)}.check-add{border-top:1px solid var(--c-line);padding-top:var(--s-3);display:flex;flex-direction:column;gap:var(--s-2)}.week-checks{margin-top:var(--s-6)}.week-checks h2{font-size:var(--fz-md);margin:0 0 var(--s-4)}.check-row{display:flex;align-items:center;gap:var(--s-4);padding:var(--s-2) 0}.check-row+.check-row{border-top:1px solid var(--c-line)}.check-row .check-name{flex:1 1 auto;min-width:0;font-size:var(--fz-md);color:var(--c-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.check-days{display:flex;gap:var(--s-2)}.check-day{display:flex;flex-direction:column;align-items:center;gap:3px;width:34px}.check-dow{font-size:var(--fz-xs);color:var(--c-ink-faint)}.check-cell{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--r-2);border:1px solid var(--c-line);background:var(--c-surface);font-size:var(--fz-sm);color:var(--c-ink-faint)}.check-cell.done{background:var(--c-accent);border-color:var(--c-accent);color:#fff}.check-cell.future,.check-cell.skip{background:var(--c-surface-sunk);border-style:dashed;color:transparent}.check-day.today .check-dow{color:var(--c-accent)}@media (max-width: 560px){.check-row{flex-direction:column;align-items:flex-start;gap:var(--s-2)}}.datepick{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.datepick-face{height:var(--ctl-h);padding:0 var(--ctl-pad-x);font:inherit;font-size:var(--ctl-fz);color:var(--c-ink);background:var(--c-surface);border:1px solid var(--c-line-strong);border-radius:var(--r-2);cursor:pointer}.datepick-face.empty{color:var(--c-ink-faint)}.datepick-cal{position:absolute;top:calc(100% + 4px);left:0;z-index:20;width:300px;max-width:calc(100vw - 32px);padding:var(--s-3);background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-2);box-shadow:var(--shadow-2, var(--shadow-1))}.datepick-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-2);font-size:var(--fz-sm)}.datepick-head button{width:32px;height:32px;font-size:var(--fz-lg);color:var(--c-ink-soft);background:none;border:0;border-radius:var(--r-1);cursor:pointer}.datepick-head button:hover{background:var(--c-surface-sunk)}.datepick-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}.datepick-dow{padding:var(--s-1) 0;font-size:var(--fz-xs);color:var(--c-ink-faint)}.datepick-day{height:36px;font:inherit;font-size:var(--fz-sm);color:var(--c-ink);background:none;border:0;border-radius:var(--r-1);cursor:pointer}.datepick-day:hover:not(:disabled){background:var(--c-surface-sunk)}.datepick-day:disabled{color:var(--c-line-strong);cursor:default}.datepick-day.today{box-shadow:inset 0 0 0 1px var(--c-line-strong)}.datepick-day.on{color:var(--c-surface);background:var(--c-accent)}.timepick{width:5.5em;text-align:center;font-variant-numeric:tabular-nums}.timepick.bad{border-color:var(--c-accent)}.session{display:grid;grid-template-columns:64px minmax(0,1fr);gap:var(--s-4);padding:var(--s-4);background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-3)}.session+.session{margin-top:var(--s-3)}.session.big{border-color:var(--c-line-strong);box-shadow:var(--shadow-1);padding:var(--s-5)}.session.done{background:var(--c-surface-sunk);border-style:dashed}.session-time{display:flex;flex-direction:column;gap:2px;font-variant-numeric:tabular-nums}.t-start{font-size:var(--fz-md);color:var(--c-ink)}.t-end{font-size:var(--fz-sm);color:var(--c-ink-faint)}.session-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1) var(--s-3);font-size:var(--fz-sm);color:var(--c-ink-faint)}.session-title{margin:var(--s-1) 0 0;font-family:var(--f-title);font-size:var(--fz-md);line-height:1.4}.session.big .session-title{font-size:var(--fz-lg)}.session.done .session-title{color:var(--c-ink-soft)}.check{color:var(--c-accent)}.session-detail{margin:2px 0 0;font-size:var(--fz-sm);color:var(--c-ink-soft)}.session-actions{display:flex;align-items:center;gap:var(--s-3);margin-top:var(--s-3)}.session-menu{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--c-line)}.menu-hint{flex:1 0 100%;margin:0;font-size:var(--fz-sm);color:var(--c-ink-faint)}.move-form{margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--c-line)}.mf-row{display:grid;grid-template-columns:48px minmax(0,1fr);gap:var(--s-3);align-items:start;margin-bottom:var(--s-3)}.mf-label{padding-top:6px;font-size:var(--fz-sm);color:var(--c-ink-soft)}.choices.times .pick{font-variant-numeric:tabular-nums}@media (max-width: 560px){.session{grid-template-columns:52px minmax(0,1fr);gap:var(--s-3);padding:var(--s-3)}.mf-row{grid-template-columns:minmax(0,1fr);gap:var(--s-1)}}.session.compact{padding-top:var(--s-2);padding-bottom:var(--s-2)}.session.compact .session-title{font-size:var(--fz-sm);font-family:var(--f-body);font-weight:600}.session.compact .session-actions{margin-top:var(--s-1)}.home .checks,.home .checks-empty{margin:var(--s-3) 0 var(--s-4)}.home .throw-box{margin-bottom:var(--s-5)}.home .empty{text-align:left}.today-list{margin-top:var(--s-2)}.goal-notices{display:flex;flex-direction:column;gap:var(--s-2);margin:var(--s-3) 0 var(--s-4)}.goal-notice{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2) var(--s-3);padding:var(--s-3);border:1px solid var(--c-line);border-left:3px solid var(--c-accent);border-radius:var(--r-2);background:var(--c-surface)}.goal-notice p{flex:1 1 18rem;margin:0;font-size:var(--fz-sm);line-height:1.6}.tomorrow{margin-top:var(--s-6);padding-top:var(--s-4);border-top:1px solid var(--c-line)}.tomorrow h2{margin:0 0 var(--s-3);font-size:var(--fz-md)}.tomorrow h2 .sub{margin-left:var(--s-2);font-family:var(--f-body);font-size:var(--fz-sm);font-weight:400;color:var(--c-ink-faint)}.schedule .screen-head{flex-wrap:wrap;gap:var(--s-3)}.sched-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3);margin:var(--s-3) 0 var(--s-4)}.pager,.confirm{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.confirm .why{margin:0}.week-cols{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--s-2)}.day-col{display:flex;flex-direction:column;min-width:0;padding:var(--s-2);background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-2)}.day-col.today{border-color:var(--c-accent)}.day-col.past{opacity:.6}.day-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--s-1);margin-bottom:var(--s-2);font-size:var(--fz-sm);color:var(--c-ink-soft)}.day-name b{font-family:var(--f-title);font-size:var(--fz-md);color:var(--c-ink)}.rest-tag{font-size:var(--fz-xs);color:var(--c-ink-faint)}.day-empty{margin:var(--s-2) 0;color:var(--c-line-strong);text-align:center}.day-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-1)}.slot{display:flex;flex-direction:column;align-items:flex-start;width:100%;gap:1px;padding:var(--s-1) var(--s-2);text-align:left;background:var(--c-accent-soft);border:1px solid transparent;border-radius:var(--r-2);cursor:pointer}.slot.on{border-color:var(--c-accent)}.slot.done{background:var(--c-surface-sunk);color:var(--c-ink-soft)}.slot-time{font-size:var(--fz-xs);color:var(--c-ink-faint);font-variant-numeric:tabular-nums}.slot-title{font-size:var(--fz-sm);line-height:1.35;color:var(--c-ink);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:keep-all}.slot-sub{font-size:var(--fz-xs);color:var(--c-ink-faint)}.day-total{margin:auto 0 0;padding-top:var(--s-2);font-size:var(--fz-xs);color:var(--c-ink-faint);text-align:right}.picked{margin-top:var(--s-4)}.picked-day{font-size:var(--fz-lg);margin-bottom:var(--s-3)}.month-head,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--s-1)}.month-head span{padding:var(--s-1);font-size:var(--fz-sm);color:var(--c-ink-faint);text-align:center}.mcell{display:flex;flex-direction:column;align-items:stretch;gap:2px;min-height:88px;padding:var(--s-1) var(--s-2);text-align:left;background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-2);cursor:pointer;overflow:hidden}.mcell.out{background:transparent;color:var(--c-ink-faint)}.mcell.today{border-color:var(--c-accent)}.mcell.on{box-shadow:0 0 0 2px var(--c-accent-soft)}.mnum{font-size:var(--fz-sm);font-variant-numeric:tabular-nums}.mline{font-size:var(--fz-xs);color:var(--c-ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mline.done{text-decoration:line-through;color:var(--c-ink-faint)}.mmore{font-size:var(--fz-xs);color:var(--c-ink-faint)}@media (max-width: 760px){.week-cols{grid-template-columns:minmax(0,1fr)}.day-col{display:grid;grid-template-columns:72px minmax(0,1fr);gap:var(--s-2)}.day-head{flex-direction:column;margin:0}.day-total{grid-column:2}.mcell{min-height:56px}.mline{display:none}.mcell:has(.mline):after{content:"";width:6px;height:6px;border-radius:50%;background:var(--c-accent)}}.slot[class*=ac-]{border-left:3px solid var(--ac, var(--c-line-strong));background:color-mix(in srgb,var(--ac, var(--c-ink-faint)) 9%,var(--c-surface))}.slot.done[class*=ac-]{background:var(--c-surface-sunk)}.slot .area-tag{align-self:flex-start;padding:0 6px;font-size:11px}.mline[class*=ac-]:before{content:"";display:inline-block;width:6px;height:6px;margin-right:4px;border-radius:50%;background:var(--ac, var(--c-ink-faint));vertical-align:1px}.plans .screen-head{margin-bottom:var(--s-4)}.area-group{margin-bottom:var(--s-6)}.area-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s-2) var(--s-3);margin-bottom:var(--s-3);padding-bottom:var(--s-2);border-bottom:1px solid var(--c-line)}.area-head h2{font-size:var(--fz-lg)}.area-sub{font-size:var(--fz-sm);color:var(--c-ink-faint)}.area-actions{margin-left:auto;display:flex;gap:var(--s-2)}.area-edit{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);width:100%}.area-edit input{flex:0 1 200px}.plan-row+.plan-row{margin-top:var(--s-3)}.plan-row.paused{background:var(--c-surface-sunk)}.plan-row.focus{border-color:var(--c-accent)}.plan-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s-2) var(--s-3)}.plan-top h3{margin:0;font-family:var(--f-title);font-size:var(--fz-md)}.kind-tag{font-size:var(--fz-xs);color:var(--c-ink-faint);border:1px solid var(--c-line);border-radius:999px;padding:1px var(--s-2)}.plan-sum{margin:var(--s-2) 0 0;font-size:var(--fz-sm);color:var(--c-ink-soft)}.plan-prog{margin:var(--s-1) 0 0;font-size:var(--fz-sm);color:var(--c-ink-faint);font-variant-numeric:tabular-nums}.plan-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);margin-top:var(--s-3)}.plan-actions .why{margin:0}.link.danger{color:var(--c-ink);font-weight:600}.plan-goal{margin:var(--s-1) 0 0;font-size:var(--fz-sm);color:var(--c-ink-faint)}.plan-sessions{margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--c-line)}.ps-row{display:grid;grid-template-columns:100px minmax(0,1fr);gap:var(--s-3);align-items:start}.ps-row+.ps-row{margin-top:var(--s-2)}.ps-date{padding-top:var(--s-3);font-size:var(--fz-sm);color:var(--c-ink-soft)}@media (max-width: 560px){.ps-row{grid-template-columns:minmax(0,1fr);gap:0}.ps-date{padding-top:0}}.settings{display:flex;flex-direction:column;gap:var(--s-4);max-width:640px}.drawer-card h2{font-size:var(--fz-md);margin-bottom:var(--s-3)}.settings .field{margin:0 0 var(--s-3)}.settings .field.row{display:flex;flex-wrap:wrap;gap:var(--s-4);align-items:flex-end}.settings .field.row label{display:inline-flex;align-items:center;gap:var(--s-2)}.field-label{display:block;font-size:var(--fz-sm);color:var(--c-ink-soft);margin-bottom:var(--s-1)}.settings .field.row .field-label{margin-bottom:0}.settings input[type=number]{width:64px}.unit{font-size:var(--fz-sm);color:var(--c-ink-soft)}.days{display:flex;gap:var(--s-2);flex-wrap:wrap}.day{width:36px;height:36px;border:1px solid var(--c-line-strong);border-radius:50%;background:var(--c-surface);color:var(--c-ink-faint);font-size:var(--fz-sm);line-height:1}.day.on{background:var(--c-accent-soft);border-color:var(--c-accent);color:var(--c-ink)}.settings .card.danger{margin-top:var(--s-6);border-top:1px solid var(--c-line-strong)}.settings .card.danger h2{color:var(--c-ink-soft)}.settings .primary.danger{background:var(--c-ink-soft);border-color:var(--c-ink-soft)}.fixed-list{list-style:none;margin:0 0 var(--s-4);padding:0}.fixed-list li{display:flex;align-items:baseline;gap:var(--s-3);padding:var(--s-2) 0;border-bottom:1px solid var(--c-line)}.fixed-time{font-variant-numeric:tabular-nums;color:var(--c-ink);white-space:nowrap}.fixed-name{flex:1}.fixed-days{font-size:var(--fz-sm);color:var(--c-ink-faint)}.fixed-edit{margin-top:var(--s-4);border-top:1px solid var(--c-line-strong);padding-top:var(--s-4)}.days-off{margin-top:var(--s-5);border-top:1px solid var(--c-line);padding-top:var(--s-4)}.days-off h3{margin:0 0 var(--s-2);font-family:var(--f-title);font-size:var(--fz-md)}.off-list{list-style:none;margin:0 0 var(--s-3);padding:0;display:flex;flex-wrap:wrap;gap:var(--s-2)}.off-list li{display:inline-flex;align-items:center;gap:var(--s-2);border:1px solid var(--c-line);border-radius:999px;padding:var(--s-1) var(--s-3);font-size:var(--fz-sm);color:var(--c-ink-soft)}.addplan .screen-head{margin-bottom:var(--s-4)}.addplan .said{margin:0 0 var(--s-4);padding:var(--s-3) var(--s-4);border-left:3px solid var(--c-line-strong);color:var(--c-ink-soft);font-size:var(--fz-sm);white-space:pre-line;max-height:160px;overflow:auto}.plan-card .kind-row{display:flex;flex-wrap:wrap;gap:var(--s-2);padding-bottom:var(--s-4);margin-bottom:var(--s-4);border-bottom:1px solid var(--c-line)}.pfield{display:grid;grid-template-columns:96px minmax(0,1fr);gap:var(--s-2) var(--s-4);align-items:start;margin-bottom:var(--s-4)}.pfield-label{padding-top:9px;font-size:var(--fz-sm);color:var(--c-ink-soft)}.pfield-body{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);min-width:0}.pfield-body>input:not([type=date]){flex:1 1 240px}.pfield-hint{flex:1 0 100%;margin:0;font-size:var(--fz-sm);color:var(--c-ink-faint)}.pfield.warn .pfield-label{color:var(--c-accent);font-weight:600}.pfield.warn .pfield-hint{color:var(--c-accent)}.field-note{font-size:var(--fz-sm);color:var(--c-ink-faint)}.area-input{flex:1 1 140px;max-width:200px}.parts{flex:1 0 100%;margin:0;padding:0;list-style:none;max-height:260px;overflow:auto;border:1px solid var(--c-line);border-radius:var(--r-2);counter-reset:part}.parts li{display:flex;gap:var(--s-3);padding:var(--s-2) var(--s-3);font-size:var(--fz-sm);counter-increment:part}.parts li+li{border-top:1px solid var(--c-line)}.parts li:before{content:counter(part);flex:0 0 22px;color:var(--c-ink-faint);font-variant-numeric:tabular-nums}.part-label{flex:1;min-width:0}.part-min{flex:0 0 auto;color:var(--c-ink-faint);font-variant-numeric:tabular-nums}.reasons{margin:var(--s-2) 0 0;padding:var(--s-3) 0 0;list-style:none;border-top:1px solid var(--c-line);font-size:var(--fz-sm);color:var(--c-ink-faint)}.reasons li+li{margin-top:var(--s-1)}.addplan .preview{margin-top:var(--s-4)}.addplan .preview h2{font-size:var(--fz-lg);margin-bottom:var(--s-3)}.weeks{list-style:none;margin:0;padding:0}.weeks li{display:grid;grid-template-columns:130px minmax(0,1fr);gap:var(--s-3);padding:var(--s-2) 0;align-items:baseline}.weeks li+li{border-top:1px solid var(--c-line)}.week-label{font-size:var(--fz-sm);color:var(--c-ink-soft);font-variant-numeric:tabular-nums}.week-slots{display:flex;flex-wrap:wrap;gap:var(--s-2)}.slot-chip{padding:3px var(--s-2);border:1px solid transparent;border-radius:var(--r-1, 4px);background:var(--c-accent-soft);font:inherit;font-size:var(--fz-sm);font-variant-numeric:tabular-nums;color:var(--c-ink);cursor:pointer}.slot-chip:hover{border-color:var(--c-line-strong)}.slot-chip.on{border-color:var(--c-accent)}.slot-chip.fixed{background:var(--c-surface);border-color:var(--c-accent);border-style:dashed}.preview-move{margin-top:var(--s-3);padding:var(--s-3);border:1px solid var(--c-line);border-radius:var(--r-2);background:var(--c-surface-sunk)}.preview-move-head{margin:0 0 var(--s-2);font-size:var(--fz-sm)}.parts.edit{max-height:420px}.parts.edit li{align-items:center;gap:var(--s-2)}.parts.edit .part-label{flex:1 1 8rem;min-width:0;height:var(--ctl-h-sm)}.parts.edit .stepper strong{min-width:5.5em;text-align:center;font-weight:500}.part-tools{display:flex;gap:var(--s-2);flex:0 0 auto}.week-count{font-size:var(--fz-sm);color:var(--c-ink-soft)}.warn-line{margin:var(--s-3) 0 0;font-size:var(--fz-sm);color:var(--c-accent)}.actions.end{justify-content:flex-end}@media (max-width: 560px){.pfield{grid-template-columns:minmax(0,1fr);gap:var(--s-1)}.pfield-label{padding-top:0}.weeks li{grid-template-columns:minmax(0,1fr);gap:var(--s-1)}}.pfield-body>input.short{flex:0 1 140px}.goals .card+.card{margin-top:var(--s-4)}.goal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3)}.goal-head h2{margin:var(--s-1) 0 0;font-size:var(--fz-lg)}.goal-sub{margin:2px 0 0;font-size:var(--fz-sm);color:var(--c-ink-faint)}.goal-tools{display:flex;gap:var(--s-2);flex:0 0 auto}.cascade{list-style:none;margin:var(--s-4) 0 0;padding:0}.cascade li{display:grid;grid-template-columns:88px minmax(0,1fr);gap:var(--s-3);padding:var(--s-2) 0;font-size:var(--fz-sm);border-top:1px solid var(--c-line)}.cascade li:nth-child(2) .lv{padding-left:8px}.cascade li:nth-child(3) .lv{padding-left:16px}.cascade li:nth-child(4) .lv{padding-left:24px}.cascade .lv{color:var(--c-ink-faint)}.goal .goal-notice{margin-top:var(--s-3)}.goal-notice{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2) var(--s-3);padding:var(--s-3);border:1px solid var(--c-line);border-left:3px solid var(--c-accent);border-radius:var(--r-2)}.goal-notice p{flex:1 1 16rem;margin:0;font-size:var(--fz-sm)}.unit-log{margin-top:var(--s-3)}.log-names{margin:0 0 var(--s-2);font-size:var(--fz-sm);line-height:1.9}.log-name{display:inline-flex;align-items:center;gap:2px;margin-right:var(--s-2);padding:0 0 0 var(--s-2);border-radius:999px;background:var(--c-surface-sunk)}.goal-form h2{margin:0 0 var(--s-3);font-size:var(--fz-lg)}.gf-row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:var(--s-3);align-items:center;padding:var(--s-2) 0}.gf-label{font-size:var(--fz-sm);color:var(--c-ink-soft)}.gf-amount{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3)}.unit-input{width:5em}.goal-form .area-input{flex:1 1 120px;max-width:180px}@media (max-width: 560px){.gf-row,.cascade li{grid-template-columns:minmax(0,1fr);gap:var(--s-1)}.cascade li .lv{padding-left:0!important}}.sync-chip{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2);margin:0 0 var(--s-4);padding:var(--s-1) var(--s-3);border:1px solid var(--c-line);border-radius:999px;background:var(--c-surface);color:var(--c-ink-soft);font-size:var(--fz-xs);width:fit-content;max-width:100%;transition:background .32s cubic-bezier(.32,.72,0,1),border-color .32s cubic-bezier(.32,.72,0,1)}.sync-dot{width:6px;height:6px;border-radius:50%;background:var(--c-ink-faint);transition:background .32s cubic-bezier(.32,.72,0,1)}.sync-synced .sync-dot{background:var(--c-done)}.sync-syncing .sync-dot,.sync-waking .sync-dot{background:var(--c-accent)}.sync-synced{background:var(--c-accent-soft);border-color:var(--c-accent-soft)}.sync-text{white-space:nowrap}.sync-note{display:inline-flex;align-items:center;gap:var(--s-2);color:var(--c-ink-faint)}.login-wrap{margin:0 0 var(--s-5)}.login-card{max-width:420px}.login-field{display:block;margin:0 0 var(--s-3)}.login-field span{display:block;font-size:var(--fz-sm);color:var(--c-ink-soft);margin-bottom:var(--s-1)}.login-field input{width:100%}.login-error{margin:0 0 var(--s-3);font-size:var(--fz-sm);color:var(--c-ink-soft)}.login-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--s-3)}.push-line{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2);margin:calc(var(--s-3) * -1) 0 var(--s-4);padding-left:var(--s-3);font-size:var(--fz-xs);color:var(--c-ink-faint)}.push-note{color:var(--c-ink-soft)}.nav-bar{display:flex;align-items:center;gap:var(--s-1);margin:0}.nav-tab{position:relative;border:none;background:none;padding:var(--s-2) var(--s-3) var(--s-3);font-family:var(--f-title);font-size:var(--fz-md);color:var(--c-ink-faint);transition:color .24s cubic-bezier(.32,.72,0,1)}.nav-tab:hover{color:var(--c-ink-soft)}.nav-tab.on{color:var(--c-ink)}.nav-tab.on:after{content:"";position:absolute;left:var(--s-3);right:var(--s-3);bottom:-1px;height:2px;background:var(--c-accent);border-radius:2px}@media (max-width: 480px){.nav-tab{padding:var(--s-2) var(--s-2) var(--s-3);font-size:var(--fz-sm)}}:root{--c-bg: #f7f5f0;--c-surface: #fffdf8;--c-surface-sunk: #f0ece3;--c-line: #e0d9cc;--c-line-strong: #c9bfae;--c-ink: #2b2723;--c-ink-soft: #6b6359;--c-ink-faint: #9a9287;--c-accent: #6b7f6e;--c-accent-soft: #e6ece5;--area-1: #3f7f8f;--area-2: #a8643a;--area-3: #5d7f55;--area-4: #8a5287;--area-5: #8f7a28;--area-6: #56649e;--c-done: #8a9a8c;--c-morning: #c2a878;--c-night: #7b8397;--c-weekend: #a3896f;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--r-1: 4px;--r-2: 8px;--r-3: 14px;--f-title: "Gowun Batang", serif;--f-body: "IBM Plex Sans KR", system-ui, sans-serif;--fz-xs: 12px;--fz-sm: 14px;--fz-md: 16px;--fz-lg: 20px;--fz-xl: 28px;--fz-2xl: 38px;--ctl-h: 38px;--ctl-h-sm: 32px;--ctl-fz: var(--fz-md);--ctl-pad-x: var(--s-3);--w-page: 1200px;--shadow-1: 0 1px 2px rgba(43, 39, 35, .06);--shadow-2: 0 4px 16px rgba(43, 39, 35, .08)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--c-bg);color:var(--c-ink);font-family:var(--f-body);font-size:var(--fz-md);line-height:1.65;letter-spacing:-.005em;word-break:keep-all;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--f-title);font-weight:700;line-height:1.35;letter-spacing:-.01em;margin:0}button{font-family:inherit;font-size:inherit;cursor:pointer}.screen-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-4)}.screen-head h1{font-size:var(--fz-xl)}.head-right{display:flex;align-items:center;gap:var(--s-3)}.gauge{font-size:var(--fz-sm);color:var(--c-ink-soft);background:var(--c-surface-sunk);border-radius:999px;padding:var(--s-1) var(--s-3);white-space:nowrap}.card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-3);padding:var(--s-5);box-shadow:var(--shadow-1)}.card h2{font-size:var(--fz-lg);margin-bottom:var(--s-4)}.lead{margin:0 0 var(--s-3)}.why{margin:calc(var(--s-2) * -1) 0 var(--s-4);font-size:var(--fz-sm);color:var(--c-ink-soft)}.muted{color:var(--c-ink-faint);font-weight:400}button.link{background:none;border:none;color:var(--c-ink-soft);text-decoration:underline;text-underline-offset:3px;padding:var(--s-1)}button.link.small{font-size:var(--fz-sm)}.actions{display:flex;gap:var(--s-3);flex-wrap:wrap;margin-top:var(--s-4)}.actions button,button.plain{background:var(--c-surface);border:1px solid var(--c-line-strong);border-radius:var(--r-2);padding:var(--s-2) var(--s-4);color:var(--c-ink)}button.primary,.throw-box button[type=submit]{background:var(--c-accent);border:1px solid var(--c-accent);color:#fff;border-radius:var(--r-2);padding:var(--s-2) var(--s-5)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible{outline:2px solid var(--c-accent);outline-offset:1px}input:not([type]),input[type=text],input[type=number],input[type=date],input[type=time],input[type=search],select,textarea{box-sizing:border-box;min-width:0;font-family:inherit;font-size:var(--ctl-fz);line-height:1.25;letter-spacing:normal;color:var(--c-ink);background-color:var(--c-surface);border:1px solid var(--c-line-strong);border-radius:var(--r-2);padding:0 var(--ctl-pad-x);-webkit-appearance:none;-moz-appearance:none;appearance:none}input:not([type]),input[type=text],input[type=number],input[type=date],input[type=time],input[type=search],select{height:var(--ctl-h)}textarea{padding:var(--s-2) var(--ctl-pad-x);line-height:1.55}input::placeholder,textarea::placeholder{color:var(--c-ink-faint);opacity:1}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--c-accent);outline-offset:1px;border-color:var(--c-accent)}input[type=number]{-moz-appearance:textfield;font-variant-numeric:tabular-nums}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=date],input[type=time]{font-variant-numeric:tabular-nums}input[type=date]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator{opacity:.45;cursor:pointer}input[type=date]::-webkit-datetime-edit,input[type=time]::-webkit-datetime-edit{padding:0}select{padding-right:calc(var(--ctl-pad-x) * 2 + 10px);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%239a9287' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--ctl-pad-x) center;cursor:pointer}input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:0 0 auto;width:18px;height:18px;margin:0;border:1px solid var(--c-line-strong);border-radius:4px;background:var(--c-surface);cursor:pointer;display:inline-grid;place-content:center}input[type=checkbox]:after{content:"";width:10px;height:6px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:translateY(-1px) rotate(-45deg);opacity:0}input[type=checkbox]:checked{background:var(--c-accent);border-color:var(--c-accent)}input[type=checkbox]:checked:after{opacity:1}details>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:var(--s-2)}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .16s ease}details[open]>summary:before{transform:rotate(45deg)}button.primary,button.plain,.throw-box button[type=submit]{box-sizing:border-box;min-height:var(--ctl-h);font-size:var(--fz-sm);line-height:1.25}.pick{box-sizing:border-box;min-height:var(--ctl-h-sm);line-height:1.25}.chips{display:flex;flex-wrap:wrap;gap:var(--s-2);list-style:none;margin:0;padding:0}.chip{background:var(--c-surface-sunk);border:1px solid var(--c-line);border-radius:999px;padding:var(--s-1) var(--s-3);font-size:var(--fz-sm);color:var(--c-ink-soft)}.chip.whole{background:var(--c-accent-soft);border-color:var(--c-accent);color:var(--c-ink)}.throw-box{display:flex;align-items:flex-end;gap:var(--s-2)}.throw-box textarea{flex:1 1 auto;min-width:0;min-height:var(--ctl-h);resize:none;line-height:1.5}.throw-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--s-3)}.field label,.field.row label{display:flex;align-items:center;gap:var(--s-3);min-width:0}.field-label{flex:0 0 auto;font-size:var(--fz-sm);color:var(--c-ink-soft);white-space:nowrap}.why{margin:var(--s-1) 0 var(--s-4);font-size:var(--fz-sm);line-height:1.6;color:var(--c-ink-faint)}.choices{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.pick{padding:var(--s-2) var(--s-3);border:1px solid var(--c-line-strong);border-radius:var(--r-2);background:var(--c-surface);color:var(--c-ink-soft);font-size:var(--fz-sm);cursor:pointer}.pick.on{background:var(--c-accent-soft);border-color:var(--c-accent);color:var(--c-ink)}.stepper{display:inline-flex;align-items:center;gap:var(--s-2)}.stepper button{box-sizing:border-box;min-width:var(--ctl-h);height:var(--ctl-h);background:var(--c-surface);border:1px solid var(--c-line-strong);border-radius:var(--r-2);color:var(--c-ink-soft);font-size:var(--fz-md)}.stepper strong{min-width:4.5em;text-align:center;font-variant-numeric:tabular-nums}.note{margin:0 0 var(--s-4);font-size:var(--fz-sm);color:var(--c-ink-soft);background:var(--c-surface-sunk);border-radius:var(--r-2);padding:var(--s-2) var(--s-3)}.card.danger{margin-top:var(--s-6);border-top:1px solid var(--c-line-strong)}.card.danger h2{color:var(--c-ink-soft)}button.primary.danger{background:var(--c-ink-soft);border-color:var(--c-ink-soft)}.card+.card{margin-top:var(--s-4)}.cap-row{display:grid;grid-template-columns:96px auto;align-items:center;gap:var(--s-4);margin-top:var(--s-3)}.cap-label{font-size:var(--fz-sm);color:var(--c-ink-soft)}.area-tag{display:inline-flex;align-items:center;gap:5px;padding:1px 8px;border-radius:999px;font-size:var(--fz-xs);font-weight:600;line-height:1.6;white-space:nowrap;color:var(--ac, var(--c-ink-soft));background:color-mix(in srgb,var(--ac, var(--c-ink-soft)) 13%,transparent)}.area-tag:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.ac-1{--ac: var(--area-1)}.ac-2{--ac: var(--area-2)}.ac-3{--ac: var(--area-3)}.ac-4{--ac: var(--area-4)}.ac-5{--ac: var(--area-5)}.ac-6{--ac: var(--area-6)}.tabs{display:flex;gap:var(--s-1);margin:var(--s-3) 0 var(--s-2);border-bottom:1px solid var(--c-line)}.tab{padding:var(--s-2) var(--s-3);font:inherit;font-size:var(--fz-sm);color:var(--c-ink-faint);background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer}.tab.on{color:var(--c-ink);font-weight:600;border-bottom-color:var(--c-accent)}.app{max-width:var(--w-page);margin:0 auto;padding:var(--s-6) var(--s-5) var(--s-8)}.screen-stub{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-3);padding:var(--s-6);box-shadow:var(--shadow-1)}.screen-stub h1{font-size:var(--fz-xl);margin-bottom:var(--s-3)}.screen-stub p{color:var(--c-ink-soft);margin:0 0 var(--s-4)}.nav{display:flex;gap:var(--s-3);margin-top:var(--s-5)}.nav button{background:var(--c-surface);border:1px solid var(--c-line-strong);border-radius:var(--r-2);padding:var(--s-2) var(--s-4);color:var(--c-ink)}.nav button:hover{background:var(--c-accent-soft)}@media (max-width: 720px){.app{padding:var(--s-4) var(--s-3) var(--s-7)}}.app-top{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-4);margin:0 0 var(--s-5);border-bottom:1px solid var(--c-line)}.app-status{display:flex;align-items:center;gap:var(--s-3);padding-bottom:var(--s-2)}.app-status .sync-chip,.app-status .push-line{margin:0}@media (max-width: 560px){.app-top{flex-wrap:wrap}.app-status{order:-1;width:100%;justify-content:flex-end;padding-bottom:0}}
