:root{--bg:#f2f5f1;--surface:#fff;--sunk:#e8ede7;--line:#dce3da;--line-2:#c5cfc3;--ink:#152018;--ink-2:#465449;--ink-3:#5b6a5e;--warn:#a86200;--brand:#66bd64;--accent:#2f7d2d;--accent-ink:#fff;--hdr:#ddefdb;--hdr-ink:#14361a;--hdr-2:#2f5e34;--hdr-tab:#14361a14;--hdr-sel:#fff;--hdr-sel-ink:#14361a;--s-done:#0e8a6c;--s-prog:#3a5fd9;--s-block:#d63b2f;--s-park:#b87400;--s-none:#8a968c;--s-done-bg:#d8f3ea;--s-prog-bg:#e3e9fd;--s-block-bg:#fde4e1;--s-park-bg:#fcefd6;--s-none-bg:#ebefea;--av-l:86%;--av-s:70%;--av-fg:#152018;--hl:#ffffffd9;--drop:#15201814;--shadow:0 1px 2px #1520180f, 0 4px 14px #1520180d;--scrim:#0f161161;--logo:url(/logo-mark.png);--font-display:"Bricolage Grotesque", "Helvetica Neue", Arial, sans-serif;--font-body:"IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--r:14px;--font-sans:var(--font-body);--color-background-primary:var(--surface);--color-background-secondary:var(--bg);--color-text-primary:var(--ink);--color-text-secondary:var(--ink-2);--color-border-tertiary:var(--line);--border-radius-md:8px;--border-radius-lg:12px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f1611;--surface:#172019;--sunk:#1f2a22;--line:#2a372d;--line-2:#3a4a3e;--ink:#e8eee8;--ink-2:#aebbb0;--ink-3:#8f9d92;--warn:#f2b657;--accent:#7fd27d;--accent-ink:#0f2a12;--hdr:#1b2e1e;--hdr-ink:#e3f2e2;--hdr-2:#a9d2a7;--hdr-tab:#ffffff0f;--hdr-sel:#2c4a30;--hdr-sel-ink:#fff;--s-done:#3ccfa8;--s-prog:#7e9bff;--s-block:#ff7a6b;--s-park:#f5b54a;--s-none:#7a887d;--s-done-bg:#12382e;--s-prog-bg:#1d2a5e;--s-block-bg:#4a1f1e;--s-park-bg:#3f2f12;--s-none-bg:#222d25;--av-l:36%;--av-s:50%;--av-fg:#fff;--hl:#ffffff12;--drop:#00000059;--shadow:0 1px 2px #0000004d;--scrim:#0000008c;--logo:url(/logo-mark-dark.png);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font:15px/1.5 var(--font-body);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}p{margin:0}:focus-visible{outline:2px solid var(--s-prog);outline-offset:2px;border-radius:6px}.wrap{max-width:1160px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));margin:0 auto}.muted{color:var(--ink-2)}.small{font-size:13px}.tnum{font-variant-numeric:tabular-nums}.top{z-index:20;background:var(--hdr);border-bottom:3px solid var(--brand);position:sticky;top:0}.top .wrap{flex-wrap:wrap;align-items:center;gap:16px;padding-block:12px;display:flex}.brand{align-items:center;gap:12px;margin-right:auto;display:flex}.brand-mark{background:var(--logo) center / contain no-repeat;flex:none;width:26px;height:30px}.brand b{font:700 21px/1 var(--font-display);color:var(--hdr-ink);letter-spacing:-.01em}.brand span{color:var(--hdr-2);font-size:13px;font-weight:500}.tabs{background:var(--hdr-tab);border-radius:10px;gap:2px;padding:3px;display:flex}.tabs button{cursor:pointer;color:var(--hdr-2);white-space:nowrap;background:0 0;border:0;border-radius:8px;padding:6px 14px;font-size:14px;font-weight:600}.tabs button[aria-selected=true]{background:var(--hdr-sel);color:var(--hdr-sel-ink);box-shadow:0 1px 2px #00000014}.me{color:var(--hdr-2);align-items:center;gap:10px;font-size:13px;display:flex}.me b{color:var(--hdr-ink);font-weight:600}.linkbtn{color:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;text-decoration:underline}.banner{border-radius:10px;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding:9px 12px;font-size:13.5px;display:flex}.banner.err{background:var(--s-block-bg);color:var(--s-block)}.banner.info{background:var(--s-prog-bg);color:var(--s-prog)}.banner button{cursor:pointer;color:inherit;background:0 0;border:0;font-size:16px;line-height:1}.summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-block:18px 22px;display:grid}.stat{border-radius:var(--r);border:1px solid color-mix(in srgb, var(--c) 24%, var(--line));background:linear-gradient(180deg, color-mix(in srgb, var(--c) 3%, var(--surface)) 0%, color-mix(in srgb, var(--c) 15%, var(--surface)) 100%);min-width:0;box-shadow:inset 0 1px 0 var(--hl), inset 0 -2px 0 color-mix(in srgb, var(--c) 14%, transparent), 0 1px 2px var(--drop), 0 8px 18px -8px color-mix(in srgb, var(--c) 45%, transparent);flex-direction:column;gap:4px;padding:14px 16px;display:flex;position:relative}.stat:after{content:"";border-radius:var(--r) var(--r) 0 0;background:linear-gradient(180deg, var(--hl), transparent);opacity:.5;pointer-events:none;height:45%;position:absolute;inset:0 0 auto}.stat.c1{--c:var(--brand)}.stat.c2{--c:var(--s-done)}.stat.c3{--c:var(--s-block)}.stat.c4{--c:var(--s-prog)}.stat .k{letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb, var(--c) 70%, var(--ink-2));font-size:12px;font-weight:600}.stat.c1 .k,.stat.c1 .v{color:var(--accent)}.stat .v{font:600 30px/1.1 var(--font-display);font-variant-numeric:tabular-nums;color:var(--c)}.stat .v small{font:500 14px var(--font-body);color:var(--ink-3)}.stat .d{color:var(--ink-2);font-size:13px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.toolbar h2{font:700 20px var(--font-display);margin:0 auto 0 0}.chip{border:1px solid var(--line-2);background:var(--surface);cursor:pointer;border-radius:999px;padding:5px 12px;font-size:13.5px}.chip[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.sel,.inp,.ta{border:1px solid var(--line-2);background:var(--surface);border-radius:8px;min-width:0;padding:6px 10px;font-size:14px}.ta{resize:vertical;width:100%;font-family:inherit}.inp.w100,.sel.w100{width:100%}.btn{border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);cursor:pointer;white-space:nowrap;border-radius:8px;padding:7px 14px;font-size:14px;font-weight:600}.btn.ghost{color:var(--ink);border-color:var(--line-2);background:0 0}.btn.danger{color:var(--s-block);border-color:color-mix(in srgb, var(--s-block) 40%, var(--line));background:0 0}.btn.sm{padding:4px 10px;font-size:13px}.btn:disabled{opacity:.55;cursor:default}.legend{color:var(--ink-2);flex-wrap:wrap;gap:14px;margin-bottom:12px;font-size:12.5px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{border-radius:3px;width:10px;height:10px;display:inline-block}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field>span{color:var(--ink-2);font-size:12px;font-weight:600}.field .hint{color:var(--ink-3);font-size:12px;font-weight:400}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.pill{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 9px 2px 8px;font-size:12px;font-weight:600;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.st-done{color:var(--s-done);background:var(--s-done-bg)}.st-in_progress{color:var(--s-prog);background:var(--s-prog-bg)}.st-blocked{color:var(--s-block);background:var(--s-block-bg)}.st-parked{color:var(--s-park);background:var(--s-park-bg)}.st-not_started{color:var(--ink-2);background:var(--s-none-bg)}.prio{color:var(--ink-2);font-size:12px;font-weight:600}.prio.urgent{color:var(--s-block)}.swatch{background:var(--pc,var(--brand));border-radius:5px;flex:none;width:16px;height:16px;display:inline-block;box-shadow:inset 0 0 0 1px #00000014}.sw{background:var(--pc,var(--brand));border-radius:2px;width:8px;height:8px;display:inline-block}.avs{display:inline-flex}.av{width:26px;height:26px;font:600 10px var(--font-body);letter-spacing:-.02em;color:var(--av-fg);background:hsl(var(--h) var(--av-s) var(--av-l));border:2px solid var(--surface);border-radius:50%;flex:none;place-items:center;display:inline-grid}.avs .av+.av{margin-left:-6px}.av.more{background:var(--sunk);color:var(--ink-2)}.wk{color:var(--ink-2);font-size:13px}.wk.zero{color:var(--warn)}.status{appearance:none;cursor:pointer;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 13px) 55%,calc(100% - 9px) 55%;background-repeat:no-repeat;background-size:4px 4px;border:0;border-radius:999px;padding:3px 26px 3px 10px;font-size:12.5px;font-weight:600}.status.st-done{background-color:var(--s-done-bg)}.status.st-in_progress{background-color:var(--s-prog-bg)}.status.st-blocked{background-color:var(--s-block-bg)}.status.st-parked{background-color:var(--s-park-bg)}.status.st-not_started{background-color:var(--s-none-bg)}.status:disabled{cursor:default;opacity:1;background-image:none;padding-right:10px}.plist{flex-direction:column;gap:10px;padding-bottom:48px;display:flex}.proj{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);border:1px solid #0000;overflow:hidden}.proj.open{border-color:color-mix(in srgb, var(--pc,var(--brand)) 40%, var(--line))}.phead{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) 260px 130px 28px;align-items:center;gap:20px;width:100%;padding:16px 18px;display:grid}.phead:hover{background:var(--sunk)}.phead:hover .bar{background:var(--line)}.ptitle{flex-direction:column;gap:6px;min-width:0;display:flex}.row1{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pname{font:700 18px/1.25 var(--font-display)}.meta{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.prog{flex-direction:column;gap:6px;display:flex}.bar{background:var(--sunk);border-radius:8px;height:10px;display:flex;overflow:hidden}.bar i{height:100%;display:block}.bar i+i{box-shadow:-2px 0 0 var(--surface)}.b-done{background:var(--s-done)}.b-prog{background:var(--s-prog)}.b-block{background:var(--s-block)}.prog .lbl{color:var(--ink-2);justify-content:space-between;font-size:13px;display:flex}.prog .lbl b{color:var(--ink);font-weight:600}.due{color:var(--ink-2);flex-direction:column;gap:2px;font-size:13px;display:flex}.late{color:var(--s-block);font-weight:600}.chev{width:28px;height:28px;color:var(--ink-3);place-items:center;transition:transform .15s;display:grid}.proj.open .chev{transform:rotate(90deg)}.pbody{border-top:1px solid var(--line);padding:6px 0 12px}.psum{color:var(--ink-2);flex-wrap:wrap;align-items:baseline;gap:12px;padding:8px 18px 4px;font-size:13.5px;display:flex}.psum>span:first-child{flex:320px;max-width:75ch}.psum .actions{gap:8px;margin-left:auto;display:flex}.scroll{overflow-x:auto}.tasks{border-collapse:collapse;width:100%}.tasks th{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);text-align:left;padding:10px 12px 6px;font-size:11.5px;font-weight:600}.tasks td{border-top:1px solid var(--line);vertical-align:top;padding:9px 12px;font-size:14px}.tasks th:first-child,.tasks td:first-child{padding-left:18px}.tasks th:last-child,.tasks td:last-child{padding-right:18px}.tasks tr.click{cursor:pointer}.tasks tr.click:hover td{background:color-mix(in srgb, var(--sunk) 60%, transparent)}.tasks tr.mine td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.c-num{color:var(--ink-3);font-variant-numeric:tabular-nums;width:40px;font-size:12px;padding-top:12px!important}.tname{font-weight:500}.tnote{color:var(--ink-2);margin-top:2px;font-size:13px}.tnote .nd{font-variant-numeric:tabular-nums;color:var(--ink-3);font-weight:500}.tblock{color:var(--s-block);margin-top:2px;font-size:13px}.tothers{color:var(--ink-3);margin-top:2px;font-size:12.5px}.who{color:var(--ink-2);font-size:13px}.tdue{white-space:nowrap;color:var(--ink-2);font-size:13px}.tdue.late{color:var(--s-block);font-weight:600}.addrow{flex-wrap:wrap;gap:8px;padding:12px 18px 2px;display:flex}.addrow .inp[type=text]{flex:240px}.empty{text-align:center;color:var(--ink-2);background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);padding:28px}.people{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;padding-bottom:48px;display:grid}.person{background:var(--surface);box-shadow:var(--shadow);border-radius:var(--r);cursor:pointer;text-align:left;border:1px solid #0000;flex-direction:column;gap:12px;padding:16px;display:flex}.person:hover{border-color:var(--line-2)}.person .ph{align-items:center;gap:10px;display:flex}.person .ph .av{width:36px;height:36px;font-size:13px}.person .nm{font:700 16px var(--font-display)}.headline{align-items:baseline;gap:8px;display:flex}.headline b{font:600 30px/1 var(--font-display);font-variant-numeric:tabular-nums;color:var(--accent)}.headline b.zero{color:var(--warn)}.headline span{color:var(--ink-2);font-size:13px}.kv{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.kv div{flex-direction:column;display:flex}.kv b{font:600 20px var(--font-display);font-variant-numeric:tabular-nums}.kv span{color:var(--ink-3);font-size:12px}.pchips{flex-wrap:wrap;gap:6px;display:flex}.pchips span{color:var(--ink-2);background:var(--sunk);border-radius:5px;align-items:center;gap:5px;padding:2px 7px;font-size:11.5px;font-weight:600;display:inline-flex}.digest{background:var(--surface);border-radius:var(--r);max-width:760px;box-shadow:var(--shadow);margin:0 auto 48px;overflow:hidden}.dhead{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--brand) 12%, var(--surface));flex-direction:column;gap:4px;padding:20px 24px;display:flex}.dhead .from{color:var(--ink-3);font-size:12.5px}.dhead h3{font:600 21px/1.25 var(--font-display);text-wrap:balance;margin:0}.dsec{border-bottom:1px solid var(--line);padding:18px 24px}.dsec:last-child{border-bottom:0}.dsec h4{font:600 12.5px var(--font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:0 0 10px}.dsec ul{flex-direction:column;gap:6px;margin:0;padding-left:18px;display:flex}.dsec li{font-size:14.5px}.dsec .m{color:var(--ink-2)}.dgroup{flex-direction:column;gap:4px;display:flex}.dgroup+.dgroup{margin-top:12px}.dgroup .gh{flex-wrap:wrap;align-items:center;gap:8px;font-weight:600;display:flex}.dgroup .gh .m{font-weight:400}.weekpick{align-items:center;gap:8px;display:flex}.card{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:16px;padding:16px 18px}.card h3{font:700 17px var(--font-display);margin:0 0 4px}.card>p.muted{max-width:75ch;margin-bottom:12px;font-size:13.5px}.tbl{border-collapse:collapse;width:100%;font-size:14px}.tbl th{text-align:left;color:var(--ink-3);border-bottom:1px solid var(--line);white-space:nowrap;padding:6px 8px;font-size:12px;font-weight:600}.tbl td{border-bottom:1px solid var(--line);vertical-align:middle;padding:7px 8px}.tbl td.n,.tbl th.n{text-align:right;font-variant-numeric:tabular-nums}.subtabs{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.scrim{background:var(--scrim);z-index:50;justify-content:flex-end;display:flex;position:fixed;inset:0}.scrim.center{justify-content:center;align-items:center;padding:16px}.panel{background:var(--surface);width:min(560px,100%);height:100%;padding:20px 22px calc(28px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:16px;display:flex;overflow-y:auto;box-shadow:-8px 0 30px #00000026}.dialog{background:var(--surface);border-radius:var(--r);flex-direction:column;gap:14px;width:min(560px,100%);max-height:90vh;padding:20px 22px;display:flex;overflow-y:auto}.panel h3,.dialog h3{font:700 20px/1.25 var(--font-display);margin:0}.panelhead{align-items:flex-start;gap:12px;display:flex}.panelhead .x{cursor:pointer;color:var(--ink-2);background:0 0;border:0;margin-left:auto;font-size:22px;line-height:1}.checks{flex-wrap:wrap;gap:6px;display:flex}.checks label{border:1px solid var(--line-2);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 6px;font-size:13px;display:inline-flex}.checks label.on{background:var(--s-done-bg);border-color:color-mix(in srgb, var(--s-done) 40%, var(--line))}.timeline{flex-direction:column;gap:10px;display:flex}.tl{gap:10px;font-size:13.5px;display:flex}.tl .when{color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums;min-width:92px;font-size:12px}.tl .note{background:var(--sunk);white-space:pre-wrap;border-radius:8px;margin-top:4px;padding:6px 10px}.swatches{flex-wrap:wrap;gap:6px;display:flex}.swatches button{cursor:pointer;background:var(--pc);border:2px solid #0000;border-radius:7px;width:26px;height:26px}.swatches button[aria-pressed=true]{border-color:var(--ink)}.confirm{flex-wrap:wrap;align-items:center;gap:8px;font-size:13.5px;display:flex}.toast{left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);z-index:60;border-radius:8px;max-width:calc(100% - 32px);padding:10px 16px;font-size:14px;position:fixed;transform:translate(-50%)}.loading{height:100vh;color:var(--ink-2);justify-content:center;align-items:center;font-size:14px;display:flex}@media (width<=820px){.summary{grid-template-columns:repeat(2,minmax(0,1fr))}.top .wrap{gap:10px}.tabs{flex:100%;order:3}.tabs button{flex:1;padding:6px 8px}.phead{grid-template-columns:minmax(0,1fr) 28px;gap:12px}.phead .prog{grid-area:2/1}.phead .due{flex-direction:row;grid-area:3/1;gap:8px}.phead .chev{grid-area:1/2}.tasks thead{display:none}.tasks tr{border-top:1px solid var(--line);grid-template-columns:auto 1fr;gap:4px 10px;padding:12px 18px;display:grid}.tasks td{border:0;padding:0!important}.tasks td.c-num{grid-row:1/span 3;width:auto}.tasks td.c-status{grid-column:2;margin-top:4px}.tasks td.c-who{grid-column:2}.tasks td.c-due{display:none}.tasks .mdue{display:inline}.status{padding:9px 30px 9px 12px;font-size:13.5px}.grid2{grid-template-columns:1fr}}.mdue{display:none}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
