:root{color-scheme:light;--page: #F3F2ED;--card: #FBFAF7;--card-2: #F6F5F0;--ink: #21262B;--ink-2: #5A6067;--muted: #8B9096;--line: #E4E2DA;--line-soft: #ECEAE2;--accent: #3D5A80;--accent-ink: #FFFFFF;--accent-wash: rgba(61, 90, 128, .09);--danger: #C23A2F;--danger-wash: rgba(194, 58, 47, .08);--ok: #006300;--shadow: 0 10px 30px rgba(33, 38, 43, .12);--c-1: #2a78d6;--c-2: #eb6834;--c-3: #1baf7a;--c-4: #eda100;--c-5: #e87ba4;--c-6: #008300;--c-7: #4a3aa7;--c-8: #e34948;--wash-alpha: 14%}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--page: #101318;--card: #171A1F;--card-2: #1C2026;--ink: #E9E7E1;--ink-2: #A9ADB3;--muted: #7C8188;--line: #272C34;--line-soft: #21262E;--accent: #8FB3DC;--accent-ink: #101318;--accent-wash: rgba(143, 179, 220, .12);--danger: #E66767;--danger-wash: rgba(230, 103, 103, .1);--ok: #0ca30c;--shadow: 0 10px 30px rgba(0, 0, 0, .5);--c-1: #3987e5;--c-2: #d95926;--c-3: #199e70;--c-4: #c98500;--c-5: #d55181;--c-6: #008300;--c-7: #9085e9;--c-8: #e66767;--wash-alpha: 20%}}*{box-sizing:border-box}html,body{margin:0}[hidden]{display:none!important}body{background:var(--page);color:var(--ink);font:14px/1.45 -apple-system,SF Pro Text,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.serif{font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-variant-numeric:tabular-nums}.eyebrow{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:600}.topbar{display:flex;align-items:center;gap:16px;height:56px;padding:0 20px;border-bottom:1px solid var(--line);background:var(--card);position:sticky;top:0;z-index:40}.brand .name{font-family:Iowan Old Style,Palatino,Georgia,serif;font-size:19px;font-weight:600;letter-spacing:.01em}.tabs{display:flex;gap:2px;background:var(--card-2);border:1px solid var(--line);border-radius:8px;padding:2px}.tabs button{padding:5px 14px;border-radius:6px;color:var(--ink-2);font-weight:500;font-size:13px}.tabs button[aria-selected=true]{background:var(--accent);color:var(--accent-ink)}.tabs button:not([aria-selected=true]):hover{color:var(--ink)}.nav{display:flex;align-items:center;gap:6px;margin-left:auto}.nav .range{font-family:Iowan Old Style,Palatino,Georgia,serif;font-size:16px;margin-right:8px;white-space:nowrap}.icon-btn{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line);border-radius:7px;color:var(--ink-2);background:var(--card)}.icon-btn:hover{border-color:var(--muted);color:var(--ink)}.btn{padding:5px 12px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--ink);font-weight:500;font-size:13px}.btn:hover{border-color:var(--muted)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.side.collapsed{display:none}.shell{display:flex;min-height:calc(100vh - 57px)}.side{width:248px;flex:none;border-right:1px solid var(--line);background:var(--card);padding:18px 14px 90px}.side h2{margin:0 0 10px 6px}.side .group{margin-bottom:18px}.proj-row{display:flex;align-items:center;gap:9px;width:100%;padding:6px 8px;border-radius:7px;text-align:left;cursor:pointer}.proj-row:hover{background:var(--card-2)}.proj-row input{accent-color:var(--accent);margin:0;flex:none}.dot{width:9px;height:9px;border-radius:50%;flex:none}.proj-row .pname{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-row .meta{font-size:11px;color:var(--muted)}.proj-row .lock,.lock{color:var(--muted);font-size:11px}.side .subnote{margin:6px 6px 0;font-size:11px;color:var(--muted)}.ghost-row{width:100%;text-align:left;padding:6px 8px;border-radius:7px;color:var(--accent);font-weight:500;font-size:13px}.ghost-row:hover{background:var(--accent-wash)}.main{flex:1;min-width:0;padding:18px 20px 110px}.view{display:none}.view.active{display:block}.empty{margin:60px auto;max-width:400px;text-align:center;color:var(--muted)}.empty .serif{font-size:20px;color:var(--ink-2);margin-bottom:6px}.overdue{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid color-mix(in srgb,var(--danger) 35%,var(--line));background:var(--danger-wash);border-radius:10px;padding:9px 12px;margin-bottom:16px}.overdue .flag{color:var(--danger);font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase}.overdue .item{display:flex;align-items:center;gap:8px}.overdue .due{font-size:11.5px;color:var(--danger)}.overdue .act{font-size:12px;color:var(--accent);font-weight:500}.week-span-lane{position:relative;height:0;margin:0 0 4px}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.day{min-height:300px}.day-head{display:flex;align-items:baseline;gap:6px;padding:4px 4px 8px;border-bottom:2px solid var(--line);margin-bottom:8px}.day.today .day-head{border-bottom-color:var(--accent)}.day-head .dow{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:600}.day-head .num{font-family:Iowan Old Style,Palatino,Georgia,serif;font-size:20px}.day.today .day-head .num{color:var(--accent-ink);background:var(--accent);width:30px;height:30px;border-radius:50%;display:inline-grid;place-items:center;font-size:16px}.day.today .day-head .dow{color:var(--accent)}.day-items{display:flex;flex-direction:column;gap:6px}.chip{display:flex;align-items:flex-start;gap:7px;width:100%;text-align:left;border:1px solid var(--line);border-left:3px solid var(--pc, var(--muted));background:color-mix(in srgb,var(--pc, var(--muted)) var(--wash-alpha),var(--card));border-radius:7px;padding:6px 8px;font-size:12.5px;line-height:1.35}.chip:hover{border-color:var(--muted)}.chip .t{flex:1;min-width:0}.chip .time{font-size:11px;color:var(--ink-2);display:block}.chip .badge{font-size:10px;color:var(--muted);flex:none}.chip.done .t{text-decoration:line-through;color:var(--muted)}.chip.due-flag .time{color:var(--danger)}.spanbar{position:absolute;height:24px;display:flex;align-items:center;gap:6px;border-radius:6px;padding:0 8px;font-size:11.5px;white-space:nowrap;overflow:hidden;background:color-mix(in srgb,var(--pc) var(--wash-alpha),var(--card));border:1px solid var(--line);border-left:3px solid var(--pc);cursor:pointer}.month-wrap{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card)}.month-dows{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line);background:var(--card-2)}.month-dows div{padding:7px 10px;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:600}.mweek{position:relative;display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line-soft)}.mweek:last-child{border-bottom:none}.mcell{min-height:108px;padding:6px 8px 8px;border-right:1px solid var(--line-soft)}.mcell:last-child{border-right:none}.mcell .num{font-family:Iowan Old Style,Palatino,Georgia,serif;font-size:14px;display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:50%}.mcell.dim .num{color:var(--muted);opacity:.55}.mcell.today .num{background:var(--accent);color:var(--accent-ink)}.mlane{position:absolute;left:0;right:0;top:34px;pointer-events:none}.mbar{position:absolute;height:20px;pointer-events:auto;cursor:pointer;display:flex;align-items:center;border-radius:5px;padding:0 7px;font-size:11px;white-space:nowrap;overflow:hidden;background:color-mix(in srgb,var(--pc) var(--wash-alpha),var(--card));border:1px solid var(--line);border-left:3px solid var(--pc)}.mcell .cell-items{display:flex;flex-direction:column;gap:3px}.mchip{display:flex;align-items:center;gap:5px;width:100%;text-align:left;font-size:11px;padding:2px 4px;border-radius:4px;color:var(--ink)}.mchip:hover{background:var(--card-2)}.mchip .dot{width:7px;height:7px}.mchip .t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mchip.done .t{text-decoration:line-through;color:var(--muted)}.mchip .dia{color:var(--pc);font-size:10px}.mchip.overdue-chip .t{color:var(--danger)}.more{font-size:10.5px;color:var(--muted);padding:1px 4px}.tl-wrap{border:1px solid var(--line);border-radius:12px;background:var(--card);overflow-x:auto}.tl-canvas{min-width:1040px;position:relative}.tl-head{display:flex;border-bottom:1px solid var(--line);position:relative}.tl-side{width:230px;flex:none;padding:8px 12px;border-right:1px solid var(--line);background:var(--card-2);position:sticky;left:0;z-index:5}.tl-scale{flex:1;position:relative;height:46px}.tl-month{position:absolute;top:4px;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);font-weight:600;border-left:1px solid var(--line);padding-left:7px;height:100%}.tl-tick{position:absolute;bottom:4px;font-size:10px;color:var(--muted);transform:translate(-50%)}.tl-row{display:flex;border-bottom:1px solid var(--line-soft)}.tl-row:last-child{border-bottom:none}.tl-label{width:230px;flex:none;display:flex;align-items:center;gap:7px;padding:0 12px;border-right:1px solid var(--line);background:var(--card);position:sticky;left:0;z-index:5;min-height:40px}.tl-row.child .tl-label{padding-left:34px;background:var(--card-2);min-height:32px;font-size:12.5px}.tl-row.ghead .tl-label{background:var(--card-2);min-height:30px}.tl-track{flex:1;position:relative;min-height:40px}.tl-row.child .tl-track{min-height:32px;background:color-mix(in srgb,var(--card-2) 55%,var(--card))}.chev{color:var(--muted);font-size:10px;width:14px;flex:none;transition:transform .15s}.tl-row[data-open=true] .chev{transform:rotate(90deg)}.tl-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.tl-row.child .tl-name{font-weight:400}.tl-row.child.umbrow .tl-name{font-weight:600}.gbar{position:absolute;top:50%;transform:translateY(-50%);height:18px;border-radius:4px;cursor:pointer;background:color-mix(in srgb,var(--pc) var(--wash-alpha),var(--card));border:1px solid color-mix(in srgb,var(--pc) 45%,var(--line))}.gbar .cap{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--pc);border-radius:4px 0 0 4px}.gbar .fill{position:absolute;left:0;top:0;bottom:0;background:color-mix(in srgb,var(--pc) 34%,transparent);border-radius:4px 0 0 4px}.gbar.ongoing{border-right:none;mask-image:linear-gradient(to right,#000 78%,transparent);-webkit-mask-image:linear-gradient(to right,#000 78%,transparent)}.gbar .blabel{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:11px;white-space:nowrap;color:var(--ink)}.gbar .plabel{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--ink-2)}.gbar.child-bar{height:14px}.gbar.dep-hi{box-shadow:0 0 0 2px var(--accent)}.gdia{position:absolute;top:50%;width:10px;height:10px;cursor:pointer;transform:translate(-50%,-50%) rotate(45deg);background:var(--pc);border-radius:2px}.gdue{position:absolute;top:50%;transform:translate(-50%,-50%);cursor:pointer;font-size:12px;color:var(--pc)}.gdia-label{position:absolute;top:50%;transform:translateY(-50%);margin-left:9px;font-size:10.5px;color:var(--ink-2);white-space:nowrap}.today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);opacity:.75;z-index:4;pointer-events:none}.today-line .lbl{position:absolute;top:2px;left:5px;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:700;white-space:nowrap}.dep-note{padding:8px 14px;font-size:11.5px;color:var(--muted);border-top:1px solid var(--line-soft)}.dep-note b{color:var(--ink-2);font-weight:600}.list-wrap{display:flex;flex-direction:column;gap:12px;max-width:880px}.lgh{margin:6px 2px -4px}.lgroup{border:1px solid var(--line);border-radius:12px;background:var(--card);overflow:hidden}.lhead{display:flex;align-items:center;gap:9px;width:100%;padding:10px 14px;text-align:left;background:var(--card-2)}.lhead .tl-name{font-weight:600}.lhead[aria-expanded=true] .chev{transform:rotate(90deg)}.lrow{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px 14px;border-top:1px solid var(--line-soft);cursor:pointer;font-size:13px}.lrow:hover{background:var(--card-2)}.lrow.child{padding-left:40px}.lrow input{accent-color:var(--accent);flex:none;margin:0}.lrow .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lrow.umb .t{font-weight:600}.lrow.done-row .t{text-decoration:line-through;color:var(--muted)}.lrow .dia{color:var(--pc);font-size:11px;flex:none}.ldate{font-size:11.5px;color:var(--ink-2);flex:none}.ldate.red{color:var(--danger);font-weight:600}.ltag{font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:0 7px;flex:none}.inbox{position:fixed;right:20px;bottom:20px;z-index:45;width:290px;border:1px solid var(--line);border-radius:12px;background:var(--card);box-shadow:var(--shadow);overflow:hidden}.inbox-head{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;text-align:left}.inbox-head .cnt{background:var(--accent);color:var(--accent-ink);font-size:11px;font-weight:700;min-width:20px;height:20px;border-radius:10px;display:grid;place-items:center;padding:0 6px}.inbox-head .hint{margin-left:auto;color:var(--muted);font-size:11px}.inbox-body{border-top:1px solid var(--line);display:none}.inbox[data-open=true] .inbox-body{display:block}.inbox-item{display:flex;align-items:center;gap:8px;padding:9px 14px;border-bottom:1px solid var(--line-soft)}.inbox-item:last-child{border-bottom:none}.inbox-item .t{flex:1;font-size:12.5px}.inbox-item .sched{font-size:11.5px;color:var(--accent);font-weight:500;flex:none}.inbox-note{padding:8px 14px;font-size:11px;color:var(--muted);background:var(--card-2)}.scrim{position:fixed;inset:0;background:#0f121659;z-index:50;display:none}.scrim.open{display:block}.panel{position:fixed;top:0;right:-400px;bottom:0;width:380px;max-width:94vw;z-index:51;background:var(--card);border-left:1px solid var(--line);box-shadow:var(--shadow);display:flex;flex-direction:column;transition:right .22s ease}.panel.open{right:0}.panel-head{display:flex;align-items:center;gap:10px;padding:16px 18px 10px}.panel-head .serif{font-size:18px;flex:1}.panel-body{flex:1;overflow-y:auto;padding:4px 18px 18px;display:flex;flex-direction:column;gap:14px}.syncbanner{display:flex;gap:8px;align-items:flex-start;background:var(--accent-wash);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:8px;padding:9px 11px;font-size:12px;color:var(--ink-2)}.field label{display:block;margin-bottom:4px}.field input,.field select,.field textarea{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:var(--card-2);color:var(--ink);font:inherit;font-size:13px}.field input:disabled,.field select:disabled,.field textarea:disabled{opacity:.55;cursor:not-allowed}.frow{display:grid;grid-template-columns:1fr 1fr;gap:10px}.panel-foot{display:flex;gap:8px;padding:12px 18px;border-top:1px solid var(--line)}.panel-foot .spacer{flex:1}.danger-btn{color:var(--danger);font-size:13px}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%) translateY(20px);background:var(--ink);color:var(--page);padding:9px 16px;border-radius:9px;font-size:13px;opacity:0;pointer-events:none;transition:all .25s;z-index:70;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.login-scene{position:fixed;inset:0;z-index:80;overflow:hidden;background:#0a1020}.login-scene[hidden]{display:none}.glass-host{position:absolute;inset:0;overflow:hidden}.gl-refract,.gl-sheen,.gl-base,.gl-smokemask{position:absolute;inset:0}.gl-refract{filter:url(#gl-fluted)}.gl-base{background-color:hsl(var(--h-b) calc(var(--sat) * .5) 10%);background-image:radial-gradient(130% 80% at 50% 102%,hsl(var(--h-b) var(--sat) var(--lig) / .55),transparent 72%);background-repeat:no-repeat}.gl-smokemask{filter:url(#gl-smoke);mask-image:linear-gradient(to top,black 0%,black 20%,rgba(0,0,0,.4) 68%,transparent 98%);-webkit-mask-image:linear-gradient(to top,black 0%,black 20%,rgba(0,0,0,.4) 68%,transparent 98%)}.gl-plume{position:absolute;left:-12%;right:-12%;top:-30%;height:160%;background-image:radial-gradient(40% 26% at 32% 82%,hsl(var(--h-a) var(--sat) var(--lig) / .95),transparent 70%),radial-gradient(44% 30% at 64% 64%,hsl(var(--h-c) var(--sat) var(--lig) / .9),transparent 72%),radial-gradient(38% 24% at 46% 46%,hsl(var(--h-b) var(--sat) var(--lig) / .95),transparent 70%),radial-gradient(42% 28% at 70% 24%,hsl(var(--h-a) var(--sat) var(--lig) / .9),transparent 70%),radial-gradient(36% 22% at 30% 14%,hsl(var(--h-c) var(--sat) var(--lig) / .85),transparent 70%);background-repeat:no-repeat;animation:smokeRise var(--bg-speed) linear infinite,smokeFade var(--bg-speed) linear infinite;will-change:transform,opacity}.gl-plume2{animation-delay:calc(var(--bg-speed) / -2),calc(var(--bg-speed) / -2)}.gl-sheen{backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));background-color:rgba(255,255,255,var(--frost))}@keyframes smokeRise{0%{transform:translateY(12%) scale(1.05)}to{transform:translateY(-52%) scale(1.35)}}@keyframes smokeFade{0%{opacity:0}18%{opacity:1}78%{opacity:1}to{opacity:0}}.login-pos{position:absolute;left:26%;top:66%;transform:translate(-50%,-50%);width:350px;max-width:calc(100vw - 32px);z-index:2}.login-card{background:#0910248c;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.16);border-radius:16px;padding:28px 26px;color:#edf1f8;box-shadow:0 24px 70px #00000080}.login-card .brand-lg{font-size:30px;margin-bottom:22px}.passkey-btn{width:100%;padding:11px;border-radius:9px;background:#ffffffeb;color:#16233f;font-weight:600;font-size:14px}.passkey-btn:hover{background:#fff}.signout{color:var(--ink-2);font-size:12px;margin-top:4px}@media(max-width:760px){.login-pos{left:50%;top:54%}}@media(prefers-reduced-motion:reduce){.glass-wabber{animation:none!important}}@media(max-width:760px){.nav .range,#navPrev,#navNext{display:none}.topbar{gap:10px}.side{position:fixed;top:57px;bottom:0;left:-280px;z-index:48;width:260px;transition:left .22s ease;box-shadow:var(--shadow);overflow-y:auto}.side.open{left:0}.side.collapsed{display:block}.main{padding:14px 12px 130px}.week-grid{grid-template-columns:1fr;gap:0}.day{min-height:0;margin-bottom:4px}.day-head{border-bottom:none;margin-bottom:4px;padding-bottom:0}.day-items{padding-left:12px;border-left:2px solid var(--line);margin-left:6px;margin-bottom:14px}.week-span-lane{display:none}.mcell{min-height:64px;padding:4px}.mchip .t,.more{display:none}.mchip{padding:1px}.mlane{display:none}.inbox{left:12px;right:12px;width:auto}.tabs button{padding:5px 10px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
