@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--accent: #2f6feb;--accent-hover: color-mix(in srgb, var(--accent) 86%, #000);--accent-soft: color-mix(in srgb, var(--accent) 11%, transparent);--accent-softer: color-mix(in srgb, var(--accent) 6%, transparent);--accent-text: color-mix(in srgb, var(--accent) 82%, var(--text));--accent-ring: color-mix(in srgb, var(--accent) 35%, transparent);--on-accent: #ffffff;--font: "Inter Variable", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Code", Menlo, Consolas, monospace;--fs-2xs: 11px;--fs-xs: 12px;--fs-sm: 13px;--fs: 14px;--fs-md: 15px;--fs-lg: 17px;--fs-xl: 22px;--fs-2xl: 28px;--fs-3xl: 34px;--radius-xs: 4px;--radius-sm: 6px;--radius: 8px;--radius-lg: 12px;--radius-xl: 16px;--sidebar-width: 252px;--sidebar-collapsed: 56px;--header-height: 52px;--mobile-nav-height: 60px;--page-max: 1120px;--page-pad: 40px;--row-pad: 8px;--ease: cubic-bezier(.2, .8, .2, 1);--dur: .16s;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px)}:root,:root[data-theme=light]{color-scheme:light;--bg: #ffffff;--bg-sidebar: #f8f8f7;--bg-subtle: #f7f7f5;--bg-sunken: #f1f1ef;--bg-elevated: #ffffff;--bg-hover: rgba(55, 53, 47, .055);--bg-active: rgba(55, 53, 47, .09);--bg-input: #ffffff;--border: #ebebe9;--border-strong: #dededa;--text: #1f1f1e;--text-secondary: #4f4e4a;--text-muted: #85847f;--text-faint: #b3b2ad;--shadow-sm: 0 1px 2px rgba(15, 15, 15, .05);--shadow: 0 1px 2px rgba(15, 15, 15, .04), 0 4px 14px rgba(15, 15, 15, .06);--shadow-lg: 0 2px 6px rgba(15, 15, 15, .05), 0 12px 36px rgba(15, 15, 15, .12);--overlay: rgba(15, 15, 15, .28);--danger: #d4473a;--danger-soft: #fcecea;--success: #23885a;--success-soft: #e8f5ee;--warning: #b97806;--warning-soft: #fdf4e3;--prio-urgent: #d4473a;--prio-high: #e07126;--prio-normal: #8a8984;--prio-low: #b9b8b3;--status-open: #9a9994;--status-progress: #2f6feb;--status-waiting: #d1930f;--status-done: #23885a}:root[data-theme=dark]{color-scheme:dark;--bg: #191919;--bg-sidebar: #1f1f1f;--bg-subtle: #1e1e1e;--bg-sunken: #141414;--bg-elevated: #242424;--bg-hover: rgba(255, 255, 255, .055);--bg-active: rgba(255, 255, 255, .09);--bg-input: #202020;--border: #2a2a2a;--border-strong: #383838;--text: #ebebea;--text-secondary: #c8c7c3;--text-muted: #8e8d89;--text-faint: #5c5b58;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 4px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 2px 8px rgba(0, 0, 0, .35), 0 16px 44px rgba(0, 0, 0, .5);--overlay: rgba(0, 0, 0, .55);--accent-soft: color-mix(in srgb, var(--accent) 20%, transparent);--accent-softer: color-mix(in srgb, var(--accent) 10%, transparent);--accent-text: color-mix(in srgb, var(--accent) 70%, #fff);--danger: #ec6b5f;--danger-soft: rgba(236, 107, 95, .14);--success: #48b583;--success-soft: rgba(72, 181, 131, .14);--warning: #e3a336;--warning-soft: rgba(227, 163, 54, .14);--prio-urgent: #ec6b5f;--prio-high: #ef8c47;--prio-normal: #8e8d89;--prio-low: #5c5b58;--status-open: #8e8d89;--status-progress: #5b8ff0;--status-waiting: #e3a336;--status-done: #48b583}:root[data-density=compact]{--row-pad: 5px;--fs: 13.5px}@media(max-width:900px){:root{--page-pad: 24px}}@media(max-width:640px){:root{--page-pad: 16px;--fs: 15px;--fs-sm: 13.5px;--header-height: 54px}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent;background:var(--bg)}body{margin:0;min-height:100vh;min-height:100dvh;background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs);line-height:1.5;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:none}h1,h2,h3,h4,p{margin:0}h1,h2,h3{font-weight:650;letter-spacing:-.015em}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0}button:disabled{cursor:not-allowed}img,svg{display:block;max-width:100%}::selection{background:color-mix(in srgb,var(--accent) 24%,transparent)}:focus-visible{outline:2px solid var(--accent-ring);outline-offset:1px}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:10px;border:3px solid transparent;background-clip:content-box}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(4px) scale(.98)}}@keyframes slide-up{0%{opacity:0;transform:translateY(16px)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(24px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}}.boot-screen{position:fixed;inset:0;display:grid;place-content:center;justify-items:center;gap:14px;color:var(--text-muted);font-size:var(--fs-sm);animation:fade-in .4s .15s both}.boot-logo{width:44px;height:44px;border-radius:12px;background:var(--accent);position:relative;box-shadow:var(--shadow)}.boot-logo:after{content:"";position:absolute;inset:13px 12px;border-top:3px solid #fff;border-bottom:3px solid rgba(255,255,255,.7);border-radius:2px}.grow{flex:1;min-width:0}.muted{color:var(--text-muted)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;display:inline-block}.hint{color:var(--text-muted);font-size:var(--fs-xs);line-height:1.45}.row{display:flex;align-items:center;gap:8px}.stack{display:flex;flex-direction:column;gap:12px}.wrap{flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 14px;border-radius:var(--radius);font-size:var(--fs-sm);font-weight:550;white-space:nowrap;border:1px solid transparent;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);-webkit-user-select:none;user-select:none}.btn:disabled{opacity:.55}.btn-sm{height:28px;padding:0 10px;font-size:var(--fs-xs);border-radius:var(--radius-sm);gap:5px}.btn-lg{height:40px;padding:0 18px;font-size:var(--fs)}.btn-icon-only{padding:0;width:34px}.btn-primary{background:var(--accent);color:var(--on-accent);box-shadow:0 1px 2px color-mix(in srgb,var(--accent) 30%,transparent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--bg-elevated);border-color:var(--border-strong);color:var(--text);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.btn-ghost{color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 88%,#000)}.btn-danger-ghost{color:var(--danger)}.btn-danger-ghost:hover:not(:disabled){background:var(--danger-soft)}.icon-btn{display:inline-grid;place-items:center;flex-shrink:0;border-radius:var(--radius-sm);color:var(--text-muted);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.icon-btn:hover:not(:disabled),.icon-btn.is-active,.icon-btn[data-state=open]{background:var(--bg-hover);color:var(--text)}.icon-btn:disabled{opacity:.4}.icon-btn-md{width:32px;height:32px}.icon-btn-sm{width:26px;height:26px}@media(pointer:coarse){.icon-btn-md{width:40px;height:40px}.icon-btn-sm{width:34px;height:34px}.btn{height:40px}.btn-sm{height:34px}}.input{width:100%;height:36px;padding:0 11px;background:var(--bg-input);border:1px solid var(--border-strong);border-radius:var(--radius);font-size:var(--fs);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);min-width:0}.input::placeholder{color:var(--text-faint)}.input:hover{border-color:color-mix(in srgb,var(--border-strong) 60%,var(--text-faint))}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input-sm{height:30px;font-size:var(--fs-sm);padding:0 8px;border-radius:var(--radius-sm)}.textarea{height:auto;padding:8px 11px;resize:none;line-height:1.55;min-height:60px}.select{appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238a8984' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;cursor:pointer}.input-bare{border:0;background:transparent;padding:0;height:auto;box-shadow:none!important}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:var(--fs-xs);font-weight:600;color:var(--text-secondary)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .span-2{grid-column:span 2}@media(max-width:640px){.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}}.form-error{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius);padding:8px 12px;font-size:var(--fs-sm)}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0}.switch-row.is-disabled{opacity:.55}.switch-text label{font-weight:500;cursor:pointer}.switch{width:36px;height:21px;border-radius:999px;background:var(--border-strong);position:relative;flex-shrink:0;transition:background var(--dur) var(--ease)}.switch[data-state=checked]{background:var(--accent)}.switch-thumb{display:block;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000040;transform:translate(2px);transition:transform var(--dur) var(--ease)}.switch-thumb[data-state=checked]{transform:translate(17px)}.segmented{display:inline-flex;padding:2px;gap:2px;background:var(--bg-sunken);border-radius:var(--radius);border:1px solid var(--border)}.segment{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:6px;font-size:var(--fs-sm);font-weight:500;color:var(--text-muted);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.segment:hover{color:var(--text)}.segment.is-active{background:var(--bg-elevated);color:var(--text);box-shadow:var(--shadow-sm)}:root[data-theme=dark] .segment.is-active{background:var(--bg-active)}.segmented-sm .segment{height:24px;padding:0 8px;font-size:var(--fs-xs)}.task-check{--size: 18px;--ring: var(--prio-normal);width:var(--size);height:var(--size);border-radius:50%;border:1.6px solid var(--ring);display:grid;place-items:center;flex-shrink:0;color:transparent;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),transform .12s var(--ease)}.task-check.prio-urgent{--ring: var(--prio-urgent);background:color-mix(in srgb,var(--prio-urgent) 10%,transparent)}.task-check.prio-high{--ring: var(--prio-high);background:color-mix(in srgb,var(--prio-high) 9%,transparent)}.task-check.prio-low{--ring: var(--text-faint)}.task-check:hover{color:var(--ring)}.task-check:active{transform:scale(.88)}.task-check.is-checked{background:var(--accent);border-color:var(--accent);color:#fff}@media(pointer:coarse){.task-check{position:relative}.task-check:after{content:"";position:absolute;inset:-10px}}.checkbox{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.checkbox input{position:absolute;opacity:0;pointer-events:none}.checkbox-box{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--border-strong);display:grid;place-items:center;color:transparent;flex-shrink:0;transition:all var(--dur) var(--ease)}.checkbox input:checked+.checkbox-box{background:var(--accent);border-color:var(--accent);color:#fff}.checkbox input:focus-visible+.checkbox-box{box-shadow:0 0 0 3px var(--accent-soft)}.progress{height:6px;background:var(--bg-active);border-radius:99px;overflow:hidden;flex:1}.progress-sm{height:4px}.progress-bar{height:100%;background:var(--accent);border-radius:inherit;transition:width .4s var(--ease)}.progress-ring circle{transition:stroke-dashoffset .5s var(--ease)}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:48px 24px;color:var(--text-muted);animation:fade-in .3s var(--ease)}.empty-state.is-compact{padding:20px 12px}.empty-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--bg-sunken);color:var(--text-muted);margin-bottom:14px}.is-compact .empty-icon{width:34px;height:34px;border-radius:10px;margin-bottom:8px}.empty-title{font-weight:600;color:var(--text-secondary)}.is-compact .empty-title{font-weight:500;font-size:var(--fs-sm)}.empty-text{margin-top:4px;font-size:var(--fs-sm);max-width:360px}.empty-action{margin-top:16px}.spinner-wrap{display:grid;place-items:center;padding:40px;color:var(--text-muted)}.skeleton-group{display:flex;flex-direction:column;gap:10px;padding:8px 0}.skeleton{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--bg-sunken) 0%,var(--bg-active) 50%,var(--bg-sunken) 100%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:5px;border:1px solid var(--border-strong);border-bottom-width:2px;background:var(--bg-elevated);color:var(--text-muted);font:500 11px/1 var(--font)}.kbd-inverse{margin-left:8px;background:#ffffff1f;border-color:#fff3;color:inherit}.badge{--badge-color: var(--text-muted);display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 7px;border-radius:99px;font-size:var(--fs-2xs);font-weight:550;color:color-mix(in srgb,var(--badge-color) 85%,var(--text));background:color-mix(in srgb,var(--badge-color) 13%,transparent);white-space:nowrap;max-width:100%}.badge-sample{--badge-color: #b97806;font-weight:600;letter-spacing:.01em}.tooltip{background:#1f1f1e;color:#f1f1ef;font-size:var(--fs-xs);font-weight:500;padding:5px 8px;border-radius:6px;box-shadow:var(--shadow);z-index:100;display:flex;align-items:center;animation:fade-in .12s var(--ease)}:root[data-theme=dark] .tooltip{background:#3a3a3a}.dialog-overlay{position:fixed;inset:0;background:var(--overlay);z-index:50;animation:fade-in .16s var(--ease)}.dialog{position:fixed;z-index:51;left:50%;top:12vh;transform:translate(-50%);width:min(520px,calc(100vw - 32px));max-height:80vh;display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);animation:dialog-in .2s var(--ease)}@keyframes dialog-in{0%{opacity:0;transform:translate(-50%,8px) scale(.98)}}.dialog-sm{width:min(420px,calc(100vw - 32px))}.dialog-lg{width:min(720px,calc(100vw - 32px))}.dialog:focus{outline:none}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 16px 0 22px}.dialog-title{font-size:var(--fs-lg);font-weight:650}.dialog-description{padding:4px 22px 0;color:var(--text-muted);font-size:var(--fs-sm)}.dialog-body{padding:16px 22px 20px;overflow-y:auto}.dialog-footer{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.confirm-message{color:var(--text-secondary);line-height:1.6}@media(max-width:640px){.dialog,.dialog-sm,.dialog-lg{inset:auto 0 0;transform:none;width:100%;max-height:92dvh;border-radius:18px 18px 0 0;padding-bottom:var(--safe-bottom);animation:sheet-in .24s var(--ease)}@keyframes sheet-in{0%{transform:translateY(40px);opacity:0}}}.menu,.popover{z-index:60;min-width:200px;max-width:min(340px,calc(100vw - 16px));background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:5px;animation:pop-in .14s var(--ease);transform-origin:var(--radix-dropdown-menu-content-transform-origin, var(--radix-popover-content-transform-origin))}.menu{max-height:min(440px,var(--radix-dropdown-menu-content-available-height, 440px));overflow-y:auto}.popover{padding:8px}.menu-item{display:flex;align-items:center;gap:10px;min-height:32px;padding:0 10px 0 8px;border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none}.menu-item[data-highlighted],.menu-item[data-state=open]{background:var(--bg-hover)}.menu-item[data-disabled]{opacity:.45;pointer-events:none}.menu-item.is-danger{color:var(--danger)}.menu-icon{width:16px;flex-shrink:0;color:var(--text-muted)}.is-danger .menu-icon{color:inherit}.menu-swatch{width:10px;height:10px;margin:0 3px;border-radius:50%;flex-shrink:0}.menu-item-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-check{color:var(--accent)}.menu-chevron{color:var(--text-muted)}.menu-shortcut{color:var(--text-faint);font-size:var(--fs-xs)}.menu-separator{height:1px;background:var(--border);margin:5px -5px}.menu-label{padding:6px 8px 4px;font-size:var(--fs-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint)}@media(pointer:coarse){.menu-item{min-height:42px}}.toaster{position:fixed;z-index:90;bottom:20px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;width:min(440px,calc(100vw - 24px))}.toast{pointer-events:auto;display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px 8px 8px 14px;background:#1f1f1e;color:#f2f2f0;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-size:var(--fs-sm);animation:slide-up .22s var(--ease)}:root[data-theme=dark] .toast{background:#2e2e2e;border:1px solid #3a3a3a}.toast-message{flex:1;min-width:0}.toast-error .toast-icon{color:#f18a80}.toast-success .toast-icon{color:#6fd1a2}.toast-action{color:color-mix(in srgb,var(--accent) 55%,#fff);font-weight:600;padding:6px 8px;border-radius:6px}.toast-action:hover{background:#ffffff14}.toast-close{color:#ffffff80;width:26px;height:26px;display:grid;place-items:center;border-radius:6px}.toast-close:hover{background:#ffffff14;color:#fff}@media(max-width:768px){.toaster{bottom:calc(var(--mobile-nav-height) + var(--safe-bottom) + 12px)}}.date-popover{width:268px;padding:6px}.date-quick{display:flex;flex-direction:column;padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid var(--border)}.date-quick-item{display:flex;align-items:center;gap:10px;height:32px;padding:0 8px;border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--text-secondary)}.date-quick-item:hover,.date-quick-item.is-selected{background:var(--bg-hover);color:var(--text)}.date-quick-hint{margin-left:auto;color:var(--text-faint);font-size:var(--fs-xs)}.date-time-row{display:flex;align-items:center;gap:8px;padding:8px 4px 2px;margin-top:6px;border-top:1px solid var(--border);color:var(--text-muted)}.date-time-row .input{width:110px}.date-done{margin-left:auto}.mini-month{-webkit-user-select:none;user-select:none}.mini-month-head{display:flex;align-items:center;justify-content:space-between;padding:2px 2px 6px}.mini-month-title{font-weight:600;font-size:var(--fs-sm);text-transform:capitalize}.mini-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.mini-month-wd{text-align:center;font-size:var(--fs-2xs);color:var(--text-faint);font-weight:600;padding:4px 0}.mini-day{height:32px;border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--text);position:relative;font-variant-numeric:tabular-nums}.mini-day:hover{background:var(--bg-hover)}.mini-day.is-outside{color:var(--text-faint)}.mini-day.is-today{color:var(--accent);font-weight:650}.mini-day.is-selected{background:var(--accent);color:var(--on-accent);font-weight:600}.mini-day.has-mark:after{content:"";position:absolute;bottom:4px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:currentColor;opacity:.6}.swatches{display:flex;flex-wrap:wrap;gap:8px}.swatch{width:26px;height:26px;border-radius:50%;background:var(--swatch);color:#fff;display:grid;place-items:center;box-shadow:inset 0 0 0 1px #00000014;transition:transform .12s var(--ease)}.swatch:hover{transform:scale(1.1)}.swatch.is-active{box-shadow:0 0 0 2px var(--bg-elevated),0 0 0 4px var(--swatch)}.swatch-none,.swatch-custom{background:var(--bg-sunken);color:var(--text-muted);cursor:pointer;position:relative;overflow:hidden}.swatch-none.is-active{box-shadow:0 0 0 2px var(--bg-elevated),0 0 0 4px var(--text-muted)}.swatch-custom input{position:absolute;inset:0;opacity:0;cursor:pointer}.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:4px}.icon-grid-item{height:34px;border-radius:var(--radius-sm);display:grid;place-items:center;color:var(--text-muted)}.icon-grid-item:hover{background:var(--bg-hover);color:var(--text)}.icon-grid-item.is-active{background:var(--accent-soft);color:var(--accent-text)}.emoji-popover{width:300px}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px}.emoji-item{height:34px;font-size:19px;border-radius:var(--radius-sm)}.emoji-item:hover,.emoji-item.is-active{background:var(--bg-hover)}.emoji-remove{width:100%;margin-top:6px}.list-popover{width:260px;padding:0;overflow:hidden}.list-popover-search{display:flex;align-items:center;gap:6px;padding:6px 10px;border-bottom:1px solid var(--border);color:var(--text-muted)}.list-popover-search .input{border:0;box-shadow:none;padding:0;height:30px;background:transparent}.list-popover-items{max-height:260px;overflow-y:auto;padding:5px}.list-popover-item{display:flex;align-items:center;gap:9px;width:100%;min-height:32px;padding:0 8px;border-radius:var(--radius-sm);font-size:var(--fs-sm);text-align:left}.list-popover-item:hover{background:var(--bg-hover)}.list-popover-empty{padding:10px;color:var(--text-muted);font-size:var(--fs-sm)}.app{display:flex;min-height:100vh;min-height:100dvh}.app-main{flex:1;min-width:0;display:flex;flex-direction:column;height:100vh;height:100dvh}.app-content{flex:1;overflow-y:auto;overflow-x:hidden;outline:none;scroll-padding-top:16px}.skip-link{position:absolute;left:12px;top:-40px;z-index:100;background:var(--accent);color:#fff;padding:6px 12px;border-radius:var(--radius)}.skip-link:focus{top:12px}.sidebar{width:var(--sidebar-width);flex-shrink:0;height:100vh;height:100dvh;display:flex;flex-direction:column;background:var(--bg-sidebar);border-right:1px solid var(--border);transition:width .2s var(--ease);-webkit-user-select:none;user-select:none;z-index:30}.sidebar.is-collapsed{width:var(--sidebar-collapsed)}.sidebar-head{display:flex;align-items:center;gap:6px;height:var(--header-height);padding:0 10px 0 14px;flex-shrink:0}.is-collapsed .sidebar-head{padding:0 12px;justify-content:center}.brand{display:flex;align-items:center;gap:10px;min-width:0;flex:1;padding:4px;margin-left:-4px;border-radius:var(--radius-sm)}.brand:hover{background:var(--bg-hover)}.brand-logo{border-radius:6px;flex-shrink:0}.brand-name{font-weight:650;font-size:var(--fs-md);letter-spacing:-.01em}.is-collapsed .brand,.is-collapsed .nav-label,.is-collapsed .nav-count,.is-collapsed .nav-kbd,.sidebar-close{display:none}.sidebar-scroll{flex:1;overflow-y:auto;padding:4px 8px 12px}.sidebar-foot{padding:8px;border-top:1px solid var(--border)}.nav-list{display:flex;flex-direction:column;gap:1px}.nav-item{display:flex;align-items:center;gap:10px;height:32px;padding:0 8px;width:100%;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--fs-sm);font-weight:500;text-align:left;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.nav-item:hover{background:var(--bg-hover);color:var(--text)}.nav-item.is-active{background:var(--bg-active);color:var(--text);font-weight:600}.nav-item.is-active .nav-icon{color:var(--accent)}.is-collapsed .nav-item{justify-content:center;padding:0;height:36px}.nav-icon{flex-shrink:0;color:var(--text-muted)}.nav-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-count{font-size:var(--fs-2xs);font-weight:600;color:var(--text-muted);font-variant-numeric:tabular-nums}.nav-count.is-alert{color:var(--danger)}.nav-search{margin-bottom:6px;color:var(--text-muted)}.nav-kbd{height:18px;font-size:10px}.nav-section{margin-top:18px}.nav-section-head{display:flex;align-items:center;justify-content:space-between;padding:0 4px 0 6px;margin-bottom:2px}.nav-section-toggle{display:flex;align-items:center;gap:4px;font-size:var(--fs-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);padding:4px 2px}.nav-section-toggle:hover{color:var(--text-muted)}.nav-chevron{transition:transform var(--dur) var(--ease)}.nav-chevron.is-open{transform:rotate(90deg)}.nav-sub{height:30px}.nav-project-icon{width:17px;display:grid;place-items:center;color:var(--text-muted);flex-shrink:0}.nav-emoji{width:17px;font-size:14px;line-height:1;display:grid;place-items:center;color:var(--text-muted);flex-shrink:0}.nav-empty{font-size:var(--fs-xs);color:var(--text-faint);padding:4px 10px}.nav-install{color:var(--accent-text)}.nav-install .nav-icon{color:var(--accent)}.sidebar-backdrop{display:none}.header{display:flex;align-items:center;gap:10px;height:var(--header-height);padding:0 14px 0 20px;border-bottom:1px solid transparent;flex-shrink:0;background:var(--bg);z-index:20}.header-menu{display:none}.breadcrumbs{display:flex;align-items:center;gap:4px;min-width:0;flex:1;font-size:var(--fs-sm);overflow:hidden}.crumb{display:flex;align-items:center;gap:6px;min-width:0;color:var(--text-muted);padding:3px 6px;border-radius:var(--radius-sm);max-width:260px}a.crumb:hover{background:var(--bg-hover);color:var(--text)}.crumb.is-current{color:var(--text);font-weight:500}.crumb-sep{color:var(--text-faint);flex-shrink:0}.header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.search-trigger{display:flex;align-items:center;gap:8px;height:32px;width:240px;padding:0 6px 0 10px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-subtle);color:var(--text-muted);font-size:var(--fs-sm);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.search-trigger:hover{border-color:var(--border-strong);background:var(--bg)}.search-trigger-label{flex:1;text-align:left}.avatar-btn{border-radius:50%;padding:2px}.avatar-btn:hover .avatar,.avatar-btn[data-state=open] .avatar{box-shadow:0 0 0 3px var(--accent-soft)}.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);font-size:12px;font-weight:650;letter-spacing:.02em;transition:box-shadow var(--dur) var(--ease)}.sync-indicator{width:32px;height:32px;display:grid;place-items:center;border-radius:var(--radius-sm);color:var(--text-faint)}.sync-indicator:hover{background:var(--bg-hover);color:var(--text-muted)}.sync-indicator.is-offline{color:var(--warning)}.sync-indicator.is-error{color:var(--danger)}.sync-indicator.is-busy{color:var(--text-muted)}.spin-slow{animation:spin 1.6s linear infinite}.sync-popover{width:300px}.sync-popover-body{display:flex;flex-direction:column;gap:8px;padding:6px}.sync-popover-title{font-weight:600}.sync-error{color:var(--danger)}.mobile-nav{display:none}.update-banner{position:fixed;z-index:80;top:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:8px 8px 8px 16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-size:var(--fs-sm);animation:slide-up .24s var(--ease);width:max-content;max-width:calc(100vw - 24px)}@media(max-width:1100px){.search-trigger{width:34px;padding:0;justify-content:center;border-color:transparent;background:transparent}.search-trigger-label,.search-trigger .kbd{display:none}}@media(max-width:768px){.sidebar{position:fixed;left:0;top:0;bottom:0;width:min(300px,86vw);transform:translate(-102%);transition:transform .24s var(--ease);box-shadow:var(--shadow-lg);z-index:70;padding-top:var(--safe-top)}.sidebar.is-collapsed{width:min(300px,86vw)}.sidebar.is-mobile-open{transform:none}.sidebar-collapse{display:none}.sidebar-close{display:inline-grid}.sidebar-backdrop{display:block;position:fixed;inset:0;z-index:69;background:var(--overlay);opacity:0;pointer-events:none;transition:opacity .24s var(--ease)}.sidebar-backdrop.is-visible{opacity:1;pointer-events:auto}.nav-item{height:40px;font-size:var(--fs)}.header{padding:var(--safe-top) 8px 0 6px;height:calc(var(--header-height) + var(--safe-top));border-bottom-color:var(--border)}.header-menu{display:inline-grid}.header-new{display:none}.breadcrumbs .crumb:not(.is-current),.breadcrumbs .crumb-sep{display:none}.crumb.is-current{font-weight:600;font-size:var(--fs-md);max-width:none}.app-content{padding-bottom:calc(var(--mobile-nav-height) + var(--safe-bottom))}.mobile-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;height:calc(var(--mobile-nav-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);align-items:center;justify-content:space-around}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10.5px;font-weight:500;color:var(--text-muted);padding:6px 10px;min-width:60px}.mobile-nav-item.is-active{color:var(--accent)}.mobile-nav-add{width:46px;height:46px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 40%,transparent)}}.page{width:100%;max-width:var(--page-max);margin:0 auto;padding:28px var(--page-pad) 80px;animation:fade-in .2s var(--ease)}.page-wide{max-width:1480px}.page-narrow{max-width:820px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.page-title{font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.025em;line-height:1.2;display:flex;align-items:center;gap:12px}.page-title-icon{color:var(--text-muted)}.page-subtitle{color:var(--text-muted);margin-top:4px;font-size:var(--fs-sm)}.page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.page-loading{max-width:420px;margin:60px auto;text-align:center;display:flex;flex-direction:column;gap:8px}.section-title{font-size:var(--fs-xs);font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:28px 0 10px;display:flex;align-items:center;gap:8px}.section-title .count{color:var(--text-faint);font-weight:600}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg)}@media(max-width:640px){.page{padding-top:18px}.page-title{font-size:var(--fs-xl)}.page-header{margin-bottom:16px}}.auth-page{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px 16px;background:var(--bg-subtle)}.auth-card{width:min(420px,100%);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow);padding:32px;animation:pop-in .26s var(--ease)}.auth-brand{display:flex;align-items:center;gap:10px;font-weight:650;font-size:var(--fs-md);margin-bottom:24px}.auth-brand img{border-radius:10px}.auth-title{font-size:var(--fs-xl)}.auth-subtitle{color:var(--text-muted);margin-top:6px;font-size:var(--fs-sm)}.auth-form{display:flex;flex-direction:column;gap:14px;margin-top:22px}.auth-switch{color:var(--accent-text);font-size:var(--fs-sm);font-weight:500}.auth-illustration{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:var(--bg-sunken);color:var(--text-muted);margin:0 auto 8px}@media(max-width:480px){.auth-card{padding:24px 20px}}.error-page{max-width:520px;margin:12vh auto;padding:0 20px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}.error-page h1{font-size:var(--fs-xl)}.error-detail{font-family:var(--font-mono);font-size:var(--fs-xs);background:var(--bg-sunken);padding:10px 12px;border-radius:var(--radius);color:var(--text-muted);white-space:pre-wrap;width:100%;margin:0}.chip{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 6px;border-radius:5px;font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;max-width:220px;line-height:1}.chip.is-complete{color:var(--success)}.chip-due.is-today{color:var(--success);font-weight:550}.chip-due.is-overdue{color:var(--danger);font-weight:550}.chip-project-icon{display:grid;place-items:center}.chip-tag{--tag: var(--text-muted);color:color-mix(in srgb,var(--tag) 80%,var(--text));background:color-mix(in srgb,var(--tag) 12%,transparent);font-weight:500}.chip-tag button{display:grid;place-items:center;color:inherit;opacity:.6;margin-right:-2px}.chip-tag button:hover{opacity:1}.chip-more{background:var(--bg-sunken)}.chip-priority{padding:0 2px}.status-pill{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px;border-radius:99px;font-size:var(--fs-2xs);font-weight:550;background:var(--bg-sunken);color:var(--text-secondary)}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.task-list{display:flex;flex-direction:column;gap:6px}.task-group{border-radius:var(--radius-lg);transition:background var(--dur) var(--ease)}.task-group.is-over{background:var(--accent-softer)}.task-group-head{position:sticky;top:0;z-index:2;background:var(--bg);padding:10px 0 4px}.task-group-toggle{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);font-weight:650;color:var(--text);padding:4px 6px 4px 2px;border-radius:var(--radius-sm);margin-left:-4px}.task-group-toggle:hover{background:var(--bg-hover)}.task-group-toggle .nav-chevron{color:var(--text-faint)}.tone-danger .task-group-label{color:var(--danger)}.task-group-sub{font-weight:450;color:var(--text-muted)}.task-group-count{color:var(--text-faint);font-weight:550;font-size:var(--fs-xs)}.task-group-body{border-top:1px solid var(--border)}.sortable-item{touch-action:manipulation;position:relative}.task-row{position:relative;display:flex;align-items:flex-start;gap:10px;padding:var(--row-pad) 8px var(--row-pad) 4px;border-bottom:1px solid var(--border);cursor:pointer;background:var(--bg);transition:background var(--dur) var(--ease);outline:none}.task-row:hover,.task-row:focus-visible{background:var(--bg-subtle)}.task-row:focus-visible{box-shadow:inset 2px 0 0 var(--accent)}.task-row>.task-check{margin-top:2px}.task-row.is-dragging{opacity:.35}.task-row.is-overlay{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);cursor:grabbing;background:var(--bg-elevated)}.task-handle{position:absolute;left:-22px;top:calc(var(--row-pad) + 2px);color:var(--text-faint);opacity:0;cursor:grab;padding:2px;border-radius:4px}.task-row:hover .task-handle{opacity:1}.task-main{flex:1;min-width:0}.task-title-line{display:flex;align-items:center;gap:6px;min-height:22px}.task-title{font-size:var(--fs);line-height:1.45;word-break:break-word}.task-row.is-done .task-title{color:var(--text-muted);text-decoration:line-through;text-decoration-color:var(--text-faint)}.task-star{color:#e0a92e;flex-shrink:0}.task-desc{font-size:var(--fs-sm);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}.task-meta{display:flex;align-items:center;flex-wrap:wrap;gap:2px 6px;margin-top:3px;margin-left:-4px}.task-meta:empty{display:none}.task-actions{display:flex;gap:2px;opacity:0;transition:opacity var(--dur) var(--ease)}.task-row:hover .task-actions,.task-row:focus-within .task-actions,.task-actions:has([data-state=open]){opacity:1}@media(pointer:coarse){.task-actions{opacity:1}.task-actions .icon-btn:first-child,.task-handle{display:none}}.inline-add-trigger{display:flex;align-items:center;gap:10px;width:100%;padding:9px 4px;color:var(--text-muted);font-size:var(--fs-sm);border-radius:var(--radius-sm)}.inline-add-trigger svg{color:var(--accent)}.inline-add-trigger:hover{color:var(--accent-text)}.inline-add{padding:6px 4px 8px;border-bottom:1px solid var(--border)}.inline-add-row{display:flex;align-items:center;gap:10px}.inline-add-input{flex:1;border:0;background:transparent;outline:none;font-size:var(--fs);padding:4px 0;min-width:0}.inline-add-hint{color:var(--text-faint)}.parsed-tokens{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;padding-left:26px}.quick-form .parsed-tokens{padding-left:0}.parsed-token{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 6px 0 8px;border-radius:99px;font-size:var(--fs-xs);font-weight:550;background:var(--accent-soft);color:var(--accent-text);animation:pop-in .14s var(--ease)}.parsed-token.token-priority{background:color-mix(in srgb,var(--prio-high) 14%,transparent);color:color-mix(in srgb,var(--prio-high) 80%,var(--text))}.parsed-token.token-tag{background:var(--bg-sunken);color:var(--text-secondary)}.parsed-token.is-disabled{background:var(--bg-sunken);color:var(--text-muted);text-decoration:line-through}.parsed-token button{width:16px;height:16px;border-radius:50%;display:grid;place-items:center;color:inherit;opacity:.7}.parsed-token button:hover{opacity:1;background:#00000014}.task-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;flex-wrap:wrap}.task-toolbar-left,.task-toolbar-right{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.toolbar-search{display:flex;align-items:center;gap:4px;color:var(--text-muted)}.toolbar-search .input{width:200px}.filter-popover{width:380px;max-width:calc(100vw - 16px);padding:14px}.filter-panel{display:flex;flex-direction:column;gap:14px;max-height:60vh;overflow-y:auto}.filter-title{font-size:var(--fs-2xs);font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin-bottom:6px}.filter-chips{display:flex;flex-wrap:wrap;gap:5px}.filter-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:99px;border:1px solid var(--border-strong);font-size:var(--fs-xs);font-weight:500;color:var(--text-secondary);transition:all var(--dur) var(--ease)}.filter-chip:hover{background:var(--bg-hover)}.filter-chip.is-active{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 40%,transparent);color:var(--accent-text)}.filter-switches{display:flex;flex-direction:column;gap:8px}@media(max-width:640px){.hide-sm{display:none}.toolbar-search .input{width:140px}}.today-events{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:16px}.today-event{--event-color: var(--accent);display:flex;flex-direction:column;gap:2px;min-width:170px;max-width:240px;padding:8px 12px;border-radius:var(--radius);background:color-mix(in srgb,var(--event-color) 10%,var(--bg));border-left:3px solid var(--event-color);font-size:var(--fs-sm)}.today-event:hover{background:color-mix(in srgb,var(--event-color) 16%,var(--bg))}.today-event-time{font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.today-event .badge{align-self:flex-start}.today-event-title{font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg)}.task-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);min-width:900px}.task-table th{text-align:left;font-weight:600;font-size:var(--fs-xs);color:var(--text-muted);background:var(--bg-subtle);padding:0 10px;height:36px;border-bottom:1px solid var(--border);white-space:nowrap;position:sticky;top:0}.th-sort{display:inline-flex;align-items:center;gap:4px;color:inherit;font-weight:inherit}.th-sort:hover,.th-sort.is-active{color:var(--text)}.task-table td{padding:0 10px;height:40px;border-bottom:1px solid var(--border);white-space:nowrap}.task-table tr:last-child td{border-bottom:0}.task-table tbody tr:hover{background:var(--bg-subtle)}.task-table .col-check{width:36px;padding-right:0}.task-table .col-title{white-space:normal;min-width:240px}.table-title{text-align:left;font-weight:500;margin-right:6px}.table-title:hover{color:var(--accent-text);text-decoration:underline}.task-table tr.is-done .table-title{color:var(--text-muted);text-decoration:line-through}.table-select{border:0;background:transparent;font:inherit;color:inherit;padding:4px 2px;border-radius:var(--radius-sm);cursor:pointer;max-width:160px}.table-select:hover{background:var(--bg-hover)}.table-cell-btn{padding:4px 6px;border-radius:var(--radius-sm);margin-left:-6px}.table-cell-btn:hover{background:var(--bg-hover)}.table-cell-btn.is-overdue{color:var(--danger)}.col-date{color:var(--text-muted);font-variant-numeric:tabular-nums}.kanban{display:grid;grid-template-columns:repeat(4,minmax(260px,1fr));gap:14px;overflow-x:auto;padding-bottom:12px;align-items:start}.kanban-column{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;min-height:160px;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.kanban-column.is-over{background:var(--accent-softer);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}.kanban-column-head{display:flex;align-items:center;gap:8px;padding:12px 14px 8px}.kanban-column-title{font-weight:600;font-size:var(--fs-sm)}.kanban-column-count{color:var(--text-faint);font-size:var(--fs-xs);font-weight:600}.kanban-column-body{display:flex;flex-direction:column;gap:8px;padding:4px 10px 10px;min-height:60px;flex:1}.kanban-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:10px 10px 8px;box-shadow:var(--shadow-sm);cursor:grab;transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}.kanban-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.kanban-card.is-dragging{opacity:.35}.kanban-card.is-overlay{box-shadow:var(--shadow-lg);transform:rotate(1.5deg);cursor:grabbing}.kanban-card.is-done .kanban-card-title{color:var(--text-muted);text-decoration:line-through}.kanban-card-top{display:flex;align-items:flex-start;gap:8px}.kanban-card-top .task-check{margin-top:2px}.kanban-card-title{flex:1;font-size:var(--fs-sm);font-weight:500;line-height:1.45;word-break:break-word}.kanban-card-menu{opacity:0;margin:-3px -4px 0 0}.kanban-card:hover .kanban-card-menu,.kanban-card-menu[data-state=open]{opacity:1}.kanban-card-desc{font-size:var(--fs-xs);color:var(--text-muted);margin:4px 0 0 24px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.kanban-card .task-meta{margin:6px 0 0 20px}.kanban .inline-add,.kanban .inline-add-trigger{border-bottom:0;padding-left:4px}@media(max-width:900px){.kanban{grid-template-columns:repeat(4,minmax(250px,82vw));scroll-snap-type:x mandatory;margin:0 calc(var(--page-pad) * -1);padding:0 var(--page-pad) 12px}.kanban-column{scroll-snap-align:start}}@media(pointer:coarse){.kanban-card-menu{opacity:1}}.panel-overlay{position:fixed;inset:0;z-index:50;background:color-mix(in srgb,var(--overlay) 55%,transparent);animation:fade-in .16s var(--ease)}.task-panel{position:fixed;z-index:51;top:0;right:0;bottom:0;width:min(560px,100vw);background:var(--bg-elevated);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slide-in-right .22s var(--ease);outline:none}.panel-top{display:flex;align-items:center;gap:2px;padding:calc(10px + var(--safe-top)) 12px 10px 20px;border-bottom:1px solid var(--border)}.panel-crumb{flex:1;min-width:0;display:flex;align-items:center;gap:8px;font-size:var(--fs-sm)}.panel-crumb .crumb{padding-left:0}.icon-btn.is-favorite{color:#e0a92e}.panel-scroll{flex:1;overflow-y:auto;padding:18px 24px calc(32px + var(--safe-bottom))}.panel-title-row{display:flex;align-items:flex-start;gap:12px}.panel-title-row .task-check{margin-top:6px}.panel-title{font-size:var(--fs-xl);font-weight:650;letter-spacing:-.015em;line-height:1.3;min-height:0;padding:0}.panel-title:focus{outline:none}.inbox-banner{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;margin-top:14px;padding:8px 12px;border-radius:var(--radius);background:var(--accent-softer);color:var(--text-secondary);font-size:var(--fs-sm)}.props{display:grid;grid-template-columns:1fr;margin:18px 0 8px}.prop{display:grid;grid-template-columns:130px 1fr;align-items:center;min-height:36px;gap:8px}.prop-label{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:var(--fs-sm)}.prop-value{min-width:0}.prop-btn{display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:3px 8px;margin-left:-8px;border-radius:var(--radius-sm);font-size:var(--fs-sm);text-align:left;max-width:100%}.prop-btn:hover,.prop-btn[data-state=open]{background:var(--bg-hover)}.prop-btn.is-muted{color:var(--text-faint)}.prop-tags{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.prop-tags .prop-btn{margin-left:0}.reminder-input{width:auto;border-color:transparent;background:transparent;margin-left:-8px}.reminder-input:hover{background:var(--bg-hover)}.text-danger{color:var(--danger)}.panel-section{margin-top:22px}.panel-section-title{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);font-weight:600;color:var(--text-secondary);margin-bottom:8px}.panel-section-title .count{color:var(--text-faint);font-weight:550}.panel-description{border-color:transparent;background:var(--bg-subtle)}.panel-description:hover{border-color:var(--border)}.subtasks{display:flex;flex-direction:column}.subtask,.subtask-add{display:flex;align-items:center;gap:8px;min-height:34px;border-radius:var(--radius-sm);padding:0 4px;background:var(--bg-elevated)}.subtask:hover{background:var(--bg-subtle)}.subtask.is-dragging{box-shadow:var(--shadow);z-index:2;position:relative}.subtask-handle{color:var(--text-faint);cursor:grab;opacity:0;touch-action:none}.subtask:hover .subtask-handle{opacity:1}.subtask-input{flex:1;min-width:0;border:0;outline:none;background:transparent;font-size:var(--fs-sm);padding:4px 0}.subtask.is-done .subtask-input{color:var(--text-muted);text-decoration:line-through}.subtask-remove{opacity:0}.subtask:hover .subtask-remove,.subtask:focus-within .subtask-remove{opacity:1}.subtask-add{padding-left:24px}@media(pointer:coarse){.subtask-remove,.subtask-handle{opacity:1}}.text-btn{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-sm);font-weight:500;color:var(--accent-text);padding:4px 6px;border-radius:var(--radius-sm)}.text-btn:hover{background:var(--accent-softer)}.linked-list{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}.linked-item{display:flex;align-items:center;gap:6px;border-radius:var(--radius-sm)}.linked-item:hover{background:var(--bg-subtle)}.linked-link{flex:1;min-width:0;display:flex;align-items:center;gap:8px;padding:6px 8px;font-size:var(--fs-sm)}.linked-icon{width:16px;display:grid;place-items:center;color:var(--text-muted)}.comments{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.comment{background:var(--bg-subtle);border-radius:var(--radius);padding:8px 10px 10px 12px}.comment-head{display:flex;align-items:center;justify-content:space-between}.comment-time{font-size:var(--fs-xs);color:var(--text-muted)}.comment-text{white-space:pre-wrap;font-size:var(--fs-sm);word-break:break-word}.comment-add{display:flex;align-items:flex-end;gap:6px}.comment-add .textarea{min-height:38px}.panel-footer{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:28px;padding-top:14px;border-top:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-faint)}.panel-missing{padding:40px;display:flex;flex-direction:column;gap:14px;align-items:flex-start}@media(max-width:640px){.task-panel{width:100vw;border-left:0}.panel-scroll{padding:14px 16px calc(32px + var(--safe-bottom))}.prop{grid-template-columns:112px 1fr}}.recurrence-popover{width:270px;padding:6px}.recurrence-list{display:flex;flex-direction:column}.recurrence-custom{display:flex;flex-direction:column;gap:12px;padding:6px}.weekday-toggles{display:flex;gap:4px}.weekday-toggle{flex:1;height:30px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);font-size:var(--fs-xs);font-weight:600;color:var(--text-secondary)}.weekday-toggle.is-active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}@media(min-width:641px){.quick-dialog{top:14vh}}.quick-dialog .dialog-header{position:absolute;right:6px;top:6px;padding:0}.quick-dialog .dialog-body{padding:16px 18px 14px}.quick-form{display:flex;flex-direction:column;gap:12px}.quick-input{width:100%;border:0;outline:none;background:transparent;font-size:var(--fs-lg);font-weight:500;padding:6px 0}.quick-input::placeholder{color:var(--text-faint);font-weight:400}.quick-controls{display:flex;flex-wrap:wrap;gap:6px}.quick-chip{--chip-color: var(--accent);display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);font-size:var(--fs-xs);font-weight:500;color:var(--text-secondary)}.quick-chip:hover,.quick-chip[data-state=open]{background:var(--bg-hover)}.quick-chip.is-set{border-color:color-mix(in srgb,var(--chip-color) 35%,transparent);background:color-mix(in srgb,var(--chip-color) 9%,transparent);color:color-mix(in srgb,var(--chip-color) 80%,var(--text))}.quick-footer{display:flex;align-items:center;gap:12px;padding-top:12px;border-top:1px solid var(--border)}.quick-hint{flex:1}.quick-hint em{font-style:normal;color:var(--text-secondary);background:var(--bg-sunken);padding:0 4px;border-radius:4px}.quick-preview{font-size:var(--fs-xs)}@media(max-width:640px){.quick-footer{flex-wrap:wrap}.quick-hint{flex-basis:100%}.quick-footer .btn{margin-left:auto}}.mb-16{margin-bottom:16px}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:26px 0 10px}.section-head .section-title{margin:0}.list-card{overflow:hidden}.list-card-row{display:flex;align-items:center;gap:8px;padding:4px 8px 4px 4px;border-bottom:1px solid var(--border);min-height:48px}.list-card-row:last-child{border-bottom:0}.list-card-row:hover{background:var(--bg-subtle)}.list-card-link{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:6px 8px;text-align:left}.list-card-icon{width:30px;height:30px;border-radius:var(--radius-sm);display:grid;place-items:center;background:var(--bg-sunken);color:var(--text-muted);flex-shrink:0;font-size:15px}.list-card-actions{display:flex;align-items:center;gap:4px}.item-main{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}.item-title{font-weight:550;display:flex;align-items:center;gap:6px}.item-title.is-done{text-decoration:line-through;color:var(--text-muted)}.item-meta{font-size:var(--fs-xs);color:var(--text-muted)}.item-emoji{font-size:15px}.dash-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.dash-date{color:var(--text-muted);font-size:var(--fs-sm);font-weight:500;margin-bottom:2px}.dash-greeting{font-size:var(--fs-3xl);font-weight:750;letter-spacing:-.03em;line-height:1.15}.dash-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dash-quick{display:flex;gap:6px;flex-wrap:wrap}.sample-banner{display:flex;align-items:center;gap:12px;padding:10px 12px 10px 16px;border-radius:var(--radius-lg);background:var(--warning-soft);color:var(--text-secondary);font-size:var(--fs-sm);margin-bottom:18px;flex-wrap:wrap}.sample-banner>svg{color:var(--warning)}.sample-banner .grow{min-width:220px}.dash-edit-hint{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:8px 16px;border:1px dashed var(--border-strong);border-radius:var(--radius-lg);margin-bottom:16px;font-size:var(--fs-sm);color:var(--text-muted)}.dash-edit-hint .switch-row{padding:0}.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));gap:16px;align-items:start}.widget-slot{min-width:0;position:relative}.widget-slot.is-wide{grid-column:1 / -1}.widget-slot.is-editing .widget-slot-content{pointer-events:none;-webkit-user-select:none;user-select:none}.widget-slot.is-editing{outline:1px dashed var(--border-strong);outline-offset:4px;border-radius:var(--radius-lg)}.widget-slot.is-hidden .widget-slot-content{opacity:.35;filter:grayscale(1)}.widget-slot.is-dragging{z-index:5;opacity:.85}.widget-edit-bar{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:var(--fs-xs);font-weight:600;color:var(--text-muted)}.widget-drag{cursor:grab;touch-action:none;display:grid;place-items:center;width:26px;height:26px;border-radius:var(--radius-sm);background:var(--bg-sunken)}.widget-edit-name{flex:1}.widget{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px 12px;min-width:0}.widget-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.widget-title{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);font-weight:650;color:var(--text-secondary)}.widget-title svg{color:var(--text-muted)}.widget-danger .widget-title,.widget-danger .widget-title svg{color:var(--danger)}.widget-count{font-size:var(--fs-2xs);font-weight:650;color:var(--text-muted);background:var(--bg-sunken);padding:1px 7px;border-radius:99px}.widget-link{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);font-weight:550;color:var(--text-muted);padding:3px 6px;border-radius:var(--radius-sm)}.widget-link:hover{color:var(--accent-text);background:var(--accent-softer)}.widget-tasks .task-row{padding-left:0;background:transparent;border-bottom-color:var(--border)}.widget-tasks .task-row:last-child{border-bottom:0}.widget-tasks .task-row:hover{background:transparent}.widget-tasks .task-row:hover .task-title{color:var(--accent-text)}.widget-more{font-size:var(--fs-xs);color:var(--text-muted);padding:6px 0 0 28px}.week-group+.week-group{margin-top:6px}.week-group-label{font-size:var(--fs-xs);font-weight:650;text-transform:capitalize;padding-top:4px}.widget-focus{display:grid;grid-template-columns:auto minmax(0,1fr);gap:24px;align-items:center;padding:16px 20px}.focus-stats{display:flex;gap:8px}.focus-stat{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:8px;align-items:center;min-width:118px;padding:10px 14px;border-radius:var(--radius);background:var(--bg-subtle);border:1px solid var(--border);transition:border-color var(--dur) var(--ease)}.focus-stat:hover{border-color:var(--border-strong)}.focus-stat svg{grid-row:span 2;color:var(--text-muted)}.focus-value{font-size:var(--fs-xl);font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}.focus-label{font-size:var(--fs-xs);color:var(--text-muted)}.focus-stat.tone-danger svg{color:var(--danger)}.focus-stat.tone-accent svg{color:var(--accent)}.focus-stat.tone-success svg{color:var(--success)}.focus-stat.tone-muted .focus-value{color:var(--text-muted)}.focus-next{display:flex;flex-direction:column;gap:6px;min-width:0}.focus-line{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);min-width:0}.focus-line>svg{flex-shrink:0;color:var(--text-muted)}.focus-link{font-weight:600;min-width:0}.focus-link:hover{color:var(--accent-text);text-decoration:underline}.focus-due{flex-shrink:0;font-size:var(--fs-xs)}@media(max-width:900px){.widget-focus{grid-template-columns:1fr;gap:14px}.focus-stats{overflow-x:auto}.focus-stat{flex:1;min-width:100px}}.agenda-list,.recent-list{display:flex;flex-direction:column}.agenda-item{--entry-color: var(--accent);display:flex;align-items:center;gap:12px;padding:7px 4px;border-radius:var(--radius-sm)}.agenda-item:hover{background:var(--bg-subtle)}.agenda-date{width:40px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;padding:3px 0;border-radius:var(--radius-sm);border-left:3px solid var(--entry-color);background:color-mix(in srgb,var(--entry-color) 8%,transparent);line-height:1.15}.agenda-day{font-weight:700;font-size:var(--fs-md);font-variant-numeric:tabular-nums}.agenda-month{font-size:var(--fs-2xs);color:var(--text-muted);text-transform:uppercase}.agenda-main{display:flex;flex-direction:column;min-width:0}.agenda-title{display:flex;align-items:center;gap:5px;font-weight:550;font-size:var(--fs-sm);overflow:hidden;white-space:nowrap}.agenda-sub{font-size:var(--fs-xs);color:var(--text-muted)}.recent-item{display:flex;align-items:center;gap:10px;padding:7px 6px;border-radius:var(--radius-sm);font-size:var(--fs-sm)}.recent-item:hover{background:var(--bg-subtle)}.recent-icon{width:20px;display:grid;place-items:center;color:var(--text-muted);flex-shrink:0}.recent-title{flex:1;font-weight:500}.recent-time{font-size:var(--fs-xs);color:var(--text-faint);flex-shrink:0}.favorite-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.favorite-item{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:var(--radius);border:1px solid var(--border);font-size:var(--fs-sm);font-weight:500;min-width:0}.favorite-item:hover{background:var(--bg-subtle);border-color:var(--border-strong)}.favorite-icon{display:grid;place-items:center;color:var(--text-muted);flex-shrink:0}.widget-projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:10px}.stats-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px}.stat-tile{display:flex;flex-direction:column;padding:10px 12px;border-radius:var(--radius);background:var(--bg-subtle)}.stat-tile-value{font-size:var(--fs-xl);font-weight:700;font-variant-numeric:tabular-nums;line-height:1.15}.stat-tile-label{font-size:var(--fs-xs);color:var(--text-muted);line-height:1.3}.mini-chart{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;height:104px;border-bottom:1px solid var(--border)}.mini-chart-col{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;cursor:default;border-radius:var(--radius-sm) var(--radius-sm) 0 0;padding-top:2px}.mini-chart-col:hover{background:var(--bg-hover)}.mini-chart-value{font-size:var(--fs-2xs);color:var(--text-muted);height:14px;font-variant-numeric:tabular-nums;opacity:0}.mini-chart-col:hover .mini-chart-value,.mini-chart-col.is-today .mini-chart-value{opacity:1}.mini-chart-track{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center}.mini-chart-bar{width:min(22px,70%);min-height:2px;background:color-mix(in srgb,var(--accent) 55%,var(--bg));border-radius:4px 4px 0 0;transition:height .4s var(--ease)}.mini-chart-col.is-today .mini-chart-bar{background:var(--accent)}.mini-chart-label{font-size:var(--fs-2xs);color:var(--text-muted);padding-bottom:4px}.mini-chart-col.is-today .mini-chart-label{color:var(--text);font-weight:650}@media(max-width:640px){.dash-greeting{font-size:var(--fs-2xl)}.dash-hero{align-items:flex-start}.dash-actions{width:100%}.dash-quick{flex:1 1 100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.dash-quick .btn{padding:0 6px}}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px}.project-card{--project-color: var(--accent);position:relative;display:flex;flex-direction:column;gap:10px;padding:16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease);min-width:0}.project-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.project-card-link{position:absolute;inset:0;border-radius:inherit;z-index:0}.project-card>*:not(.project-card-link){position:relative;z-index:1;pointer-events:none}.project-card .project-card-menu,.project-card [data-radix-collection-item],.project-card button{pointer-events:auto}.project-card-head{display:flex;align-items:center;gap:10px}.project-icon{--project-color: var(--accent);width:34px;height:34px;flex-shrink:0;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--project-color) 13%,transparent);color:var(--project-color)}.project-card .project-icon{--project-color: inherit}.project-card-title{flex:1;min-width:0;display:flex;align-items:center;gap:6px;font-weight:650;font-size:var(--fs-md)}.project-card-desc{font-size:var(--fs-sm);color:var(--text-muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.project-card-progress{display:flex;align-items:center;gap:10px}.project-card-percent{font-size:var(--fs-xs);font-weight:650;color:var(--text-secondary);font-variant-numeric:tabular-nums;min-width:36px;text-align:right}.project-card-foot{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px}.project-card-foot .badge{margin-right:2px}.project-status-active{--badge-color: var(--success)}.project-status-planned{--badge-color: var(--status-progress)}.project-status-paused{--badge-color: var(--warning)}.project-status-completed{--badge-color: var(--text-muted)}.chip-deadline.is-soon{color:var(--warning);font-weight:550}.chip-deadline.is-overdue{color:var(--danger);font-weight:550}.project-list-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border)}.project-list-row:last-child{border-bottom:0}.project-list-row:hover{background:var(--bg-subtle)}.project-list-row .project-icon{width:28px;height:28px;border-radius:8px}.project-list-name{flex:1;font-weight:550}.project-list-progress{width:120px;display:flex}.project-hero{display:flex;align-items:flex-start;gap:16px;margin-bottom:18px}.project-hero-icon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--project-color) 14%,transparent);color:var(--project-color);flex-shrink:0}.project-hero-main{flex:1;min-width:0}.project-hero-meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;margin-top:6px}.project-hero-desc{margin-top:10px;color:var(--text-secondary);max-width:720px;white-space:pre-wrap}.project-hero-actions{display:flex;align-items:center;gap:2px}.project-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:22px}.stat{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);color:var(--text-muted)}.stat-value{font-size:var(--fs-lg);font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;line-height:1.2}.stat-label{font-size:var(--fs-xs)}.stat-danger svg,.stat-danger .stat-value{color:var(--danger)}.stat-success svg{color:var(--success)}@media(max-width:900px){.project-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-progress{grid-column:1 / -1}}@media(max-width:640px){.project-hero{flex-wrap:wrap}.project-hero-icon{width:44px;height:44px}}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto}.tab{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;font-size:var(--fs-sm);font-weight:550;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.tab:hover{color:var(--text)}.tab.is-active{color:var(--text);border-bottom-color:var(--accent)}.tab-count{font-size:var(--fs-2xs);background:var(--bg-sunken);padding:1px 6px;border-radius:99px}.event-row{display:flex;align-items:center;gap:14px;width:100%;padding:10px 14px;border-bottom:1px solid var(--border);text-align:left}.event-row:last-child{border-bottom:0}.event-row:hover{background:var(--bg-subtle)}.event-row.is-past{opacity:.55}.event-row-date{display:flex;flex-direction:column;align-items:center;width:38px;line-height:1.15}.event-row-day{font-weight:700;font-size:var(--fs-lg)}.event-row-month{font-size:var(--fs-2xs);text-transform:uppercase;color:var(--text-muted)}.event-row-main{flex:1;display:flex;flex-direction:column;min-width:0}.event-row-title{font-weight:550}.event-row-time{font-size:var(--fs-xs);color:var(--text-muted)}.project-form-head{display:flex;align-items:center;gap:12px}.project-form-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;flex-shrink:0}.project-form-name{font-size:var(--fs-lg);font-weight:600;height:44px}.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:10px}.category-card{display:flex;align-items:center;gap:4px;padding-right:8px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated)}.category-card:hover{border-color:var(--border-strong)}.category-card-link{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:12px 6px 12px 14px}.category-icon{--cat-color: var(--accent);width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--cat-color) 14%,transparent);color:var(--cat-color);flex-shrink:0}.tag-cloud{display:flex;flex-wrap:wrap;gap:8px}.tag-pill{--tag: var(--text-muted);display:inline-flex;align-items:center;border-radius:99px;background:color-mix(in srgb,var(--tag) 12%,transparent);color:color-mix(in srgb,var(--tag) 80%,var(--text));font-size:var(--fs-sm);font-weight:550}.tag-pill-link{display:inline-flex;align-items:center;gap:8px;padding:5px 4px 5px 12px}.tag-pill-count{font-size:var(--fs-2xs);opacity:.7}.tag-pill-menu{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;color:inherit;opacity:.6;margin-right:2px}.tag-pill-menu:hover{opacity:1;background:#0000000f}.search-box{display:flex;align-items:center;gap:10px;padding:0 14px;height:48px;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-input);color:var(--text-muted);margin-bottom:12px}.search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search-input{font-size:var(--fs-md);color:var(--text)}.search-types{margin-bottom:16px}.filter-chip:disabled{opacity:.45;cursor:default}.search-results{display:flex;flex-direction:column;gap:2px}.search-result{display:flex;gap:12px;padding:10px 12px;border-radius:var(--radius)}.search-result:hover{background:var(--bg-subtle)}.search-result-icon{width:30px;height:30px;border-radius:var(--radius-sm);background:var(--bg-sunken);display:grid;place-items:center;color:var(--text-muted);flex-shrink:0}.search-result-main{display:flex;flex-direction:column;min-width:0;gap:2px}.search-result-title{font-weight:600;display:flex;align-items:center;gap:6px}.search-result-title.is-done{text-decoration:line-through;color:var(--text-muted)}.search-result-snippet{font-size:var(--fs-sm);color:var(--text-secondary)}.search-result-meta{font-size:var(--fs-xs);color:var(--text-muted)}.palette-overlay{background:color-mix(in srgb,var(--overlay) 70%,transparent)}.palette{position:fixed;z-index:51;top:12vh;left:50%;transform:translate(-50%);width:min(640px,calc(100vw - 24px));max-height:min(560px,76vh);display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden;animation:dialog-in .16s var(--ease)}.palette:focus{outline:none}.palette-input-row{display:flex;align-items:center;gap:12px;padding:0 16px;height:56px;border-bottom:1px solid var(--border);flex-shrink:0}.palette-input{flex:1;border:0;outline:none;background:transparent;font-size:var(--fs-lg);min-width:0}.palette-list{overflow-y:auto;padding:6px;flex:1}.palette-section+.palette-section{margin-top:4px}.palette-section-title{padding:8px 10px 4px;font-size:var(--fs-2xs);font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint)}.palette-item{display:flex;align-items:center;gap:12px;width:100%;min-height:40px;padding:6px 10px;border-radius:var(--radius);text-align:left}.palette-item.is-active{background:var(--bg-hover)}.palette-icon{width:22px;display:grid;place-items:center;color:var(--text-muted);flex-shrink:0}.palette-emoji{font-size:15px}.palette-text{flex:1;min-width:0;display:flex;flex-direction:column}.palette-title{font-size:var(--fs-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette-snippet{font-size:var(--fs-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette-sub{font-size:var(--fs-xs);color:var(--text-faint);white-space:nowrap}.palette-enter{color:var(--text-faint)}.palette-foot{display:flex;gap:16px;padding:8px 16px;border-top:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-muted);flex-shrink:0}@media(max-width:640px){.palette{top:8px;max-height:calc(100dvh - 16px)}.palette-foot{display:none}}.notif-bell{position:relative}.notif-badge{position:absolute;top:1px;right:-1px;min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:var(--danger);color:#fff;font-size:9.5px;font-weight:700;line-height:12px;text-align:center;border:2px solid var(--bg);pointer-events:none}.notif-popover{width:360px;padding:0;overflow:hidden}.notif-head{display:flex;align-items:center;gap:2px;padding:10px 10px 10px 16px;border-bottom:1px solid var(--border)}.notif-title{flex:1;font-weight:650}.notif-list{max-height:420px;overflow-y:auto;padding:4px}.notif-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:28px 20px;color:var(--text-muted)}.notif-item{display:flex;align-items:flex-start;gap:2px;border-radius:var(--radius);position:relative}.notif-item:hover{background:var(--bg-subtle)}.notif-item.is-unread:before{content:"";position:absolute;left:4px;top:18px;width:6px;height:6px;border-radius:50%;background:var(--accent)}.notif-main{flex:1;min-width:0;display:flex;gap:10px;padding:10px 6px 10px 16px;text-align:left}.notif-icon{width:28px;height:28px;border-radius:var(--radius-sm);display:grid;place-items:center;background:var(--bg-sunken);color:var(--text-muted);flex-shrink:0}.notif-overdue .notif-icon{color:var(--danger)}.notif-deadline .notif-icon{color:var(--warning)}.notif-reminder .notif-icon,.notif-due .notif-icon,.notif-today .notif-icon{color:var(--accent)}.notif-text{display:flex;flex-direction:column;min-width:0;line-height:1.35}.notif-item-title{font-size:var(--fs-sm);font-weight:600}.notif-item:not(.is-unread) .notif-item-title{font-weight:500;color:var(--text-secondary)}.notif-body{font-size:var(--fs-sm);color:var(--text-secondary);word-break:break-word}.notif-time{font-size:var(--fs-xs);color:var(--text-faint);margin-top:2px}.notif-remove{margin:8px 6px 0 0;opacity:0}.notif-item:hover .notif-remove{opacity:1}@media(pointer:coarse){.notif-remove{opacity:1}}.settings-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:32px;align-items:start}.settings-nav{display:flex;flex-direction:column;gap:2px;position:sticky;top:12px}.settings-nav-item{display:flex;align-items:center;gap:10px;height:34px;padding:0 10px;border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:500;color:var(--text-secondary);text-align:left;white-space:nowrap}.settings-nav-item svg{color:var(--text-muted)}.settings-nav-item:hover{background:var(--bg-hover)}.settings-nav-item.is-active{background:var(--bg-active);color:var(--text);font-weight:600}.settings-nav-item.is-active svg{color:var(--accent)}.settings-content{min-width:0;max-width:720px}.settings-section+.settings-section{margin-top:36px}.settings-title{font-size:var(--fs-lg);font-weight:650}.settings-desc{color:var(--text-muted);font-size:var(--fs-sm);margin-top:4px}.settings-body{display:flex;flex-direction:column;gap:12px;margin-top:16px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:6px 0;flex-wrap:wrap}.settings-row-text{display:flex;flex-direction:column;min-width:180px;flex:1}.settings-row-label{font-weight:500}.settings-row-control{display:flex;align-items:center;gap:8px}.settings-row-control .select{min-width:200px}.settings-group{border-left:2px solid var(--border);padding-left:16px}.settings-group.is-disabled{opacity:.55}.settings-callout{display:flex;gap:12px;padding:12px 14px;border-radius:var(--radius);background:var(--bg-subtle);border:1px solid var(--border);font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.55}.settings-callout>svg{flex-shrink:0;margin-top:2px;color:var(--accent)}.settings-callout p+p{margin-top:4px}.check-list{display:flex;flex-direction:column;gap:8px}.check-line{display:flex;align-items:flex-start;gap:8px;font-size:var(--fs-sm)}.check-line svg{flex-shrink:0;margin-top:2px}.widget-setting.is-hidden .item-title{color:var(--text-muted)}@media(max-width:900px){.settings-layout{grid-template-columns:1fr;gap:18px}.settings-nav{position:static;flex-direction:row;overflow-x:auto;padding-bottom:6px;margin:0 calc(var(--page-pad) * -1);padding-left:var(--page-pad);padding-right:var(--page-pad);scrollbar-width:none}.settings-nav-item{background:var(--bg-sunken)}.settings-row-control .select{min-width:0}}.shortcuts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}.shortcuts-grid .section-title{margin-top:4px}.shortcut-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0;font-size:var(--fs-sm);border-bottom:1px solid var(--border)}.shortcut-keys{display:flex;gap:4px;flex-shrink:0}@media(max-width:640px){.shortcuts-grid{grid-template-columns:1fr}}.settings-body>.btn{align-self:flex-start}.calendar-page{display:flex;flex-direction:column;min-height:calc(100dvh - var(--header-height));padding-bottom:24px}.cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.cal-title{font-size:var(--fs-xl);font-weight:700;letter-spacing:-.02em;text-transform:capitalize}.cal-toolbar-right{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.cal-filter-popover{width:240px;padding:5px}.cal-legend{display:flex;gap:16px;font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:12px}.cal-legend-item{display:inline-flex;align-items:center;gap:6px}.cal-legend-event{width:14px;height:10px;border-radius:3px;background:color-mix(in srgb,var(--accent) 22%,transparent);border-left:3px solid var(--accent)}.cal-legend-task{width:11px;height:11px;border-radius:50%;border:1.5px solid var(--text-muted)}.cal-entry{--entry-color: var(--accent);display:flex;align-items:center;gap:5px;min-height:22px;padding:2px 6px;border-radius:5px;font-size:var(--fs-xs);line-height:1.3;cursor:pointer;min-width:0;touch-action:manipulation;-webkit-user-select:none;user-select:none}.cal-entry.is-dragging{opacity:.35}.cal-event{background:color-mix(in srgb,var(--entry-color) 16%,var(--bg));color:color-mix(in srgb,var(--entry-color) 55%,var(--text));border-left:3px solid var(--entry-color);font-weight:550}.cal-event:hover{background:color-mix(in srgb,var(--entry-color) 24%,var(--bg))}.cal-event.is-continued{border-top-left-radius:0;border-bottom-left-radius:0}.cal-task{background:var(--bg);border:1px solid var(--border-strong);color:var(--text)}.cal-task:hover{border-color:color-mix(in srgb,var(--entry-color) 50%,var(--border-strong));background:var(--bg-subtle)}.cal-task.is-done .cal-entry-title,.cal-task.is-done .cal-timed-title span{text-decoration:line-through;color:var(--text-muted)}.cal-deadline{background:color-mix(in srgb,var(--entry-color) 8%,var(--bg));border:1px dashed color-mix(in srgb,var(--entry-color) 60%,transparent);color:color-mix(in srgb,var(--entry-color) 70%,var(--text));font-weight:600}.cal-entry-time{font-variant-numeric:tabular-nums;opacity:.8;flex-shrink:0}.cal-entry-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-entry-icon{flex-shrink:0;opacity:.75}.cal-entry .task-check{--size: 13px;border-width:1.4px}.cal-month{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;flex:1;min-height:560px}.cal-month-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--bg-subtle);border-bottom:1px solid var(--border)}.cal-month-head span{padding:8px 10px;font-size:var(--fs-xs);font-weight:600;color:var(--text-muted)}.cal-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr));flex:1}.cal-day{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:4px 4px 6px;min-height:96px;min-width:0;display:flex;flex-direction:column;gap:3px;cursor:pointer;transition:background var(--dur) var(--ease)}.cal-day:nth-child(7n){border-right:0}.cal-day:nth-last-child(-n+7){border-bottom:0}.cal-day:hover{background:var(--bg-subtle)}.cal-day.is-weekend{background:color-mix(in srgb,var(--bg-subtle) 60%,var(--bg))}.cal-day.is-outside .cal-day-number{color:var(--text-faint)}.cal-day.is-over{background:var(--accent-soft)}.cal-day-head{display:flex;justify-content:flex-end}.cal-day-number{font-size:var(--fs-xs);font-weight:550;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;font-variant-numeric:tabular-nums}.cal-day.is-today .cal-day-number{background:var(--accent);color:var(--on-accent)}.cal-day-entries{display:flex;flex-direction:column;gap:2px;min-width:0}.cal-more{font-size:var(--fs-xs);color:var(--text-muted);text-align:left;padding:1px 6px;border-radius:4px;font-weight:550}.cal-more:hover{background:var(--bg-hover);color:var(--text)}.cal-more-popover{width:260px;display:flex;flex-direction:column;gap:3px}.cal-more-title{font-size:var(--fs-sm);font-weight:600;padding:2px 4px 6px}.cal-dots{display:flex;gap:3px;justify-content:center;flex-wrap:wrap}.cal-dot{width:6px;height:6px;border-radius:50%;background:var(--entry-color)}.cal-dot-task{background:transparent;border:1.5px solid var(--text-muted)}.cal-week{--days: 7;--gutter: 62px;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;flex:none;height:max(480px,calc(100dvh - var(--header-height) - 160px))}.cal-week-head,.cal-allday,.cal-grid{display:grid;grid-template-columns:var(--gutter) repeat(var(--days),minmax(0,1fr))}.cal-week-head{border-bottom:1px solid var(--border);background:var(--bg-subtle)}.cal-week-day{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 4px;font-size:var(--fs-sm);border-left:1px solid var(--border)}.cal-week-wd{color:var(--text-muted);font-weight:550}.cal-week-num{font-weight:650;width:28px;height:28px;display:grid;place-items:center;border-radius:50%}.cal-week-day.is-today .cal-week-num{background:var(--accent);color:var(--on-accent)}.cal-allday{border-bottom:1px solid var(--border);min-height:34px}.cal-allday-label{font-size:10px;color:var(--text-faint);display:flex;align-items:center;justify-content:flex-end;padding-right:8px}.cal-allday-cell{border-left:1px solid var(--border);padding:3px;display:flex;flex-direction:column;gap:2px;min-width:0}.cal-allday-cell.is-over{background:var(--accent-soft)}.cal-scroll{flex:1;min-height:0;overflow-y:auto;position:relative}.cal-grid,.cal-hours{position:relative}.cal-hours span{position:absolute;right:8px;transform:translateY(-50%);font-size:var(--fs-2xs);color:var(--text-faint);font-variant-numeric:tabular-nums}.cal-col{position:relative;border-left:1px solid var(--border);cursor:crosshair}.cal-col.is-today{background:var(--accent-softer)}.cal-col.is-over{background:var(--accent-soft)}.cal-hour-line{position:absolute;left:0;right:0;border-top:1px solid var(--border);pointer-events:none}.cal-hour-line:first-child{border-top:0}.cal-now{position:absolute;left:-1px;right:0;height:2px;background:var(--danger);z-index:3;pointer-events:none}.cal-now:before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--danger)}.cal-timed{--entry-color: var(--accent);position:absolute;z-index:2;border-radius:6px;padding:3px 6px;font-size:var(--fs-xs);overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;line-height:1.3}.cal-timed.cal-event{background:color-mix(in srgb,var(--entry-color) 20%,var(--bg));border-left:3px solid var(--entry-color);color:color-mix(in srgb,var(--entry-color) 50%,var(--text))}.cal-timed.cal-task{background:var(--bg-elevated);border:1px solid var(--border-strong);border-left:3px solid var(--entry-color);box-shadow:var(--shadow-sm)}.cal-timed.is-dragging{opacity:.35}.cal-timed-title{display:flex;align-items:center;gap:4px;font-weight:600}.cal-timed-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-timed-time{opacity:.75;font-variant-numeric:tabular-nums}.cal-agenda{margin-top:14px;display:flex;flex-direction:column;gap:6px}.cal-agenda-head{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.cal-agenda-head h2{font-size:var(--fs-lg)}.cal-agenda-head .btn{margin-left:auto}.cal-agenda-row{display:flex;align-items:center;gap:10px}.cal-agenda-row .cal-entry{flex:1;min-height:36px;font-size:var(--fs-sm)}.cal-agenda-time{width:64px;flex-shrink:0;font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.cal-agenda-empty{padding:16px 0}@media(max-width:640px){.cal-month{min-height:0;flex:none}.cal-day{min-height:48px;padding:2px;align-items:center}.cal-day-head{justify-content:center}.cal-day.is-selected{background:var(--accent-soft)}.cal-week{--gutter: 44px;height:max(400px,calc(100dvh - var(--header-height) - var(--mobile-nav-height) - 150px))}.cal-allday-label{font-size:0}.cal-week-day{flex-direction:column;gap:0;font-size:var(--fs-xs)}.cal-legend{display:none}.cal-title{font-size:var(--fs-lg)}}.event-title-input{font-size:var(--fs-lg);font-weight:600;height:42px}.event-recurrence-btn{display:flex;align-items:center;gap:8px;text-align:left;color:var(--text)}.input-with-icon{position:relative;display:flex;align-items:center}.input-with-icon svg{position:absolute;left:11px;color:var(--text-muted);pointer-events:none}.input-with-icon .input{padding-left:32px}.dialog-footer-inline{margin:8px -22px -20px;padding:12px 22px;position:sticky;bottom:-20px;background:var(--bg-elevated)}.mr-auto{margin-right:auto}.notes-layout{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100%}.notes-aside{border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:calc(100dvh - var(--header-height));background:var(--bg)}.notes-aside-head{display:flex;align-items:center;gap:2px;padding:14px 10px 6px 16px}.notes-aside-title{flex:1;font-size:var(--fs-xs);font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.notes-search{display:flex;align-items:center;gap:6px;margin:4px 10px 8px;padding:0 4px 0 10px;height:32px;border-radius:var(--radius);background:var(--bg-sunken);color:var(--text-muted)}.notes-search input{flex:1;border:0;background:transparent;outline:none;min-width:0;font-size:var(--fs-sm);color:var(--text)}.notes-aside-scroll{flex:1;overflow-y:auto;padding:0 6px 10px}.notes-aside-foot{padding:8px 16px 12px;border-top:1px solid var(--border)}.notes-main{min-width:0}.tree-root{border-radius:var(--radius);min-height:60px;padding-bottom:24px}.tree-root.is-over{background:var(--accent-softer)}.tree-node.is-dragging>.tree-row-wrap{opacity:.4}.tree-row-wrap{border-radius:var(--radius-sm)}.tree-row-wrap.is-over{background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent)}.tree-row-drag{display:flex;align-items:center;gap:2px;min-height:30px;border-radius:var(--radius-sm);touch-action:manipulation}.tree-row-drag:hover{background:var(--bg-hover)}.tree-toggle{width:20px;height:22px;display:grid;place-items:center;color:var(--text-faint);border-radius:4px;flex-shrink:0}.tree-toggle:hover{background:var(--bg-active);color:var(--text-muted)}.tree-toggle.is-empty{opacity:.35}.tree-link{flex:1;min-width:0;display:flex;align-items:center;gap:7px;padding:4px;font-size:var(--fs-sm);color:var(--text-secondary);border-radius:var(--radius-sm)}.tree-link.is-active{color:var(--text);font-weight:600}.tree-row-drag:has(.tree-link.is-active){background:var(--bg-active)}.tree-icon{width:18px;display:grid;place-items:center;color:var(--text-muted);font-size:14px;line-height:1;flex-shrink:0}.tree-actions{display:none;padding-right:2px}.tree-row-drag:hover .tree-actions,.tree-row-drag:focus-within .tree-actions,.tree-actions:has([data-state=open]){display:flex}@media(pointer:coarse){.tree-actions{display:flex}}.tree-rename{flex:1;min-width:0;font-size:var(--fs-sm);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:2px 6px;background:var(--bg-input);outline:none}.tree-drag-overlay{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--radius);background:var(--bg-elevated);box-shadow:var(--shadow-lg);font-size:var(--fs-sm);font-weight:500}.note-search-results{display:flex;flex-direction:column;gap:2px}.note-search-result{display:flex;flex-direction:column;gap:2px;padding:7px 10px;border-radius:var(--radius-sm)}.note-search-result:hover{background:var(--bg-hover)}.note-search-title{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:550}.note-search-snippet{font-size:var(--fs-xs);color:var(--text-muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.move-list{max-height:50vh;overflow-y:auto;display:flex;flex-direction:column}.list-popover-item.is-current{background:var(--accent-softer)}.trash-banner{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--warning-soft);color:var(--text-secondary);font-size:var(--fs-sm);flex-wrap:wrap}@media(max-width:900px){.notes-layout{grid-template-columns:1fr}.notes-aside{position:static;height:auto;border-right:0}.notes-layout.has-note .notes-aside{display:none}.notes-layout:not(.has-note) .notes-main{display:none}.notes-aside-scroll{overflow:visible}.tree-row-drag{min-height:40px}}.note-page{max-width:860px;margin:0 auto;padding:26px var(--page-pad) 120px;animation:fade-in .2s var(--ease)}.note-head{position:relative;margin-bottom:8px}.note-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-bottom:4px;min-height:32px}.save-status{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);color:var(--text-faint);margin-right:6px;white-space:nowrap}.save-status.is-offline{color:var(--warning)}.note-icon-btn{font-size:44px;line-height:1;padding:4px;margin-left:-4px;border-radius:var(--radius);display:inline-flex;align-items:center;gap:6px}.note-icon-btn:hover{background:var(--bg-hover)}.note-icon-btn.is-empty{font-size:var(--fs-sm);color:var(--text-faint);opacity:0;padding:4px 8px;transition:opacity var(--dur) var(--ease)}.note-head:hover .note-icon-btn.is-empty,.note-icon-btn.is-empty:focus-visible,.note-icon-btn.is-empty[data-state=open]{opacity:1}@media(pointer:coarse){.note-icon-btn.is-empty{opacity:1}}.note-title{display:block;width:100%;font-size:var(--fs-3xl);font-weight:750;letter-spacing:-.025em;line-height:1.2;margin-top:6px;min-height:0;padding:0}.note-title:focus{outline:none}.note-title::placeholder{color:var(--text-faint)}.note-props{margin:14px 0 6px;padding-bottom:12px;border-bottom:1px solid var(--border)}.note-props .prop{grid-template-columns:120px 1fr}.chip-linked{background:var(--bg-sunken);color:var(--text-secondary);height:24px}.chip-linked.is-done .chip-link{text-decoration:line-through;color:var(--text-muted)}.chip-linked button{display:grid;place-items:center;opacity:.7}.chip-link{max-width:200px;overflow:hidden;text-overflow:ellipsis}.chip-link:hover{color:var(--accent-text)}@media(max-width:640px){.note-title{font-size:var(--fs-2xl)}.note-props .prop{grid-template-columns:100px 1fr}}.editor-shell{position:relative}.editor-toolbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:1px;padding:6px 0;background:var(--bg);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.editor-toolbar::-webkit-scrollbar{display:none}.tool-btn{width:30px;height:30px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:2px;border-radius:var(--radius-sm);color:var(--text-muted)}.tool-btn-wide{width:auto;padding:0 6px}.tool-btn:hover:not(:disabled),.tool-btn[data-state=open]{background:var(--bg-hover);color:var(--text)}.tool-btn.is-active{background:var(--accent-soft);color:var(--accent-text)}.tool-btn:disabled{opacity:.35}.tool-select{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 8px;border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:500;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.tool-select:hover,.tool-select[data-state=open]{background:var(--bg-hover)}.tool-sep{width:1px;height:18px;background:var(--border-strong);margin:0 5px;flex-shrink:0}.link-popover{width:340px}.editor-content{padding:16px 0 40px}.prose{outline:none;font-size:var(--fs-md);line-height:1.7;color:var(--text);min-height:240px;word-wrap:break-word}.prose>*+*{margin-top:.55em}.prose p{margin:0}.prose h1,.prose h2,.prose h3{line-height:1.3;margin:1.4em 0 .3em}.prose h1{font-size:1.75em}.prose h2{font-size:1.4em}.prose h3{font-size:1.15em}.prose>:first-child{margin-top:0}.prose ul,.prose ol{padding-left:1.5em;margin:.4em 0}.prose li>p{margin:.1em 0}.prose li::marker{color:var(--text-muted)}.prose ul[data-type=taskList]{list-style:none;padding-left:.2em}.prose ul[data-type=taskList] li{display:flex;align-items:flex-start;gap:10px}.prose ul[data-type=taskList] li>label{flex-shrink:0;margin-top:.32em;-webkit-user-select:none;user-select:none}.prose ul[data-type=taskList] li>div{flex:1;min-width:0}.prose ul[data-type=taskList] input[type=checkbox]{appearance:none;width:17px;height:17px;border:1.6px solid var(--border-strong);border-radius:5px;cursor:pointer;display:grid;place-items:center;margin:0;transition:all var(--dur) var(--ease)}.prose ul[data-type=taskList] input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.prose ul[data-type=taskList] input[type=checkbox]:checked:after{content:"";width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}.prose ul[data-type=taskList] li[data-checked=true]>div{color:var(--text-muted);text-decoration:line-through;text-decoration-color:var(--text-faint)}.prose blockquote{margin:.8em 0;padding:2px 0 2px 16px;border-left:3px solid var(--text);color:var(--text-secondary)}.prose code{font-family:var(--font-mono);font-size:.86em;background:var(--bg-sunken);color:var(--danger);padding:.15em .35em;border-radius:4px}.prose pre{font-family:var(--font-mono);font-size:.85em;line-height:1.6;background:var(--bg-sunken);border:1px solid var(--border);padding:14px 16px;border-radius:var(--radius);overflow-x:auto;margin:.8em 0}.prose pre code{background:none;color:inherit;padding:0;font-size:inherit}.prose a{color:var(--accent-text);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent);text-underline-offset:2px;cursor:pointer}.prose mark{background:color-mix(in srgb,#f5d547 55%,transparent);color:inherit;border-radius:3px;padding:0 2px}:root[data-theme=dark] .prose mark{background:color-mix(in srgb,#d6a92a 45%,transparent)}.prose hr{border:0;border-top:1px solid var(--border-strong);margin:1.4em 0}.prose hr.ProseMirror-selectednode{border-top-color:var(--accent)}.prose img{max-width:100%;height:auto;border-radius:var(--radius);margin:.8em 0;display:block}.prose img.ProseMirror-selectednode{outline:3px solid var(--accent-ring)}.prose table{border-collapse:collapse;table-layout:fixed;width:100%;margin:1em 0;overflow:hidden;font-size:.93em}.prose .tableWrapper{overflow-x:auto;margin:1em 0}.prose .tableWrapper table{margin:0}.prose th,.prose td{border:1px solid var(--border-strong);padding:6px 10px;vertical-align:top;position:relative;min-width:60px}.prose th{background:var(--bg-subtle);font-weight:600;text-align:left}.prose .selectedCell:after{content:"";position:absolute;inset:0;background:var(--accent-soft);pointer-events:none}.prose .column-resize-handle{position:absolute;right:-2px;top:0;bottom:0;width:4px;background:var(--accent);pointer-events:none}.prose.resize-cursor{cursor:col-resize}.prose p.is-empty:before,.prose h1.is-empty:before,.prose h2.is-empty:before,.prose h3.is-empty:before{content:attr(data-placeholder);color:var(--text-faint);float:left;height:0;pointer-events:none}.ProseMirror-gapcursor:after{border-top-color:var(--text)}.page-mention{display:inline}.page-mention>span{display:inline-flex;align-items:center;gap:4px;padding:0 6px 0 4px;margin:0 1px;border-radius:5px;background:var(--bg-sunken);color:var(--text);font-weight:500;cursor:pointer;text-decoration:underline;text-decoration-color:var(--text-faint);text-underline-offset:3px;white-space:nowrap}.page-mention>span:hover{background:var(--accent-soft)}.page-mention.is-missing>span{color:var(--text-muted);text-decoration:line-through}.page-mention-icon{display:inline-grid;place-items:center;font-size:.95em;color:var(--text-muted)}.file-attachment{display:flex;align-items:center;gap:12px;padding:10px 12px;margin:.6em 0;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-subtle);max-width:480px}.file-attachment.is-selected{outline:2px solid var(--accent-ring)}.file-attachment-icon{width:34px;height:34px;border-radius:var(--radius-sm);display:grid;place-items:center;background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border)}.file-attachment-text{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}.file-attachment-name{font-weight:550;font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-attachment-size{font-size:var(--fs-xs);color:var(--text-muted)}.suggestion-popup{position:fixed;z-index:70;top:0;left:0}.suggestion-list{width:300px;max-height:340px;overflow-y:auto;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:5px;animation:pop-in .12s var(--ease)}.suggestion-group{padding:6px 8px 3px;font-size:var(--fs-2xs);font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint)}.suggestion-item{display:flex;align-items:center;gap:10px;width:100%;padding:5px 8px;border-radius:var(--radius-sm);text-align:left}.suggestion-item.is-selected{background:var(--bg-hover)}.suggestion-icon{width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);display:grid;place-items:center;color:var(--text-secondary);flex-shrink:0;font-size:15px}.suggestion-text{display:flex;flex-direction:column;min-width:0;line-height:1.3}.suggestion-title{font-size:var(--fs-sm);font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggestion-desc{font-size:var(--fs-xs);color:var(--text-muted)}.suggestion-empty{padding:10px;color:var(--text-muted);font-size:var(--fs-sm)}.note-relations{margin-top:28px}.note-children{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px}.note-child{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius);border:1px solid var(--border);font-size:var(--fs-sm);font-weight:500;min-width:0}.note-child:hover{background:var(--bg-subtle)}.note-child.is-add{border-style:dashed;color:var(--text-muted);font-weight:450}.note-child-icon{width:18px;display:grid;place-items:center;color:var(--text-muted)}.note-footer{margin-top:32px;font-size:var(--fs-xs);color:var(--text-faint)}.note-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.note-card{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);min-width:0;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.note-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.note-card-icon{font-size:22px;line-height:1;color:var(--text-muted);height:24px;display:flex;align-items:center}.note-card-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-card-text{font-size:var(--fs-sm);color:var(--text-muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.note-card-meta{font-size:var(--fs-xs);color:var(--text-faint);display:flex;align-items:center;gap:6px;margin-top:auto}
