@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1014;--surface:#17191f;--surface-2:#1e2129;--surface-3:#2a2e39;--overlay:#05060ab3;--line:#262a34;--line-strong:#383d4a;--text:#f1f2f6;--text-2:#b6bcca;--text-3:#858da0;--pos:#5bd3a0;--neg:#ff8794;--warn:#f2bb64;--accent:#84adff;--on-accent:#0f1320;--c-dashboard:#ecd58a;--c-tasks:#84adff;--c-habits:#b79cff;--c-health:#f490b6;--c-projects:#f59a86;--c-settings:#b4bfd3;--s1:#7eaff4;--s2:#e7ce73;--r-s:8px;--r-m:12px;--r-l:16px;--r-xl:22px;--r-full:999px;--control:40px;--control-sm:32px;--font:"Inter Variable", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-title:28px;--shadow-pop:0 12px 40px #00000059, 0 2px 8px #0003;--shadow-modal:0 32px 96px #00000080;--edge:inset 0 1px 0 #ffffff08;--ease:cubic-bezier(.2, .7, .3, 1);--dur:.16s;--sidebar:244px;--dock:0px;--page-x:32px}:root,[data-sec]{--accent-soft:color-mix(in srgb, var(--accent) 13%, var(--surface));--accent-line:color-mix(in srgb, var(--accent) 36%, var(--surface));--ring:0 0 0 3px color-mix(in srgb, var(--accent) 24%, transparent);--pos-soft:color-mix(in srgb, var(--pos) 14%, var(--surface));--neg-soft:color-mix(in srgb, var(--neg) 14%, var(--surface));--warn-soft:color-mix(in srgb, var(--warn) 14%, var(--surface))}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f2f4f8;--surface:#fff;--surface-2:#f0f2f7;--surface-3:#e1e6ef;--overlay:#1b253a66;--line:#e1e6ee;--line-strong:#c3cbd9;--text:#172135;--text-2:#46546c;--text-3:#67768d;--pos:#12794f;--neg:#c2334f;--warn:#94600f;--accent:#2f5fd0;--on-accent:#fff;--c-dashboard:#8f6510;--c-tasks:#2f5fd0;--c-habits:#7450c4;--c-health:#b93b74;--c-projects:#b84e3b;--c-settings:#526480;--s1:#2f66d4;--s2:#a17f13;--shadow-pop:0 12px 40px #24365826, 0 2px 8px #24365814;--shadow-modal:0 32px 96px #24365840;--edge:0 1px 2px #2436580a}:root[data-sec=dashboard]{--accent:var(--c-dashboard)}:root[data-sec=tasks]{--accent:var(--c-tasks)}:root[data-sec=habits]{--accent:var(--c-habits)}:root[data-sec=health]{--accent:var(--c-health)}:root[data-sec=projects]{--accent:var(--c-projects)}:root[data-sec=settings]{--accent:var(--c-settings)}@media (max-width:1023px){:root{--page-x:20px;--dock:calc(76px + env(safe-area-inset-bottom,0px))}}@media (max-width:639px){:root{--control:44px;--control-sm:36px;--page-x:16px;--fs-title:26px}}*,:before,:after{box-sizing:border-box}*{margin:0}html{background:var(--bg);-webkit-text-size-adjust:100%;height:100%;scroll-padding-bottom:var(--dock)}body{min-height:100%;font-family:var(--font);font-size:var(--fs-md);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;-webkit-tap-highlight-color:transparent;line-height:1.45;overflow-x:hidden}#root{min-height:100dvh}img,svg{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;text-align:inherit;background:0 0;border:0;padding:0}button:disabled{cursor:default}a{color:inherit;text-decoration:none}h1,h2,h3{font-weight:600;line-height:1.2}p{text-wrap:pretty}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:color-mix(in srgb, var(--accent) 32%, transparent)}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.t-xs{font-size:var(--fs-xs)}.t-sm{font-size:var(--fs-sm)}.dim{color:var(--text-2)}.faint{color:var(--text-3)}.pos{color:var(--pos)}.neg{color:var(--neg)}.warn{color:var(--warn)}.w-500{font-weight:500}.num{font-variant-numeric:tabular-nums}.strike{color:var(--text-3);text-decoration:line-through}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.row{align-items:center;gap:12px;display:flex}.col{flex-direction:column;gap:12px;display:flex}.end{justify-content:flex-end}.grow{flex:auto;min-width:0}.gap-1{gap:4px}.gap-2{gap:8px}.gap-4{gap:16px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-delay:0s!important}}:root{--field:#101216}:root[data-theme=light]{--field:#fff}.btn{height:var(--control);border:1px solid var(--line-strong);border-radius:var(--r-m);background:var(--surface-2);color:var(--text);font-size:var(--fs-md);white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background var(--dur), border-color var(--dur), color var(--dur), transform 90ms;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:550;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:active:not(:disabled){transform:scale(.975)}.btn:disabled{opacity:.45}.btn svg{flex-shrink:0}.btn-primary{background:var(--accent);color:var(--on-accent);border-color:#0000}.btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent), var(--text) 14%)}.btn-ghost{color:var(--text-2);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-danger{border-color:color-mix(in srgb, var(--neg) 30%, var(--surface));background:var(--neg-soft);color:var(--neg)}.btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--neg) 22%, var(--surface))}.btn-sm{height:var(--control-sm);font-size:var(--fs-sm);border-radius:10px;gap:6px;padding:0 12px}.btn-icon{width:var(--control);padding:0}.btn-sm.btn-icon{width:var(--control-sm)}.btn-block{width:100%}.icon-btn{width:36px;height:36px;color:var(--text-3);transition:background var(--dur), color var(--dur);border-radius:10px;flex-shrink:0;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn.danger:hover{background:var(--neg-soft);color:var(--neg)}.link-btn{color:var(--accent);font-weight:550;font-size:var(--fs-sm)}.link-btn:hover{text-underline-offset:3px;text-decoration:underline}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.label{font-size:var(--fs-sm);color:var(--text-2);font-weight:500}.hint{font-size:var(--fs-xs);color:var(--text-3)}.input,.textarea,.sel-btn{width:100%;min-width:0;height:var(--control);border:1px solid var(--line-strong);border-radius:var(--r-m);background:var(--field);color:var(--text);transition:border-color var(--dur), box-shadow var(--dur);padding:0 12px}.input::placeholder,.textarea::placeholder{color:var(--text-3);opacity:1}.input:hover,.textarea:hover,.sel-btn:hover{border-color:color-mix(in srgb, var(--line-strong), var(--text) 18%)}.input:focus,.textarea:focus,.sel.is-open .sel-btn{border-color:var(--accent);box-shadow:var(--ring);outline:none}.sel-btn:focus-visible{border-color:var(--accent);box-shadow:var(--ring);outline:none}.textarea{resize:vertical;height:auto;min-height:76px;padding:10px 12px;line-height:1.45}.num-input{font-variant-numeric:tabular-nums}input[type=number]{-webkit-appearance:textfield;appearance:textfield}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}input[type=date],input[type=time]{-webkit-appearance:none;appearance:none;font-variant-numeric:tabular-nums;text-align:left}input[type=date]::-webkit-date-and-time-value{text-align:left}input[type=time]::-webkit-date-and-time-value{text-align:left}input::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer}:root:not([data-theme=light]) input::-webkit-calendar-picker-indicator{filter:invert()}.input-group{min-width:0;display:flex}.input-group .input{border-top-right-radius:0;border-bottom-right-radius:0}.input-group .addon{border:1px solid var(--line-strong);border-radius:0 var(--r-m) var(--r-m) 0;background:var(--surface-2);color:var(--text-3);font-size:var(--fs-sm);white-space:nowrap;border-left:0;place-items:center;padding:0 12px;display:grid}.search{position:relative}.search>svg{color:var(--text-3);pointer-events:none;position:absolute;top:50%;left:12px;translate:0 -50%}.search .input{padding-left:38px}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:12px;display:grid}.sel{min-width:0;position:relative}.sel-btn{text-align:left;justify-content:space-between;align-items:center;gap:8px;display:flex}.sel-caret{color:var(--text-3);transition:rotate var(--dur);flex-shrink:0}.sel.is-open .sel-caret{rotate:180deg}.sel.is-disabled{opacity:.5}.sel-pop,.menu-pop{border:1px solid var(--line-strong);background:var(--surface-2);box-shadow:var(--shadow-pop);animation:pop-in .12s var(--ease);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.sel-search{border-bottom:1px solid var(--line);color:var(--text-3);align-items:center;gap:8px;padding:10px 12px;display:flex}.sel-search input{background:0 0;border:0;outline:none;flex:1;min-width:0}.sel-list{padding:6px;overflow-y:auto}.sel-empty{color:var(--text-3);font-size:var(--fs-sm);padding:12px}.opt,.menu-item{width:100%;min-height:38px;color:var(--text);border-radius:9px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.opt.is-active,.menu-item:hover{background:var(--surface-3);outline:none}.menu-item:focus-visible{background:var(--surface-3);outline:none}.opt.is-picked{color:var(--accent)}.menu-pop{padding:6px}.menu-item{justify-content:flex-start}.menu-item.danger{color:var(--neg)}.checkbox{cursor:pointer;align-items:center;gap:10px;display:inline-flex}.checkbox input{opacity:0;pointer-events:none;position:absolute}.checkbox .box{border:1.5px solid var(--line-strong);background:var(--field);color:#0000;width:22px;height:22px;transition:background var(--dur), border-color var(--dur), color var(--dur), scale .12s var(--ease);border-radius:7px;flex-shrink:0;place-items:center;display:grid}.checkbox:hover .box{border-color:var(--accent)}.checkbox input:checked+.box{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.checkbox input:active+.box{scale:.88}.checkbox input:focus-visible+.box{outline:2px solid var(--accent);outline-offset:2px}.switch{cursor:pointer;align-items:center;gap:10px;display:inline-flex}.switch input{opacity:0;pointer-events:none;position:absolute}.switch .track{border-radius:var(--r-full);background:var(--surface-3);width:40px;height:24px;transition:background var(--dur);flex-shrink:0;position:relative}.switch .track:after{content:"";background:var(--text-2);width:18px;height:18px;transition:translate var(--dur) var(--ease), background var(--dur);border-radius:50%;position:absolute;top:3px;left:3px}.switch input:checked+.track{background:var(--accent)}.switch input:checked+.track:after{background:var(--on-accent);translate:16px}.switch input:focus-visible+.track{outline:2px solid var(--accent);outline-offset:2px}.seg{border:1px solid var(--line);border-radius:var(--r-m);background:var(--field);gap:2px;max-width:100%;padding:3px;display:inline-flex}.seg-item{height:calc(var(--control) - 8px);color:var(--text-3);font-size:var(--fs-sm);text-align:center;white-space:nowrap;transition:background var(--dur), color var(--dur);border-radius:9px;flex:1;padding:0 14px;font-weight:550}.seg-item:hover{color:var(--text)}.seg-item.is-active{background:var(--surface-3);color:var(--text)}.seg.block{display:flex}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line-strong);background:var(--field);min-width:42px;height:36px;color:var(--text-3);font-size:var(--fs-sm);transition:background var(--dur), border-color var(--dur), color var(--dur);border-radius:10px;place-items:center;padding:0 10px;font-weight:550;display:inline-grid}.chip:hover{color:var(--text)}.chip.is-active{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent)}.chips.week{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.chips.week .chip{min-width:0;padding:0}fieldset.field{border:0;padding:0}fieldset.field>legend{margin-bottom:6px;padding:0}.more{border-top:1px solid var(--line);padding-top:4px}.more>summary{height:40px;color:var(--text-2);font-size:var(--fs-sm);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-weight:550;list-style:none;display:flex}.more>summary::-webkit-details-marker{display:none}.more>summary svg{color:var(--text-3);transition:rotate var(--dur)}.more[open]>summary svg{rotate:90deg}.more>summary:hover{color:var(--text)}.more-body{flex-direction:column;gap:16px;padding:6px 0 4px;display:flex}.card{border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);min-width:0;box-shadow:var(--edge);flex-direction:column;gap:16px;padding:20px;display:flex}.card.flush{gap:0;padding:0;overflow:hidden}.card.flush>.card-head{padding:18px 20px 14px}.card-head{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.card-title{font-size:var(--fs-lg);letter-spacing:-.01em;font-weight:600}.card-sub{font-size:var(--fs-sm);color:var(--text-3);margin-top:2px}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.stats.two{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);min-width:0;box-shadow:var(--edge);flex-direction:column;gap:6px;padding:16px 18px;display:flex}.stat-label{font-size:var(--fs-sm);color:var(--text-2);justify-content:space-between;align-items:center;gap:8px;display:flex}.stat-label svg{color:var(--accent);flex-shrink:0}.stat-value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:600;line-height:1.15}.stat-value small{font-size:var(--fs-sm);letter-spacing:0;color:var(--text-3);margin-left:6px;font-weight:450}.stat-sub{font-size:var(--fs-xs);color:var(--text-3)}.badge{background:var(--surface-3);height:22px;color:var(--text-2);font-size:var(--fs-xs);white-space:nowrap;border-radius:7px;align-items:center;gap:5px;padding:0 8px;font-weight:550;display:inline-flex}.badge.pos{background:var(--pos-soft);color:var(--pos)}.badge.neg{background:var(--neg-soft);color:var(--neg)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.dot{background:var(--text-3);border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.bar{border-radius:var(--r-full);background:var(--surface-3);height:6px;overflow:hidden}.bar>i{border-radius:inherit;background:var(--accent);height:100%;transition:width .26s var(--ease);display:block}.empty{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:44px 20px;display:flex}.empty-icon{background:var(--accent-soft);width:56px;height:56px;color:var(--accent);border-radius:18px;place-items:center;display:grid}.empty-title{font-size:var(--fs-lg);font-weight:600}.empty-text{max-width:340px;color:var(--text-3);font-size:var(--fs-sm);margin-top:4px}.empty.compact{color:var(--text-3);font-size:var(--fs-sm);gap:6px;padding:18px 12px}.lrow{border-radius:10px;align-items:center;gap:12px;min-width:0;min-height:44px;padding:8px 10px;display:flex}.show-more{justify-content:space-between;align-items:center;gap:12px;padding-top:4px;display:flex}.divider{background:var(--line);height:1px}.modal-backdrop{z-index:100;background:var(--overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);place-items:center;padding:24px;animation:.14s ease-out fade;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.modal{border:1px solid var(--line-strong);border-radius:var(--r-xl);background:var(--surface);width:min(480px,100%);max-height:min(760px,100dvh - 48px);box-shadow:var(--shadow-modal);animation:modal-in .2s var(--ease);flex-direction:column;display:flex}.modal.narrow{width:min(400px,100%)}.modal.wide{width:min(720px,100%)}.modal-head{justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 16px 14px 24px;display:flex}.modal-title{letter-spacing:-.015em;font-size:18px;font-weight:600;line-height:36px}.modal-sub{font-size:var(--fs-sm);color:var(--text-3);margin-top:-2px}.modal-body{overscroll-behavior:contain;flex-direction:column;gap:16px;padding:4px 24px 24px;display:flex;overflow-y:auto}.modal-foot{border-top:1px solid var(--line);align-items:center;gap:10px;padding:14px 24px;display:flex}.modal-foot .spacer{flex:1}@media (max-width:639px){.modal-backdrop{place-items:end center;padding:0}.modal,.modal.narrow,.modal.wide{width:100%;max-height:calc(100dvh - 28px - env(safe-area-inset-top,0px));border-radius:var(--r-xl) var(--r-xl) 0 0;border-width:1px 0 0;animation-name:sheet-in}.modal-head{padding:18px 12px 10px 20px}.modal-body{padding:4px 20px 20px}.modal-foot{padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px))}.modal-foot .spacer{display:none}.modal-foot .btn{flex:1}.modal-foot .btn-danger{flex:none}.input,.textarea,.sel-btn,.sel-search input{font-size:16px}}.toasts{left:50%;bottom:calc(var(--dock) + 20px);z-index:200;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:calc(100vw - 32px);display:flex;position:fixed;translate:-50%}.toast{border:1px solid var(--line-strong);background:var(--surface-2);max-width:100%;box-shadow:var(--shadow-pop);font-size:var(--fs-sm);pointer-events:auto;animation:toast-in .22s var(--ease);border-radius:14px;align-items:center;gap:10px;padding:10px 14px;font-weight:500;display:flex}.toast.ok svg{color:var(--pos)}.toast.err svg{color:var(--neg)}.toast svg{color:var(--text-3);flex-shrink:0}.chart{flex-direction:column;gap:12px;min-width:0;display:flex}.chart svg:focus,.chart .recharts-surface:focus,.chart .recharts-wrapper:focus{outline:none}.chart-tooltip{border:1px solid var(--line-strong);background:var(--surface-2);box-shadow:var(--shadow-pop);font-size:var(--fs-sm);border-radius:12px;padding:10px 12px}.chart-tooltip-title{color:var(--text-3);font-size:var(--fs-xs);margin-bottom:6px}.chart-tooltip-row{align-items:center;gap:8px;display:flex}.chart-tooltip-row strong{font-variant-numeric:tabular-nums;margin-left:auto;padding-left:16px;font-weight:600}.legend{font-size:var(--fs-xs);color:var(--text-2);flex-wrap:wrap;gap:6px 18px;display:flex}.legend-item{align-items:center;gap:8px;display:inline-flex}.legend-stroke{border-top:2.5px solid;border-radius:2px;width:18px}@keyframes fade{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(10px)scale(.985)}}@keyframes sheet-in{0%{transform:translateY(100%)}}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.app{min-height:100dvh;display:flex}.app>main{outline:none;flex:1;min-width:0}.app{max-width:1900px;margin-inline-start:auto;margin-inline-end:auto}@media (min-width:1901px){.app>.sidebar{border-left:1px solid var(--line)}}.skip-link{z-index:300;border-radius:var(--r-m);background:var(--accent);color:var(--on-accent);padding:10px 14px;font-weight:600;position:fixed;top:8px;left:8px;translate:0 -200%}.skip-link:focus{translate:0}.brand{letter-spacing:-.02em;align-items:center;gap:10px;font-size:17px;font-weight:650;display:inline-flex}.brand img{border-radius:9px}.splash{place-items:center;min-height:100dvh;animation:.4s ease-out .25s backwards fade;display:grid}.avatar{border:1px solid var(--line-strong);background:var(--surface-2);width:36px;height:36px;color:var(--text-2);font-size:var(--fs-xs);letter-spacing:.02em;border-radius:50%;flex-shrink:0;place-items:center;font-weight:650;display:inline-grid}.sidebar{width:var(--sidebar);border-right:1px solid var(--line);background:color-mix(in srgb, var(--surface) 55%, var(--bg));flex-direction:column;flex-shrink:0;height:100dvh;padding:20px 12px 12px;display:flex;position:sticky;top:0}.sidebar-brand{border-radius:10px;align-self:flex-start;margin:0 8px 24px}.sidebar-nav{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar-foot{border-top:1px solid var(--line);flex-direction:column;gap:2px;padding-top:12px;display:flex}.nav-item{--c:var(--text-3);border-radius:var(--r-m);height:42px;color:var(--text-2);transition:background var(--dur), color var(--dur);align-items:center;gap:12px;padding:0 10px;font-weight:500;display:flex}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-icon{background:color-mix(in srgb, var(--c) 14%, transparent);width:30px;height:30px;color:var(--c);transition:background var(--dur), color var(--dur);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.nav-item.is-active{background:color-mix(in srgb, var(--c) 12%, var(--surface));color:var(--text);font-weight:600}.nav-item.is-active .nav-icon{background:var(--c);color:var(--on-accent)}.account{border-radius:var(--r-m);min-width:0;transition:background var(--dur);align-items:center;gap:10px;padding:8px;display:flex}.account:hover,.account.is-active{background:var(--surface-2)}.account>.grow{flex-direction:column;line-height:1.3;display:flex}.account strong{font-size:var(--fs-sm);font-weight:600}.account .grow>span{font-size:var(--fs-xs);color:var(--text-3)}.dock{display:none}@media (max-width:1023px){.sidebar{display:none}.dock{left:50%;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:50;border:1px solid var(--line-strong);background:color-mix(in srgb, var(--surface-2) 86%, transparent);width:min(100vw - 24px,520px);box-shadow:var(--shadow-pop);-webkit-backdrop-filter:blur(20px)saturate(1.4);border-radius:22px;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:2px;padding:6px;display:grid;position:fixed;translate:-50%}.dock-item{--c:var(--text-3);height:50px;color:var(--text-3);transition:background var(--dur), color var(--dur);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:3px;display:flex}.dock-item svg{transition:scale .2s var(--ease)}.dock-item:active svg{scale:.86}.dock-item span{font-size:11px;font-weight:550;display:none}.dock-item.is-active{background:color-mix(in srgb, var(--c) 16%, transparent);color:var(--c)}}@media (min-width:560px) and (max-width:1023px){.dock-item{height:56px}.dock-item span{display:block}}.page{width:100%;max-width:1280px;padding:32px var(--page-x) calc(48px + var(--dock));flex-direction:column;gap:20px;margin:0 auto;display:flex}@media (min-width:1700px){.page{max-width:1440px}}.page{animation:rise .24s var(--ease) backwards}.page-head{justify-content:space-between;align-items:flex-end;gap:16px;min-height:44px;display:flex}.page-head-main{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.page-back{margin-left:-8px}.page-kicker{font-size:var(--fs-sm);color:var(--text-3);margin-bottom:4px}.page-title{min-width:0;font-size:var(--fs-title);letter-spacing:-.035em;align-items:center;gap:12px;font-weight:650;line-height:1.15;display:flex}.page-title .dot{width:10px;height:10px}.page-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.page-avatar{display:none}@media (max-width:1023px){.page{padding-top:calc(20px + env(safe-area-inset-top,0px))}.page-avatar{display:inline-grid}}@media (max-width:639px){.page{gap:16px}.page-head{align-items:center}.page-actions .add-btn{border-radius:50%;width:40px;height:40px;padding:0}.page-actions .add-btn span{display:none}.page-avatar{width:40px;height:40px}}.sync-notice{left:50%;bottom:calc(var(--dock) + 16px);z-index:60;border:1px solid color-mix(in srgb, var(--warn) 34%, var(--surface));background:color-mix(in srgb, var(--warn) 10%, var(--surface-2));width:min(100vw - 24px,520px);box-shadow:var(--shadow-pop);font-size:var(--fs-sm);animation:toast-in .22s var(--ease);border-radius:16px;align-items:center;gap:12px;padding:12px 12px 12px 16px;display:flex;position:fixed;translate:-50%}.sync-notice>svg{color:var(--warn);flex-shrink:0}@media (min-width:1024px){.sync-notice{left:calc(50% + var(--sidebar) / 2);bottom:24px}}.auth{place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.auth-card{border:1px solid var(--line);border-radius:var(--r-xl);background:var(--surface);width:min(400px,100%);box-shadow:var(--edge), var(--shadow-modal);animation:modal-in .32s var(--ease);flex-direction:column;gap:18px;padding:28px;display:flex}.auth-head{flex-direction:column;gap:14px;display:flex}.auth-title{letter-spacing:-.03em;font-size:24px;font-weight:650}.auth-sub{color:var(--text-3);font-size:var(--fs-sm);margin-top:4px}.auth-or{color:var(--text-3);font-size:var(--fs-xs);align-items:center;gap:12px;display:flex}.auth-or:before,.auth-or:after{content:"";background:var(--line);flex:1;height:1px}.auth-pass{position:relative}.auth-pass .input{padding-right:44px}.auth-pass .icon-btn{position:absolute;top:50%;right:4px;translate:0 -50%}.auth-error{color:var(--neg);font-size:var(--fs-sm);gap:8px;display:flex}.auth-error:empty{display:none}.auth-error svg{flex-shrink:0;margin-top:2px}.auth-foot{font-size:var(--fs-sm);color:var(--text-3);justify-content:center;gap:6px;display:flex}@media (max-width:639px){.auth-card{padding:22px 20px}.auth .input{font-size:16px}}.narrow-only{display:none!important}@media (max-width:639px){.wide-only{display:none!important}.narrow-only{display:flex!important}.btn-collapse{border-radius:50%;width:40px;height:40px;padding:0}.btn-collapse span{display:none}.stats,.stats.two{border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);box-shadow:var(--edge);grid-template-columns:minmax(0,1fr);gap:0}.stat{box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 12px;padding:13px 16px;display:grid}.stat+.stat{border-top:1px solid var(--line)}.stat-label svg{display:none}.stat-value{text-align:right;grid-area:1/2/span 2;font-size:20px}.stat-sub{grid-column:1}}.banner{border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface);color:var(--text-2);font-size:var(--fs-sm);align-items:center;gap:10px;padding:12px 16px;display:flex}.banner svg{color:var(--text-3);flex-shrink:0}.heatmap{min-width:0}.period{border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface);align-items:center;gap:2px;padding:3px;display:flex}.period-label{min-width:132px;font-size:var(--fs-sm);text-align:center;padding:0 6px;font-weight:550}.period .icon-btn{width:32px;height:32px}.period .icon-btn:disabled{opacity:.35}.period .btn{margin-left:2px}.period.narrow-only .period-label{flex:1}.today-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.today-metric{--metric:var(--c-tasks);border:1px solid color-mix(in srgb, var(--metric) 24%, var(--surface));border-radius:var(--r-l);background:color-mix(in srgb, var(--metric) 8%, var(--surface));min-width:0;box-shadow:var(--edge);transition:background var(--dur), border-color var(--dur), transform 90ms;flex-direction:column;gap:8px;padding:18px 20px;display:flex}.today-metric:nth-child(2){--metric:var(--c-habits)}.today-metric.is-overdue{--metric:var(--neg)}.today-metric.is-overdue.is-clear{--metric:var(--pos)}.today-metric:hover{border-color:color-mix(in srgb, var(--metric) 42%, var(--surface));background:color-mix(in srgb, var(--metric) 13%, var(--surface))}.today-metric:active{transform:scale(.985)}.today-label{font-size:var(--fs-sm);color:var(--text-2);justify-content:space-between;align-items:center;gap:8px;display:flex}.today-label svg{color:var(--metric);flex-shrink:0}.today-value{letter-spacing:-.035em;color:var(--metric);font-variant-numeric:tabular-nums;font-size:30px;font-weight:600;line-height:1.1}.today-value small{font-size:var(--fs-md);letter-spacing:0;color:var(--text-3);margin-left:7px;font-weight:450}.today-note{font-size:var(--fs-xs);color:var(--text-3)}.dash-grid{grid-template-columns:minmax(0,1fr) 300px;align-items:stretch;gap:20px;display:grid}.dash-calendar{min-height:100%}.mcal{flex-direction:column;flex:1;display:flex}.mcal-head{border-bottom:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.mcal-head>span{text-align:center;font-size:var(--fs-xs);color:var(--text-3);padding:8px 4px}.mcal-grid{flex:1;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:1fr;display:grid}.mcal-day{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0;min-height:102px;transition:background var(--dur);flex-direction:column;align-items:stretch;gap:4px;padding:6px;display:flex}.mcal-day:nth-child(7n){border-right:0}.mcal-day:nth-last-child(-n+7){border-bottom:0}.mcal-day:hover{background:var(--surface-2)}.mcal-day.is-out>*{opacity:.38}.mcal-num{min-width:24px;height:22px;font-size:var(--fs-xs);text-align:center;color:var(--text-2);font-variant-numeric:tabular-nums;border-radius:7px;align-self:flex-start;padding:0 6px;line-height:22px}.mcal-day.is-today{background:color-mix(in srgb, var(--c-tasks) 6%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--c-tasks) 45%, transparent)}.mcal-day.is-today .mcal-num{background:var(--c-tasks);color:var(--on-accent);font-weight:650}.mcal-items{flex-direction:column;gap:2px;min-width:0;display:flex}.mcal-chip{border-left:2px solid var(--chip);background:color-mix(in srgb, var(--chip) 17%, var(--surface));min-width:0;font-size:var(--fs-xs);text-align:left;text-overflow:ellipsis;white-space:nowrap;border-radius:4px;padding:1px 6px;line-height:1.5;display:block;overflow:hidden}.mcal-chip.is-done{color:var(--text-3);text-decoration:line-through}.mcal-rest{font-size:var(--fs-xs);color:var(--text-3);text-align:left;padding-left:6px}.mcal-dots{display:none}.cmp{flex-direction:column;flex:1;margin-top:-6px;display:flex}.cmp-row{--row:var(--accent);border-bottom:1px solid var(--line);flex:1;grid-template-columns:minmax(0,1fr) auto;align-content:center;align-items:baseline;gap:4px 14px;padding:18px 0;display:grid}.cmp-row[data-key=tasks]{--row:var(--c-tasks)}.cmp-row[data-key=habits]{--row:var(--c-habits)}.cmp-row:last-child{border-bottom:0;padding-bottom:4px}.cmp-bars{grid-column:1/-1;gap:4px;margin-top:8px;display:grid}.cmp-bar{border-radius:var(--r-full);background:var(--surface-3);height:4px;transition:width .42s var(--ease)}.cmp-bar.is-now{background:var(--row)}.cmp-label{font-size:var(--fs-md);color:var(--text-2)}.cmp-now{letter-spacing:-.03em;text-align:right;font-size:24px;font-weight:600}.cmp-prev{font-size:var(--fs-xs);color:var(--text-3)}.cmp-delta{font-size:var(--fs-xs);justify-content:flex-end;align-items:center;gap:4px;font-weight:550;display:inline-flex}@media (max-width:960px){.dash-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:639px){.today-strip{gap:8px}.today-metric{border-radius:14px;gap:6px;padding:12px}.today-label{font-size:var(--fs-xs)}.today-label svg{display:none}.today-value{font-size:24px}.today-value small{font-size:var(--fs-xs);margin-left:4px}.today-note{display:none}.mcal-day{align-items:center;min-height:54px;padding:5px 2px}.mcal-num{align-self:center}.mcal-items{display:none}.mcal-dots{flex-wrap:wrap;justify-content:center;gap:3px;max-width:26px;display:flex}.mcal-dots .dot{width:5px;height:5px}}.cal{flex-direction:column;gap:14px;display:flex}.cal-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;display:flex}.cal-nav{align-items:center;gap:16px;min-width:0;display:flex}.cal-title{min-width:0;font-size:var(--fs-xl);letter-spacing:-.02em;white-space:nowrap;font-weight:600}.cal-title:first-letter{text-transform:uppercase}.cal-arrows{align-items:center;gap:2px;display:flex}.cal-modes{align-items:center;gap:8px;display:flex}.cal-layout{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:16px;display:grid}.cal-layout.has-day{grid-template-columns:minmax(0,1fr) 340px}.cal-weekdays{border-bottom:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-weekdays>span{text-align:center;font-size:var(--fs-xs);color:var(--text-3);padding:9px 4px}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(112px,1fr);display:grid}.cal-day{border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;min-width:0;transition:background var(--dur);flex-direction:column;gap:4px;padding:6px;display:flex}.cal-day:nth-child(7n){border-right:0}.cal-day:nth-last-child(-n+7){border-bottom:0}.cal-day:hover{background:var(--surface-2)}.cal-day.is-out>*{opacity:.38}.cal-day.is-selected{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-line)}.cal-day.is-drop{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.cal-day-head{justify-content:space-between;align-items:center;gap:4px;min-height:22px;display:flex}.cal-num{min-width:24px;height:22px;font-size:var(--fs-xs);text-align:center;color:var(--text-2);font-variant-numeric:tabular-nums;border-radius:7px;padding:0 6px;line-height:22px}.cal-day.is-today .cal-num{background:var(--accent);color:var(--on-accent);font-weight:650}.cal-chips{flex-direction:column;gap:2px;min-width:0;display:flex}.cal-chip{border-left:2px solid var(--chip);background:color-mix(in srgb, var(--chip) 17%, var(--surface));min-width:0;font-size:var(--fs-xs);transition:background var(--dur);border-radius:4px;align-items:center;gap:5px;padding:2px 6px;line-height:1.5;display:flex}.cal-chip:hover{background:color-mix(in srgb, var(--chip) 28%, var(--surface))}.cal-chip .num{color:var(--text-2);flex-shrink:0}.cal-chip.is-done{color:var(--text-3);text-decoration:line-through}.cal-chip[draggable=true]{cursor:grab}.cal-rest{font-size:var(--fs-xs);color:var(--text-3);padding-left:6px}.cal-dots{display:none}.day-panel{align-self:start;min-height:360px;max-height:calc(100dvh - 32px);position:sticky;top:16px}.day-panel-body{flex:auto;min-height:0;margin:0 -8px;padding:0 8px;overflow-y:auto}.day-items{flex-direction:column;gap:2px;min-width:0;display:flex}.task-row,.event-row{cursor:pointer;width:100%;min-width:0;transition:background var(--dur);border-radius:10px;align-items:flex-start;gap:10px;padding:9px 8px;display:flex}.task-row:hover,.event-row:hover{background:var(--surface-2)}.task-row>span:first-child{padding-top:1px}.task-row-main{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.task-row-title{overflow-wrap:anywhere;align-items:flex-start;gap:8px;min-width:0;line-height:1.4;display:flex}.task-row-title .dot{margin-top:calc(.7em - 4px)}.task-row.is-done .task-row-title{color:var(--text-3);text-decoration:line-through}.task-row-meta{font-size:var(--fs-xs);color:var(--text-3);flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.task-row .icon-btn{width:30px;height:30px;margin:-3px -4px -3px 0}.event-row-mark{background:color-mix(in srgb, var(--chip) 20%, var(--surface));width:22px;height:22px;color:var(--chip);border-radius:7px;flex-shrink:0;place-items:center;margin-top:1px;display:grid}.modal-foot>.form-row{flex:1}.agenda{flex-direction:column;gap:10px;display:flex}.agenda-day{gap:8px;padding:12px 12px 12px 14px}.agenda-head{align-items:center;gap:12px;display:flex}.agenda-head .grow{flex-direction:column;line-height:1.3;display:flex}.agenda-head strong{font-weight:600}.agenda-head strong:first-letter{text-transform:uppercase}.agenda-head .grow>span{font-size:var(--fs-xs);color:var(--text-3)}.agenda-date{background:var(--surface-2);width:38px;height:38px;font-size:var(--fs-lg);font-variant-numeric:tabular-nums;border-radius:12px;flex-shrink:0;place-items:center;font-weight:600;display:grid}.agenda-day.is-today .agenda-date{background:var(--accent);color:var(--on-accent)}.week-scroll{overflow-x:auto}.week-grid{grid-template-columns:56px repeat(7,minmax(104px,1fr));min-width:784px;display:grid}.week-head{border-bottom:1px solid var(--line)}.week-daylabel{font-size:var(--fs-xs);color:var(--text-3);transition:background var(--dur);flex-direction:column;align-items:center;gap:2px;padding:10px 4px;display:flex}.week-daylabel:hover{background:var(--surface-2)}.week-daylabel strong{font-size:var(--fs-lg);color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.week-daylabel.is-today strong{background:var(--accent);min-width:30px;color:var(--on-accent);border-radius:9px;padding:0 6px}.week-allday{border-bottom:1px solid var(--line)}.week-hour{color:var(--text-3);text-align:right;font-variant-numeric:tabular-nums;padding:6px 8px 0;font-size:11px}.week-cell{border-left:1px solid var(--line);flex-direction:column;gap:2px;min-width:0;min-height:36px;padding:4px;display:flex}.week-body,.week-hours{position:relative}.week-hours .week-hour{padding-top:0;position:absolute;right:0;translate:0 -8px}.week-col{border-left:1px solid var(--line);background-image:linear-gradient(var(--line) 1px, transparent 1px);background-size:100% 46px;min-width:0;position:relative}.week-col.is-today{background-color:color-mix(in srgb, var(--accent) 5%, transparent)}.week-cell.is-drop,.week-col.is-drop{background-color:var(--accent-soft)}.week-slot{border-left:2px solid var(--chip);background:color-mix(in srgb, var(--chip) 22%, var(--surface));min-width:0;font-size:var(--fs-xs);transition:background var(--dur);border-radius:5px;flex-direction:column;padding:2px 6px;line-height:1.35;display:flex;position:absolute;right:3px;overflow:hidden}.week-slot.is-short{flex-direction:row;align-items:center;gap:5px;padding-block-start:0;padding-block-end:0}.week-slot:hover{background:color-mix(in srgb, var(--chip) 34%, var(--surface));z-index:1}.week-slot .num{color:var(--text-2);font-size:11px}.week-slot.is-done{color:var(--text-3);text-decoration:line-through}.day-view{gap:0;padding:8px 16px}.day-hour{border-top:1px solid var(--line);align-items:flex-start;gap:12px;min-height:48px;padding:6px 0;display:flex}.day-hour:first-child{border-top:0}.day-hour-label{width:62px;font-size:var(--fs-xs);color:var(--text-3);flex-shrink:0;padding-top:9px}.day-hour .day-items{flex:1}.day-add{height:36px;color:var(--text-3);font-size:var(--fs-sm);opacity:0;transition:opacity var(--dur), background var(--dur);border-radius:10px;flex:1;align-items:center;gap:6px;padding:0 8px;display:flex}.day-hour:hover .day-add{opacity:1}.day-add:focus-visible{opacity:1}.day-add:hover{background:var(--surface-2);color:var(--text)}@media (hover:none){.day-add{opacity:.55}}.overdue{border-color:color-mix(in srgb, var(--neg) 22%, var(--line));gap:12px;padding-bottom:12px}.overdue-title{align-items:center;gap:10px;display:flex}.overdue-count{border-radius:var(--r-full);background:var(--neg-soft);min-width:24px;color:var(--neg);font-size:var(--fs-xs);text-align:center;padding:0 7px;font-weight:600;line-height:22px}.overdue-list{flex-direction:column;margin:0 -8px;display:flex}.overdue-row{min-width:0;transition:background var(--dur);border-radius:10px;align-items:center;gap:12px;padding:8px;display:flex}.overdue-row:hover{background:var(--surface-2)}.overdue-row{position:relative}.overdue-row+.overdue-row:before{content:"";background:var(--line);height:1px;position:absolute;top:0;left:8px;right:8px}.overdue-row:hover:before,.overdue-row:hover+.overdue-row:before{opacity:0}.overdue-main{text-align:left;flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.overdue-name{overflow-wrap:anywhere;align-items:flex-start;gap:8px;min-width:0;line-height:1.4;display:flex}.overdue-name .dot{margin-top:calc(.7em - 4px)}.overdue-meta{font-size:var(--fs-xs);color:var(--text-3);flex-wrap:wrap;align-items:center;gap:2px 12px;display:flex}.overdue-late{border-radius:var(--r-full);font-size:var(--fs-xs);white-space:nowrap;flex-shrink:0;padding:3px 9px;font-weight:600}.overdue-late.is-mild{background:var(--surface-3);color:var(--text-2)}.overdue-late.is-warn{background:var(--warn-soft);color:var(--warn)}.overdue-late.is-neg{background:var(--neg-soft);color:var(--neg)}.overdue-move{color:var(--text-3);flex-shrink:0}.overdue-move:hover{color:var(--accent)}@media (max-width:639px){.overdue .card-head{align-items:flex-start}.overdue-row{gap:10px;padding:10px 8px}}.tabs{display:flex}.tab-count{border-radius:var(--r-full);background:var(--accent-soft);min-width:20px;color:var(--accent);text-align:center;margin-left:8px;padding:0 6px;font-size:11px;font-weight:600;line-height:18px}.matrix{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.quadrant{--q:var(--text-3);background:color-mix(in srgb, var(--q) 3%, var(--surface));min-height:248px;transition:border-color var(--dur), box-shadow var(--dur);gap:8px;padding:18px 12px 10px}.quadrant[data-q=do]{--q:var(--neg)}.quadrant[data-q=plan]{--q:var(--accent)}.quadrant[data-q=quick]{--q:var(--warn)}.quadrant.is-drop{border-color:var(--q);box-shadow:inset 0 0 0 1px var(--q)}.quadrant-head{align-items:flex-start;gap:10px;padding:0 8px 4px;display:flex}.quadrant-mark{background:var(--q);border-radius:3px;flex-shrink:0;width:10px;height:10px;margin-top:6px}.quadrant-title{font-size:var(--fs-lg);letter-spacing:-.012em;font-weight:600;line-height:1.35}.quadrant-hint{font-size:var(--fs-xs);color:var(--text-3);margin-top:1px}.quadrant-count{border-radius:var(--r-full);background:color-mix(in srgb, var(--q) 16%, var(--surface));min-width:26px;color:var(--q);font-size:var(--fs-xs);text-align:center;padding:0 8px;font-weight:600;line-height:24px}.quadrant[data-q=later] .quadrant-count{color:var(--text-2)}.quick-add{height:40px;color:var(--text-3);transition:background var(--dur);border-radius:10px;align-items:center;gap:12px;margin-top:auto;padding:0 11px;display:flex}.quick-add:hover,.quick-add:focus-within{background:var(--surface-2)}.quick-add svg{flex-shrink:0}.quick-add-input{min-width:0;height:100%;color:var(--text);background:0 0;border:0;flex:1}.quick-add-input::placeholder{color:var(--text-3)}.quick-add-input:focus-visible{outline:none}@media (max-width:759px){.matrix{grid-template-columns:minmax(0,1fr);gap:12px}.quadrant{min-height:0}}@media (max-width:639px){.tabs .seg{width:100%;display:flex}.quick-add{height:44px}.quick-add-input{font-size:16px}}.form-note{margin-top:-8px}.subtasks{flex-direction:column;gap:8px;display:flex}.subtask{align-items:center;gap:10px;display:flex}.subtask .input{flex:1}.subtask-plus{width:22px;height:22px;color:var(--text-3);flex-shrink:0;place-items:center;display:grid}@media (max-width:379px){.cal-title{font-size:17px}.cal-nav{gap:8px}.cal-event-btn{width:var(--control);flex-shrink:0;padding:0}.cal-event-btn span{display:none}}@media (max-width:639px){.cal-nav{flex:1;justify-content:space-between}.cal-modes{width:100%}.cal-modes .seg{flex:1;min-width:0;display:flex}.cal-grid{grid-auto-rows:minmax(58px,1fr)}.cal-day{align-items:center;padding:5px 2px}.cal-day-head{justify-content:center}.cal-day-head .warn,.cal-chips{display:none}.cal-dots{flex-wrap:wrap;justify-content:center;gap:3px;max-width:26px;display:flex}.cal-dots .dot{width:5px;height:5px}.day-view{padding:4px 12px}.day-hour-label{width:46px}}.habit-day{border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);box-shadow:var(--edge);align-items:center;gap:16px;padding:14px 18px;display:flex}.habit-day-text{font-size:var(--fs-sm);color:var(--text-2);flex-shrink:0;align-items:baseline;gap:10px;display:flex}.habit-day-text strong{font-size:var(--fs-xl);letter-spacing:-.02em;color:var(--text);font-weight:600}.habit-day-bar{flex:1;gap:4px;min-width:0;display:flex}.habit-day-bar i{border-radius:var(--r-full);background:var(--surface-3);height:8px;transition:background .26s var(--ease);flex:1}.habit-day-bar i.is-done{background:var(--habit)}.habit-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.habit{transition:border-color var(--dur);gap:14px;padding:16px}.card .habit{background:var(--surface-2);box-shadow:none}.habit.is-off{opacity:.6}.habit-head{text-align:left;border-radius:10px;align-items:center;gap:12px;min-width:0;display:flex}.habit-head .grow{flex-direction:column;gap:1px;display:flex}.habit-mark{border:2px solid var(--habit);width:26px;height:26px;color:var(--on-accent);transition:background var(--dur);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.habit.is-done .habit-mark{background:var(--habit)}.habit.is-done .habit-mark svg{animation:tick .26s var(--ease)}.habit-name{font-size:15px;font-weight:600}.habit-sub{font-size:var(--fs-xs);color:var(--text-3)}.habit-streak{font-size:var(--fs-xs);color:var(--warn);flex-shrink:0;align-items:center;gap:4px;font-weight:550;display:inline-flex}.habit-btn{height:44px}.habit-btn.is-on{border-color:color-mix(in srgb, var(--habit) 55%, var(--surface));background:color-mix(in srgb, var(--habit) 18%, var(--surface))}.habit-btn.is-on svg{color:var(--habit)}.habit-btn:not(.is-on) svg{color:var(--text-3)}.habit-count{align-items:center;gap:12px;display:flex}.habit-count .btn-icon{width:44px;height:44px}.habit-count-line{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.habit-count-line strong{font-size:var(--fs-lg);font-weight:600}.habit-count-line span{font-size:var(--fs-xs);color:var(--text-3)}.habit-count .bar{height:8px}@keyframes tick{0%{opacity:0;scale:.3}60%{scale:1.2}}@media (max-width:639px){.habit-grid{grid-template-columns:minmax(0,1fr);gap:10px}.habit-day{padding:12px 16px}}.lab-filter{align-items:center;gap:10px;display:flex}.lab-filter .search{flex:1;max-width:360px}.lab-filter .chip{height:var(--control);white-space:nowrap;padding:0 14px}.lab-group>.card-head{padding-bottom:8px}.lab+.lab{border-top:1px solid var(--line)}.lab-row{text-align:left;width:100%;transition:background var(--dur);grid-template-columns:16px minmax(0,1fr) 76px minmax(84px,auto) 104px 64px;align-items:center;gap:14px;padding:11px 20px;display:grid}.lab-row:hover,.lab.is-open>.lab-row{background:var(--surface-2)}.lab-caret{color:var(--text-3);transition:rotate var(--dur)}.lab.is-open .lab-caret{rotate:90deg}.lab-name{flex-direction:column;gap:1px;min-width:0;display:flex}.lab-name>span:first-child{font-weight:550}.lab-name>span:last-child{font-size:var(--fs-xs);color:var(--text-3)}.lab-spark{justify-content:flex-end;display:flex}.lab-value{text-align:right;justify-content:flex-end;align-items:baseline;gap:5px;min-width:0;display:flex}.lab-value strong{overflow-wrap:anywhere;font-size:15px;font-weight:600}.lab-value span{font-size:var(--fs-xs);color:var(--text-3);flex-shrink:0}.lab-status{justify-content:flex-start;display:flex}.lab-date{font-size:var(--fs-xs);color:var(--text-3);text-align:right}.lab-detail{background:color-mix(in srgb, var(--surface-2) 45%, var(--surface));border-top:1px solid var(--line);flex-direction:column;gap:14px;padding:16px 20px 18px 50px;display:flex}.lab-history{flex-direction:column;display:flex}.lab-history-row{font-size:var(--fs-sm);text-align:left;transition:background var(--dur);border-radius:10px;grid-template-columns:124px minmax(0,1fr) minmax(0,auto) 104px 16px;align-items:center;gap:14px;margin:0 -10px;padding:9px 10px;display:grid}.lab-history-row:hover{background:var(--surface-3)}.lab-history-value{overflow-wrap:anywhere;min-width:0}.lab-history-note{font-size:var(--fs-xs);color:var(--text-3);display:block}.lab-history-edit{color:var(--text-3);opacity:0;transition:opacity var(--dur)}.lab-history-row:hover .lab-history-edit{opacity:1}.lab-history-row:focus-visible .lab-history-edit{opacity:1}.lab-catalog-link{align-self:flex-end}.lab-search{flex-direction:column;gap:8px;display:flex}.lab-search-results{border:1px solid var(--line);border-radius:var(--r-m);background:var(--field);flex-direction:column;max-height:264px;padding:6px;display:flex;overflow-y:auto}.lab-search-item{text-align:left;min-width:0;transition:background var(--dur);border-radius:9px;align-items:center;gap:10px;padding:8px 10px;display:flex}.lab-search-item:hover{background:var(--surface-2);outline:none}.lab-search-item:focus-visible{background:var(--surface-2);outline:none}.lab-search-item svg{color:var(--accent);flex-shrink:0}.lab-search-item .grow{flex-direction:column;display:flex}.lab-search-item .grow>span:last-child{font-size:var(--fs-xs);color:var(--text-3)}.lab-entries{border:1px solid var(--line);border-radius:var(--r-m);flex-direction:column;display:flex}.lab-entry{flex-direction:column;gap:10px;padding:10px 6px 10px 14px;display:flex}.lab-entry+.lab-entry{border-top:1px solid var(--line)}.lab-entry-main{align-items:center;gap:10px;min-width:0;display:flex}.lab-entry-name{font-weight:550}.lab-entry-ref{max-width:100%;font-size:var(--fs-xs);color:var(--text-3);align-items:center;gap:6px;display:inline-flex}.lab-entry-ref:hover{color:var(--accent)}.lab-entry-ref svg{opacity:.7;flex-shrink:0}.lab-entry-value{flex-shrink:0;width:190px}.lab-entry-value .input{text-align:right;font-variant-numeric:tabular-nums}.lab-entry>.textarea{width:auto;margin-right:8px}.lab-entry-ref-fields{flex-direction:column;gap:12px;padding:4px 8px 6px 0;display:flex}.marker-list{flex-direction:column;display:flex}.marker-group{font-size:var(--fs-xs);color:var(--text-3);padding:14px 0 6px;font-weight:600}.marker{border-top:1px solid var(--line)}.marker-main{align-items:center;gap:4px;min-width:0;padding:8px 0;display:flex}.marker-main .grow{padding-right:8px}.marker-edit{flex-direction:column;gap:12px;padding:4px 0 14px;display:flex}.marker-edit-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}@media (max-width:760px){.lab-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:12px 16px}.lab-caret,.lab-spark,.lab-date{display:none}.lab-value{grid-area:1/2}.lab-row .lab-status{grid-area:2/2;justify-content:flex-end}.lab-name{grid-row:1/span 2}.lab-detail{padding:14px 16px 16px}.lab-history-row{grid-template-columns:minmax(0,1fr) auto;gap:2px 12px}.lab-history-row>.num:first-child{font-size:var(--fs-xs);grid-area:2/1}.lab-history-value{grid-area:1/1}.lab-history-norm{display:none}.lab-history-row .lab-status{grid-area:1/2/span 2;justify-content:flex-end}.lab-history-edit{display:none}.lab-group>.card-head{padding-left:16px;padding-right:16px}.lab-filter{flex-wrap:wrap}.lab-filter .search{flex:100%;max-width:none}.lab-entry-main{flex-wrap:wrap}.lab-entry-main>.grow{flex:calc(100% - 46px);order:1}.lab-entry-main>.icon-btn{order:2}.lab-entry-value{flex:100%;order:3;width:auto;margin-right:8px}}.project-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.project{text-align:left;transition:border-color var(--dur), transform 90ms;gap:6px}.project:hover{border-color:color-mix(in srgb, var(--project) 50%, var(--line))}.project:active{transform:scale(.99)}.project-name{min-width:0;font-size:var(--fs-lg);letter-spacing:-.01em;align-items:center;gap:10px;font-weight:600;display:flex}.project-meta{font-size:var(--fs-sm);color:var(--text-3)}.project-progress{align-items:center;gap:12px;margin-top:10px;display:flex}.project-progress .bar{flex:1}.project-progress span{font-size:var(--fs-xs);color:var(--text-3);flex-shrink:0}.project-note{max-width:70ch;color:var(--text-2);white-space:pre-wrap}.project-tasks{flex-direction:column;margin:-4px -8px;display:flex}.project-task{min-width:0;min-height:44px;transition:background var(--dur);border-radius:10px;align-items:center;gap:12px;padding:6px 8px;display:flex}.project-task:hover{background:var(--surface-2)}.project-task-title{text-align:left;overflow-wrap:anywhere;flex:1;min-width:0;padding:4px 0}.archive{border-top:0}.archive>summary{padding:0 4px}.archive .more-body{gap:2px}.archive-row{text-align:left;width:100%;color:var(--text-2);transition:background var(--dur)}.archive-row:hover{background:var(--surface);color:var(--text)}@media (max-width:639px){.project-grid{grid-template-columns:minmax(0,1fr);gap:10px}}.settings{max-width:640px}.account-card{align-items:center;gap:14px;min-width:0;display:flex}.account-card .avatar{width:48px;height:48px;font-size:var(--fs-md)}.account-name{font-size:var(--fs-lg);font-weight:600}.settings-actions{flex-wrap:wrap;gap:10px;display:flex}.settings-row{align-items:center;gap:16px;display:flex}.settings-row .btn{flex-shrink:0;min-width:104px}.settings-foot{font-size:var(--fs-xs);color:var(--text-3);text-align:center;padding:4px}@media (max-width:639px){.settings-actions .btn{flex:1}.settings-row{flex-direction:column;align-items:stretch;gap:12px}}
/*$vite$:1*/