@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/outfit-latin-ext.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:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/outfit-latin.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{--bg:#fcfcfb;--panel:#fff;--sunken:#f5f4f1;--raised:#faf9f7;--weekend:#f6f5f2;--line:#eae8e3;--line-soft:#f2f0ec;--line-strong:#d9d6cf;--text:#1a1917;--dim:#6b6862;--faint:#9c988f;--accent:#4f5bd5;--accent-hover:#3f4ac2;--accent-soft:#4f5bd514;--accent-wash:#4f5bd50d;--accent-line:#4f5bd566;--crit:#d6453c;--crit-bar:#e8695f;--crit-edge:#c0362e;--crit-soft:#d6453c17;--bar:#aab2bd;--bar-edge:#8c95a2;--today:#c87a2a;--danger:#c0392f;--grp-0:#4f5bd5;--grp-0-bar:#a8aeea;--grp-0-edge:#6570d9;--grp-0-wash:#f2f3fd;--grp-1:#0f847e;--grp-1-bar:#8ac9c4;--grp-1-edge:#2c9a93;--grp-1-wash:#edf7f6;--grp-2:#b0761c;--grp-2-bar:#e6c489;--grp-2-edge:#c58b34;--grp-2-wash:#fcf5e9;--grp-3:#c2416b;--grp-3-bar:#eda6bf;--grp-3-edge:#d25c82;--grp-3-wash:#fdeff4;--grp-4:#7e46c4;--grp-4-bar:#c8a7e8;--grp-4-edge:#9860d2;--grp-4-wash:#f8f1fe;--grp-5:#5a7a26;--grp-5-bar:#b6cb8c;--grp-5-edge:#749140;--grp-5-wash:#f4f8ea;--row-h:30px;--head-h:48px;--radius:6px;--radius-sm:4px;--shadow-pop:0 1px 2px #1a19170f, 0 10px 30px -6px #1a19172e;--font:Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;--display:"Outfit Variable", var(--font)}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font:13px/1.45 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:not-allowed}.btn{height:32px;font:560 13px/1 var(--font);letter-spacing:-.005em;white-space:nowrap;border-radius:var(--radius);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;flex:none;justify-content:center;align-items:center;gap:6px;padding:0 14px;transition:background .12s,border-color .12s,color .12s,box-shadow .12s;display:inline-flex}.btn:focus-visible{box-shadow:0 0 0 3px var(--accent-line);outline:none}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-sm{border-radius:var(--radius-sm);height:26px;padding:0 10px;font-size:12px}.btn-icon{width:32px;padding:0}.btn-sm.btn-icon{width:26px}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 1px 2px #1a19171f}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:active:not(:disabled){transform:translateY(.5px)}.btn-secondary{background:var(--panel);color:var(--text);border-color:var(--line-strong)}.btn-secondary:hover:not(:disabled){background:var(--sunken);border-color:var(--faint)}.btn-ghost{color:var(--dim);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--sunken);color:var(--text)}.btn-danger{background:var(--danger);color:#fff;box-shadow:0 1px 2px #1a19171f}.btn-danger:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 88%, #000)}.btn.is-active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line)}input{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--accent);border-radius:var(--radius-sm);width:100%;height:calc(var(--row-h) - 8px);box-shadow:0 0 0 3px var(--accent-wash);outline:none;padding:0 6px}.app{flex-direction:column;height:100%;display:flex}.toolbar{border-bottom:1px solid var(--line);background:var(--panel);flex:none;align-items:center;gap:8px;height:46px;padding:0 12px;display:flex}.toolbar .title{letter-spacing:-.012em;text-overflow:ellipsis;white-space:nowrap;max-width:280px;font-size:13.5px;font-weight:600;overflow:hidden}.toolbar .spacer{flex:1}.toolbar .meta{color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.toolbar .meta b{color:var(--text);font-weight:600}.toolbar .finish{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--raised);white-space:nowrap;flex:none;align-items:baseline;gap:7px;padding:4px 11px;display:flex}.toolbar .finish .k{letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-size:10px;font-weight:640}.toolbar .finish b{letter-spacing:-.015em;font-variant-numeric:tabular-nums;color:var(--text);font-size:14px;font-weight:640}.cluster{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel);flex:none;align-items:center;display:flex;overflow:hidden}.cluster>.btn{height:30px;box-shadow:none;border:0;border-radius:0}.cluster>.btn-icon{width:32px}.cluster>.btn+.btn{box-shadow:inset 1px 0 0 var(--line)}.cluster>.btn.is-active{border:0}.cluster .zoomlabel{color:var(--faint);text-transform:uppercase;letter-spacing:.05em;text-align:center;min-width:46px;box-shadow:inset 1px 0 0 var(--line);padding:0 8px;font-size:11px;line-height:26px}.projects{width:100%}.brand{align-items:center;gap:12px;margin-bottom:30px;display:flex}.brand .mark{color:var(--accent);flex:none;place-items:center;display:grid}.brand h1{font-family:var(--display);letter-spacing:.38em;text-transform:uppercase;color:var(--text);margin:0 -.38em 0 0;font-size:17px;font-weight:520}.projects .new{gap:8px;margin-bottom:14px;display:flex}.projects .new input{border-color:var(--line-strong);box-shadow:none;background:var(--panel);height:32px;padding:0 12px;font-size:13px}.projects .new input::placeholder{color:var(--faint)}.projects .new input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}.plist{flex-direction:column;display:flex}.pitem{cursor:pointer;border-bottom:1px solid var(--line-soft);align-items:center;gap:14px;padding:15px 14px 15px 0;transition:background .1s;display:flex;position:relative}.pitem:first-child{border-top:1px solid var(--line-soft)}.pitem:hover{background:var(--raised)}.pitem .rule{background:0 0;border-radius:2px;flex:none;align-self:stretch;width:3px;margin-right:1px;transition:background .12s}.pitem:hover .rule{background:var(--accent)}.pitem .name{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;font-weight:560;overflow:hidden}.pitem .count,.pitem .when{color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.pitem .when{text-align:right;min-width:74px}.pitem .del{visibility:hidden;color:var(--dim)}.pitem:hover .del{visibility:visible}.pitem .del:hover{color:var(--danger);background:var(--crit-soft)}.empty{color:var(--faint);border:1px dashed var(--line-strong);border-radius:var(--radius);text-align:center;padding:44px 16px;font-size:13.5px}.schedule{flex:1;min-height:0;display:flex;position:relative}.pane-left{background:var(--bg);flex-direction:column;flex:none;min-width:0;display:flex}.pane-right{flex-direction:column;flex:1;min-width:0;display:flex}.splitter{background:var(--line);cursor:col-resize;z-index:3;flex:none;width:1px;position:relative}.splitter:after{content:"";position:absolute;inset:0 -4px}.splitter:hover,.splitter.active{background:var(--accent);box-shadow:0 0 0 1px var(--accent-line)}.head{height:var(--head-h);border-bottom:1px solid var(--line-strong);background:var(--panel);flex:none;position:relative;overflow:hidden}.body-viewport{flex:1;position:relative;overflow:hidden}.gantt-viewport{flex:1;position:relative;overflow:auto}.thead{align-items:flex-end;height:100%;display:flex}.thead .th{color:var(--faint);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;padding:0 8px 9px;font-size:10.5px;font-weight:600;overflow:hidden}.thead .th.num{text-align:right;justify-content:flex-end;display:flex}.trow{height:var(--row-h);border-bottom:1px solid var(--line-soft);cursor:default;-webkit-user-select:none;user-select:none;align-items:center;display:flex;position:relative}.trow:hover{background:var(--raised)}.trow.sel,.trow.sel:hover{background:var(--accent-soft)}.trow.sel:before{content:"";background:var(--accent);width:2px;position:absolute;top:0;bottom:0;left:0}.trow.droptarget{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-line)}.trow.moving{opacity:.42}.tbody{position:relative}.dropline{background:var(--accent);pointer-events:none;z-index:2;border-radius:1px;height:2px;position:absolute;right:8px}.dropline:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-4px}.td.grip{color:var(--faint);cursor:grab;opacity:0;justify-content:center;padding:0 2px 0 4px}.td.grip:active{cursor:grabbing}.trow:hover .td.grip,.trow.sel .td.grip{opacity:1}.td.grip:hover{color:var(--text)}.td{white-space:nowrap;text-overflow:ellipsis;align-items:center;height:100%;padding:0 8px;display:flex;overflow:hidden}.td.num,.td.dur,.td.float{font-variant-numeric:tabular-nums;justify-content:flex-end}.td.float{color:var(--faint);font-size:12px}.td.float.zero{color:var(--crit)}.td.date{font-variant-numeric:tabular-nums;color:var(--dim)}.td.code{font-variant-numeric:tabular-nums;color:var(--faint);cursor:pointer;justify-content:flex-end;font-size:11.5px}.td.pred{font-variant-numeric:tabular-nums}.td.assignee{text-overflow:ellipsis;white-space:nowrap;color:var(--dim);overflow:hidden}.td.dur.editable,.td.pred.editable{color:var(--accent)}.td.editable{cursor:pointer;border-radius:var(--radius-sm)}.td.editable:hover{background:var(--panel);box-shadow:inset 0 0 0 1px var(--line)}.td.editing,.td.editing:hover{background:var(--panel);box-shadow:inset 0 0 0 1.5px var(--accent);cursor:text}.td input{width:100%;height:100%;box-shadow:none;font:inherit;color:var(--text);text-align:inherit;caret-color:var(--accent);background:0 0;border:0;border-radius:0;padding:0}.td.dur input{text-align:right}.trow.sel .td.code{color:var(--accent);font-weight:600}.trow.critical .td.code{color:var(--crit)}.rail{background:0 0;border-radius:1px;flex:none;width:2px;height:16px;margin-right:6px}.rail.g0{background:var(--grp-0)}.rail.g1{background:var(--grp-1)}.rail.g2{background:var(--grp-2)}.rail.g3{background:var(--grp-3)}.rail.g4{background:var(--grp-4)}.rail.g5{background:var(--grp-5)}.tname{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.tname .label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tname .label.untitled{color:var(--faint)}.trow.summary .tname .label{letter-spacing:-.008em;font-weight:620}.trow.summary.g0 .tname .label{color:var(--grp-0)}.trow.summary.g1 .tname .label{color:var(--grp-1)}.trow.summary.g2 .tname .label{color:var(--grp-2)}.trow.summary.g3 .tname .label{color:var(--grp-3)}.trow.summary.g4 .tname .label{color:var(--grp-4)}.trow.summary.g5 .tname .label{color:var(--grp-5)}.trow.milestone .tname .label{font-weight:560}.twist{width:15px;height:15px;color:var(--faint);cursor:pointer;border-radius:3px;flex:none;place-items:center;display:grid}.twist:hover{color:var(--text);background:var(--line)}.twist svg{transition:transform .13s}.twist.collapsed svg{transform:rotate(-90deg)}.td.date.pinned{color:var(--text);box-shadow:inset 2px 0 0 var(--accent)}.td.date.pinned.editable:hover{box-shadow:inset 2px 0 0 var(--accent), inset 0 0 0 1px var(--line)}.addrow{height:var(--row-h);color:var(--faint);cursor:pointer;align-items:center;gap:6px;padding:0 8px 0 16px;display:flex}.addrow:hover{color:var(--accent);background:var(--raised)}.gantt{display:block}.gantt text{-webkit-user-select:none;user-select:none}.tl-month{fill:var(--text);letter-spacing:-.005em;font-size:11.5px;font-weight:620}.tl-minor{fill:var(--faint);font-variant-numeric:tabular-nums;font-size:10px}.tl-band{fill:var(--raised)}.tl-line{stroke:var(--line)}.tl-line-strong{stroke:var(--line-strong)}.grid,.g-rowband{pointer-events:none}.g-weekend{fill:var(--weekend)}.g-month{stroke:var(--line)}.g-rowline{stroke:var(--line-soft)}.g-rowband{fill:var(--accent-soft)}.g-today{stroke:var(--today);stroke-width:1px;stroke-dasharray:3 3}.g-today-cap{fill:var(--today)}.bar{fill:var(--bar);stroke:var(--bar-edge);stroke-width:.75px;cursor:grab}.bar.g0{fill:var(--grp-0-bar);stroke:var(--grp-0-edge)}.bar.g1{fill:var(--grp-1-bar);stroke:var(--grp-1-edge)}.bar.g2{fill:var(--grp-2-bar);stroke:var(--grp-2-edge)}.bar.g3{fill:var(--grp-3-bar);stroke:var(--grp-3-edge)}.bar.g4{fill:var(--grp-4-bar);stroke:var(--grp-4-edge)}.bar.g5{fill:var(--grp-5-bar);stroke:var(--grp-5-edge)}.bar.critical{fill:var(--crit-bar);stroke:var(--crit-edge)}.bar.sel{stroke:var(--accent);stroke-width:1.75px}.bar.dim{opacity:.18}.ms{fill:var(--text);cursor:grab}.ms.g0{fill:var(--grp-0)}.ms.g1{fill:var(--grp-1)}.ms.g2{fill:var(--grp-2)}.ms.g3{fill:var(--grp-3)}.ms.g4{fill:var(--grp-4)}.ms.g5{fill:var(--grp-5)}.ms.critical{fill:var(--crit)}.ms.sel{stroke:var(--accent);stroke-width:1.75px}.ms.dim{opacity:.18}.sumbar{fill:var(--text);cursor:grab}.sumbar.g0{fill:var(--grp-0)}.sumbar.g1{fill:var(--grp-1)}.sumbar.g2{fill:var(--grp-2)}.sumbar.g3{fill:var(--grp-3)}.sumbar.g4{fill:var(--grp-4)}.sumbar.g5{fill:var(--grp-5)}.sumbar.dim{opacity:.18}.sumbar.solid{stroke:none}.sumbar.sel{stroke:var(--accent);stroke-width:1.5px}.bar-label{fill:var(--dim);dominant-baseline:middle;pointer-events:none;stroke:var(--bg);stroke-width:3px;paint-order:stroke fill;font-size:11.5px}.label-bg{fill:var(--bg);pointer-events:none}.label-bg.sel{fill:color-mix(in srgb, var(--accent) 9%, var(--bg))}.bar-label.inside{fill:var(--text);stroke:none}.bar-label.inside.on-fill{fill:#fff}.bar-label.summary{font-weight:640}.bar-label.inside.summary{letter-spacing:.01em;font-size:10.5px}.floattail{stroke:var(--line-strong);pointer-events:none}.floattail line{stroke-dasharray:3 3}.floattail line.cap{stroke-dasharray:none}.handle{fill:#0000;cursor:ew-resize;pointer-events:all}.knob{fill:var(--panel);stroke:var(--accent);stroke-width:1.75px;pointer-events:none}.knob-hit{fill:#0000;cursor:crosshair;pointer-events:all}.knob-hit:hover+.knob,.knob.hot{fill:var(--accent)}.link{stroke:var(--faint);fill:none;stroke-width:1.25px}.link.critical{stroke:var(--crit)}.link.sel{stroke:var(--accent);stroke-width:2.25px}.link.dim{opacity:.15}.link-hit{stroke:#0000;fill:none;stroke-width:11px;cursor:pointer;pointer-events:stroke}.link-arrow{fill:var(--faint)}.link-arrow.critical{fill:var(--crit)}.link-arrow.sel{fill:var(--accent)}.link-arrow.dim{opacity:.15}.ghost{fill:var(--accent);opacity:.18;pointer-events:none}.ghost-outline{fill:none;stroke:var(--accent);stroke-width:1.25px;stroke-dasharray:3 2;pointer-events:none}.rubber{stroke:var(--accent);stroke-width:2px;fill:none;stroke-linecap:round;pointer-events:none}.rubber.bad{stroke:var(--danger)}.rubber-dot{fill:var(--accent);pointer-events:none}.rubber-dot.bad{fill:var(--danger)}.droprow{fill:var(--accent-soft);pointer-events:none}.droprow.bad{fill:var(--crit-soft)}.drop-target{fill:none;stroke:var(--accent);stroke-width:2px;pointer-events:none}.marquee{fill:var(--accent-soft);stroke:var(--accent-line);stroke-width:1px;pointer-events:none}.relbadge{fill:var(--accent);pointer-events:none}.relbadge.bad{fill:var(--danger)}.relbadge-text{fill:#fff;font-size:10px;font-weight:650;font-family:var(--mono);dominant-baseline:middle;text-anchor:middle;pointer-events:none}.drag-readout{fill:var(--accent);font-variant-numeric:tabular-nums;pointer-events:none;font-size:11px;font-weight:600}.pop{z-index:40;background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow-pop);min-width:200px;padding:11px 12px;position:fixed}.pop h4{letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin:0 0 8px;font-size:10.5px;font-weight:640}.pop .row{align-items:center;gap:6px;margin-top:8px;display:flex}.pop input{border-color:var(--line-strong);font-family:var(--mono);height:28px;box-shadow:none}.pop input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}.pop .hint{color:var(--faint);margin-top:8px;font-size:11px;line-height:1.45}.pop .rel{gap:4px;display:flex}.pop .rel .btn{font-family:var(--mono);flex:1}.datepick{width:246px}.datepick .dp-head{justify-content:space-between;align-items:center;margin:10px 0 6px;display:flex}.datepick .dp-head .m{letter-spacing:-.005em;font-size:12.5px;font-weight:620}.datepick .dp-grid{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.datepick .dp-dow{color:var(--faint);text-align:center;text-transform:uppercase;letter-spacing:.04em;padding-bottom:3px;font-size:10px}.datepick .dp-day{border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;cursor:pointer;height:28px;color:var(--text);border:1px solid #0000;place-items:center;font-size:12px;display:grid}.datepick .dp-day:hover{background:var(--sunken)}.datepick .dp-day.other{color:var(--faint)}.datepick .dp-day.weekend{color:var(--faint);opacity:.45;cursor:not-allowed;background:var(--weekend)}.datepick .dp-day.weekend:hover{background:var(--weekend)}.datepick .dp-day.today{border-color:var(--today);color:var(--today);font-weight:620}.datepick .dp-day.cursor{border-color:var(--accent-line)}.datepick .dp-day.on{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.datepick .dp-day.on:hover{background:var(--accent-hover)}.datepick .dp-foot{border-top:1px solid var(--line);gap:6px;margin-top:9px;padding-top:9px;display:flex}.datepick .dp-foot .btn{flex:1}.tip{z-index:50;pointer-events:none;background:var(--text);color:var(--bg);border-radius:var(--radius-sm);max-width:260px;padding:7px 9px;font-size:11.5px;line-height:1.5;position:fixed;box-shadow:0 6px 18px #1a191738}.tip .t-name{margin-bottom:2px;font-weight:620}.tip .t-row{color:#ffffffb8;font-variant-numeric:tabular-nums}.tip .t-row b{color:#fff;font-weight:560}.tip .t-crit{color:#ff9d94;font-weight:600}.notice{background:var(--text);color:var(--bg);border-radius:var(--radius);z-index:60;padding:9px 15px;font-size:12.5px;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #1a191740}.shortcuts{grid-template-columns:auto 1fr;align-items:center;gap:5px 16px;font-size:12px;display:grid}.shortcuts kbd{font-family:var(--mono);background:var(--sunken);border:1px solid var(--line);color:var(--dim);white-space:nowrap;border-bottom-width:2px;border-radius:4px;padding:2px 5px;font-size:10.5px}.shortcuts .d{color:var(--dim)}.shortcuts .sect{text-transform:uppercase;letter-spacing:.06em;color:var(--faint);grid-column:1/-1;margin-top:6px;font-size:10px;font-weight:640}.pop-backdrop{z-index:39;position:fixed;inset:0}.modal-scrim{z-index:70;background:#1a191738;position:fixed;inset:0}.modal{z-index:71;background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius);width:520px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);box-shadow:var(--shadow-pop);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.modal header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.modal header h3{letter-spacing:-.012em;margin:0;font-size:14px;font-weight:640}.modal-body{padding:4px 14px 14px;overflow:auto}.modal section{padding:12px 0}.modal section+section{border-top:1px solid var(--line-soft)}.modal section h4{letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin:0 0 10px;font-size:10.5px;font-weight:640}.modal .field{grid-template-columns:112px 1fr;align-items:center;gap:10px;margin-bottom:8px;display:grid}.modal .field>label{color:var(--dim);font-size:12.5px}.modal .field .note{color:var(--faint);grid-column:2;margin:2px 0 0;font-size:11px;line-height:1.45}.seg{flex-wrap:wrap;gap:4px;display:flex}.swatches{flex-wrap:wrap;gap:6px;display:flex}.swatch{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--bg);gap:1px;padding:3px;display:flex;overflow:hidden}.swatch span{border-radius:3px;width:18px;height:18px;display:block}.swatch.wide span{border-radius:0;width:9px}.swatch.wide span:first-child{border-radius:3px 0 0 3px}.swatch.wide span:last-child{border-radius:0 3px 3px 0}.swatch:hover{border-color:var(--faint)}.swatch.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-wash)}.editing-banner{z-index:55;background:var(--panel);border:1px solid var(--line-strong);box-shadow:var(--shadow-pop);color:var(--dim);white-space:nowrap;border-radius:999px;align-items:center;gap:10px;padding:7px 8px 7px 13px;font-size:12.5px;display:flex;position:fixed;top:56px;left:50%;transform:translate(-50%)}.editing-banner .dot{background:var(--today);border-radius:50%;flex:none;width:7px;height:7px;animation:2s ease-in-out infinite editing-pulse}.editing-banner .btn{border-radius:999px}.editing-banner .dot.view{background:var(--faint);animation:none}.editing-banner:has(.dot.view){padding-right:14px}@keyframes editing-pulse{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.editing-banner .dot{animation:none}}.constraint-prompt{width:330px}.constraint-prompt .cp-title{font-size:12.5px;font-weight:600;line-height:1.4}.constraint-prompt .hint{margin-top:4px}.constraint-prompt .row{margin-top:10px}.home{background:var(--bg);flex:1;min-height:0;position:relative;overflow:hidden}.home-scroll{z-index:1;height:100%;padding:20px 24px 32px;position:relative;overflow:auto}.home-bg{pointer-events:none;position:absolute;inset:0;overflow:hidden}.aurora{filter:blur(26px)saturate(115%);width:112%;height:112%;position:absolute;inset:-6%}.hero-word{font-family:var(--display);text-transform:uppercase;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;color:#0000;filter:drop-shadow(0 1px #ffffff59)drop-shadow(0 12px 40px #4f5bd51a);opacity:.85;-webkit-background-clip:text;background-clip:text;font-weight:150;line-height:.9}.hero-top{text-align:center;letter-spacing:.3em;background-image:linear-gradient(#fffffff2 10%,#ffffff4d 95%);width:fit-content;max-width:100%;margin:0 auto 12px;padding:.08em 0 .12em .3em;font-size:clamp(48px,min(12.75vw,13vh),187px)}.grain{opacity:.06;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.glass{-webkit-backdrop-filter:blur(28px)saturate(160%);backdrop-filter:blur(28px)saturate(160%);background:#ffffff80;border:1px solid #ffffffb8;border-radius:18px;max-width:720px;margin:0 auto;padding:36px 36px 28px;box-shadow:inset 0 1px #ffffffd9,0 1px 2px #1a19170a,0 28px 80px -28px #1a19173d}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.glass{background:#ffffffe0}}.glass .new input{background:#ffffffb8;border-color:#1a19171f}.glass .new input:focus{background:#fff}.glass .pitem{border-color:#1a191712;border-radius:8px}.glass .pitem:first-child{border-top-color:#1a191712}.glass .pitem:hover{background:#fff9}.glass .empty{background:#ffffff59;border-color:#1a191724}.gantt.by-type .bar{fill:var(--type-task-bar);stroke:var(--type-task-edge)}.gantt.by-type .sumbar{fill:var(--type-summary)}.gantt.by-type .ms{fill:var(--type-milestone)}.gantt.by-type .bar.critical{fill:var(--crit-bar);stroke:var(--crit-edge)}.gantt.by-type .ms.critical{fill:var(--crit)}.gantt.by-type .bar.sel,.gantt.by-type .ms.sel{stroke:var(--accent)}.schedule.by-type .trow.summary .tname .label{color:var(--type-summary)}.glass.narrow{max-width:420px;padding:28px 32px 22px}.glass.narrow .brand{margin-bottom:20px}.brand-action{align-items:center;margin-left:auto;display:flex}.avatar{width:32px;height:32px;font:620 11.5px/1 var(--display);letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:50%;place-items:center;transition:background .12s,box-shadow .12s;display:grid}.avatar:hover{background:color-mix(in srgb, var(--accent) 16%, #fff)}.avatar:focus-visible{box-shadow:0 0 0 3px var(--accent-line);outline:none}.auth-title{letter-spacing:-.015em;margin:0 0 14px;font-size:17px;font-weight:620}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-section{border-top:1px solid #1a191714;margin-top:26px;padding-top:20px}.auth-section h3{margin:0;font-size:13px;font-weight:620}.auth-field{flex-direction:column;gap:6px;display:flex}.auth-field>span{letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-size:10.5px;font-weight:640}.auth-field>em{color:var(--faint);font-size:11.5px;font-style:normal}.auth-field input{border-radius:var(--radius);height:36px;box-shadow:none;background:#ffffffb8;border:1px solid #1a19171f;padding:0 12px;font-size:13.5px}.auth-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);background:#fff}.auth-readonly{color:var(--dim);padding:2px 0;font-size:13.5px}.auth-submit{width:100%;height:36px;margin-top:2px}.auth-form>.btn-secondary{align-self:flex-start}.auth-error{color:var(--danger);margin:0;font-size:12.5px}.auth-note{color:var(--dim);margin:0;font-size:13.5px;line-height:1.55}.delete-notice{margin-bottom:16px}.auth-fine{color:var(--faint);margin:0;font-size:11.5px;line-height:1.5}.auth-fine a{color:var(--dim);text-underline-offset:2px}.legal-links{justify-content:center;margin-top:16px;font-size:12px;display:flex}@media (width>=1100px){.legal-links{z-index:2;margin:0;position:fixed;bottom:18px;left:26px}}.legal-links a{color:var(--dim);text-decoration:none}.legal-links a:hover{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.auth-links{justify-content:space-between;gap:12px;display:flex}.auth-links button{color:var(--accent);font-size:12.5px}.auth-links button:hover{text-underline-offset:3px;text-decoration:underline}.glass.wide{max-width:760px}.home-scroll.centred{flex-direction:column;justify-content:center;min-height:100%;display:flex}.page-mark{z-index:2;color:var(--accent);align-items:center;gap:10px;display:flex;position:absolute;top:22px;left:26px}button.page-mark{border-radius:var(--radius);cursor:pointer;background:0 0;border:0;margin:-4px -6px;padding:4px 6px}button.page-mark:hover span{color:var(--accent)}button.page-mark:focus-visible{box-shadow:0 0 0 3px var(--accent-line);outline:none}.page-mark span{font-family:var(--display);letter-spacing:.38em;text-transform:uppercase;color:var(--text);font-size:14px;font-weight:520}.account-head{grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:26px;display:grid}.account-head>.btn:first-child{justify-self:start}.account-head>.btn:last-child{justify-self:end}.account-title{letter-spacing:-.015em;margin:0;font-size:17px;font-weight:620}.account-grid{grid-template-columns:1fr 1fr;gap:36px;display:grid}.account-grid>form+form{border-left:1px solid #1a191714;padding-left:36px}.account-grid h3{margin:0;font-size:13px;font-weight:620}.account-plan{align-items:baseline;gap:10px;font-size:13px;display:flex}.account-plan span{letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-size:10.5px;font-weight:640}.account-plan b{color:var(--dim);font-weight:560}.account-error{margin-top:18px}.account-billing{border-top:1px solid #1a191714;justify-content:space-between;align-items:center;gap:24px;margin-top:22px;padding-top:18px;display:flex}.account-billing h3{margin:0 0 8px;font-size:13px;font-weight:620}.billing-state{flex-direction:column;gap:3px;font-size:13px;display:flex}.billing-state b{color:var(--text);font-weight:600}.billing-state span{color:var(--dim);font-size:12.5px;line-height:1.5}.billing-state span.warn,.billing-state.expired b{color:var(--danger)}.billing-actions{flex-direction:column;flex:none;align-items:flex-end;gap:8px;display:flex}.billing-upgrade{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.billing-buttons{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.billing-upgrade.stacked{align-items:stretch}.billing-upgrade.stacked .billing-buttons{flex-direction:column}.billing-upgrade.stacked .btn{width:100%;height:36px}.billing-upgrade .auth-error,.billing-upgrade .auth-fine{width:0;min-width:100%}.billing-upgrade:not(.stacked) .auth-fine{text-align:right}.billing-save{letter-spacing:.02em;background:#ffffff38;border-radius:999px;margin-left:8px;padding:1px 6px;font-size:10.5px;font-weight:640}@media (width<=720px){.account-grid{grid-template-columns:1fr}.account-grid>form+form{border-top:1px solid #1a191714;border-left:0;padding-top:22px;padding-left:0}.account-billing{flex-direction:column;align-items:stretch}.billing-actions,.billing-upgrade{align-items:stretch}.billing-buttons{justify-content:stretch}}.toolbar .title-edit{border-radius:var(--radius-sm);cursor:text;margin-left:-8px;padding:4px 8px;transition:background .12s}.toolbar .title-edit:hover{background:var(--sunken)}.toolbar .title-input{width:260px;height:30px;font:600 13.5px/1 var(--font);letter-spacing:-.012em;border-radius:var(--radius-sm);padding:0 8px}.share-modal{width:540px}.share-invite{align-items:center;gap:8px;margin:8px 0 4px;display:flex}.share-invite input{border-color:var(--line-strong);min-width:0;height:32px;box-shadow:none;flex:1;padding:0 10px;font-size:13px}.share-invite input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}.share-note{color:var(--faint);margin:10px 0;font-size:12.5px}.role-toggle{flex-wrap:nowrap;flex:none;gap:0}.role-toggle .btn{border-radius:0;margin-left:-1px}.role-toggle .btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm);margin-left:0}.role-toggle .btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.role-toggle .btn.is-active{z-index:1;position:relative}.share-people{margin:14px 0 0;padding:0;list-style:none}.share-people li{border-top:1px solid var(--line-soft);align-items:center;gap:10px;padding:10px 0;display:flex}.share-people .who{flex-direction:column;flex:1;min-width:0;display:flex}.share-people .who b{text-overflow:ellipsis;white-space:nowrap;font-weight:560;overflow:hidden}.share-people .who em{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-style:normal;overflow:hidden}.share-people .role-fixed{color:var(--dim);font-size:12px}.share-people .you{color:var(--faint);font-size:11px}.account-admin{margin-top:18px}.comp-grant{flex-direction:column;gap:8px;margin:4px 0;display:flex}.comp-grant input{border-color:var(--line-strong);height:32px;box-shadow:none;padding:0 10px;font-size:13px}.comp-grant input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}.comp-when{align-items:center;gap:8px;display:flex}.comp-when input[type=date]{flex:1;min-width:0}.comp-when>.btn-primary{margin-left:auto}.share-people .who em.comp-warn{color:var(--danger);white-space:normal}.pitem .tag{color:var(--accent);background:var(--accent-soft);white-space:nowrap;border-radius:999px;flex:none;padding:2px 9px;font-size:11px;font-weight:560}.delete-modal{width:460px}.delete-warning{margin:6px 0 8px;font-size:13px;font-weight:560}.delete-list{color:var(--dim);margin:0 0 16px;padding-left:18px;font-size:13px;line-height:1.7}.delete-list strong{color:var(--danger);font-weight:560}.delete-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.modal .auth-field input{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel);height:34px;box-shadow:none;padding:0 10px;font-size:13px}.modal .auth-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}.account-foot{border-top:1px solid #1a191714;justify-content:space-between;align-items:center;gap:16px;margin-top:22px;padding-top:16px;display:flex}.account-foot span{color:var(--faint);font-size:12px}.account-foot .btn{color:var(--danger)}.account-foot .btn:hover:not(:disabled){background:var(--crit-soft);color:var(--danger)}
