.react-grid-layout{transition:height .2s;position:relative}.react-grid-item{transition:left .2s,top .2s,width .2s,height .2s}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{z-index:1;will-change:width, height;transition:none}.react-grid-item.react-draggable-dragging{z-index:3;will-change:transform;transition:none}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{opacity:.2;z-index:2;-webkit-user-select:none;user-select:none;background:red;transition-duration:.1s}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{opacity:0;width:20px;height:20px;position:absolute}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";border-bottom:2px solid #0006;border-right:2px solid #0006;width:5px;height:5px;position:absolute;bottom:3px;right:3px}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{cursor:sw-resize;bottom:0;left:0;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{cursor:se-resize;bottom:0;right:0}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{cursor:nw-resize;top:0;left:0;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{cursor:ne-resize;top:0;right:0;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{cursor:ew-resize;margin-top:-10px;top:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{cursor:ns-resize;margin-left:-10px;left:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:100% 100%;background-repeat:no-repeat;background-origin:content-box;width:20px;height:20px;padding:0 3px 3px 0;position:absolute}.react-resizable-handle-sw{cursor:sw-resize;bottom:0;left:0;transform:rotate(90deg)}.react-resizable-handle-se{cursor:se-resize;bottom:0;right:0}.react-resizable-handle-nw{cursor:nw-resize;top:0;left:0;transform:rotate(180deg)}.react-resizable-handle-ne{cursor:ne-resize;top:0;right:0;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{cursor:ew-resize;margin-top:-10px;top:50%}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{cursor:ns-resize;margin-left:-10px;left:50%}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-ui:"Geist Variable", -apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif;--font-display:var(--font-ui);--font-mono:"Geist Mono Variable", ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;--accent:#f2a93b;--accent-ink:#1d1406;--accent-soft:color-mix(in srgb, var(--accent) 16%, transparent);--accent-line:color-mix(in srgb, var(--accent) 45%, transparent);--accent-text:color-mix(in srgb, var(--accent) 50%, var(--text));--accent-large:color-mix(in srgb, var(--accent) 65%, var(--text));--r-xs:6px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:22px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1);--t-fast:.12s;--t-med:.22s;--sidebar-w:244px;--rail-w:64px;--topbar-h:56px;--hour-h:52px;--pad:20px;--bg:#f4f2ee;--bg-elev:#fbfaf8;--surface:#fff;--surface-2:#f7f5f2;--surface-3:#efece7;--hover:#281e0a0d;--press:#281e0a17;--line:#281e0a1a;--line-strong:#281e0a2b;--text:#1f1c17;--text-2:#5d5850;--text-3:#6f695f;--danger:#c8412f;--ok:#2f8a5a;--shadow-1:0 1px 2px #1e14050f, 0 1px 1px #1e140508;--shadow-2:0 2px 6px #1e14050f, 0 12px 32px #1e140517;--shadow-3:0 8px 24px #1e14051f, 0 32px 80px #1e14052e;--glass:#fbfaf8c7;--scrim:#14100a52;--now:#e5484d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#11100e;--bg-elev:#161513;--surface:#1b1a17;--surface-2:#211f1c;--surface-3:#2a2825;--hover:#fff5e10d;--press:#fff5e117;--line:#fff5e114;--line-strong:#fff5e124;--text:#f1eee8;--text-2:#aaa59c;--text-3:#8d887f;--danger:#ff6b57;--ok:#5cc98d;--shadow-1:0 1px 2px #0006;--shadow-2:0 2px 8px #00000059, 0 16px 40px #00000059;--shadow-3:0 12px 32px #00000073, 0 40px 100px #00000080;--glass:#141518bd;--scrim:#00000080;--accent-soft:color-mix(in srgb, var(--accent) 20%, transparent);--accent-text:var(--accent);--accent-large:var(--accent);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#11100e;--bg-elev:#161513;--surface:#1b1a17;--surface-2:#211f1c;--surface-3:#2a2825;--hover:#fff5e10d;--press:#fff5e117;--line:#fff5e114;--line-strong:#fff5e124;--text:#f1eee8;--text-2:#aaa59c;--text-3:#8d887f;--danger:#ff6b57;--ok:#5cc98d;--shadow-1:0 1px 2px #0006;--shadow-2:0 2px 8px #00000059, 0 16px 40px #00000059;--shadow-3:0 12px 32px #00000073, 0 40px 100px #00000080;--glass:#141518bd;--scrim:#00000080;--accent-soft:color-mix(in srgb, var(--accent) 20%, transparent);--accent-text:var(--accent);--accent-large:var(--accent);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-density=compact]{--hour-h:40px;--pad:14px;--topbar-h:50px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font:14px/1.45 var(--font-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;margin:0;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent-text)}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}[hidden]{display:none!important}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);background-clip:padding-box;border:3px solid #0000;border-radius:10px}::-webkit-scrollbar-thumb:hover{background-color:var(--text-3)}::-webkit-scrollbar-track{background:0 0}:root[data-motion=reduce] *,:root[data-motion=reduce] :before,:root[data-motion=reduce] :after{transition-duration:.01ms!important;animation-duration:.01ms!important}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.btn{border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--surface);height:32px;color:var(--text);white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background var(--t-fast), border-color var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);box-shadow:var(--shadow-1);justify-content:center;align-items:center;gap:7px;padding:0 12px;font-size:13px;font-weight:550;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;pointer-events:none}.btn svg{flex:none;width:16px;height:16px}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000}.btn.primary:hover{background:color-mix(in srgb, var(--accent) 88%, white)}.btn.ghost{box-shadow:none;color:var(--text-2);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--hover);color:var(--text)}.btn.danger{color:var(--danger)}.btn.danger.solid{background:var(--danger);color:#fff;border-color:#0000}.btn.sm{height:28px;padding:0 9px;font-size:12.5px}.btn.icon{width:32px;padding:0}.btn.sm.icon{width:28px}.seg{background:var(--surface-3);border-radius:10px;gap:2px;padding:3px;display:inline-flex;position:relative}.seg button{z-index:1;height:26px;color:var(--text-2);transition:color var(--t-fast);background:0 0;border:0;border-radius:7px;padding:0 12px;font-size:12.5px;font-weight:600;position:relative}.seg button[aria-pressed=true]{color:var(--text)}.seg .seg-thumb{z-index:0;background:var(--surface);box-shadow:var(--shadow-1);border-radius:7px;position:absolute;top:3px;bottom:3px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>span{color:var(--text-2);font-size:12px;font-weight:600}.input,.select,.textarea{border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--surface);width:100%;min-width:0;height:34px;color:var(--text);transition:border-color var(--t-fast), box-shadow var(--t-fast);padding:0 10px}.textarea{resize:vertical;height:auto;min-height:80px;padding:8px 10px;line-height:1.5}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.input.bare{box-shadow:none;background:0 0;border-color:#0000;padding:0}.input.title{height:40px;font-size:20px;font-weight:650}.select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-3) 50%), linear-gradient(135deg, var(--text-3) 50%, transparent 50%);background-position:calc(100% - 15px) 15px,calc(100% - 10px) 15px;background-repeat:no-repeat;background-size:5px 5px;padding-right:28px}input[type=color].swatch-input{border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--surface);width:34px;height:34px;padding:3px}.check{appearance:none;border:1.5px solid var(--line-strong);background:var(--surface);width:18px;height:18px;transition:background var(--t-fast), border-color var(--t-fast), transform var(--t-fast) var(--ease-spring);border-radius:6px;flex:none;place-items:center;margin:0;display:grid}.check:after{content:"";border-left:2px solid var(--accent-ink);border-bottom:2px solid var(--accent-ink);width:9px;height:5px;transition:transform var(--t-med) var(--ease-spring);margin-top:-2px;transform:rotate(-45deg)scale(0)}.check:checked{background:var(--c,var(--accent));border-color:#0000}.check:checked:after{transform:rotate(-45deg)scale(1)}.check:active{transform:scale(.88)}.check.round{border-radius:50%}.switch{appearance:none;background:var(--surface-3);border:1px solid var(--line-strong);width:36px;height:21px;transition:background var(--t-med);border-radius:20px;flex:none;margin:0;position:relative}.switch:after{content:"";width:15px;height:15px;transition:transform var(--t-med) var(--ease-out);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000004d}.switch:checked{background:var(--accent);border-color:#0000}.switch:checked:after{transform:translate(15px)}.kbd{font:500 11px/1 var(--font-mono);background:var(--surface-3);color:var(--text-2);border:1px solid var(--line);border-radius:5px;padding:3px 5px}.dot{background:var(--c);border-radius:50%;flex:none;width:9px;height:9px}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.row{align-items:center;gap:8px;display:flex}.grow{flex:1;min-width:0}.stack{flex-direction:column;gap:12px;display:flex}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tabular{font-variant-numeric:tabular-nums}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}.empty{text-align:center;color:var(--text-3);place-items:center;gap:6px;padding:28px 16px;font-size:13px;display:grid}.empty svg{opacity:.6;width:28px;height:28px}.swatches{flex-wrap:wrap;gap:6px;display:flex}.swatches button{background:var(--c);width:22px;height:22px;box-shadow:inset 0 0 0 2px var(--surface);transition:transform var(--t-fast) var(--ease-spring);border:2px solid #0000;border-radius:50%}.swatches button:hover{transform:scale(1.12)}.swatches button[aria-pressed=true]{border-color:var(--c)}.chip{background:var(--surface-3);height:22px;color:var(--text-2);border-radius:20px;align-items:center;gap:5px;padding:0 8px;font-size:11.5px;font-weight:600;display:inline-flex}.chip.accent{background:var(--accent-soft);color:var(--accent-text)}.chip.danger{background:color-mix(in srgb, var(--danger) 14%, transparent);color:var(--danger)}.app{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);height:100%;transition:grid-template-columns var(--t-med) var(--ease-out);display:grid}.app[data-rail=true]{grid-template-columns:var(--rail-w) minmax(0, 1fr)}.app[data-size=phone]{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}.sidebar{background:var(--bg-elev);border-right:1px solid var(--line);min-height:0;padding:12px 10px;padding-top:max(12px, env(titlebar-area-height,0px));flex-direction:column;gap:2px;display:flex;overflow:hidden}.brand{align-items:center;gap:10px;min-height:44px;padding:4px 8px 14px;display:flex}.brand-mark{flex:none;width:28px;height:28px}.brand-name{font:650 18px/1 var(--font-display);letter-spacing:-.03em}.nav-section{color:var(--text-3);justify-content:space-between;align-items:center;padding:14px 10px 6px;font-size:12px;font-weight:600;display:flex}.nav-item{border-radius:var(--r-sm);height:34px;color:var(--text-2);text-align:left;width:100%;transition:background var(--t-fast), color var(--t-fast);background:0 0;border:0;align-items:center;gap:11px;padding:0 10px;font-weight:550;display:flex;position:relative}.nav-item svg{flex:none;width:18px;height:18px}.nav-item:hover{background:var(--hover);color:var(--text)}.nav-item[aria-current=page]{color:var(--text)}.nav-item .nav-pill{border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow-1);z-index:-1;position:absolute;inset:0}.nav-item .count{color:var(--text-3);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11.5px}.nav-scroll{isolation:isolate;flex:1;min-height:0;margin:0 -4px;padding:0 4px;overflow:hidden auto}.sidebar-foot{border-top:1px solid var(--line);flex-direction:column;gap:4px;padding-top:8px;display:flex}.sync-pill{color:var(--text-2);border-radius:var(--r-sm);text-align:left;background:0 0;border:0;align-items:center;gap:8px;width:100%;padding:6px 10px;font-size:12px;display:flex}.sync-pill:hover{background:var(--hover)}.sync-pill .dot{width:7px;height:7px}.app[data-rail=true] .sidebar{align-items:center;padding-inline:8px}.app[data-rail=true] .brand-name,.app[data-rail=true] .nav-label,.app[data-rail=true] .nav-section,.app[data-rail=true] .count,.app[data-rail=true] .sync-label{display:none}.app[data-rail=true] .nav-item{justify-content:center;width:44px;padding:0}.app[data-rail=true] .brand{justify-content:center;padding:4px 0 14px}.app[data-rail=true] .sync-pill{justify-content:center;width:44px}.main{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.topbar{height:var(--topbar-h);padding:0 var(--pad);border-bottom:1px solid var(--line);background:var(--bg);padding-top:env(titlebar-area-height,0px);-webkit-app-region:drag;app-region:drag;flex:none;align-items:center;gap:10px;display:flex}.topbar>*{-webkit-app-region:no-drag;app-region:no-drag}.topbar h1{font:650 20px/1.1 var(--font-display);letter-spacing:-.025em;white-space:nowrap;text-overflow:ellipsis;-webkit-app-region:drag;app-region:drag;min-width:0;margin:0;overflow:hidden}.topbar h1 .sub{font:500 13px var(--font-ui);color:var(--text-3);letter-spacing:0;margin-left:8px}.topbar .spacer{-webkit-app-region:drag;app-region:drag;flex:1;min-width:8px}.content{flex:1;min-height:0;overflow:auto}.view-enter{animation:viewIn var(--t-med) var(--ease-out)}@keyframes viewIn{0%{opacity:0;transform:translateY(6px)}}.tabbar{border-top:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(20px)saturate(1.6);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));justify-content:space-around;display:flex}.tabbar button{min-width:0;color:var(--text-3);background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:2px;padding:4px 0;font-size:10.5px;font-weight:600;display:flex}.tabbar button svg{width:21px;height:21px}.tabbar button[aria-current=page]{color:var(--accent-text)}.scrim{background:var(--scrim);z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);position:fixed;inset:0}.modal-wrap{z-index:51;pointer-events:none;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{pointer-events:auto;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-xl);width:min(560px,100%);max-height:min(86vh,900px);box-shadow:var(--shadow-3);flex-direction:column;display:flex;overflow:hidden}.modal.wide{width:min(760px,100%)}.modal-head{align-items:center;gap:10px;padding:16px 18px 6px;display:flex}.modal-head h2{font:650 17px/1.2 var(--font-display);letter-spacing:-.02em;text-wrap:balance;flex:1;margin:0}.modal-body{flex-direction:column;gap:14px;padding:10px 18px 18px;display:flex;overflow-y:auto}.modal-foot{border-top:1px solid var(--line);background:var(--surface-2);align-items:center;gap:8px;padding:12px 18px;display:flex}.modal-foot .spacer{flex:1}@media (width<=640px){.modal-wrap{place-items:end stretch;padding:0}.modal,.modal.wide{border-radius:var(--r-xl) var(--r-xl) 0 0;width:100%;max-height:92vh;padding-bottom:env(safe-area-inset-bottom,0px)}}.popover{z-index:60;background:var(--bg-elev);border:1px solid var(--line-strong);border-radius:var(--r-md);min-width:200px;max-width:min(340px,100vw - 16px);box-shadow:var(--shadow-3);transform-origin:0 0;padding:6px;position:fixed}.menu-item{text-align:left;width:100%;height:32px;color:var(--text);background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;padding:0 10px;font-size:13px;display:flex}.menu-item:hover,.menu-item[data-active=true]{background:var(--hover)}.menu-item svg{width:16px;height:16px;color:var(--text-2)}.menu-item.danger,.menu-item.danger svg{color:var(--danger)}.menu-sep{background:var(--line);height:1px;margin:5px 4px}.menu-label{color:var(--text-3);padding:6px 10px 4px;font-size:12px;font-weight:600}.toasts{left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:80;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;transform:translate(-50%)}.toast{pointer-events:auto;color:#f4f1ea;box-shadow:var(--shadow-3);background:#1d1c1a;border-radius:12px;align-items:center;gap:12px;max-width:calc(100vw - 32px);padding:9px 10px 9px 16px;font-size:13px;font-weight:500;display:flex}:root[data-theme=dark] .toast{color:#1d1c1a;background:#f1eee8}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .toast{color:#1d1c1a;background:#f1eee8}}.toast button{background:color-mix(in srgb, currentColor 14%, transparent);color:inherit;border:0;border-radius:7px;height:26px;padding:0 10px;font-size:12.5px;font-weight:650}.toast.err{background:var(--danger);color:#fff}.palette{pointer-events:auto;background:var(--bg-elev);border:1px solid var(--line-strong);border-radius:var(--r-lg);width:min(620px,100%);box-shadow:var(--shadow-3);align-self:start;margin-top:12vh;overflow:hidden}.palette-input{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:0 16px;display:flex}.palette-input svg{width:18px;height:18px;color:var(--text-3)}.palette-input input{background:0 0;border:0;outline:none;flex:1;height:52px;font-size:16px}.palette-list{max-height:min(56vh,460px);padding:6px;overflow-y:auto}.palette-item{cursor:pointer;border-radius:9px;align-items:center;gap:12px;padding:9px 10px;display:flex}.palette-item[data-active=true]{background:var(--accent-soft)}.palette-item svg{width:17px;height:17px;color:var(--text-2);flex:none}.palette-item .hint{color:var(--text-3);white-space:nowrap;margin-left:auto;font-size:12px}.palette-group{color:var(--text-3);padding:10px 10px 4px;font-size:12px;font-weight:600}.palette-foot{border-top:1px solid var(--line);color:var(--text-3);gap:14px;padding:8px 14px;font-size:11.5px;display:flex}.consent{z-index:70;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));background:var(--bg-elev);border:1px solid var(--line-strong);border-radius:var(--r-md);width:min(560px,100vw - 24px);box-shadow:var(--shadow-3);flex-wrap:wrap;align-items:center;gap:14px;padding:12px 14px;font-size:13px;display:flex;position:fixed;transform:translate(-50%)}.consent p{color:var(--text-2);flex:260px;margin:0}.app[data-size=phone] .consent,.app[data-size=phone]~.consent{bottom:calc(76px + env(safe-area-inset-bottom,0px))}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}.list-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:50px;padding:11px 16px;display:flex}.list-row:last-child{border-bottom:0}.list-row .label{flex:1;min-width:0}.list-row .label small{color:var(--text-3);margin-top:1px;font-size:12px;display:block}@media (width<=699px){.topbar{gap:6px;padding:0 12px}.topbar h1{font-size:19px}.topbar h1 .sub{margin-left:4px}}.app[data-size=phone]~.toasts,.app[data-size=phone] .toasts{bottom:calc(76px + env(safe-area-inset-bottom,0px))}@media (width<=400px){.tabbar button{letter-spacing:-.01em;font-size:9.5px}.tabbar button svg{width:20px;height:20px}}.cal-view{flex-direction:column;height:100%;min-height:0;display:flex}.cal-layout{flex:1;grid-template-columns:minmax(0,1fr);min-height:0;display:grid}.cal-layout[data-panel=true]{grid-template-columns:minmax(0,1fr) 264px}.cal-body{flex-direction:column;min-width:0;min-height:0;display:flex}.cal-panel{border-left:1px solid var(--line);background:var(--bg-elev);flex-direction:column;gap:18px;padding:14px 14px 20px;display:flex;overflow-y:auto}.tg{--gutter:58px;-webkit-user-select:none;user-select:none;flex-direction:column;flex:1;min-height:0;display:flex}.tg-gutter{width:var(--gutter);flex:none}.tg-head{border-bottom:1px solid var(--line);padding-right:var(--sbw,0px);display:flex}.tg-tz{color:var(--text-3);justify-content:flex-end;align-items:flex-end;padding:0 8px 6px 0;font-size:10.5px;font-weight:600;display:flex}.tg-days{flex:1;min-width:0;display:grid}.tg-day{height:48px;color:var(--text-2);transition:background var(--t-fast);background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;gap:7px;margin:4px 2px;display:flex}.tg-day:hover{background:var(--hover)}.tg-dow{text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.tg-num{font:600 20px/1 var(--font-display);letter-spacing:-.03em;color:var(--text);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;width:34px;height:34px;display:grid}.tg-day[data-today=true] .tg-dow{color:var(--accent-text)}.tg-day[data-today=true] .tg-num{background:var(--accent);color:var(--accent-ink);box-shadow:0 4px 14px var(--accent-soft)}.tg-day[data-weekend=true] .tg-dow{color:var(--text-3)}.tg-allday{border-bottom:1px solid var(--line);min-height:30px;max-height:30%;display:flex;overflow-y:auto}.tg-allday-label{color:var(--text-3);text-align:right;padding:8px 8px 0 0;font-size:10.5px;font-weight:600}.tg-allday-cols{flex:1;grid-auto-rows:22px;row-gap:2px;min-width:0;padding:3px 0;display:grid;position:relative}.tg-allday-cell{border-left:1px solid var(--line);grid-row:1/-1}.tg-allday-cell:nth-child(n){grid-row:1 / span max(1, var(--lanes))}.tg-allday-cols>.tg-allday-cell{grid-row:1 / calc(var(--lanes) + 1)}.bar{z-index:1;text-align:left;background:color-mix(in srgb, var(--c) 22%, var(--surface));min-width:0;height:22px;color:color-mix(in srgb, var(--c) 55%, var(--text));box-shadow:inset 3px 0 0 var(--c);border:0;border-radius:6px;align-items:center;gap:4px;margin:0 3px;padding:0 8px;font-size:12px;font-weight:600;display:flex}.bar:hover{background:color-mix(in srgb, var(--c) 30%, var(--surface))}.bar[data-clip-start=true]{box-shadow:none;border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0}.bar[data-clip-end=true]{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.tg-scroll{scroll-behavior:auto;flex:1;min-height:0;position:relative;overflow:hidden auto}.tg-body{display:flex;position:relative}.tg-hours{position:relative}.tg-hour{height:var(--hour-h);position:absolute;left:0;right:0}.tg-hour span{color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px;position:absolute;top:-8px;right:8px}.tg-cols{cursor:crosshair;background-image:repeating-linear-gradient(to bottom, var(--line) 0 1px, transparent 1px var(--hour-h)), repeating-linear-gradient(to bottom, transparent 0 calc(var(--hour-h) / 2), color-mix(in srgb, var(--line) 45%, transparent) calc(var(--hour-h) / 2) calc(var(--hour-h) / 2 + 1px), transparent calc(var(--hour-h) / 2 + 1px) var(--hour-h));flex:1;min-width:0;display:grid;position:relative}.tg-col{border-left:1px solid var(--line);min-width:0;position:relative}.tg-col[data-weekend=true]{background:color-mix(in srgb, var(--surface-3) 35%, transparent)}.tg-col[data-today=true]{background:color-mix(in srgb, var(--accent) 4%, transparent)}.tg-offhours{background:color-mix(in srgb, var(--surface-3) 45%, transparent);pointer-events:none;position:absolute;top:0;left:0;right:0}.tg-now{background:var(--now);z-index:20;pointer-events:none;height:2px;position:absolute;left:-1px;right:0}.tg-now span{background:var(--now);width:10px;height:10px;box-shadow:0 0 0 3px color-mix(in srgb, var(--now) 25%, transparent);border-radius:50%;position:absolute;top:-4px;left:-5px}.ev{cursor:grab;touch-action:none;background:color-mix(in srgb, var(--c) 20%, var(--surface));color:color-mix(in srgb, var(--c) 45%, var(--text));box-shadow:inset 3px 0 0 var(--c), 0 0 0 1px var(--bg);transition:box-shadow var(--t-fast), opacity var(--t-fast), transform var(--t-fast);border-radius:7px;padding:4px 7px;font-size:12px;line-height:1.3;position:absolute;overflow:hidden}.ev:hover{background:color-mix(in srgb, var(--c) 28%, var(--surface));z-index:15!important}.ev:active{cursor:grabbing}.ev[data-compact=true]{padding:2px 7px}.ev[data-dragging=true]{opacity:.35}.ev[data-cont-before=true]{border-top-left-radius:0;border-top-right-radius:0}.ev[data-cont-after=true]{border-bottom-right-radius:0;border-bottom-left-radius:0}.ev-title{align-items:center;gap:4px;min-width:0;font-weight:650;display:flex}.ev-title>span:first-of-type{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ev-icon{opacity:.8;flex:none;width:11px;height:11px}.ev-time{opacity:.85;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px}.ev-title .ev-time{margin-left:auto;font-weight:500}.ev-loc{opacity:.75;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.ev-resize{cursor:ns-resize;height:8px;position:absolute;bottom:0;left:0;right:0}.ev-resize:after{content:"";background:var(--c);opacity:0;width:18px;height:3px;transition:opacity var(--t-fast);border-radius:2px;margin-left:-9px;position:absolute;bottom:2px;left:50%}.ev:hover .ev-resize:after{opacity:.6}.ev.ghost{z-index:30;pointer-events:none;background:color-mix(in srgb, var(--c) 32%, var(--surface));box-shadow:inset 3px 0 0 var(--c), var(--shadow-2);opacity:.95}.ev-day-hint{opacity:.6;font-size:10.5px;font-weight:700;position:absolute;bottom:3px;right:6px}.mg{-webkit-user-select:none;user-select:none;flex-direction:column;flex:1;min-height:0;display:flex}.mg-head{border-bottom:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.mg-head div{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);padding:8px 10px;font-size:11.5px;font-weight:650}.mg-body{flex:1;grid-template-rows:repeat(6,minmax(0,1fr));min-height:0;display:grid}.mg-week{border-bottom:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));min-height:0;display:grid}.mg-cell{border-left:1px solid var(--line);min-width:0;min-height:0;transition:background var(--t-fast);flex-direction:column;padding:4px 3px 2px;display:flex;overflow:hidden}.mg-cell:first-child{border-left:0}.mg-cell[data-out=true]{background:color-mix(in srgb, var(--surface-3) 40%, transparent)}.mg-cell[data-out=true] .mg-num{color:var(--text-3)}.mg-cell[data-over=true]{background:var(--accent-soft)}.mg-num{min-width:24px;height:24px;color:var(--text);font-variant-numeric:tabular-nums;background:0 0;border:0;border-radius:12px;align-self:flex-start;margin-bottom:2px;padding:0 6px;font-size:12.5px;font-weight:650}.mg-num:hover{background:var(--hover)}.mg-cell[data-today=true] .mg-num{background:var(--accent);color:var(--accent-ink)}.mg-items{flex-direction:column;gap:1px;min-height:0;display:flex}.mchip{text-align:left;height:20px;color:var(--text);cursor:grab;touch-action:none;background:0 0;border:0;border-radius:5px;align-items:center;gap:5px;min-width:0;padding:0 6px;font-size:12px;display:flex}.mchip:hover{background:var(--hover)}.mchip .dot{--c:inherit;background:var(--c);width:7px;height:7px}.mchip-time{color:var(--text-3);font-variant-numeric:tabular-nums;flex:none;font-size:11px}.mchip.bar{background:color-mix(in srgb, var(--c) 22%, var(--surface));color:color-mix(in srgb, var(--c) 55%, var(--text));box-shadow:none;margin:0 -3px;padding:0 8px;font-weight:600}.mchip.bar[data-cont=true]{border-radius:0}.mchip[data-dragging=true]{opacity:.4}.mg-more{text-align:left;color:var(--text-2);background:0 0;border:0;border-radius:5px;padding:1px 6px;font-size:11.5px;font-weight:650}.mg-more:hover{background:var(--hover);color:var(--text)}.agenda{padding:8px var(--pad) 40px;flex:1;overflow-y:auto}.agenda-day{border-bottom:1px solid var(--line);grid-template-columns:170px minmax(0,1fr);gap:16px;padding:14px 0;display:grid}.agenda-day header{flex-direction:column;gap:2px;padding-top:8px;display:flex}.agenda-rel{font:600 17px/1.2 var(--font-display)}.agenda-day[data-today=true] .agenda-rel{color:var(--accent-text)}.agenda-day header .faint{font-size:12.5px}.agenda-items{flex-direction:column;gap:2px;display:flex}.agenda-item{text-align:left;transition:background var(--t-fast);background:0 0;border:0;border-radius:10px;align-items:stretch;gap:12px;padding:8px 10px;display:flex}.agenda-item:hover{background:var(--hover)}.agenda-time{flex-direction:column;flex:none;width:76px;font-size:13px;font-weight:600;display:flex}.agenda-time small{color:var(--text-3);font-size:12px;font-weight:500}.agenda-bar{background:var(--c);border-radius:3px;flex:none;width:3px}.agenda-main{flex-direction:column;gap:2px;min-width:0;display:flex}.agenda-title{align-items:center;gap:6px;font-weight:600;display:flex}.agenda-meta{color:var(--text-3);align-items:center;gap:4px;font-size:12px;display:flex}.agenda-meta svg{width:12px;height:12px;margin-left:6px}@media (width<=640px){.agenda-day{grid-template-columns:1fr;gap:4px}.agenda-day header{flex-direction:row;align-items:baseline;gap:8px}}.mini-head{align-items:center;gap:2px;margin-bottom:6px;display:flex}.mini-title{flex:1;padding-left:4px;font-size:13.5px;font-weight:650}.mini-grid{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.mini-dow{text-align:center;color:var(--text-3);padding-bottom:4px;font-size:10.5px;font-weight:650}.mini-day{aspect-ratio:1;color:var(--text);font-variant-numeric:tabular-nums;background:0 0;border:0;border-radius:50%;place-items:center;max-height:34px;font-size:12px;font-weight:550;display:grid;position:relative}.mini-day:hover{background:var(--hover)}.mini-day[data-out=true]{color:var(--text-3)}.mini-day[data-inrange=true]{background:var(--accent-soft);border-radius:6px}.mini-day[data-today=true]{color:var(--accent-text);font-weight:800}.mini-day[data-selected=true]{background:var(--accent);color:var(--accent-ink);border-radius:50%}.mini-day[data-busy=true]:after{content:"";opacity:.55;background:currentColor;border-radius:50%;width:3px;height:3px;margin-left:-1.5px;position:absolute;bottom:3px;left:50%}.cal-list{flex-direction:column;gap:1px;display:flex}.cal-row{border-radius:7px;align-items:center;gap:4px;padding:3px 4px;font-size:13px;display:flex}.cal-row:hover{background:var(--hover)}.cal-row label{cursor:pointer;gap:10px}.cal-more{opacity:0}.cal-row:hover .cal-more,.cal-more:focus-visible{opacity:1}.ev-editor .input.title{border-left:4px solid var(--c,var(--accent));border-radius:0;padding-left:10px}.ev-row{align-items:center;gap:12px;display:flex}.ev-row-icon{width:18px;height:18px;color:var(--text-3);flex:none}.ev-foot{margin:6px -18px -18px}.rule-editor{border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);flex-direction:column;gap:10px;padding:12px;display:flex}.daypicker{gap:5px;display:flex}.daypicker button{border:1px solid var(--line-strong);background:var(--surface);width:32px;height:32px;color:var(--text-2);transition:all var(--t-fast);border-radius:50%;font-size:12.5px;font-weight:650}.daypicker button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:#0000}.scope-options{flex-direction:column;gap:6px;display:flex}.scope-options button{justify-content:flex-start;height:40px}.dropzone{text-align:center;border-radius:var(--r-lg);border:1.5px dashed var(--line-strong);background:var(--surface-2);cursor:pointer;transition:all var(--t-fast);place-items:center;gap:6px;padding:28px 16px;display:grid}.dropzone svg{width:26px;height:26px;color:var(--text-3)}.dropzone:hover,.dropzone[data-over=true]{border-color:var(--accent);background:var(--accent-soft)}.import-result{flex-direction:column;gap:10px;padding:14px 16px;display:flex}.import-result svg{width:18px}.import-stats{gap:22px;display:flex}.import-stats div{flex-direction:column;display:flex}.import-stats b{font:650 22px/1 var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.import-stats span{color:var(--text-3);font-size:12px}.import-warn{color:var(--text-2);margin:0;padding-left:18px;font-size:12.5px}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.modal.modal-editor{width:min(600px,100%)}.tg-tasks{border-bottom:1px solid var(--line);max-height:22%;display:flex;overflow-y:auto}.tg-tasks-cols{flex:1;min-width:0;display:grid}.tg-tasks-cell{border-left:1px solid var(--line);flex-direction:column;gap:2px;min-width:0;padding:3px;display:flex}.tchip{align-items:center;gap:5px;min-width:0;height:20px;font-size:11.5px;display:flex}.tchip .check{flex:none;width:14px;height:14px}.tchip .check:after{width:6px;height:3px}.tchip-title{text-align:left;min-width:0;font-size:inherit;color:var(--text);background:0 0;border:0;flex:1;padding:0;font-weight:550}.tchip-title:hover{text-decoration:underline}.tchip[data-done=true] .tchip-title{color:var(--text-3);text-decoration:line-through}.mchip-task{padding:0 6px}.ev[data-task=true]{background-image:repeating-linear-gradient(135deg, transparent 0 6px, color-mix(in srgb, var(--c) 10%, transparent) 6px 12px)}.ev[data-task-done=true]{opacity:.55}.ev[data-task-done=true] .ev-title span{text-decoration:line-through}.ev-conflict{border-radius:var(--r-sm);color:color-mix(in srgb, var(--danger) 80%, var(--text));background:color-mix(in srgb, var(--danger) 10%, transparent);align-items:center;gap:10px;padding:8px 12px;font-size:12.5px;font-weight:550;display:flex}.ev-conflict svg{flex:none;width:16px;height:16px}.ev-task{border-radius:var(--r-sm);background:var(--surface-2);cursor:pointer;padding:8px 10px;font-size:13px}.dash-view{flex-direction:column;height:100%;min-height:0;display:flex}.dash-title-input{max-width:320px;font:650 19px var(--font-display);letter-spacing:-.025em;height:36px}.dash-grid-wrap{min-height:100%;padding-bottom:40px}.dash-view[data-edit=true] .dash-grid-wrap{background-image:radial-gradient(circle, var(--line-strong) 1px, transparent 1.2px);background-size:18px 18px}.wf-cell{transition:transform .28s var(--ease-out), width .28s var(--ease-out), height .28s var(--ease-out)!important}.react-grid-item.react-draggable-dragging,.react-grid-item.resizing{z-index:30;transition:none!important}.react-grid-item.react-grid-placeholder{border-radius:var(--r-lg);background:var(--accent)!important;opacity:.14!important;transition:transform .16s var(--ease-out)!important}.react-grid-item>.react-resizable-handle{z-index:5}.react-grid-item>.react-resizable-handle:after{border-color:var(--text-3)!important}.react-grid-item>.react-resizable-handle.react-resizable-handle-e,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{background:0 0}.wf{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);height:100%;min-height:0;box-shadow:var(--shadow-1);transition:box-shadow var(--t-med), border-color var(--t-med), transform var(--t-med);flex-direction:column;display:flex;overflow:hidden}.wf[data-bleed=true]{box-shadow:none;background:0 0;border-color:#0000}.wf[data-edit=true]{border-style:dashed;border-color:var(--line-strong)}.wf[data-edit=true][data-bleed=true]{background:var(--surface)}.react-draggable-dragging .wf{box-shadow:var(--shadow-3);border-color:var(--accent-line);transform:scale(1.015)rotate(.4deg)}.wf-head{flex:none;align-items:center;gap:8px;height:38px;padding:0 8px 0 14px;display:flex}.wf-handle{cursor:grab}.wf-handle:active{cursor:grabbing}.wf-grip{width:14px;height:14px;color:var(--text-3);margin-left:-6px}.wf-icon{width:14px;height:14px;color:var(--accent);flex:none}.wf-title{letter-spacing:-.005em;color:var(--text);flex:1;font-size:13px;font-weight:600}.wf-tools{gap:2px;display:flex}.wf-body{flex:1;min-height:0;padding:0 14px 14px;overflow:auto}.wf[data-bleed=true] .wf-body{padding:0 4px}.wf-dim>*{pointer-events:none}.dash-empty{text-align:center;place-items:center;gap:10px;padding:12vh 20px;display:grid}.dash-empty>svg{width:40px;height:40px;color:var(--accent)}.dash-empty h2{font:650 26px var(--font-display);letter-spacing:-.03em;text-wrap:balance;margin:0}.dash-empty p{margin:0 0 8px}.gallery{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.gallery-item{text-align:left;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);transition:all var(--t-fast);align-items:flex-start;gap:12px;padding:14px;display:flex}.gallery-item:hover{border-color:var(--accent-line);background:var(--accent-soft);transform:translateY(-1px)}.gallery-icon{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:10px;flex:none;place-items:center;display:grid}.gallery-icon svg{width:18px;height:18px}.gallery-text{flex-direction:column;flex:1;gap:2px;min-width:0;font-size:13px;display:flex}.gallery-text .muted{font-size:12.5px;line-height:1.35}.gallery-size{font-size:11px}.w-today{flex-direction:column;gap:10px;height:100%;display:flex}.w-today-greet{color:var(--text-2);font-size:13px;font-weight:550}.w-today-date{align-items:center;gap:14px;display:flex}.w-today-num{font:600 56px/.9 var(--font-display);color:var(--accent-large);letter-spacing:-.055em;font-variant-numeric:tabular-nums}.w-today-md{flex-direction:column;display:flex}.w-today-md b{letter-spacing:-.015em;font-size:17px;font-weight:650}.w-today-md span{color:var(--text-2);font-size:13px}.w-today-stats{color:var(--text-2);gap:16px;font-size:12.5px;display:flex}.w-today-stats b{color:var(--text);font-variant-numeric:tabular-nums;margin-right:3px;font-size:15px;font-weight:650}.w-today-next{text-align:left;background:color-mix(in srgb, var(--c) 14%, var(--surface-2));box-shadow:inset 3px 0 0 var(--c);border:0;border-radius:10px;align-items:center;gap:10px;min-width:0;margin-top:auto;padding:9px 11px;font-size:13px;font-weight:600;display:flex}.w-today-next-label{color:color-mix(in srgb, var(--c) 70%, var(--text));white-space:nowrap;font-size:12px;font-weight:600}.w-clock{flex-direction:column;justify-content:center;gap:4px;height:100%;display:flex}.w-clock-time{font:550 clamp(30px, 4.4vw, 54px)/1 var(--font-display);letter-spacing:-.045em;font-variant-numeric:tabular-nums}.w-clock-sec{color:var(--text-3);font-size:.45em}.w-clock-ap{font:700 13px var(--font-ui);color:var(--text-3);letter-spacing:.05em;margin-left:6px}.w-clock-city{color:var(--text-2);font-size:12.5px}.w-clock.analog{align-items:center}.w-clock svg .face{fill:var(--surface-2);stroke:var(--line-strong)}.w-clock svg .tick{stroke:var(--text-3);stroke-width:1.4px;stroke-linecap:round}.w-clock svg .hand{stroke-linecap:round;stroke:var(--text)}.w-clock svg .hand.h{stroke-width:3.2px}.w-clock svg .hand.m{stroke-width:2px}.w-clock svg .hand.s{stroke:var(--accent);stroke-width:1px}.w-clock svg .pin{fill:var(--accent)}.w-count{flex-direction:column;justify-content:center;gap:2px;height:100%;display:flex}.w-count-num{font:600 clamp(40px, 5vw, 64px)/1 var(--font-display);color:var(--accent-large);letter-spacing:-.05em;font-variant-numeric:tabular-nums}.w-count-label{color:var(--text-2);font-size:13.5px}.w-count-label b{color:var(--text)}.w-progress{flex-direction:column;justify-content:center;gap:10px;height:100%;display:flex}.w-progress-pct{font:600 24px var(--font-display);color:var(--accent-large);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.w-progress-track{background:var(--surface-3);border-radius:10px;height:10px;overflow:hidden}.w-progress-fill{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 70%, #fff), var(--accent));height:100%;transition:width .6s var(--ease-out);border-radius:10px}.w-quick{flex-direction:column;justify-content:center;gap:6px;height:100%;display:flex}.w-quick-row{gap:8px;display:flex}.w-quick-preview{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;min-height:16px;font-size:12px;display:flex;overflow:hidden}.w-text{height:100%;font-family:var(--font-display);letter-spacing:-.03em;text-wrap:balance;white-space:pre-wrap;align-items:center;padding:0 10px;font-weight:600;line-height:1.15;display:flex}.w-text[style*=center]{justify-content:center}.w-text-sm{font-size:17px}.w-text-md{font-size:24px}.w-text-lg{font-size:34px}.w-text-xl{font-size:clamp(36px,5vw,56px)}.w-agenda{flex-direction:column;gap:10px;display:flex}.w-agenda-head{color:var(--text-2);margin-bottom:3px;font-size:12.5px;font-weight:600}.w-agenda-head[data-today=true]{color:var(--accent-text)}.w-agenda-item{text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:9px;width:100%;min-width:0;padding:5px 6px;font-size:13px;display:flex}.w-agenda-item:hover{background:var(--hover)}.w-agenda-item[data-past=true]{opacity:.5}.w-agenda-item[data-live=true]{background:color-mix(in srgb, var(--c) 12%, transparent)}.w-agenda-bar{background:var(--c);border-radius:3px;flex:none;align-self:stretch;width:3px}.w-agenda-time{width:52px;color:var(--text-2);font-variant-numeric:tabular-nums;flex:none;font-size:12px;font-weight:550}.w-tasks{flex-direction:column;gap:6px;height:100%;display:flex}.w-tasks-add{background:var(--surface-2);border:1px solid var(--line);border-radius:9px;flex:none;align-items:center;gap:8px;height:34px;padding:0 10px;display:flex}.w-tasks-add:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.w-tasks-add svg{width:15px;height:15px;color:var(--text-3)}.w-tasks-add input{background:0 0;border:0;outline:none;flex:1;min-width:0;font-size:13px}.w-tasks-list{flex-direction:column;min-height:0;display:flex}.w-task{cursor:pointer;border-radius:7px;align-items:center;gap:10px;min-width:0;padding:6px 4px;font-size:13.5px;display:flex}.w-task:hover{background:var(--hover)}.w-task-title{text-overflow:ellipsis;white-space:nowrap;transition:color var(--t-med);overflow:hidden}.w-task[data-done=true] .w-task-title{color:var(--text-3);text-decoration:line-through}.w-task-due{font-variant-numeric:tabular-nums;color:var(--text-3);white-space:nowrap;font-size:11.5px}.w-task-due.overdue{color:var(--danger);font-weight:650}.w-task-pri{color:var(--accent-text);font-size:12px;font-weight:800}.w-task-pri[data-p="3"]{color:var(--danger)}.w-load{flex-direction:column;gap:8px;height:100%;display:flex}.w-load-head{font-size:13px}.w-load-head b{font:650 18px var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.w-load-bars{flex:1;grid-template-columns:repeat(7,1fr);gap:6px;min-height:60px;display:grid}.w-load-col{background:0 0;border:0;flex-direction:column;align-items:center;gap:4px;min-height:0;padding:0;display:flex}.w-load-val{font-variant-numeric:tabular-nums;color:var(--text-3);white-space:nowrap;height:12px;font-size:10.5px}.w-load-track{background:var(--surface-3);border-radius:7px;flex:1;align-items:flex-end;width:100%;max-width:30px;display:flex;overflow:hidden}.w-load-fill{background:color-mix(in srgb, var(--accent) 70%, var(--surface));width:100%;transition:height .5s var(--ease-out);border-radius:7px}.w-load-col[data-today=true] .w-load-fill{background:var(--accent)}.w-load-day{color:var(--text-3);font-size:11px;font-weight:700}.w-load-col[data-today=true] .w-load-day{color:var(--accent-text)}.w-grades{flex-direction:column;gap:4px;display:flex}.w-grade{text-align:left;background:0 0;border:0;border-radius:8px;grid-template-columns:minmax(0,1.4fr) minmax(40px,1fr) auto 28px;align-items:center;gap:10px;padding:7px 6px;font-size:13px;display:grid}.w-grade:hover{background:var(--hover)}.w-grade-track{background:var(--surface-3);border-radius:6px;height:6px;overflow:hidden}.w-grade-track span{background:var(--c);border-radius:6px;height:100%;display:block}.w-grade-val{font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:600}.w-grade-letter{font:650 15px var(--font-display);text-align:right}.w-focus{flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;display:flex}.w-focus-ring{aspect-ratio:1;width:min(100%,150px);position:relative}.w-focus-ring svg{width:100%;height:100%}.w-focus-ring .track{fill:none;stroke:var(--surface-3);stroke-width:6px}.w-focus-ring .fill{fill:none;stroke:var(--accent);stroke-width:6px;stroke-linecap:round;transition:stroke-dashoffset .3s linear}.w-focus[data-phase=rest] .w-focus-ring .fill{stroke:var(--ok)}.w-focus-time{font:550 30px/1 var(--font-display);letter-spacing:-.045em;font-variant-numeric:tabular-nums;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.w-focus-time span{font:550 12px var(--font-ui);letter-spacing:0;color:var(--text-3);margin-top:2px}.w-habits{flex-direction:column;gap:4px;display:flex}.w-habit{align-items:center;gap:6px;min-height:30px;display:flex}.w-habit-name{padding-right:20px;font-size:13px;font-weight:550;position:relative}.w-habit-del{color:var(--text-3);opacity:0;background:0 0;border:0;padding:2px;display:grid;position:absolute;top:50%;right:0;transform:translateY(-50%)}.w-habit-del svg{width:13px;height:13px}.w-habit:hover .w-habit-del{opacity:1}.w-habit-dow{text-align:center;width:26px;color:var(--text-3);font-size:10.5px;font-weight:700}.w-habit-dow[data-today=true]{color:var(--accent-text)}.w-habit-cell{border:1.5px solid var(--line-strong);width:26px;height:26px;transition:all var(--t-fast) var(--ease-spring);background:0 0;border-radius:8px;flex:none}.w-habit-cell:hover{border-color:var(--c)}.w-habit-cell[data-on=true]{background:var(--c);border-color:var(--c);transform:scale(1.02)}.w-habit-cell:active{transform:scale(.85)}.w-habit-streak{text-align:right;width:22px;color:var(--accent-text);font-size:12px;font-weight:700}.w-habits .w-tasks-add{margin-top:6px}.w-habits-empty{flex-direction:column;gap:3px;max-width:42ch;padding:4px 2px 6px;font-size:13px;display:flex}.w-habits-empty b{font-weight:600}.w-note{resize:none;background:0 0;border:0;outline:none;width:100%;height:100%;padding:2px;font-size:13.5px;line-height:1.55}.w-note[data-tint=true]{background:color-mix(in srgb, var(--accent) 9%, transparent);border-radius:10px;padding:10px 12px}.boot{background:var(--bg);height:100%}.split-view{flex-direction:column;height:100%;min-height:0;display:flex}.split{flex:1;grid-template-columns:240px minmax(0,1fr);min-height:0;display:grid}.split[data-narrow=true]{grid-template-columns:minmax(0,1fr)}.split-side{border-right:1px solid var(--line);background:var(--bg-elev);isolation:isolate;flex-direction:column;gap:2px;padding:12px 10px;display:flex;overflow-y:auto}.split-main{min-width:0;overflow-y:auto}.split-side .nav-item[aria-current=page]{background:var(--surface);box-shadow:var(--shadow-1)}.tasks-wrap{max-width:820px;padding:18px var(--pad) 80px;margin:0 auto}.task-add{border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);height:46px;box-shadow:var(--shadow-1);transition:border-color var(--t-fast), box-shadow var(--t-fast);align-items:center;gap:10px;margin-bottom:14px;padding:0 14px;display:flex}.task-add:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.task-add svg{width:18px;height:18px;color:var(--accent)}.task-add input{background:0 0;border:0;outline:none;flex:1;min-width:0;font-size:14.5px}.task-group{color:var(--text-2);padding:14px 6px 6px;font-size:13px;font-weight:600}.task{border-radius:var(--r-md);transition:background var(--t-fast), box-shadow var(--t-fast);overflow:hidden}.task[data-open=true]{background:var(--surface);box-shadow:var(--shadow-2);margin:8px 0}.task-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:8px 10px;display:flex}.task[data-open=true] .task-row{border-bottom-color:#0000}.task:hover .task-row{background:var(--hover)}.task-main{text-align:left;background:0 0;border:0;flex-direction:column;flex:1;gap:2px;min-width:0;padding:2px 0;display:flex}.task-title{text-overflow:ellipsis;white-space:nowrap;transition:color var(--t-med);font-size:14px;font-weight:550;overflow:hidden}.task[data-done=true] .task-title{color:var(--text-3);text-decoration:line-through}.task-meta{color:var(--text-3);flex-wrap:wrap;gap:4px 12px;font-size:12px;display:flex}.task-meta:empty{display:none}.task-meta .overdue{color:var(--danger);font-weight:650}.task-pri{color:var(--accent-text);align-items:center;gap:3px;font-weight:650;display:inline-flex}.task-pri svg{width:11px;height:11px}.task-pri[data-p="3"]{color:var(--danger)}.task-chev{width:16px;height:16px;color:var(--text-3);transition:transform var(--t-med) var(--ease-out);flex:none}.task[data-open=true] .task-chev{transform:rotate(90deg)}.task-detail{overflow:hidden}.task-detail-inner{flex-direction:column;gap:12px;padding:4px 16px 16px 44px;display:flex}.task-fields{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.subtasks{flex-direction:column;gap:2px;display:flex}.subtask{align-items:center;gap:10px;padding:2px 0;font-size:13.5px;display:flex}.subtask [data-done=true]{color:var(--text-3);text-decoration:line-through}@media (width<=640px){.task-detail-inner{padding-left:16px}}.course-pick{border-radius:var(--r-sm);text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:9px 10px;font-size:13.5px;display:flex}.course-pick:hover{background:var(--hover)}.course-pick[aria-current=page]{background:var(--surface);box-shadow:var(--shadow-1)}.course-swatch{background:var(--c);border-radius:4px;flex:none;width:10px;height:28px}.course-pick-grade{font:600 16px var(--font-display)}.course{max-width:980px;padding:20px var(--pad) 80px;flex-direction:column;gap:18px;margin:0 auto;display:flex}.course-head{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.course-code{width:130px;font-weight:700}.course-name{min-width:200px;font:600 20px var(--font-display);flex:1;height:38px}.course-big{text-align:right}.course-big-pct{font:600 44px/1 var(--font-display);color:var(--c);letter-spacing:-.05em}.course-big-letter{font:600 18px var(--font-display);color:var(--text-2)}.course-stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.stat{flex-direction:column;gap:2px;padding:14px 16px;display:flex}.stat>span{color:var(--text-2);font-size:12px;font-weight:650}.stat>b{font:650 24px var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.stat>small{color:var(--text-3);font-size:12px}.stat[data-tone=bad]>b{color:var(--danger)}.stat[data-tone=good]>b{color:var(--ok)}.course-cats{padding:6px 0}.course-sec-head{align-items:center;gap:10px;padding:10px 16px;display:flex}.course-sec-head h3{font:600 16px var(--font-display);margin:0}.cat{border-top:1px solid var(--line);padding:8px 16px 10px}.cat-head{align-items:center;gap:10px;display:flex}.cat-name{flex:1;height:30px;font-weight:700}.cat-avg{text-align:right;width:64px;font-weight:650}.grade-row{border-left:2px solid color-mix(in srgb, var(--c) 40%, transparent);align-items:center;gap:8px;margin-left:4px;padding:2px 0 2px 14px;display:flex}.grade-row .input.bare{flex:1;height:30px}.grade-pct{text-align:right;width:44px;font-size:12px}.cat-add{margin:4px 0 0 14px}.notes-side{width:auto}.note-pick{border-radius:var(--r-sm);text-align:left;background:0 0;border:0;flex-direction:column;gap:2px;width:100%;min-width:0;padding:10px;font-size:13px;display:flex}.note-pick:hover{background:var(--hover)}.note-pick[aria-current=page]{background:var(--surface);box-shadow:var(--shadow-1)}.note-pick b{align-items:center;gap:4px;display:flex}.note-pin{width:12px;height:12px;color:var(--accent);flex:none}.note-pick small{font-size:11px}.note-editor{max-width:760px;padding:24px var(--pad) 40px;flex-direction:column;gap:10px;height:100%;margin:0 auto;display:flex}.note-title{font:650 26px var(--font-display);letter-spacing:-.03em;flex:1;height:44px}.note-body{resize:none;background:0 0;border:0;outline:none;flex:1;min-height:50vh;font-size:15px;line-height:1.7}.settings{max-width:780px;padding:20px var(--pad) 80px;flex-direction:column;gap:26px;margin:0 auto;display:flex}.set-head{margin-bottom:10px;padding:0 4px}.set-head h2{font:600 18px var(--font-display);margin:0}.set-head p{margin:4px 0 0;font-size:13px}.auth{flex-direction:column;gap:12px;max-width:420px;padding:16px;display:flex}.field small{font-size:12px}.field-err{color:var(--danger);font-weight:550}.input[aria-invalid=true]{border-color:var(--danger)}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.shortcuts{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px 20px;padding:16px;font-size:13px;display:grid}.shortcuts div{align-items:center;gap:10px;display:flex}.shortcuts .kbd{text-align:center;min-width:64px}@media (width<=640px){.list-row{flex-wrap:wrap}.list-row>.row{width:100%;justify-content:flex-start!important}}.task-pin{opacity:0;color:var(--text-3);transition:opacity var(--t-fast)}.task:hover .task-pin,.task-pin:focus-visible,.task-pin[data-on=true]{opacity:1}.task-pin[data-on=true]{color:var(--accent)}.task-pin[data-on=true] svg{fill:currentColor}@media (hover:none){.task-pin{opacity:.6}}.plan-pin{width:12px;height:12px;color:var(--accent);fill:currentColor;vertical-align:-1px;flex:none;margin-right:4px}.inline-icon{vertical-align:-2px;width:13px;height:13px}.tasks-wrap[data-board=true]{max-width:1180px}.board{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:12px;display:grid}.board-col{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);min-height:160px;transition:border-color var(--t-fast), background var(--t-fast);flex-direction:column;gap:8px;padding:8px;display:flex}.board-col[data-over=true]{border-color:var(--accent);background:var(--accent-soft)}.board-head{align-items:center;gap:8px;padding:2px 4px;font-size:13px;display:flex}.board-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow-1);cursor:grab;flex-direction:column;gap:5px;padding:9px 10px;display:flex}.board-card[data-done=true] .board-title{color:var(--text-3);text-decoration:line-through}.board-title{overflow-wrap:anywhere;font-size:13.5px;font-weight:550}.board-next{align-self:flex-end;height:26px}.board-empty{text-align:center;border:1.5px dashed var(--line);border-radius:var(--r-sm);padding:18px 0;font-size:12px}@media (width<=760px){.board{grid-template-columns:minmax(0,1fr)}}.plan{flex-direction:column;gap:14px;display:flex}.plan-controls{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;display:grid}.plan-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;display:grid}.plan-head{align-items:center;gap:8px;margin-bottom:6px;font-size:12.5px;display:flex}.plan-head h3{font:600 15px var(--font-display);margin:0}.plan-pick,.plan-preview{min-width:0}.plan-pick{max-height:46vh;overflow-y:auto}.plan-task{cursor:pointer;border-radius:7px;align-items:center;gap:10px;padding:6px 4px;font-size:13px;display:flex}.plan-task:hover{background:var(--hover)}.plan-task .overdue{color:var(--danger);font-weight:650}.plan-hint{margin:8px 4px 0;font-size:12px}.plan-timeline{flex-direction:column;gap:4px;max-height:40vh;display:flex;overflow-y:auto}.plan-block{border-radius:var(--r-sm);background:color-mix(in srgb, var(--c) 16%, var(--surface));box-shadow:inset 3px 0 0 var(--c);align-items:center;gap:10px;padding:7px 10px;font-size:13px;display:flex}.plan-block[data-fixed=true]{background:var(--surface-2);color:var(--text-2);box-shadow:inset 3px 0 0 color-mix(in srgb, var(--c) 60%, var(--line))}.plan-time{color:var(--text-2);flex:none;min-width:92px;font-size:12px}.plan-unplaced{border-radius:var(--r-sm);background:color-mix(in srgb, var(--danger) 8%, transparent);margin-top:10px;padding:8px 10px;font-size:12.5px}@media (width<=720px){.plan-cols{grid-template-columns:minmax(0,1fr)}.plan-pick{max-height:none}}.progress-track{background:var(--surface-3);border-radius:8px;height:8px;overflow:hidden}.progress-track span{background:var(--c,var(--accent));height:100%;transition:width var(--t-med) var(--ease-out);border-radius:8px;display:block}.project .w-task{padding-left:2px}.goals{max-width:1180px;padding:20px var(--pad) 80px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));align-items:start;gap:14px;margin:0 auto;display:grid}.goal{border-top:3px solid var(--c);flex-direction:column;gap:12px;padding:14px 16px;display:flex}.goal-icon{width:18px;height:18px;color:var(--c);flex:none}.goal-title{font:600 17px var(--font-display);flex:1;height:34px}.w-prio{flex-direction:column;gap:8px;height:100%;display:flex}.w-prio .w-tasks-list{flex:1}.w-prio-plan{align-self:flex-start}@media (width<=520px){.plan .modal-foot>.faint,.split-view .topbar h1 .sub{display:none}}
