@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/bfd813093b8ca1bb-s.p.3ok2djvs6w93k.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/acc5f86302586f33-s.1ttn5ge0anb6a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/f304c3cf3765fb5f-s.p.0h0-3wqrkgcb1.woff2)format("woff2");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}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/bfd813093b8ca1bb-s.p.3ok2djvs6w93k.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/acc5f86302586f33-s.1ttn5ge0anb6a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/f304c3cf3765fb5f-s.p.0h0-3wqrkgcb1.woff2)format("woff2");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}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/bfd813093b8ca1bb-s.p.3ok2djvs6w93k.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/acc5f86302586f33-s.1ttn5ge0anb6a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/f304c3cf3765fb5f-s.p.0h0-3wqrkgcb1.woff2)format("woff2");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}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/bfd813093b8ca1bb-s.p.3ok2djvs6w93k.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/acc5f86302586f33-s.1ttn5ge0anb6a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/f304c3cf3765fb5f-s.p.0h0-3wqrkgcb1.woff2)format("woff2");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}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(../media/bfd813093b8ca1bb-s.p.3ok2djvs6w93k.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(../media/acc5f86302586f33-s.1ttn5ge0anb6a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(../media/f304c3cf3765fb5f-s.p.0h0-3wqrkgcb1.woff2)format("woff2");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}@font-face{font-family:Noto Sans Thai Fallback;src:local(Arial);ascent-override:99.79%;descent-override:42.32%;line-gap-override:0.0%;size-adjust:106.33%}.noto_sans_thai_c5480367-module__AqfRjG__className{font-family:Noto Sans Thai,Noto Sans Thai Fallback;font-style:normal}.noto_sans_thai_c5480367-module__AqfRjG__variable{--font-noto-thai:"Noto Sans Thai", "Noto Sans Thai Fallback"}
:root{--bg:#f6f6f6;--bg-soft:#ededed;--surface:#fff;--surface-warm:#fafafa;--border:#e5e5e5;--border-strong:#d4d4d4;--ink:#222;--ink-soft:#6b6b6b;--ink-faint:#767676;--accent:#ff9300;--accent-ink:#fff;--accent-soft:#ffe3bd;--accent-softer:#fff3e0;--accent-strong:#c26a00;--coral:#e74940;--coral-soft:#fce2e0;--moss:#4c8b5f;--moss-soft:#dfefe2;--sky:#3e7ea8;--sky-soft:#deeaf3;--plum:#7c5fa8;--plum-soft:#eae2f5;--amber:#d99a00;--amber-soft:#fff1cc;--yellow:#fdbf2c;--radius-sm:10px;--radius-md:16px;--radius-lg:22px;--radius-pill:999px;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 6px 20px -8px #00000029;--shadow-lg:0 16px 40px -12px #00000042;--font-display:var(--font-noto-thai), "Noto Sans Thai", system-ui, sans-serif;--font-body:var(--font-noto-thai), "Noto Sans Thai", system-ui, sans-serif;--nav-h:64px;--topbar-h:56px;--safe-b:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#141414;--bg-soft:#1c1c1c;--surface:#232323;--surface-warm:#282828;--border:#333;--border-strong:#444;--ink:#f2f2f2;--ink-soft:#b3b3b3;--ink-faint:#9a9a9a;--accent:#ff9300;--accent-ink:#1a1000;--accent-soft:#4a2e05;--accent-softer:#33220a;--accent-strong:#ffb347;--coral:#f0625a;--coral-soft:#4a2220;--moss:#7bc391;--moss-soft:#223b29;--sky:#7fb6de;--sky-soft:#1f3546;--plum:#b79ce0;--plum-soft:#332a46;--amber:#e0b559;--amber-soft:#3e3016;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 6px 20px -8px #00000080;--shadow-lg:0 16px 40px -12px #0009}}:root[data-theme=dark]{--bg:#141414;--bg-soft:#1c1c1c;--surface:#232323;--surface-warm:#282828;--border:#333;--border-strong:#444;--ink:#f2f2f2;--ink-soft:#b3b3b3;--ink-faint:#9a9a9a;--accent:#ff9300;--accent-ink:#1a1000;--accent-soft:#4a2e05;--accent-softer:#33220a;--accent-strong:#ffb347;--coral:#f0625a;--coral-soft:#4a2220;--moss:#7bc391;--moss-soft:#223b29;--sky:#7fb6de;--sky-soft:#1f3546;--plum:#b79ce0;--plum-soft:#332a46;--amber:#e0b559;--amber-soft:#3e3016;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 6px 20px -8px #00000080;--shadow-lg:0 16px 40px -12px #0009}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4{font-family:var(--font-display);text-wrap:balance;margin:0;font-weight:600}p{margin:0}button{font-family:inherit}a{color:inherit}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}img,svg{display:block}.icon{flex:none;width:20px;height:20px}.icon-sm{width:16px;height:16px}.icon-lg{width:26px;height:26px}#app{background:var(--bg);min-height:100vh}.app-shell{min-height:100vh;display:flex}.sidebar{display:none}.main-col{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:20;height:var(--topbar-h);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:0 16px;display:flex;position:sticky;top:0}.topbar.is-scrolled{border-bottom-color:var(--border)}.topbar-brand{align-items:baseline;gap:6px;display:flex}.topbar-brand .mark{color:var(--accent);font-family:var(--font-display);letter-spacing:-.3px;font-size:19px;font-weight:800;line-height:1}.topbar-brand .word{font-family:var(--font-display);color:var(--ink);font-size:16px;font-weight:700;line-height:1}.topbar-actions{align-items:center;gap:4px;display:flex}.icon-btn{border-radius:var(--radius-pill);width:38px;height:38px;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background .15s,color .15s,transform .1s;display:flex}.icon-btn:hover{background:var(--bg-soft);color:var(--ink)}.icon-btn:active{transform:scale(.92)}.bell-btn{position:relative}.bell-dot{border-radius:var(--radius-pill);background:var(--coral);color:#fff;text-align:center;border:2px solid var(--bg);box-sizing:content-box;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:4px;right:4px}.notice-sheet h3{margin-bottom:14px;font-size:17px}.notice-list{flex-direction:column;gap:8px;display:flex}.notice-row{text-align:left;border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);cursor:pointer;width:100%;color:inherit;font:inherit;align-items:center;gap:12px;padding:11px 12px;transition:background .15s,transform .1s;display:flex}.notice-row:hover{background:var(--bg-soft)}.notice-row:active{transform:scale(.985)}.notice-row .ic{border-radius:10px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.notice-row .icon{width:18px;height:18px}.notice-text{flex:1;min-width:0}.notice-title{text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:600;overflow:hidden}.notice-detail{color:var(--ink-soft);margin-top:2px;font-size:12.5px}.notice-empty{color:var(--ink-soft);text-align:center;padding:18px 0 8px;font-size:14px}.view-root{padding:4px 16px calc(var(--nav-h) + var(--safe-b) + 28px);flex:1;width:100%;max-width:780px;margin:0 auto}.bottom-nav{z-index:30;padding-bottom:var(--safe-b);background:color-mix(in srgb, var(--surface) 96%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border);display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{height:var(--nav-h);color:var(--ink-faint);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;transition:color .15s;display:flex;position:relative}.nav-item .icon{transition:transform .15s}.nav-item.active{color:var(--accent)}.nav-item.active .icon{transform:translateY(-1px)}.nav-item span{letter-spacing:.1px;font-size:11px;font-weight:600}.nav-item:active .icon{transform:scale(.88)}@media (min-width:900px){.bottom-nav{display:none}.sidebar{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;flex:none;width:248px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.sidebar-brand{align-items:baseline;gap:7px;padding:10px 12px 24px;display:flex}.sidebar-brand .mark{color:var(--accent);font-family:var(--font-display);letter-spacing:-.4px;font-size:22px;font-weight:800;line-height:1}.sidebar-brand .word{font-family:var(--font-display);color:var(--ink);font-size:18px;font-weight:700;line-height:1}.side-link{border-radius:var(--radius-sm);color:var(--ink-soft);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:10px 12px;font-size:14.5px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.side-link:hover{background:var(--bg-soft);color:var(--ink)}.side-link.active{background:var(--accent);color:var(--accent-ink);box-shadow:0 4px 12px -4px color-mix(in srgb, var(--accent) 60%, transparent);font-weight:600}.side-link.active:hover{background:var(--accent);color:var(--accent-ink)}.side-divider{background:var(--border);height:1px;margin:10px 8px}.side-spacer{flex:1}.topbar{display:none}.view-root{max-width:900px;padding:28px 32px 40px}}@media (min-width:1200px){.view-root{max-width:980px}}.section-label{letter-spacing:.6px;text-transform:uppercase;color:var(--ink-soft);align-items:center;gap:7px;font-size:12px;font-weight:700;display:flex}.section-head{justify-content:space-between;align-items:center;gap:10px;min-height:28px;margin-bottom:12px;display:flex}.link-btn{color:var(--accent-strong);cursor:pointer;background:0 0;border:none;align-items:center;gap:2px;padding:4px 2px;font-size:13.5px;font-weight:600;display:flex}.link-btn:hover{text-decoration:underline}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.btn{border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;height:46px;padding:0 20px;font-size:14.5px;font-weight:600;transition:transform .1s,filter .15s,background .15s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow-sm)}.btn-primary:hover{filter:brightness(1.06)}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--bg-soft)}.btn-ghost{color:var(--ink-soft);background:0 0}.btn-ghost:hover{background:var(--bg-soft);color:var(--ink)}.btn-block{width:100%}.btn-sm{height:36px;padding:0 15px;font-size:13.5px}.chip{border-radius:var(--radius-pill);background:var(--bg-soft);color:var(--ink-soft);border:1px solid var(--border);align-items:center;gap:5px;padding:5px 11px;font-size:12.5px;font-weight:600;display:inline-flex}.tag-chip{background:var(--accent-softer);color:var(--accent-strong);border-color:#0000}.tag-filter-row{scrollbar-width:none;align-items:center;gap:8px;margin:-4px 0 16px;padding-bottom:2px;display:flex;overflow-x:auto}.tag-filter-row::-webkit-scrollbar{display:none}.tag-filter-chip{white-space:nowrap;cursor:pointer;border-radius:var(--radius-pill);background:var(--bg-soft);color:var(--ink-soft);border:1px solid var(--border);flex:none;align-items:center;padding:6px 13px;font-size:12.5px;font-weight:600;display:inline-flex}.tag-filter-chip.active{background:var(--accent-softer);color:var(--accent-strong);border-color:#0000}.avatar-badge{border-radius:7px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.chk{border:2px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:7px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;padding:0;transition:all .15s;display:flex}.chk svg{opacity:0;color:#fff;width:13px;height:13px;transition:all .15s;transform:scale(.5)}.chk.checked{background:var(--moss);border-color:var(--moss)}.chk.checked svg{opacity:1;transform:scale(1)}.chk:active{transform:scale(.9)}.habit-dot{border-radius:var(--radius-pill);border:2px solid var(--border-strong);background:var(--surface);cursor:pointer;flex:none;justify-content:center;align-items:center;width:34px;height:34px;padding:0;transition:all .15s;display:flex}.habit-dot svg{opacity:0;color:#fff;width:16px;height:16px;transition:all .15s;transform:scale(.5)}.habit-dot.checked{background:var(--moss);border-color:var(--moss)}.habit-dot.checked svg{opacity:1;transform:scale(1)}.habit-dot:active{transform:scale(.9)}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:36px 20px;display:flex}.empty-state .glyph{background:var(--accent-softer);width:56px;height:56px;color:var(--accent-strong);border-radius:18px;justify-content:center;align-items:center;margin-bottom:2px;display:flex}.empty-state h3{font-size:16px}.empty-state p{color:var(--ink-soft);max-width:280px;font-size:13.5px;line-height:1.55}.overlay{z-index:100;opacity:0;pointer-events:none;background:#0000006b;justify-content:center;align-items:flex-end;transition:opacity .2s;display:flex;position:fixed;inset:0}.overlay.open{opacity:1;pointer-events:auto}.sheet{background:var(--surface);width:100%;max-width:520px;padding:10px 18px calc(20px + var(--safe-b));max-height:82vh;box-shadow:var(--shadow-lg);border-radius:22px 22px 0 0;transition:transform .22s cubic-bezier(.32,.72,0,1);overflow-y:auto;transform:translateY(16px)}.overlay.open .sheet{transform:translateY(0)}.sheet-handle{background:var(--border-strong);border-radius:2px;width:36px;height:4px;margin:6px auto 14px}.sheet-title{margin-bottom:4px;font-size:17px}.sheet-sub{color:var(--ink-soft);margin-bottom:16px;font-size:13px}@media (min-width:640px){.overlay{align-items:center}.sheet{border-radius:22px;max-height:80vh}}.select-row{border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;align-items:center;gap:12px;padding:13px 12px;transition:background .15s;display:flex}.select-row:hover{background:var(--bg-soft)}.select-row.selected{background:var(--accent-softer);border-color:var(--accent-soft)}.select-row .radio{border:2px solid var(--border-strong);border-radius:50%;flex:none;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.select-row.selected .radio{border-color:var(--accent)}.select-row.selected .radio:after{content:"";background:var(--accent);border-radius:50%;width:10px;height:10px}.select-row .meta{flex:1;min-width:0}.select-row .meta .t{font-size:14.5px;font-weight:600}.select-row .meta .s{color:var(--ink-soft);margin-top:1px;font-size:12.5px}.toast-wrap{left:0;right:0;bottom:calc(var(--nav-h) + var(--safe-b) + 14px);z-index:200;pointer-events:none;justify-content:center;display:flex;position:fixed}@media (min-width:900px){.toast-wrap{bottom:28px}}.toast{background:var(--ink);color:var(--bg);border-radius:var(--radius-pill);box-shadow:var(--shadow-lg);opacity:0;align-items:center;gap:8px;padding:12px 18px;font-size:13.5px;font-weight:600;transition:all .22s;display:flex;transform:translateY(10px)scale(.96)}.toast.show{opacity:1;transform:translateY(0)scale(1)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .toast{background:var(--surface-warm);color:var(--ink);border:1px solid var(--border-strong)}}:root[data-theme=dark] .toast{background:var(--surface-warm);color:var(--ink);border:1px solid var(--border-strong)}.page-title{margin:10px 0 18px;font-size:22px}.greeting{justify-content:space-between;align-items:center;margin:6px 0 20px;display:flex}.greeting h1{font-size:21px}.greeting .date{color:var(--ink-soft);margin-top:2px;font-size:13px}.day-summary{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.day-summary .chip{cursor:pointer;background:var(--surface)}.day-summary .chip .icon{width:14px;height:14px}.day-summary .chip b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:700}.day-summary .chip.is-overdue{background:var(--coral-soft);color:var(--coral);border-color:#0000}.day-summary .chip.is-overdue b{color:var(--coral)}.home-section{margin-bottom:30px}.focus-carousel{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;gap:12px;margin:0 -2px;padding:2px 2px 8px;display:flex;overflow-x:auto}.focus-carousel .focus-card{scroll-snap-align:start;flex:none;width:87%;max-width:380px}.focus-carousel .focus-card:only-child{width:100%;max-width:none}.focus-carousel{scrollbar-width:none;-ms-overflow-style:none;scroll-padding-left:2px}.focus-carousel::-webkit-scrollbar{display:none}.section-head-actions{align-items:center;gap:4px;display:flex}.carousel-arrows{gap:4px;margin-right:4px;display:none}.carousel-arrow{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--ink-soft);cursor:pointer;justify-content:center;align-items:center;padding:0;transition:background .15s,opacity .15s;display:flex}.carousel-arrow .icon{width:16px;height:16px}.carousel-arrow.prev .icon{transform:rotate(180deg)}.carousel-arrow:hover{background:var(--bg-soft);color:var(--ink)}.carousel-arrow:disabled{opacity:.35;cursor:default;background:var(--surface)}@media (hover:hover) and (pointer:fine){.carousel-arrows{display:flex}.focus-carousel{cursor:grab}}.focus-carousel.dragging{cursor:grabbing;scroll-snap-type:none;-webkit-user-select:none;user-select:none}.focus-carousel.dragging *{pointer-events:none}.focus-card{flex-direction:column;display:flex}.focus-card .focus-actions{margin-top:auto}.focus-badges{flex:none;gap:6px;margin-left:auto;display:flex}.focus-badge{border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-strong);white-space:nowrap;padding:3px 9px;font-size:11px;font-weight:700}.focus-badge.muted{background:var(--bg-soft);color:var(--ink-soft)}.focus-badge.done{background:var(--moss-soft);color:var(--moss)}.focus-progress{flex:1;min-width:140px}.focus-progress .v{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.focus-progress .pct{color:var(--accent-strong);font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.progress-track{border-radius:var(--radius-pill);background:var(--accent-soft);height:6px;margin-top:6px;overflow:hidden}.progress-fill{border-radius:inherit;background:linear-gradient(90deg, var(--accent), var(--accent-strong));height:100%;transition:width .3s}.focus-card{border-radius:var(--radius-lg);background:linear-gradient(150deg, var(--accent-softer) 0%, var(--surface) 62%);border:1px solid var(--accent-soft);box-shadow:var(--shadow-sm);padding:18px 18px 16px;position:relative;overflow:hidden}.focus-card:before{content:"";background:radial-gradient(circle, var(--accent-soft) 0%, transparent 70%);opacity:.7;border-radius:50%;width:140px;height:140px;position:absolute;top:-40px;right:-40px}.focus-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex;position:relative}.focus-goal-tag{color:var(--accent-strong);letter-spacing:.2px;align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.focus-title{margin:8px 0 14px;font-size:19px;line-height:1.25;position:relative}.focus-meta-row{flex-wrap:wrap;gap:22px;margin-bottom:16px;display:flex;position:relative}.focus-meta .k{letter-spacing:.4px;text-transform:uppercase;color:var(--ink-faint);margin-bottom:3px;font-size:11px;font-weight:700}.focus-meta .v{color:var(--ink);font-size:14px;font-weight:600}.focus-next-label{letter-spacing:.4px;text-transform:uppercase;color:var(--ink-soft);margin:4px 0 8px;font-size:12px;font-weight:700;position:relative}.focus-next-list{flex-direction:column;gap:2px;margin-bottom:14px;display:flex;position:relative}.focus-next-item{align-items:center;gap:10px;padding:6px 2px;font-size:14px;display:flex}.focus-next-item .chk{width:19px;height:19px}.focus-next-item span{color:var(--ink)}.focus-next-item.done span{color:var(--ink-faint);text-decoration:line-through}.focus-due{color:var(--ink-soft);margin-bottom:14px;font-size:12.5px;position:relative}.focus-due b{color:var(--ink);font-weight:700}.focus-actions{gap:8px;display:flex;position:relative}.no-focus-card{border:1.5px dashed var(--border-strong);border-radius:var(--radius-lg);text-align:center;background:var(--surface-warm);padding:26px 20px}.no-focus-card .glyph{background:var(--accent-softer);width:48px;height:48px;color:var(--accent-strong);border-radius:16px;justify-content:center;align-items:center;margin:0 auto 12px;display:flex}.no-focus-card h3{margin-bottom:5px;font-size:15.5px}.no-focus-card p{color:var(--ink-soft);margin-bottom:16px;font-size:13px;line-height:1.5}.timeline{flex-direction:column;display:flex}.tl-groupcap{letter-spacing:.5px;color:var(--ink-faint);margin:14px 0 6px;padding-left:2px;font-size:11px;font-weight:700}.tl-groupcap:first-child{margin-top:0}.tl-row{align-items:flex-start;gap:10px;padding:5px 0;display:flex}.tl-time{width:46px;color:var(--ink-faint);text-align:right;font-variant-numeric:tabular-nums;flex:none;padding-top:11px;font-size:11.5px;font-weight:700}.tl-time.blank{visibility:hidden}.evt-block{border-radius:var(--radius-md);background:var(--sky-soft);border:1px solid #0000;border-left:3.5px solid var(--sky);flex:1;align-items:center;gap:10px;padding:11px 13px;display:flex}.evt-block .icon{color:var(--sky);flex:none}.evt-block .t{color:var(--ink);font-size:14px;font-weight:600}.evt-block .s{color:var(--ink-soft);font-variant-numeric:tabular-nums;margin-top:1px;font-size:12px}.task-row{border-radius:var(--radius-md);background:var(--surface-warm);border:1px solid var(--border);flex:1;align-items:center;gap:11px;padding:9px 12px;display:flex}.task-row .meta{flex-wrap:wrap;flex:1;align-items:center;gap:7px;min-width:0;display:flex}.task-row .t{color:var(--ink);font-size:14px;font-weight:600}.task-row.done .t{color:var(--ink-faint);text-decoration:line-through}.task-row .time-badge{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:11px;font-weight:700}.allday-wrap{flex-direction:column;gap:6px;margin-bottom:4px;display:flex}.allday-row{border-radius:var(--radius-md);background:var(--sky-soft);align-items:center;gap:10px;padding:8px 12px;display:flex}.allday-row.is-task{background:var(--surface-warm);border:1px solid var(--border)}.allday-row .icon{color:var(--sky);flex:none}.allday-row.is-task .icon{color:var(--moss)}.allday-row .t{font-size:13.5px;font-weight:600}.allday-row.is-task.done .t{color:var(--ink-faint);text-decoration:line-through}.allday-tag{letter-spacing:.3px;text-transform:uppercase;color:var(--sky);flex:none;margin-left:auto;font-size:10.5px;font-weight:700}.allday-row.is-task .allday-tag{color:var(--moss)}.habit-list{flex-direction:column;display:flex}.habit-row{align-items:center;gap:13px;padding:10px 2px;display:flex}.habit-row .name{flex:1;font-size:14.5px;font-weight:600}.habit-row.done .name{color:var(--ink-soft)}.habit-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:8px;padding-top:12px;display:flex}.habit-progress{color:var(--ink-soft);align-items:center;gap:10px;font-size:13px;font-weight:600;display:flex}.habit-progress b{color:var(--ink)}.habit-ring{flex:none;width:40px;height:40px;transform:rotate(-90deg)}.habit-ring circle{fill:none;stroke-width:4.5px}.habit-ring .track{stroke:var(--moss-soft)}.habit-ring .bar{stroke:var(--moss);stroke-linecap:round;transition:stroke-dashoffset .35s}.habit-ring-wrap{flex:none;width:40px;height:40px;position:relative}.habit-ring-wrap .pct{color:var(--moss);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;font-size:10.5px;font-weight:700;display:flex;position:absolute;inset:0}.streak-badge{color:var(--amber);background:var(--amber-soft);border-radius:var(--radius-pill);align-items:center;gap:5px;padding:5px 10px;font-size:12.5px;font-weight:700;display:flex}.section-card{padding:16px 16px 14px}.habits-today-bar{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;margin-bottom:14px;padding:14px 15px;display:flex}.placeholder-wrap{padding-top:6vh}.placeholder-card{text-align:center;border-radius:var(--radius-lg);background:var(--surface-warm);border:1px dashed var(--border-strong);padding:44px 22px}.placeholder-card .glyph{background:var(--accent-softer);width:60px;height:60px;color:var(--accent-strong);border-radius:18px;justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.placeholder-card h2{margin-bottom:8px;font-size:19px}.placeholder-card p{color:var(--ink-soft);max-width:340px;margin:0 auto 4px;font-size:14px;line-height:1.6}.placeholder-list{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px;display:flex}.more-group{margin-bottom:22px}.more-list{flex-direction:column;gap:8px;display:flex}.more-row{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);cursor:pointer;align-items:center;gap:13px;padding:14px 15px;transition:background .15s,transform .1s;display:flex}.more-row:active{transform:scale(.985)}.more-row:hover{background:var(--bg-soft)}.more-row .ic{border-radius:11px;flex:none;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.more-row .t{flex:1;font-size:14.5px;font-weight:600}.more-row .chev{color:var(--ink-faint)}.more-row .more-sub{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;max-width:45%;font-size:13px;overflow:hidden}@media (min-width:900px){.more-group:first-of-type:before{content:"On desktop, these live directly in the sidebar — this page still works as a direct link.";color:var(--ink-soft);margin-bottom:16px;font-size:13px;display:block}}.fade-in{animation:.28s fadeIn}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*{transition-duration:1ms!important;animation-duration:1ms!important}}:root[lang=th] body{line-height:1.6}:root[lang=th] .section-label,:root[lang=th] .focus-meta .k,:root[lang=th] .focus-next-label,:root[lang=th] .allday-tag,:root[lang=th] .tl-groupcap{letter-spacing:0}.sr-only{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}.switch{border-radius:var(--radius-pill);background:var(--border-strong);cursor:pointer;border:none;flex:none;width:44px;height:26px;padding:0;transition:background .15s;position:relative}.switch:after{content:"";width:20px;height:20px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:transform .18s cubic-bezier(.32,.72,0,1);position:absolute;top:3px;left:3px}.switch.on{background:var(--accent)}.switch.on:after{transform:translate(18px)}.fab{right:18px;bottom:calc(var(--nav-h) + var(--safe-b) + 16px);z-index:40;border-radius:var(--radius-pill);background:var(--accent);width:56px;height:56px;color:var(--accent-ink);cursor:pointer;box-shadow:var(--shadow-lg);border:none;justify-content:center;align-items:center;transition:transform .12s,filter .15s;display:flex;position:fixed}.fab:hover{filter:brightness(1.06)}.fab:active{transform:scale(.92)}.fab .icon{width:24px;height:24px}@media (min-width:900px){.fab{bottom:32px;right:36px}}.cal-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:8px 0 14px;display:flex}.cal-nav{align-items:center;gap:4px;display:flex}.cal-period-label{font-size:16.5px;font-family:var(--font-display);min-width:150px;margin:0 4px;font-weight:600}.cal-period-btn{cursor:pointer;color:inherit;background:0 0;border:none;justify-content:center;align-items:center;gap:2px;padding:0;font-family:inherit;display:inline-flex}.cal-period-btn .icon{opacity:.5}.cal-period-btn:active{opacity:.7}.cal-today-btn{white-space:nowrap;border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border-strong);height:34px;color:var(--ink-soft);cursor:pointer;flex:none;padding:0 13px;font-size:12.5px;font-weight:700}.cal-today-btn:hover{background:var(--bg-soft)}.cal-view-tabs{background:var(--bg-soft);border-radius:var(--radius-pill);gap:2px;padding:3px;display:flex}.cal-viewtab{border-radius:var(--radius-pill);color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:7px 14px;font-size:12.5px;font-weight:700}.cal-viewtab.active{background:var(--surface);color:var(--accent-strong);box-shadow:var(--shadow-sm)}@media (max-width:639px){.cal-view-tabs{border-radius:14px;flex-basis:100%;order:-1;gap:4px;padding:4px}.cal-viewtab{border-radius:11px;flex:1;padding:10px 6px;font-size:13.5px}.cal-viewtab.active{box-shadow:0 1px 3px #0000001f}}.cal-allday-strip{margin-bottom:6px}.cal-allday-strip .allday-wrap{margin-bottom:0}.hourgrid-wrap{border:1px solid var(--border);background:var(--surface);max-height:62vh;box-shadow:var(--shadow-sm);scrollbar-width:none;-ms-overflow-style:none;border-radius:20px;position:relative;overflow:hidden auto}.hourgrid-wrap::-webkit-scrollbar{display:none}@media (min-width:900px){.hourgrid-wrap{max-height:66vh}}.hourgrid{padding:44px 0 36px;display:flex;position:relative}.hour-gutter{background:var(--surface);z-index:2;flex:none;width:62px;position:sticky;left:0}.hour-gutter .hour-label{text-align:left;height:48px;color:var(--ink-faint);box-sizing:border-box;font-variant-numeric:tabular-nums;padding-left:18px;font-size:11.5px;font-weight:500;line-height:16px;position:relative;top:-8px}.day-content{flex:1;min-width:0;margin-right:16px;position:relative}.week-scroll{overflow-x:auto}.week-columns{display:flex}.week-col-content{border-left:1px solid var(--border);flex:1;min-width:104px;position:relative}.hour-rule{border-top:1px solid var(--border);box-sizing:border-box;height:48px;position:absolute;left:0;right:0}.cal-block{cursor:pointer;background:var(--sky-soft);border-left:3px solid var(--sky);color:var(--ink);border-radius:9px;padding:4px 7px;font-size:11.5px;font-weight:600;line-height:1.25;position:absolute;left:4px;right:4px;overflow:hidden}.cal-block .b-time{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:9.5px;font-weight:700}.cal-block.is-task{background:var(--surface-warm);border-left:3px solid var(--moss);padding:2px 7px}.cal-block{box-shadow:0 0 0 1px var(--surface)}.cal-block.compact{align-items:center;padding:2px 7px;display:flex}.cal-block.compact .b-time{display:none}.cal-block.compact .b-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cal-block.is-task.done{opacity:.6}.cal-block.is-task .b-title{align-items:center;gap:4px;display:flex}.now-line{background:var(--coral);z-index:3;pointer-events:none;height:2px;position:absolute;left:0;right:0}.now-line:before{content:"";background:var(--coral);border-radius:50%;width:10px;height:10px;position:absolute;top:-4px;left:-4px}.week-colhead-row{z-index:4;background:var(--surface);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.week-colhead{text-align:center;cursor:pointer;border-left:1px solid var(--border);flex:1;min-width:104px;padding:8px 4px;transition:background .15s}.week-colhead:hover{background:var(--bg-soft)}.week-colhead .wd{letter-spacing:.3px;color:var(--ink-faint);text-transform:uppercase;font-size:10px;font-weight:700}.week-colhead .dn{font-size:15px;font-weight:700;font-family:var(--font-display);margin-top:2px}.week-colhead.is-today .dn,.week-colhead.is-today .wd{color:var(--accent-strong)}.week-gutter-head{flex:none;width:62px}.month-weekday-row{grid-template-columns:repeat(7,minmax(0,1fr));margin-bottom:4px;display:grid}.month-weekday-row div{text-align:center;color:var(--ink-faint);text-transform:uppercase;padding:4px 0;font-size:10.5px;font-weight:700}.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.month-cell{aspect-ratio:1;border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:3px;min-width:0;padding:5px 4px;transition:background .15s,border-color .15s;display:flex;position:relative;overflow:hidden}.month-cell:hover{background:var(--bg-soft)}.month-cell.out{opacity:.35}.month-cell.is-today .daynum{background:var(--accent);color:var(--accent-ink)}.month-cell.is-selected{border-color:var(--accent);background:var(--accent-softer)}.month-cell .daynum{font-variant-numeric:tabular-nums;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:flex}.month-dots{flex-wrap:wrap;justify-content:center;align-items:center;gap:2px;max-width:100%;display:flex}@media (max-width:420px){.month-grid{gap:3px}.month-cell{border-radius:10px;padding:4px 2px}.month-weekday-row div{text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}}.month-dots span{border-radius:50%;width:5px;height:5px}@media (min-width:640px){.month-cell{aspect-ratio:auto;height:64px}}.cal-agenda-wrap{margin-top:18px}.gw-col[data-slot-date],.day-content[data-slot-date]{cursor:pointer}.slot-ghost{z-index:4;box-sizing:border-box;white-space:nowrap;pointer-events:none;border:1.5px solid var(--accent);background:color-mix(in srgb, var(--accent) 20%, var(--surface));color:var(--accent-strong);font-variant-numeric:tabular-nums;border-radius:6px;padding:2px 6px;font-size:11px;font-weight:700;position:absolute;left:2px;right:2px;overflow:hidden}.gw-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:20px;overflow:hidden}.gw-scroll{scrollbar-width:none;-ms-overflow-style:none;max-height:70vh;position:relative;overflow:hidden auto}.gw-scroll::-webkit-scrollbar{display:none}@media (min-width:900px){.gw-scroll{max-height:74vh}}.gw-head{z-index:6;background:var(--surface);box-shadow:0 1px 0 var(--border), 0 8px 10px -10px #00000040;position:sticky;top:0}.gw-row{display:flex}.gw-gutter{flex:none;width:64px}.gw-days{padding-top:14px}.gw-dayhead{cursor:pointer;min-width:0;font:inherit;color:var(--ink);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:4px;padding:0 0 8px;display:flex}.gw-dayhead .wd{color:var(--ink-soft);white-space:nowrap;font-size:11.5px;font-weight:600}.gw-dayhead .wd .short{display:none}.gw-dayhead .dn{font-variant-numeric:tabular-nums;border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;font-size:24px;font-weight:400;transition:background .15s;display:flex}.gw-dayhead:hover .dn{background:var(--bg-soft)}.gw-dayhead.is-today .wd{color:var(--accent-strong)}.gw-dayhead.is-today .dn{background:var(--accent);color:#fff;font-weight:500}.gw-allday{min-height:28px}.gw-allday .tz{color:var(--ink-soft);white-space:nowrap;justify-content:flex-end;align-items:flex-end;padding:0 8px 7px 0;font-size:10.5px;display:flex}.gw-allday-cell{border-left:1px solid var(--border);flex-direction:column;flex:1;gap:2px;min-width:0;padding:2px 3px 5px;display:flex}.gw-chip{--pc:var(--sky);min-width:0;color:var(--ink);background:color-mix(in srgb, var(--pc) 16%, var(--surface));cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:5px;padding:3px 7px;font-size:12px;font-weight:600;display:flex;overflow:hidden}.gw-chip .n{text-overflow:ellipsis;min-width:0;overflow:hidden}.gw-chip .icon{width:14px;height:14px;color:var(--pc);flex:none}.gw-chip.tasks{--pc:var(--accent)}.gw-more{color:var(--ink-faint);padding:0 4px;font-size:11px;font-weight:600}.gw-body{box-sizing:content-box;padding:0 0 14px;display:flex;position:relative}.gw-labels{position:relative}.gw-hour{color:var(--ink-soft);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11px;position:absolute;right:10px;transform:translateY(-50%)}.gw-cols{background-image:linear-gradient(to bottom, var(--border) 1px, transparent 1px);flex:1;min-width:0;display:flex;position:relative}.gw-col{border-left:1px solid var(--border);flex:1;min-width:0;position:relative}.gw-col.is-today{background:color-mix(in srgb, var(--accent) 4%, transparent)}.gw-ev{z-index:1;box-sizing:border-box;color:var(--ink);cursor:pointer;background:color-mix(in srgb, var(--cat) 20%, var(--surface));border-left:3px solid var(--cat);box-shadow:0 0 0 1px var(--surface);border-radius:6px;padding:3px 6px;font-size:11.5px;line-height:1.25;position:absolute;overflow:hidden}.gw-ev:hover{z-index:2;filter:brightness(.97)}.gw-ev .tt{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.gw-ev .tm{color:var(--ink-soft);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:10.5px}.gw-ev.is-task{background:var(--surface-warm)}.gw-ev.done{opacity:.55}.gw-ev.done .tt{text-decoration:line-through}.gw-now{background:var(--coral);z-index:3;pointer-events:none;height:2px;position:absolute;left:0;right:0}.gw-now:before{content:"";background:var(--coral);border-radius:50%;width:10px;height:10px;position:absolute;top:-4px;left:-5px}@media (max-width:639px){.gw-gutter{width:40px}.gw-dayhead .wd .long{display:none}.gw-dayhead .wd .short{display:inline}.gw-dayhead .wd{font-size:10.5px}.gw-dayhead .dn{width:32px;height:32px;font-size:16px}.gw-allday .tz{padding:0 3px 7px 0;font-size:8.5px}.gw-allday-cell{padding:2px 1px 5px}.gw-chip{border-radius:4px;padding:2px 3px;font-size:9.5px}.gw-chip .icon{display:none}.gw-hour{font-size:9.5px;right:5px}.gw-ev{border-left-width:2px;border-radius:4px;padding:2px 3px;font-size:10px}.gw-ev .tm{display:none}}.wk-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:20px;padding:14px 14px 4px}.wk-head{border-bottom:1px solid var(--border);grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;padding:2px 0 12px;display:grid}.wk-day{cursor:pointer;min-width:0;font:inherit;color:var(--ink);background:0 0;border:none;flex-direction:column;align-items:center;gap:8px;padding:2px 0;display:flex}.wk-day .wd{color:var(--ink-faint);font-size:11px;font-weight:500}.wk-day .dn{font-variant-numeric:tabular-nums;border:1.5px solid #0000;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;font-size:15px;font-weight:500;transition:background .15s,border-color .15s;display:flex}.wk-day:hover .dn{background:var(--bg-soft)}.wk-day.is-today .dn{color:var(--accent-strong);font-weight:700}.wk-day.is-selected .dn{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong);font-weight:700}@media (max-width:380px){.wk-day .dn{width:32px;height:32px;font-size:14px}}.wk-list{flex-direction:column;display:flex}.wk-row{border-bottom:1px solid var(--border);cursor:pointer;grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:52px;padding:14px 6px;transition:background .15s;display:grid}.wk-row:last-child{border-bottom:none}.wk-row:hover{background:var(--bg-soft)}.wk-row.is-selected{background:var(--accent-softer);border-radius:12px}.wk-label{color:var(--ink);font-size:13px;font-weight:700;line-height:1.35}.wk-row.is-today .wk-label{color:var(--accent-strong)}.wk-items{flex-wrap:wrap;align-items:center;gap:5px;min-width:0;display:flex}.wk-empty{color:var(--ink-faint);font-size:12.5px}.wk-pill{border-radius:var(--radius-pill);min-width:0;max-width:100%;color:var(--ink);background:color-mix(in srgb, var(--pc) 13%, var(--surface));cursor:pointer;align-items:center;gap:5px;padding:3px 9px 3px 7px;font-size:12px;font-weight:600;display:inline-flex}.wk-pill:before{content:"";background:var(--pc);border-radius:50%;flex:none;width:6px;height:6px}.wk-pill .t{color:var(--ink-soft);font-variant-numeric:tabular-nums;flex:none}.wk-pill .n{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.wk-pill.done .n{color:var(--ink-faint);text-decoration:line-through}.wk-more{color:var(--ink-faint);font-size:11.5px;font-weight:700}.wk-count{color:var(--ink-faint);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}.cal-cats-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cal-cats-label{margin-bottom:8px}.cal-cats-head{align-items:center;gap:8px;min-height:28px;margin-bottom:10px;display:flex}.cal-cats-count{color:var(--ink-soft);background:var(--bg-soft);border-radius:var(--radius-pill);font-variant-numeric:tabular-nums;padding:2px 8px;font-size:11.5px;font-weight:700}.cal-cats-links{align-items:center;gap:14px;margin-left:auto;display:flex}.cal-cats-row{flex-wrap:wrap;gap:8px;display:flex}@media (max-width:639px){.cal-cats-row{scrollbar-width:none;flex-wrap:nowrap;margin:0 -16px;padding:2px 16px 4px;overflow-x:auto}.cal-cats-row::-webkit-scrollbar{display:none}}.cal-chip{border-radius:var(--radius-pill);border:1.5px solid color-mix(in srgb, var(--cat) 45%, transparent);background:color-mix(in srgb, var(--cat) 12%, var(--surface));max-width:190px;height:36px;font:inherit;color:var(--ink);cursor:pointer;flex:none;align-items:center;gap:7px;padding:0 14px 0 8px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.cal-chip-dot{border:2px solid var(--cat);background:var(--cat);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.cal-chip-dot .icon{width:12px;height:12px}.cal-chip-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.cal-chip.off{background:var(--surface);border-color:var(--border);color:var(--ink-faint)}.cal-chip.off .cal-chip-dot{background:0 0}.cal-chip{cursor:default;gap:0;padding:0}.cal-chip-check{cursor:pointer;border-radius:var(--radius-pill) 0 0 var(--radius-pill);background:0 0;border:none;flex:none;align-items:center;height:100%;padding:0 2px 0 8px;display:inline-flex}.cal-chip-main{min-width:0;height:100%;font:inherit;color:inherit;cursor:pointer;border-radius:0 var(--radius-pill) var(--radius-pill) 0;background:0 0;border:none;align-items:center;padding:0 14px 0 6px;display:inline-flex}.cal-chip-main:hover .cal-chip-name{text-underline-offset:3px;text-decoration:underline}.cal-chip-add{border-radius:var(--radius-pill);border:1.5px dashed var(--border-strong);min-width:36px;height:36px;color:var(--ink-soft);cursor:pointer;font:inherit;background:0 0;flex:none;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:600;display:inline-flex}.cal-chip-add .icon{width:16px;height:16px}.cal-chip-add:hover{border-color:var(--accent);color:var(--accent-strong)}@media (max-width:639px) and (hover:hover) and (pointer:fine){.cal-cats-row{cursor:grab}}.cal-cats-row.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.cal-cats-row.dragging *{pointer-events:none}.cal-hidden-note{background:var(--amber-soft);color:var(--ink);border-radius:12px;align-items:center;gap:8px;margin-top:10px;padding:8px 12px;font-size:12.5px;font-weight:600;display:flex}.cal-hidden-note .icon{width:16px;height:16px;color:var(--amber);flex:none}.cal-hidden-note .link-btn{margin-left:auto}.cal-manage-list{flex-direction:column;gap:6px;max-height:50vh;margin-bottom:14px;display:flex;overflow-y:auto}.cal-manage-item{align-items:stretch;gap:6px;display:flex}.cal-manage-row{border:1px solid var(--border);background:var(--surface);min-width:0;font:inherit;color:var(--ink);cursor:pointer;text-align:left;border-radius:14px;flex:1;align-items:center;gap:12px;padding:12px 14px;display:flex}.cal-manage-del{border:1px solid var(--coral-soft);background:var(--surface);min-width:46px;color:var(--coral);cursor:pointer;font:inherit;white-space:nowrap;border-radius:14px;flex:none;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:700;transition:background .15s,color .15s;display:flex}.cal-manage-del .icon{width:18px;height:18px}.cal-manage-del:hover{background:var(--coral-soft)}.cal-manage-del.armed{background:var(--coral);border-color:var(--coral);color:#fff}.cal-manage-row:hover{background:var(--bg-soft)}.cal-manage-row .dot{background:var(--cat);border-radius:50%;flex:none;width:14px;height:14px}.cal-manage-row .name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;font-weight:600;overflow:hidden}.cal-manage-row .count{color:var(--ink-faint);white-space:nowrap;font-size:12px}.cal-manage-row .icon{width:16px;height:16px;color:var(--ink-faint);flex:none}.cal-cats-actions{align-items:center;gap:14px;margin-top:10px;display:flex}.cal-cats-status{color:var(--ink-faint);margin-top:8px;font-size:12px}.cal-cat{border:1.5px solid color-mix(in srgb, var(--cat) 60%, transparent);background:color-mix(in srgb, var(--cat) 9%, var(--surface));border-radius:12px;align-items:center;padding-right:4px;transition:background .15s,border-color .15s;display:flex}.cal-cat.off{border-color:var(--border);background:var(--surface)}.cal-cat-toggle{cursor:pointer;font:inherit;color:var(--ink);background:0 0;border:none;align-items:center;gap:9px;min-height:40px;padding:8px 2px 8px 11px;font-size:13.5px;font-weight:600;display:flex}.cal-cat-box{border:2px solid var(--cat);background:var(--cat);color:#fff;border-radius:5px;flex:none;justify-content:center;align-items:center;width:18px;height:18px;transition:background .15s;display:flex}.cal-cat-box .icon{width:12px;height:12px}.cal-cat.off .cal-cat-box{background:0 0}.cal-cat.off .cal-cat-name{color:var(--ink-faint)}.cal-cat-edit{width:32px;height:32px;color:var(--ink-faint);cursor:pointer;background:0 0;border:none;border-radius:9px;justify-content:center;align-items:center;padding:0;display:flex}.cal-cat-edit:hover{background:var(--bg-soft);color:var(--ink)}.cal-cat-edit .icon{width:15px;height:15px}.cal-cat-add{border:1px solid var(--border-strong);background:var(--surface);min-height:40px;font:inherit;color:var(--ink-soft);cursor:pointer;border-radius:12px;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:600;display:flex}.cal-cat-add .icon{width:15px;height:15px}.cal-cat-add:hover{border-color:var(--accent);color:var(--accent-strong)}.cal-swatch-grid{flex-wrap:wrap;gap:12px;display:flex}.cal-swatch{--swatch:var(--ink);cursor:pointer;color:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;padding:0;transition:box-shadow .15s;display:flex;position:relative}.cal-swatch .icon{opacity:0;pointer-events:none;width:16px;height:16px;position:relative}.cal-swatch.active{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--swatch)}.cal-swatch.active .icon{opacity:1}.cal-swatch.custom{background:conic-gradient(#e0574c,#e0b559,#4c8b5f,#3e7ea8,#7c5fa8,#c2549b,#e0574c)}.cal-swatch.custom input{opacity:0;cursor:pointer;border:none;width:100%;height:100%;padding:0;position:absolute;inset:0}.cal-sheet-preview{border-radius:var(--radius-md);background:color-mix(in srgb, var(--cat) 18%, var(--surface));border-left:3.5px solid var(--cat);align-items:center;gap:10px;margin-bottom:18px;padding:10px 12px;font-size:14px;font-weight:600;display:flex}.cal-sheet-preview .icon{color:var(--cat)}.cal-sheet-actions{gap:10px;margin-top:4px;display:flex}.cal-sheet-actions .btn-primary{flex:1}.cal-sheet-actions .danger-btn.armed{background:var(--coral);color:#fff;border-color:var(--coral)}.cal-pick-row{flex-wrap:wrap;gap:8px;display:flex}.cal-pick{border-radius:var(--radius-pill);border:1.5px solid var(--border-strong);background:var(--surface);min-height:38px;font:inherit;color:var(--ink-soft);cursor:pointer;align-items:center;gap:7px;padding:8px 13px;font-size:13px;font-weight:600;display:inline-flex}.cal-pick .dot{background:var(--cat);border-radius:50%;flex:none;width:10px;height:10px}.cal-pick.active{border-color:var(--cat,var(--accent));background:color-mix(in srgb, var(--cat,var(--accent)) 14%, var(--surface));color:var(--ink)}.cal-pick.add{color:var(--accent-strong);border-style:dashed}.cal-pick.add .icon{width:14px;height:14px}.has-cat{--cat-bg:color-mix(in srgb, var(--cat) 18%, var(--surface))}.allday-row.has-cat{background:var(--cat-bg)}.allday-row.has-cat .icon,.allday-row.has-cat .allday-tag{color:var(--cat)}.evt-block.has-cat{background:var(--cat-bg);border-left-color:var(--cat)}.evt-block.has-cat .icon{color:var(--cat)}.cal-block.has-cat{background:var(--cat-bg);border-left-color:var(--cat)}.tabs-bar{background:var(--bg-soft);border-radius:var(--radius-pill);gap:6px;margin:8px 0 18px;padding:4px;display:flex}.tab-btn{border-radius:var(--radius-pill);color:var(--ink-soft);cursor:pointer;background:0 0;border:none;flex:1;padding:9px 6px;font-size:13px;font-weight:700}.tab-btn.active{background:var(--surface);color:var(--accent-strong);box-shadow:var(--shadow-sm)}.filter-chip-row{align-items:center;gap:8px;margin-bottom:14px;display:flex}.group-header{align-items:center;gap:8px;margin:20px 0 8px;display:flex}.group-header:first-child{margin-top:0}.group-header .lbl{letter-spacing:.5px;text-transform:uppercase;color:var(--ink-soft);font-size:12px;font-weight:700}.group-header.overdue .lbl{color:var(--coral)}.group-header .cnt{color:var(--ink-faint);background:var(--bg-soft);border-radius:var(--radius-pill);padding:2px 8px;font-size:11px;font-weight:700}.task-list-row{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:12px;padding:12px 4px;display:flex}.task-list-row:last-child{border-bottom:none}.task-list-row .meta{flex:1;min-width:0}.task-list-row .title-line{align-items:center;gap:6px;display:flex}.task-list-row .title-line .t{font-size:14.5px;font-weight:600}.task-list-row.done .title-line .t{color:var(--ink-faint);text-decoration:line-through}.priority-dot{border-radius:50%;flex:none;width:7px;height:7px}.task-list-row .sub-line{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.mini-chip{color:var(--ink-soft);align-items:center;gap:3px;font-size:11px;font-weight:600;display:flex}.task-list-row .date-badge{color:var(--ink-faint);text-align:right;flex:none;font-size:11.5px;font-weight:700}.task-list-row.overdue .date-badge{color:var(--coral)}.form-page{padding-bottom:20px}@media (min-width:900px){.form-page{max-width:640px;margin:0 auto}}.form-topbar{z-index:20;height:var(--topbar-h);background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin:0 -16px 8px;padding:0 10px 0 4px;display:flex;position:sticky;top:0}@media (min-width:900px){.form-topbar{margin:0 -32px 18px;padding:0 26px}}.form-topbar .form-title{font-size:15.5px;font-weight:600}.form-back{color:var(--ink-soft);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:2px;padding:8px 6px;font-size:14px;font-weight:600;display:flex}.form-back:hover{background:var(--bg-soft)}.form-save{border-radius:var(--radius-pill);background:var(--accent);height:36px;color:var(--accent-ink);cursor:pointer;border:none;padding:0 16px;font-size:13.5px;font-weight:700}.form-save:disabled{opacity:.4;cursor:not-allowed}.complete-banner{border-radius:var(--radius-md);background:var(--moss-soft);cursor:pointer;border:1px solid #0000;align-items:center;gap:12px;margin-bottom:18px;padding:13px 14px;display:flex}.complete-banner.incomplete{background:var(--surface-warm);border-color:var(--border)}.complete-banner .t{color:var(--moss);font-size:14px;font-weight:700}.complete-banner.incomplete .t{color:var(--ink-soft)}.title-input{width:100%;font-family:var(--font-display);color:var(--ink);border:none;border-bottom:1px solid var(--border);background:0 0;outline:none;margin-bottom:18px;padding:6px 2px 16px;font-size:22px;font-weight:600}.title-input::placeholder{color:var(--ink-faint);font-weight:500}.field-group{margin-bottom:22px}.field-label{letter-spacing:.5px;text-transform:uppercase;color:var(--ink-soft);align-items:center;gap:6px;margin-bottom:9px;font-size:11.5px;font-weight:700;display:flex}.field-row2{gap:10px;display:flex}.field-row2>*{flex:1;min-width:0}.text-input,.date-input,.time-input,.textarea{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-md);width:100%;color:var(--ink);outline:none;padding:11px 13px;font-family:inherit;font-size:14px;transition:border-color .15s}.text-input:focus,.date-input:focus,.time-input:focus,.textarea:focus{border-color:var(--accent)}.textarea{resize:vertical;min-height:88px;line-height:1.5}.field-clear{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;padding:4px;display:flex}.field-clear:hover{color:var(--coral)}.date-clear-row{align-items:center;gap:8px;display:flex}.date-clear-row>.date-input{flex:1}.seg{gap:8px;display:flex}.seg-opt{border-radius:var(--radius-md);border:1.5px solid var(--border-strong);background:var(--surface);text-align:center;cursor:pointer;color:var(--ink-soft);flex:1;padding:10px 6px;font-size:13px;font-weight:700}.seg-opt.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}.seg-opt.active[data-p=high]{background:var(--coral-soft);border-color:var(--coral);color:var(--coral)}.seg-opt.active[data-p=medium]{background:var(--amber-soft);border-color:var(--amber);color:var(--amber)}.seg-opt.active[data-p=low]{background:var(--sky-soft);border-color:var(--sky);color:var(--sky)}.tap-row{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:12px 13px;display:flex}.tap-row:hover{background:var(--bg-soft)}.tap-row .val{color:var(--ink);align-items:center;gap:6px;font-size:13.5px;font-weight:600;display:flex}.tap-row .ph{color:var(--ink-faint);font-weight:500}.toggle-row{justify-content:space-between;align-items:center;padding:2px 0;display:flex}.toggle-row .t{font-size:14px;font-weight:600}.notif-row{flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:9px;display:flex}.notif-row select,.notif-num{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-sm);color:var(--ink);outline:none;padding:8px 9px;font-family:inherit;font-size:13px}.notif-num{text-align:center;width:54px}.notif-row .lbl{color:var(--ink-soft);font-size:13px}.notif-del{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:6px}.notif-del:hover{color:var(--coral)}.add-row-btn{color:var(--accent-strong);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:8px 2px;font-size:13.5px;font-weight:700;display:flex}.chips-field{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip-remove{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;margin-left:2px;padding:0;display:flex}.chip-remove:hover{opacity:1}.chip-add-btn{border:1.5px dashed var(--border-strong);width:30px;height:30px;color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;display:flex}.chip-add-btn:hover{border-color:var(--accent);color:var(--accent)}.attach-row{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-warm);cursor:pointer;align-items:center;gap:11px;margin-bottom:8px;padding:10px 12px;display:flex}.attach-row .ic{background:var(--sky-soft);width:34px;height:34px;color:var(--sky);border-radius:9px;flex:none;justify-content:center;align-items:center;display:flex}.attach-row .t{font-size:13.5px;font-weight:600}.attach-row .s{color:var(--ink-soft);font-size:11.5px}.danger-btn{color:var(--coral);border:1px solid var(--coral-soft);background:0 0}.danger-btn:hover{background:var(--coral-soft)}.confirm-modal{text-align:center;max-width:340px;padding:8px 4px 4px}.confirm-modal h3{margin-bottom:8px;font-size:17px}.confirm-modal p{color:var(--ink-soft);margin-bottom:20px;font-size:13.5px;line-height:1.5}.confirm-actions{gap:10px;display:flex}.confirm-actions .btn{flex:1}.tagpick-row{align-items:center;gap:11px;padding:11px 4px;display:flex}.tagpick-input-wrap{border-top:1px solid var(--border);gap:8px;margin-top:10px;padding-top:10px;display:flex}.tagpick-input-wrap input{flex:1}.custom-repeat-panel{border-top:1px solid var(--border);flex-direction:column;gap:14px;margin-top:14px;padding-top:14px;display:flex}.dow-row{gap:6px;display:flex}.dow-chip{border:1.5px solid var(--border-strong);background:var(--surface);width:34px;height:34px;color:var(--ink-soft);cursor:pointer;border-radius:50%;font-size:11.5px;font-weight:700}.dow-chip.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.chooser-row{gap:12px;display:flex}.chooser-opt{border:1.5px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);text-align:center;cursor:pointer;flex-direction:column;flex:1;align-items:center;gap:10px;padding:20px 14px;display:flex}.chooser-opt:hover{border-color:var(--accent);background:var(--accent-softer)}.chooser-opt .ic{border-radius:14px;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.chooser-opt .t{font-size:14px;font-weight:700}.page-toolbar{align-items:center;gap:8px;margin:8px 0 16px;display:flex}.search-field{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-pill);flex:1;align-items:center;gap:8px;height:42px;padding:0 14px;display:flex}.search-field input{color:var(--ink);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:13.5px}.search-field .icon{color:var(--ink-faint);flex:none}.view-toggle{background:var(--bg-soft);border-radius:var(--radius-pill);flex:none;gap:2px;padding:3px;display:flex}.view-toggle button{width:34px;height:34px;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.view-toggle button.active{background:var(--surface);color:var(--accent-strong);box-shadow:var(--shadow-sm)}.notes-pinned-label{letter-spacing:.5px;text-transform:uppercase;color:var(--ink-faint);align-items:center;gap:6px;margin:4px 0 10px;font-size:11px;font-weight:700;display:flex}.notes-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (min-width:560px){.notes-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:900px){.notes-grid{grid-template-columns:repeat(4,1fr)}}.notes-list{flex-direction:column;gap:10px;display:flex}.note-card{border-radius:var(--radius-md);cursor:pointer;border:1px solid var(--border);background:var(--surface-warm);flex-direction:column;min-height:120px;padding:13px 13px 11px;transition:transform .1s,box-shadow .15s;display:flex;position:relative}.note-card:hover{box-shadow:var(--shadow-md)}.note-card:active{transform:scale(.985)}.notes-list .note-card{flex-direction:row;align-items:flex-start;gap:12px;min-height:0;padding:13px 14px}.note-card .pin-btn{width:26px;height:26px;color:var(--ink-soft);cursor:pointer;opacity:0;background:#ffffff8c;border:none;border-radius:50%;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;top:8px;right:8px}.note-card:hover .pin-btn,.note-card .pin-btn.pinned{opacity:1}.note-card .pin-btn.pinned{color:var(--accent-strong)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .note-card .pin-btn{background:#00000073}}:root[data-theme=dark] .note-card .pin-btn{background:#00000073}.note-card .n-title{margin-bottom:5px;padding-right:22px;font-size:14px;font-weight:700}.notes-list .note-card .n-title{margin-bottom:2px}.note-card .n-body{color:var(--ink-soft);-webkit-line-clamp:5;-webkit-box-orient:vertical;flex:1;font-size:12.5px;line-height:1.5;display:-webkit-box;overflow:hidden}.notes-list .note-card .n-body{-webkit-line-clamp:2}.note-card .n-foot{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.note-card .n-chip{color:var(--ink-faint);border-radius:var(--radius-pill);background:#0000000b;padding:2px 7px;font-size:10px;font-weight:700}.note-color-default{background:var(--surface-warm)}.note-color-orange{background:var(--accent-softer)}.note-color-yellow{background:var(--amber-soft)}.note-color-plum{background:var(--plum-soft)}.note-color-sky{background:var(--sky-soft)}.note-color-moss{background:var(--moss-soft)}.color-swatch-row{gap:10px;display:flex}.color-swatch{border:2px solid var(--border);cursor:pointer;color:#0000;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.color-swatch.active{border-color:var(--ink);color:var(--ink)}.link-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.link-row a{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--sky);flex:1;font-size:13px;text-decoration:none;overflow:hidden}.link-row a:hover{text-decoration:underline}.link-add-row{gap:8px;margin-top:4px;display:flex}.link-add-row input{flex:1}.note-header-actions{align-items:center;gap:4px;display:flex}.pin-icon-btn{border-radius:var(--radius-pill);width:38px;height:38px;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.pin-icon-btn:hover{background:var(--bg-soft)}.pin-icon-btn.pinned{color:var(--accent-strong)}.note-content-area{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-md);width:100%;color:var(--ink);resize:vertical;outline:none;min-height:150px;margin-bottom:20px;padding:12px 13px;font-family:inherit;font-size:14px;line-height:1.6}.note-content-area:focus{border-color:var(--accent)}.archive-btn{background:var(--bg-soft);color:var(--ink);border:1px solid var(--border-strong)}.archive-btn:hover{background:var(--surface)}.subtle-delete{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;margin:16px auto 0;padding:8px;font-size:13px;font-weight:600;display:block}.subtle-delete:hover{color:var(--coral)}.files-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (min-width:560px){.files-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:900px){.files-grid{grid-template-columns:repeat(4,1fr)}}.file-card{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);cursor:pointer;transition:box-shadow .15s,transform .1s;position:relative;overflow:hidden}.file-card:hover{box-shadow:var(--shadow-md)}.file-card:active{transform:scale(.985)}.file-card .thumb{background:var(--bg-soft);justify-content:center;align-items:center;height:88px;display:flex;overflow:hidden}.file-card .thumb img{object-fit:cover;width:100%;height:100%}.file-card .meta{padding:9px 10px 11px}.file-card .f-name{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;overflow:hidden}.file-card .f-sub{color:var(--ink-soft);margin-top:2px;font-size:11px}.file-card .pin-btn{width:24px;height:24px;color:var(--ink-soft);cursor:pointer;opacity:0;z-index:1;background:#ffffffa6;border:none;border-radius:50%;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;top:6px;right:6px}.file-card .pin-btn svg{width:13px;height:13px}.file-card:hover .pin-btn,.file-card .pin-btn.pinned{opacity:1}.file-card .pin-btn.pinned{color:var(--accent-strong)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .file-card .pin-btn{background:#00000073}}:root[data-theme=dark] .file-card .pin-btn{background:#00000073}.files-list{flex-direction:column;display:flex}.file-row{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:12px;padding:12px 4px;display:flex}.file-row:last-child{border-bottom:none}.file-row .thumb-sm{border-radius:9px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:flex;overflow:hidden}.file-row .thumb-sm img{object-fit:cover;width:100%;height:100%}.file-row .meta{flex:1;min-width:0}.file-row .f-name{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:600;overflow:hidden}.file-row .f-sub{color:var(--ink-soft);margin-top:2px;font-size:11.5px}.file-row .f-date{color:var(--ink-faint);flex:none;font-size:11.5px}.file-row .pin-btn{width:24px;height:24px;color:var(--ink-faint);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.file-row .pin-btn svg{width:13px;height:13px}.file-row .pin-btn.pinned{color:var(--accent-strong)}.file-preview-hero{border-radius:var(--radius-lg);background:var(--bg-soft);margin-bottom:20px;overflow:hidden}.file-preview-hero img{object-fit:contain;background:var(--bg-soft);width:100%;max-height:320px;display:block}.file-preview-hero .icon-hero{justify-content:center;align-items:center;height:200px;display:flex}.file-preview-hero .icon-hero .box{border-radius:22px;justify-content:center;align-items:center;width:76px;height:76px;display:flex}.linked-item-row{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-warm);cursor:pointer;align-items:center;gap:11px;margin-bottom:8px;padding:11px 12px;display:flex}.linked-item-row .ic{border-radius:9px;flex:none;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.linked-item-row .t{flex:1;font-size:13.5px;font-weight:600}.filepick-row{align-items:center;gap:11px;padding:10px 4px;display:flex}.filepick-row .thumb-sm{border-radius:8px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;display:flex;overflow:hidden}.filepick-row .thumb-sm img{object-fit:cover;width:100%;height:100%}.filepick-row .meta{flex:1;min-width:0}.filepick-row .t{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.filepick-row .s{color:var(--ink-soft);font-size:11px}.entity-list{flex-direction:column;gap:10px;display:flex}.entity-row{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);cursor:pointer;align-items:center;gap:13px;padding:14px 15px;transition:box-shadow .15s,transform .1s;display:flex}.entity-row:active{transform:scale(.99)}.entity-row.is-focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.entity-row .ic{border-radius:13px;flex:none;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.entity-row .body{flex:1;min-width:0}.entity-row .e-title{font-size:14.5px;font-weight:700;line-height:1.35}.entity-row .e-sub{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:6px;margin-top:5px;font-size:12.5px;display:flex}.entity-row .e-sub .dot{background:var(--ink-faint);border-radius:50%;flex:none;width:3px;height:3px}.entity-row .e-sub .foc{color:var(--accent-strong);align-items:center;gap:3px;font-weight:700;display:inline-flex}.entity-row .e-sub .foc .icon{width:12px;height:12px}.entity-row .e-meta-r{flex-direction:column;flex:none;align-items:flex-end;gap:4px;display:flex}.entity-row .e-sub .streak-inline{white-space:nowrap;align-items:center;gap:3px;display:inline-flex}.entity-row .e-sub .streak-inline .icon{width:13px;height:13px;color:var(--amber)}@media (max-width:420px){.entity-row .habit-week-strip{gap:3px}.entity-row .habit-week-strip .d{border-radius:2px;width:7px;height:7px}}.status-pill{border-radius:var(--radius-pill);white-space:nowrap;padding:3px 9px;font-size:10.5px;font-weight:700}.status-pill.status-in-progress{background:var(--sky-soft);color:var(--sky)}.status-pill.status-on-hold{background:var(--amber-soft);color:var(--amber)}.status-pill.status-completed{background:var(--moss-soft);color:var(--moss)}.progress-mini{align-items:center;gap:6px;display:flex}.progress-mini .track{border-radius:var(--radius-pill);background:var(--bg-soft);width:44px;height:5px;overflow:hidden}.progress-mini .fill{background:var(--moss);border-radius:var(--radius-pill);height:100%}.progress-mini .lbl{color:var(--ink-faint);font-size:11px;font-weight:600}.detail-hero{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;display:flex}.detail-hero .box{border-radius:16px;flex:none;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.focus-toggle-btn{border-radius:var(--radius-pill);border:1.5px solid var(--border-strong);background:var(--surface);height:36px;color:var(--ink-soft);cursor:pointer;flex:none;align-items:center;gap:6px;padding:0 14px;font-size:12.5px;font-weight:700;display:flex}.focus-toggle-btn:hover{background:var(--bg-soft)}.focus-toggle-btn.active{background:var(--accent-softer);border-color:var(--accent);color:var(--accent-strong)}.next-action-row{cursor:pointer;align-items:center;gap:10px;padding:9px 2px;display:flex}.next-action-row .t{flex:1;font-size:13.5px}.next-action-row.done .t{color:var(--ink-faint);text-decoration:line-through}.next-action-row .next-action-date{color:var(--ink-soft);flex:none;font-size:11.5px}.next-action-add{gap:8px;margin-top:6px;display:flex}.next-action-add input{flex:1}.next-action-toggle{color:var(--accent-strong);cursor:pointer;background:0 0;border:none;padding:8px 2px 2px;font-size:12.5px;font-weight:700}.related-section{margin-bottom:22px}.related-head{justify-content:space-between;align-items:center;margin-bottom:9px;display:flex}.related-head .lbl{letter-spacing:.5px;text-transform:uppercase;color:var(--ink-soft);font-size:11.5px;font-weight:700}.related-head .view-all{color:var(--accent-strong);cursor:pointer;background:0 0;border:none;font-size:12.5px;font-weight:700}.related-row{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:11px;padding:10px 4px;display:flex}.related-row:last-child{border-bottom:none}.related-row .ic{border-radius:9px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.related-row .body{flex:1;min-width:0}.related-row .t{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:600;overflow:hidden}.related-row .t.done{color:var(--ink-faint);text-decoration:line-through}.related-row .sub{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12px;overflow:hidden}.related-empty{color:var(--ink-faint);padding:8px 4px;font-size:13px}.habit-week-strip{gap:4px;display:flex}.habit-week-strip .d{background:var(--bg-soft);border-radius:3px;flex:none;width:9px;height:9px}.habit-week-strip .d.on{background:var(--moss)}.habit-color-sky{background:var(--sky)}.habit-color-moss{background:var(--moss)}.habit-color-amber{background:var(--amber)}.habit-color-plum{background:var(--plum)}.habit-color-coral{background:var(--coral)}.habit-icon{--hc:var(--sky);background:color-mix(in srgb, var(--hc) 16%, var(--surface));width:32px;height:32px;color:var(--hc);border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.habit-icon .icon{width:18px;height:18px}.habit-icon-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;max-width:380px;display:grid}.habit-icon-opt{--hc:var(--accent);border:1.5px solid var(--border-strong);background:var(--surface);min-height:64px;color:var(--ink-soft);cursor:pointer;font:inherit;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:8px 2px;font-size:11px;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:flex}.habit-icon-opt .icon{width:22px;height:22px}.habit-icon-opt:hover{background:var(--bg-soft)}.habit-icon-opt.active{border-color:var(--hc);background:color-mix(in srgb, var(--hc) 14%, var(--surface));color:var(--hc)}.habit-icon-opt span{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.habit-stats{gap:10px;margin-bottom:22px;display:flex}.habit-stat{text-align:center;border-radius:var(--radius-md);background:var(--surface-warm);border:1px solid var(--border);flex:1;padding:14px 6px}.habit-stat .num{font-size:20px;font-weight:700;font-family:var(--font-display)}.habit-stat .lbl{color:var(--ink-soft);letter-spacing:.2px;margin-top:3px;font-size:10.5px;font-weight:600}.habit-month-toolbar{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.habit-log-cell{aspect-ratio:1;font-variant-numeric:tabular-nums;cursor:pointer;background:var(--bg-soft);color:var(--ink-soft);border:1.5px solid #0000;border-radius:10px;justify-content:center;align-items:center;font-size:11.5px;font-weight:700;transition:transform .1s;display:flex}.habit-log-cell:active{transform:scale(.9)}.habit-log-cell.out,.habit-log-cell.future{opacity:.3;cursor:default}.habit-log-cell.is-today{border-color:var(--accent)}.habit-log-cell.on{color:#fff}.settings-block{margin-bottom:20px;padding:18px 16px 20px}.settings-block-title{margin-bottom:4px;font-size:15.5px}.settings-hint{color:var(--ink-soft);margin-bottom:16px;font-size:12.5px;line-height:1.5}.settings-block .field-group:last-child{margin-bottom:0}.reflect-hub-list{flex-direction:column;gap:12px;display:flex}.reflect-type-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;align-items:center;gap:14px;padding:16px;display:flex}.reflect-type-card.done{border-color:var(--moss)}.reflect-type-card .ic{background:var(--bg-soft);width:44px;height:44px;color:var(--ink-soft);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.reflect-type-card.done .ic{background:var(--moss-soft);color:var(--moss)}.reflect-type-card .body{flex:1;min-width:0}.reflect-type-card .body .t{font-size:15px;font-weight:700}.reflect-type-card .body .s{color:var(--ink-soft);margin-top:2px;font-size:12.5px}.reflect-type-card .right{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.done-tag{color:var(--moss);align-items:center;gap:4px;font-size:12px;font-weight:700;display:flex}.todo-tag{color:var(--ink-faint);font-size:12px;font-weight:600}.reflect-streak{color:var(--amber);align-items:center;gap:3px;font-size:12px;font-weight:700;display:flex}.reflect-page-head{align-items:center;gap:10px;margin-bottom:6px;display:flex}.reflect-nav-toolbar{justify-content:space-between;align-items:center;margin:10px 0 18px;display:flex}.mood-row{gap:8px;display:flex}.mood-btn{border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;flex:1;height:52px;font-size:22px;transition:border-color .15s,background .15s}.mood-btn.active{border-color:var(--accent);background:var(--accent-softer)}.reflect-stat-row{color:var(--ink-soft);justify-content:space-between;align-items:center;padding:7px 0;font-size:13.5px;display:flex}.reflect-stat-row b{color:var(--ink);font-size:14px}.reflect-project-wrap{border-bottom:1px solid var(--border)}.reflect-project-wrap:last-child{border-bottom:none}.reflect-project-row{cursor:pointer;align-items:center;gap:10px;padding:11px 2px;display:flex}.reflect-project-row .meta{flex:1;min-width:0}.reflect-project-row .meta .t{font-size:13.5px;font-weight:600}.reflect-project-row .meta .s{color:var(--ink-soft);font-size:12px}.reflect-project-row .na-count{color:var(--ink-soft);white-space:nowrap;flex:none;font-size:12px;font-weight:600}.reflect-project-row .na-count.complete{color:var(--moss)}.reflect-project-row .wk-add-toggle{color:var(--ink-soft);border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex:none;align-items:center;gap:4px;padding:5px 8px 5px 6px;font-size:12px;font-weight:600;display:flex}.reflect-project-row .wk-add-toggle svg{width:14px;height:14px}.reflect-project-row .wk-add-toggle:hover{background:var(--bg-soft);color:var(--accent-strong)}.lw-done-tag{color:var(--moss);align-items:center;gap:3px;margin-left:4px;font-weight:700;display:inline-flex}.lw-done-tag svg{width:12px;height:12px}.reflect-summary-line{padding:2px 0 10px;font-size:12.5px;font-weight:600}.reflect-summary-line.warn{color:var(--coral)}.reflect-summary-line.ok{color:var(--moss)}.weekly-add-row{flex-direction:column;gap:8px;padding:0 2px 12px;display:flex}.weekly-add-row .add-input-row{gap:8px;display:flex}.weekly-add-row .add-input-row input{flex:1}.commit-toggle{color:var(--ink-soft);cursor:pointer;white-space:nowrap;text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:2px;background:0 0;border:none;flex:none;padding:0;font-size:12px;font-weight:600}.commit-toggle:hover{color:var(--accent-strong)}.commit-checklist{padding:0 2px 10px}.commit-pick-list{flex-direction:column;gap:2px;max-height:160px;display:flex;overflow-y:auto}.commit-pick-row{color:var(--ink);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 4px;font-size:13px;display:flex}.commit-pick-row:hover{background:var(--bg-soft)}.commit-pick-row .t{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.commit-pick-row .pick-add{width:16px;height:16px;color:var(--ink-faint);flex:none}.commit-pick-row .pick-add svg{width:16px;height:16px}.next-action-row.commit-row .commit-remove{width:22px;height:22px;color:var(--ink-faint);flex:none}.next-action-row.commit-row .commit-remove svg{width:14px;height:14px}.next-action-row.commit-row .commit-remove:hover{color:var(--coral)}.reflect-goal-row{margin-bottom:16px}.reflect-goal-row:last-child{margin-bottom:0}.reflect-goal-row .name{align-items:center;gap:6px;margin-bottom:4px;font-size:13.5px;font-weight:700;display:flex}.reflect-goal-row .sub{color:var(--ink-soft);margin-bottom:8px;font-size:12px}button:disabled{opacity:.4;cursor:not-allowed}:root{--card-border:transparent;--shadow-card:0 1px 2px #0000000a, 0 4px 14px -6px #00000014}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--card-border:var(--border);--shadow-card:none}}:root[data-theme=dark]{--card-border:var(--border);--shadow-card:none}.card,.gw-card,.hourgrid-wrap,.wk-card,.entity-row,.more-row,.habits-today-bar{border-color:var(--card-border);box-shadow:var(--shadow-card)}.entity-row:hover{box-shadow:0 2px 4px #0000000d,0 10px 22px -10px #00000029}.focus-card{background:var(--surface);border-color:var(--card-border);box-shadow:var(--shadow-card)}.focus-card:before{display:none}.link-btn{color:var(--ink-soft)}.link-btn:hover{color:var(--ink)}.cal-hidden-note .link-btn{color:var(--accent-strong)}.focus-goal-tag{color:var(--ink-soft)}.focus-goal-tag .icon{color:var(--accent)}.cal-viewtab.active{color:var(--ink)}.cal-view-tabs,.cal-viewtab{border-radius:var(--radius-pill)}[hidden]{display:none!important}.cal-cats{margin:0 0 12px}.cal-cats-bar{flex-wrap:wrap;align-items:center;gap:10px;min-height:36px;display:flex}.cal-cats-toggle{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);height:36px;color:var(--ink);cursor:pointer;font:inherit;align-items:center;gap:8px;padding:0 10px 0 12px;display:inline-flex}.cal-cats-toggle:hover{background:var(--bg-soft)}.cal-cats-toggle .section-label{color:var(--ink);letter-spacing:0;text-transform:none;font-size:12.5px;font-weight:600}.cal-dots{gap:3px;display:inline-flex}.cal-dot{box-sizing:border-box;border:1.5px solid var(--cat);background:var(--cat);border-radius:50%;width:9px;height:9px}.cal-dot.off{background:0 0}.cal-cats-toggle .caret{color:var(--ink-soft);transition:transform .15s;display:inline-flex}.cal-cats.is-open .cal-cats-toggle .caret{transform:rotate(180deg)}.cal-cats.is-open .cal-cats-row{margin-top:10px}.cal-cats-bar .cal-cats-links{margin-left:auto}@media (max-width:639px){.gw-hour{font-size:10.5px}.gw-dayhead .wd{font-size:11px}.gw-chip{font-size:10.5px}.gw-allday .tz{font-size:9.5px}}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:420px;padding:34px 26px calc(26px + var(--safe-b));box-shadow:var(--shadow-md);text-align:center}.login-brand{justify-content:center;align-items:baseline;gap:7px;margin-bottom:22px;display:flex}.login-brand .mark{color:var(--accent);font-family:var(--font-display);letter-spacing:-.5px;font-size:28px;font-weight:800}.login-brand .word{font-family:var(--font-display);color:var(--ink);font-size:22px;font-weight:700}.login-card h1{margin-bottom:10px;font-size:21px;line-height:1.45}.login-sub{color:var(--ink-soft);margin-bottom:22px;font-size:14px;line-height:1.7}.login-error{background:var(--coral-soft);color:var(--coral);border-radius:var(--radius-sm);margin-bottom:16px;padding:10px 12px;font-size:13px;font-weight:600}.line-login-btn{color:#fff;background:#06c755;gap:10px;height:50px;font-size:15.5px}.line-login-btn:hover{filter:brightness(1.05)}.line-login-btn .icon{width:24px;height:24px}.login-foot{color:var(--ink-faint);margin-top:16px;font-size:12.5px}.account-row{align-items:center;gap:12px;margin-bottom:14px;display:flex}.account-avatar{border-radius:var(--radius-pill);object-fit:cover;background:var(--bg-soft);flex:none;width:46px;height:46px}.account-avatar.placeholder{color:var(--ink-faint);justify-content:center;align-items:center;display:flex}.account-name{font-size:15.5px;font-weight:700}.overlay.open{animation:.2s overlay-fade-in}.overlay.open .sheet{animation:.22s cubic-bezier(.32,.72,0,1) sheet-slide-in}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-slide-in{0%{transform:translateY(16px)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.overlay.open,.overlay.open .sheet{animation:none}}.toast{animation:.22s forwards toast-in}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}
