:root{--bg:#f7f7f5;--fg:#1a1a1a;--muted:#6b6b6b;--card:#fff;--line:#e3e3df;--good:#1a7f37;--bad:#b42318;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#131315;--fg:#ececea;--muted:#9a9a96;--card:#1c1c1f;--line:#2c2c30;--good:#3fb950;--bad:#f0665c}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);margin:0}body{font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.shell{max-width:640px;margin:4rem auto;padding:0 1.25rem}h1{margin:0 0 .25rem;font-size:1.5rem}h2{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 .75rem;font-size:1rem}.muted{color:var(--muted)}p.muted{margin:0 0 2rem}.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:1.25rem}dl{grid-template-columns:max-content 1fr;gap:.35rem 1.25rem;margin:0;display:grid}dt{color:var(--muted)}dd{font-variant-numeric:tabular-nums;margin:0}.good{color:var(--good);font-weight:600}.bad{color:var(--bad)}.shell.narrow{max-width:420px}.center{text-align:center;margin-top:4rem}.small{font-size:.85rem}.hint{color:var(--muted);margin-top:.2rem;font-size:.8rem;display:block}.stack{flex-direction:column;gap:1rem;display:flex}.stack>.card,.card+.card{margin-top:1rem}.row{flex-wrap:wrap;gap:.5rem;display:flex}.row>input{flex:1;min-width:12rem}label{flex-direction:column;gap:.3rem;font-weight:500;display:flex}label.inline{flex-direction:row;align-items:center;gap:.5rem;font-weight:400}input,select{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:6px;min-width:0;padding:.5rem .6rem}input:focus,select:focus{outline-offset:1px;outline:2px solid #4c8bf5}.button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--fg);text-align:center;border-radius:6px;padding:.55rem 1rem;font-weight:600;text-decoration:none;display:inline-block}.button.primary{color:#fff;background:#1a1a1a;border-color:#1a1a1a}@media (prefers-color-scheme:dark){.button.primary{color:#131315;background:#ececea;border-color:#ececea}}.button.block{display:block}.button:disabled{opacity:.6;cursor:default}button.link{color:#2f6fdd;cursor:pointer;font:inherit;background:0 0;border:0;padding:0}button.link.danger{color:var(--bad)}.divider{text-align:center;color:var(--muted);font-size:.85rem;position:relative}.divider:before,.divider:after{content:"";border-top:1px solid var(--line);width:32%;position:absolute;top:50%}.divider:before{left:0}.divider:after{right:0}.layout .shell{max-width:960px;margin-top:2rem}.topbar{border-bottom:1px solid var(--line);background:var(--card);align-items:center;gap:1.25rem;padding:.6rem 1.25rem;display:flex}.topbar a{color:var(--fg);text-decoration:none}.topbar a.active{font-weight:600}.topbar .brand{letter-spacing:.02em;font-weight:700}.topbar .spacer{flex:1}.topbar .who{align-items:center;gap:.5rem;display:inline-flex}.avatar{border-radius:50%;width:24px;height:24px}.table{border-collapse:collapse;width:100%}.table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.table th,.table td{border-bottom:1px solid var(--line);vertical-align:top;padding:.5rem .4rem}.tag{background:var(--line);border-radius:999px;margin-left:.5rem;padding:.1rem .4rem;font-size:.7rem;display:inline-block}.notice{border:1px solid var(--line);border-left:3px solid var(--good);border-radius:6px;padding:.75rem 1rem}code.wrap{word-break:break-all;background:var(--bg);border-radius:4px;padding:.5rem;font-size:.85rem;display:block}.row.between{justify-content:space-between;align-items:flex-start}.crumbs{color:var(--muted);margin:0 0 .5rem;font-size:.85rem}.crumbs a{color:inherit}textarea{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--fg);resize:vertical;border-radius:6px;padding:.5rem .6rem}fieldset.tzbox{border:1px solid var(--line);border-radius:8px;padding:.75rem 1rem 1rem}fieldset.tzbox legend{padding:0 .4rem;font-weight:600}.button.danger{color:var(--bad);border-color:var(--bad)}ul.plain{margin:0;padding-left:1.1rem}input:disabled{opacity:.7}.mono{font-variant-numeric:tabular-nums}.card.day{padding:.75rem 1rem}.card.day h2{font-size:.95rem}.entryform{border-left:3px solid #4c8bf5}p.notice{margin:.5rem 0}.table.tasks td{vertical-align:middle}.table.tasks tr.selected td{background:#4c8bf51a}.table.tasks tr.done .title{color:var(--muted);text-decoration:line-through}.table .num{text-align:right}.caret{width:1.1rem;color:var(--muted);display:inline-block}button.link.title{color:var(--fg);text-align:left}.tag.prio-urgent{background:var(--bad);color:#fff}.tag.prio-high{color:#fff;background:#d97706}.tag.prio-low{opacity:.7}select.status-done{color:var(--good)}.card.editor{border-left:3px solid #4c8bf5}.grid4{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}@media (width<=720px){.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}.titleinput{width:100%;font-size:1.15rem;font-weight:600}details summary{cursor:pointer;color:var(--muted)}.stats{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:1rem;display:grid}.stat .n{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:700}.stat .l{font-size:.85rem}.stat .s{font-size:.75rem}.tabs{gap:1.25rem;margin:1rem 0 .5rem}.tabs button.link{color:var(--muted);padding-bottom:.2rem;font-weight:600}.tabs button.link.active{color:var(--fg);border-bottom:2px solid var(--fg)}.table.diff td,.table.diff th{padding:.25rem .4rem}.banner{color:#5c4400;background:#fff3cd;border-bottom:1px solid #f0d98a;padding:.5rem 1.25rem;font-size:.9rem}@media (prefers-color-scheme:dark){.banner{color:#ffe08a;background:#3a2f00;border-color:#5c4a00}}.notice.bad-border{border-left-color:var(--bad)}pre.codes{letter-spacing:.05em;background:var(--bg);border-radius:4px;padding:.5rem .75rem;font-size:1rem}canvas{background:#fff;border-radius:4px}.boardpage{max-width:none}.layout .shell:has(.boardpage){max-width:none}.toolbar{align-items:center;margin-bottom:.5rem}.toolbar input,.toolbar select{padding:.35rem .5rem}.tabs a{color:var(--muted);padding-bottom:.2rem;font-weight:600;text-decoration:none}.tabs a.active{color:var(--fg);border-bottom:2px solid var(--fg)}.board{align-items:start;gap:.5rem;padding-bottom:1rem;display:grid;overflow-x:auto}.colhead{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--line);z-index:1;border-radius:6px;padding:.4rem .6rem;position:sticky;top:0}.colhead.cat-in_progress{border-top-color:#4c8bf5}.colhead.cat-done{border-top-color:var(--good)}.colhead.over{background:color-mix(in srgb, var(--bad) 10%, var(--card))}.lanehead{color:var(--muted);border-bottom:1px solid var(--line);padding:.5rem .25rem 0;font-size:.85rem;font-weight:600}.cell{background:color-mix(in srgb, var(--line) 35%, transparent);border-radius:6px;flex-direction:column;gap:.35rem;min-height:4rem;padding:.35rem;display:flex}.cell.over{outline:2px dashed #4c8bf5}.cardwrap{touch-action:none}.cardwrap:focus-visible{border-radius:6px;outline:2px solid #4c8bf5}.kcard{background:var(--card);border:1px solid var(--line);cursor:grab;border-radius:6px;flex-direction:column;gap:.25rem;padding:.45rem .55rem;display:flex}.kcard.overlay{cursor:grabbing;box-shadow:0 6px 18px #0003}.ktitle{font-size:.92rem;line-height:1.3}.ktitle a{color:var(--fg);text-decoration:none}.ktitle a:hover{text-decoration:underline}.avatar-initials{background:var(--line);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:.7rem;font-weight:600;display:inline-flex}kbd{font:inherit;border:1px solid var(--line);background:var(--card);border-radius:3px;padding:0 .3em;font-size:.8em}.gantt{border:1px solid var(--line);background:var(--card);border-radius:8px;display:grid;overflow:hidden}.gleft{border-right:1px solid var(--line);overflow:hidden}.ghead{text-transform:uppercase;letter-spacing:.04em;height:44px;color:var(--muted);border-bottom:1px solid var(--line);align-items:flex-end;padding:0 .5rem .4rem;font-size:.8rem;display:flex}.grow{border-bottom:1px solid var(--line);white-space:nowrap;align-items:center;gap:.4rem;font-size:.9rem;display:flex;overflow:hidden}.grow a{color:var(--fg);text-overflow:ellipsis;text-decoration:none;overflow:hidden}.grow.done a{color:var(--muted);text-decoration:line-through}.grow .gdates{font-variant-numeric:tabular-nums;margin-left:auto;padding-right:.5rem}.gwe{fill:color-mix(in srgb, var(--line) 40%, transparent)}.gmajor{stroke:var(--line);stroke-width:1.5px}.gminor{stroke:color-mix(in srgb, var(--line) 60%, transparent)}.gtick{fill:var(--muted);font-size:10px}.gtick.major{fill:var(--fg);font-size:11px;font-weight:600}.growbg{fill:#0000}.growbg:hover{fill:#4c8bf50f}.gtoday{stroke:var(--bad);stroke-dasharray:3 3}.gbar rect{fill:#9ec1ff;stroke:#4c8bf5;cursor:grab}.gbar.cat-done rect{fill:#b7e4c0;stroke:var(--good)}.gbar.late rect{stroke:var(--bad)}.gbar .gprog{fill:#4c8bf5;stroke:none;opacity:.5}.gbar.cat-done .gprog{fill:var(--good)}.gbar.summary rect{fill:var(--fg);stroke:none;cursor:default;opacity:.8}.gsumcap{fill:var(--fg);opacity:.8}.ghandle{cursor:ew-resize;fill:#0000!important;stroke:none!important}.gbar.linkable rect{cursor:crosshair}.gbarlabel{fill:var(--fg);font-size:11px}.gdep path{stroke:#d97706;stroke-width:1.5px;cursor:pointer}.gdep polygon{fill:#d97706}.gdep:hover path{stroke-width:2.5px}.gms polygon{fill:#d97706}.gms.done polygon{fill:var(--good)}.gms line{stroke:#d97706;stroke-dasharray:2 4;opacity:.5}.stats{margin:1rem 0}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem;display:grid}@media (width<=800px){.grid2{grid-template-columns:1fr}}.grid2>.card{margin-top:0}.chart svg{display:block}.chart .bar{fill:#4c8bf5}.chart .axis{stroke:var(--line)}.chart .tick{fill:var(--muted);font-size:9px}.chart .tip{fill:var(--card);stroke:var(--line)}.chart .tiptext{fill:var(--fg);font-size:10px}figure.chart{margin:.5rem 0 0}.progress{background:color-mix(in srgb, var(--line) 60%, transparent);border-radius:4px;height:1.1rem;position:relative;overflow:hidden}.progress .bar{opacity:.35;background:#4c8bf5;position:absolute;inset:0 auto 0 0}.progress span{line-height:1.1rem;position:absolute;top:0;left:.4rem}.searchbox input{width:16rem;padding:.3rem .5rem}.viewsbar{align-items:center;gap:.5rem}.calendar{background:var(--line);border:1px solid var(--line);border-radius:8px;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid;overflow:hidden}.calhead{background:var(--card);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:.3rem .5rem;font-size:.75rem}.calcell{background:var(--card);min-height:6.5rem;padding:.25rem .35rem;font-size:.8rem}.calcell.out{opacity:.5}.calcell.today .calday{color:#fff;background:#4c8bf5;border-radius:999px}.calday{text-align:center;min-width:1.4rem;margin-bottom:.2rem;font-weight:600;display:inline-block}.calitem{white-space:nowrap;text-overflow:ellipsis;background:#4c8bf526;border-radius:3px;margin-bottom:1px;padding:0 .25rem;overflow:hidden}.calitem a{color:var(--fg);text-decoration:none}.calitem.start{color:var(--muted);background:0 0}.calitem.ms{background:#d9770633}.calitem.done{opacity:.5;text-decoration:line-through}tr.done td a{color:var(--muted)}.timerwidget{position:relative}.timerbtn{color:var(--fg);align-items:center;gap:.35rem;display:inline-flex}.timerbtn .dot{background:var(--bad);border-radius:50%;width:8px;height:8px;animation:1.5s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.timerpop{background:var(--card);border:1px solid var(--line);z-index:10;border-radius:8px;flex-direction:column;gap:.5rem;width:22rem;padding:.75rem 1rem;display:flex;position:absolute;top:2rem;right:0;box-shadow:0 8px 24px #00000026}.timerpop p{margin:0}.chip{background:var(--line);border-radius:999px;padding:.1rem .5rem;font-size:.75rem;display:inline-block}.chip.st-submitted{color:#5c4400;background:#fff3cd}.chip.st-approved{color:#0f5a26;background:#d1f0d8}.chip.st-rejected{color:#7a1a12;background:#fde2e0}@media (prefers-color-scheme:dark){.chip.st-submitted{color:#ffe08a;background:#3a2f00}.chip.st-approved{color:#9ae6b4;background:#0f3a1c}.chip.st-rejected{color:#f5a29b;background:#4a1410}}.bell{font-size:1rem;position:relative}.badge{background:var(--bad);color:#fff;border-radius:999px;padding:0 .35rem;font-size:.65rem;position:absolute;top:-6px;right:-8px}.notif{border-top:1px solid var(--line);cursor:default;padding:.4rem 0}.notif.unread{font-weight:600}.notif a{color:var(--fg)}.progress .bar.warn{background:#d97706}.progress .bar.over{background:var(--bad)}.raterow{border-bottom:1px solid var(--line);padding:.35rem 0}.gbar.critical rect{stroke:var(--bad);stroke-width:2px}.gbaseline{fill:#999;opacity:.7}.legend{color:var(--muted);gap:1rem}.swatch{vertical-align:-1px;border-radius:2px;width:10px;height:10px;display:inline-block}.chart .grid{stroke:var(--line)}.chart .crosshair{stroke:var(--muted);stroke-dasharray:2 2}.palette-backdrop{z-index:50;background:#00000059;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.palette{background:var(--card);border:1px solid var(--line);border-radius:10px;width:min(40rem,92vw);overflow:hidden;box-shadow:0 16px 48px #0000004d}.palette input{border:0;border-bottom:1px solid var(--line);background:var(--card);border-radius:0;width:100%;padding:.8rem 1rem;font-size:1rem}.palette ul{max-height:50vh;margin:0;padding:.25rem 0;list-style:none;overflow-y:auto}.palette li button{text-align:left;width:100%;font:inherit;color:var(--fg);cursor:pointer;background:0 0;border:0;padding:.45rem 1rem;display:block}.palette li button.active{background:#4c8bf51f}.pgroup{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:.4rem 1rem 0;font-size:.7rem}.phint{border-top:1px solid var(--line);padding:.35rem 1rem}button.link{border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:5px;padding:.2rem .55rem;font-size:.85rem;line-height:1.4}button.link:hover{border-color:#4c8bf5}button.link.danger{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 50%, var(--line))}button.link.plain{color:#2f6fdd;background:0 0;border:0;padding:0}button.link.small{padding:.1rem .4rem;font-size:.78rem}.button.sm{padding:.25rem .6rem;font-size:.85rem}.button.cmdk{margin-right:.5rem;padding:.25rem .6rem;font-size:.8rem}.tabs button.link{background:0 0;border:0;border-radius:0;padding:0 0 .2rem}.tabs button.link.active{border-bottom:2px solid var(--fg)}.topbar .who{margin-left:.25rem}.table td,.table th{overflow-wrap:anywhere}.card{overflow:visible}.tooltip{background:var(--fg);color:var(--bg);z-index:100;pointer-events:none;border-radius:6px;max-width:20rem;padding:.35rem .6rem;font-size:.78rem;line-height:1.35;position:fixed;transform:translate(-50%,-100%);box-shadow:0 4px 14px #00000040}.tooltip.below{transform:translate(-50%)}.menu{display:inline-block;position:relative}.menubtn{color:var(--fg);font:inherit}.menubtn.active{font-weight:600}.menupop{background:var(--card);border:1px solid var(--line);z-index:20;border-radius:8px;flex-direction:column;min-width:12rem;padding:.3rem;display:flex;position:absolute;top:100%;left:0;box-shadow:0 8px 24px #00000026}.menupop a,.menuitem{text-align:left;color:var(--fg);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:5px;padding:.4rem .6rem;text-decoration:none;display:block}.menupop a:hover,.menuitem:hover,.menupop a.active{background:#4c8bf51f}.menuitem.danger{color:var(--bad)}.danger-zone{border-color:color-mix(in srgb, var(--bad) 40%, var(--line))}.colactions button{padding:0 .2rem;font-size:.9rem}.colhead.overlay{box-shadow:0 6px 18px #0003}.quickadd{background:var(--card);border:1px dashed var(--line);border-radius:6px;padding:.4rem .5rem}.carddel{opacity:.6;margin-left:.3rem;padding:0 .25rem}.kcard:hover .carddel{opacity:1}tr.running td{background:color-mix(in srgb, var(--good) 8%, transparent)}tr.running .dot{background:var(--bad);border-radius:50%;width:8px;height:8px;margin-right:.3rem;animation:1.5s infinite pulse;display:inline-block}.gright{overflow-x:scroll}.grow.draggable{cursor:grab;-webkit-user-select:none;user-select:none}.grow.dragging{background:color-mix(in srgb, #4c8bf5 12%, var(--card));z-index:2;position:relative;box-shadow:0 4px 12px #00000026}.grip{color:var(--muted);letter-spacing:-2px;margin-right:.2rem;font-size:.8rem}.rowdel{opacity:0;margin-left:.3rem;padding:0 .2rem}.grow:hover .rowdel{opacity:1}.caladd{gap:.2rem;display:none}.calcell:hover .caladd{display:inline-flex}.caladd button{padding:0 .2rem;font-size:.7rem}.calitem.ext{background:#d9770633}.calx{float:right;opacity:0;padding:0 .2rem}.calitem:hover .calx{opacity:1}h3.small{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:.25rem 0 0;font-size:.8rem}.kcard.collapsed{gap:0;padding:.3rem .45rem}.ktitlebar{align-items:center;gap:.35rem;min-width:0;display:flex}.ktitlebar .ktitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.kcard.expanded .ktitlebar .ktitle{white-space:normal}.disclosure{color:var(--muted);cursor:pointer;background:0 0;border:0;width:1.1rem;padding:0 .1rem;font-size:.85rem}.cardbtns{gap:.2rem;margin-left:auto;display:inline-flex}.cardbtns .button.sm{padding:0 .35rem;font-size:.8rem;line-height:1.4}.kbody{border-top:1px dashed var(--line);flex-direction:column;gap:.3rem;margin-top:.3rem;padding-top:.3rem;display:flex}.kdesc{white-space:pre-wrap;color:var(--fg)}.kmeta{padding-left:1.45rem}.checkitem{gap:.4rem}.checkitem.done span{color:var(--muted);text-decoration:line-through}.comment{border-left:2px solid var(--line);padding:.2rem .5rem}.comment.system{color:var(--muted);font-style:italic}svg.lucide{vertical-align:-.15em;display:inline-block}.section{padding:0}.sechead{align-items:center;gap:.5rem;padding:.6rem .9rem;display:flex}.section.open .sechead{border-bottom:1px solid var(--line)}.sectitle{cursor:pointer;margin:0;font-size:.9rem}.secsub{text-transform:none;letter-spacing:0}.sectoggle{padding:0}.secbody{padding:.9rem}.crumbbar{color:var(--muted);border-bottom:1px solid var(--line);background:var(--bg);align-items:center;gap:.35rem;padding:.35rem 1.25rem;font-size:.8rem;display:flex}.crumb{align-items:center;gap:.35rem;display:inline-flex}.crumbbar a{color:var(--fg);text-decoration:none}.crumbbar a:hover{text-decoration:underline}.topbar .menubtn{color:var(--fg);font:inherit;background:0 0;border:0;padding:0}.topbar .menubtn.active{font-weight:600}.timerspop{gap:.35rem;min-width:22rem;padding:.5rem;left:auto;right:0}.timerrow{border-radius:6px;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .4rem;display:flex}.timerrow.running{background:color-mix(in srgb, var(--good) 8%, transparent)}.idlebox{border:1px solid var(--line);border-radius:6px;padding:.5rem}.tooltip{white-space:normal;min-width:8rem;max-width:22rem}.timersmenu .dot{background:var(--bad);border-radius:50%;width:8px;height:8px;animation:1.5s infinite pulse;display:inline-block}ul.help{margin:0;padding-left:1.1rem}ul.help li{margin:.1rem 0}.newtimer{border-top:1px dashed var(--line);align-items:center;margin-top:.5rem;padding-top:.6rem}.ksubs{padding-left:.25rem}.ksubs li.done{color:var(--muted);text-decoration:line-through}.ksubs a{color:var(--fg);text-decoration:none}.calendar{height:var(--calh,60vh);grid-auto-rows:minmax(0,1fr);max-width:100%;min-height:0}.calcell{flex-direction:column;min-height:0;display:flex;overflow:hidden}.calcell .calitem{white-space:normal;flex:none;line-height:1.2;overflow:hidden}.calcell .calitem.calmore{color:var(--muted);background:0 0}.stats a,.statlink{color:inherit;text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none}.stats a:hover .n,.statlink:hover .n{text-decoration:underline}.stickytop{z-index:30;position:sticky;top:0}.sechead .spacer{flex:1}.sechead .sectop{margin-left:auto}.tabs{top:var(--stickyh,0px);z-index:20;background:var(--bg);margin-top:0;padding-top:.75rem;position:sticky}.table td button.link{white-space:nowrap}.gbar.ghost rect{fill:#0000;stroke:var(--muted);stroke-dasharray:4 3;cursor:pointer}.gbar.ghost text{fill:var(--muted);font-size:11px}.section,#task-editor{scroll-margin-top:calc(var(--stickyh,0px) + 3.5rem)}.button,.button.sm,.table td button,.table td .button{white-space:nowrap}:is(.table td:has(>.button.sm),.table td:has(>.rowmenu)){width:1%}
