:root{--canvas:#fbfbf9;--page:#f4f5f2;--surface:#fff;--border:#dadde2;--line:#eaecf0;--line2:#f2f4f7;--text:#14171c;--text2:#344054;--sec:#475467;--muted:#667085;--faint:#98a2b3;--primary:#2f5bd3;--primary-dark:#1e3f9e;--tint:#e8eefc;--tint2:#f3f6fe;--late:#b42318;--crit:#d92d20;--late-bg:#fff8f7;--late-bd:#f1a5a5;--risk:#b54708;--amber:#fffaf0;--done:#15803d;--done-bar:#c9ced6;--slack:#5b7fe0;--dep:#c4620a;--dep-tint:#fff4e5;--dep-text:#93370d;--lnk:#7c3aed;--lnk-tint:#f5f0ff;--lnk-text:#53389e;--hit:#fff3b8;--sub-tint:#f1ebfd;--ui:"Schibsted Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html,body{height:100%}body{background:var(--page);color:var(--text);font-family:var(--ui);font-size:13px}#root{height:100%}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.55}input,select,textarea{font:inherit;color:var(--text)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.sm{font-size:12px}.xs{font-size:11px}.b{font-weight:600}.late{color:var(--late);font-weight:600}.done{text-decoration:line-through;color:var(--faint)!important}.sr{position:absolute;left:-9999px}.kick{letter-spacing:.08em;color:var(--muted);font-size:11px;font-weight:700}.row{align-items:center;gap:8px;display:flex}.row.end{justify-content:flex-end}.app{flex-direction:column;height:100%;min-height:0;display:flex}.top{box-sizing:border-box;min-height:52px;padding-top:max(6px, env(safe-area-inset-top,0px));padding-bottom:6px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));background:var(--surface);border-bottom:1px solid var(--border);z-index:30;flex-wrap:wrap;align-items:center;gap:10px;display:flex;position:relative}.tright{align-items:center;gap:inherit;flex:none;margin-left:auto;display:flex}.menu.acctmenu{box-sizing:border-box;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;position:fixed;right:auto;overflow-y:auto}.menuscrim{z-index:45;position:fixed;inset:0}.brand{color:var(--text);white-space:nowrap;align-items:center;gap:9px;font-size:15px;font-weight:700;display:flex}.brand svg{color:var(--primary)}.crumb{color:var(--muted);white-space:nowrap;font-weight:500}.tabs,.seg{background:var(--line2);border-radius:9px;gap:2px;padding:3px;display:flex}.tabs button,.seg button{height:30px;color:var(--sec);white-space:nowrap;background:0 0;border:0;border-radius:7px;padding:0 12px}.tabs button.on,.seg button.on{background:var(--surface);color:var(--text);font-weight:700;box-shadow:0 1px 2px #14171c26}.seg button.att{color:var(--late)}.search{color:var(--muted);align-items:center;display:flex;position:relative}.search svg{pointer-events:none;position:absolute;left:10px}.search input{box-sizing:border-box;border:1px solid var(--border);background:#f9fafb;border-radius:8px;width:200px;height:32px;padding:0 44px 0 30px}.search input:focus{background:var(--surface);border-color:var(--primary);width:250px}.search .cnt{font-size:11px;position:absolute;right:10px}.results{background:var(--surface);border:1px solid var(--border);z-index:40;border-radius:10px;flex-direction:column;width:340px;max-width:86vw;max-height:340px;padding:6px;display:flex;position:absolute;top:40px;left:0;overflow:auto;box-shadow:0 16px 40px #14171c29}.results button{text-align:left;background:0 0;border:0;border-radius:7px;flex-direction:column;align-items:flex-start;gap:2px;padding:7px 9px;display:flex}.results button.on,.results button:hover{background:var(--tint2)}.results button span{color:var(--text);gap:6px;display:flex}.results b{color:var(--sec);font-size:11px}.results small{color:var(--muted);font-size:11px}.results em,.ac em{color:var(--faint);padding:6px 9px 2px;font-size:11px;font-style:normal}.pad{padding:8px 10px}.spacer{flex:1}.toast{color:var(--primary-dark);flex:60px;justify-content:flex-end;align-items:center;gap:8px;min-width:0;font-weight:500;display:flex;overflow:hidden}.toast>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.toast.pick{color:var(--dep-text);background:var(--dep-tint);border-radius:8px;padding:4px 6px 4px 12px}.toast.error{color:var(--late)}.btn{border:1px solid var(--border);background:var(--surface);white-space:nowrap;border-radius:7px;align-items:center;gap:6px;height:30px;padding:0 10px;display:inline-flex}.btn.pri{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.btn.dark{background:var(--text);border-color:var(--text);color:#fff}.btn.sm{height:30px;font-size:12px;font-weight:600}.btn.xs{height:26px;padding:0 8px;font-size:11px;font-weight:600}.btn.dep{color:var(--dep-text);background:#fff8f0;border-color:#f3c99a}.btn.lnk{color:var(--lnk-text);background:#f7f3fe;border-color:#d9ccf7}.zoom{border:1px solid var(--border);border-radius:7px;align-items:center;display:flex}.zoom button{background:0 0;border:0;width:28px;height:28px;font-size:16px}.zoom span{text-align:center;min-width:38px;color:var(--sec);font-size:12px}.acct{position:relative}.me{background:var(--primary);color:#fff;border:0;border-radius:50%;width:32px;height:32px;font-size:12px;font-weight:700}.menu{background:var(--surface);border:1px solid var(--border);z-index:50;border-radius:12px;flex-direction:column;gap:4px;width:280px;padding:10px;display:flex;position:absolute;top:40px;right:0;box-shadow:0 16px 40px #14171c29}.menu button{text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:7px 8px;display:flex}.menu button.on,.menu button:hover{background:var(--tint2)}.menu button small{color:var(--muted);font-size:11px;display:block}.menu hr{border:0;border-top:1px solid var(--line);width:100%;margin:4px 0}.menu p{margin:2px 8px;line-height:16px}.av{background:var(--primary);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:11px;font-weight:700;display:inline-flex}.av.sm{background:var(--tint);width:24px;height:24px;color:var(--primary-dark);font-size:10px}.focusbar{padding-block:8px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));background:var(--tint2);color:var(--primary-dark);border-bottom:1px solid #c9d5f5;flex-wrap:wrap;align-items:center;gap:10px;display:flex}.focusbar b{letter-spacing:.08em;font-size:11px}.focusbar span{color:var(--sec)}.focusbar .btn{color:var(--primary-dark);margin-left:auto}.rolebar{padding-block:7px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));color:#93370d;background:#fffaeb;border-bottom:1px solid #fedf89;font-size:12px}.workspace{flex-wrap:wrap;flex:1;min-height:0;display:flex}.canvas{-webkit-user-select:none;user-select:none}.canvas input,.canvas textarea{-webkit-user-select:text;user-select:text}.canvas{background-color:var(--canvas);cursor:grab;background-image:radial-gradient(#e1e3e7 1px,#0000 1px);background-size:20px 20px;outline:none;flex:999 560px;min-width:0;height:100%;min-height:420px;position:relative;overflow:auto}.canvas:active{cursor:grabbing}.canvas.picking{cursor:crosshair;box-shadow:inset 0 0 0 3px #f3c99a}.canvas:focus-visible{outline:none;box-shadow:inset 0 0 0 2px #2f5bd340}.host{transform-origin:0 0;color:#1d2026;font-size:14px;position:absolute;top:0;left:0}.edges{pointer-events:none;position:absolute;inset:0;overflow:visible}.edges path{fill:none;stroke-width:2.2px;stroke-linecap:round}.root{box-sizing:border-box;background:var(--surface);width:200px;height:54px;color:var(--text);white-space:nowrap;border:2px solid #2f86b5;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:19px;font-weight:600;display:flex;position:absolute;overflow:hidden}.root.sel{border-color:var(--primary);box-shadow:0 0 0 4px #2f5bd326}.root.drop{border-color:var(--done)}.root.editing{padding:0}.root.editing input{text-align:center;border:0;outline:none;width:196px;height:50px;font-size:19px;font-weight:600}.node{box-sizing:border-box;border-bottom:2px solid;flex-direction:column;justify-content:flex-end;gap:1px;width:176px;height:40px;padding:0 5px 3px;transition:left .15s,top .15s,opacity .15s;display:flex;position:absolute}@media (prefers-reduced-motion:reduce){.node{transition:none}}.node.r{align-items:flex-start}.node.l{align-items:flex-end}.node .row{gap:5px;min-width:0;max-width:100%}.node.l .row,.node.l .title{flex-direction:row-reverse}.node.notasks{outline-offset:-2px;background:#fef0c7;border-radius:6px 6px 0 0;outline:2px dashed #dc8a1e}.node.sel{background:var(--tint);box-shadow:inset 0 0 0 1.5px var(--primary);border-radius:6px 6px 0 0}.node.waits{background:var(--dep-tint);box-shadow:inset 0 0 0 2px var(--dep);border-radius:6px 6px 0 0}.node.blocks{outline:2px dashed var(--dep);outline-offset:-2px;background:#fffaf3;border-radius:6px 6px 0 0}.node.link{background:var(--lnk-tint);box-shadow:inset 0 0 0 2px var(--lnk);border-radius:6px 6px 0 0}.node.drop{box-shadow:inset 0 0 0 2px var(--done);background:#e7f6ec;border-radius:6px 6px 0 0}.node.hit{background:var(--hit);border-radius:6px 6px 0 0}.node.att{background:var(--late-bg);border-radius:6px 6px 0 0}.node.dim1{opacity:.6}.node.dim2{opacity:.22}.node.ctx .title{color:var(--muted);font-style:italic}.title{color:#1d2026;background:0 0;border:0;align-items:center;gap:5px;min-width:0;max-width:100%;padding:0;font-size:14px;display:flex}.title .tx{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.title.t-project{font-size:15px;font-weight:600}.title.t-subproject,.title.lvl1{font-weight:600}.chip{font-family:var(--mono);background:var(--line2);color:var(--sec);border-radius:3px;flex:none;padding:1px 4px;font-size:10px;font-weight:600}.chip.p{background:var(--tint);color:var(--primary-dark)}.chip.s{background:var(--sub-tint);color:var(--lnk-text)}.chip.big{border-radius:4px;padding:2px 6px;font-size:12px}.lock{color:var(--sec);flex:none}.meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11px;overflow:hidden}.node .meta{align-items:center;display:flex}.node .meta .mtx{text-overflow:ellipsis;min-width:0;overflow:hidden}.node .meta .donechip{flex-shrink:0}.meta b{font-weight:600}.meta .late{color:var(--late)}.meta .risk{color:var(--risk)}.meta .prog{color:var(--primary-dark)}.meta .empty{color:var(--risk)}.check{box-sizing:border-box;border:1.5px solid var(--muted);background:var(--surface);color:#fff;border-radius:3px;flex:none;justify-content:center;align-items:center;width:15px;height:15px;padding:0;font-size:10px;line-height:10px;display:inline-flex}.check.on{background:var(--done);border-color:var(--done)}.ed{box-sizing:border-box;border:1.5px solid var(--primary);background:var(--surface);border-radius:4px;outline:none;width:160px;height:24px;padding:0 6px;font-size:14px}.fold{box-sizing:border-box;background:var(--surface);z-index:2;border:1.5px solid;border-radius:9px;width:22px;height:18px;padding:0;font-size:10px;font-weight:700;line-height:1;position:absolute}.dot{z-index:3;border:0;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;padding:0;font-size:16px;font-weight:700;line-height:1;display:flex;position:absolute;box-shadow:0 2px 6px #14171c2e}.dot.add{background:var(--primary);color:#fff}.dot.sib{background:var(--surface);color:var(--primary);border:1.5px solid var(--primary)}.dot.del{background:var(--surface);color:var(--late);border:1.5px solid var(--late-bd)}.ac{background:var(--surface);border:1px solid var(--border);z-index:60;text-align:left;border-radius:10px;flex-direction:column;min-width:240px;padding:5px;font-size:13px;font-weight:400;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 12px 32px #14171c29}.ac.up{top:auto;bottom:calc(100% + 4px)}.ac button{text-align:left;white-space:nowrap;background:0 0;border:0;border-radius:6px;justify-content:space-between;gap:12px;padding:6px 8px;display:flex}.ac button.on{background:var(--tint2)}.ac small{color:var(--muted)}.panel{background:var(--surface);border-left:1px solid var(--border);flex-direction:column;flex:360px;min-width:0;max-width:100%;height:100%;display:flex;overflow:auto}.panel.wide{flex-basis:520px;box-shadow:-12px 0 30px #14171c0f}.ph{border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding:16px 22px 14px;display:flex}.phrow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ph h2{margin:0;font-size:18px}.ptitle{background:0 0;border:1px solid #0000;border-radius:6px;margin:0 -5px;padding:2px 4px;font-size:18px;font-weight:700}.panel.wide .ptitle{font-size:24px}.ptitle:hover:not(:disabled),.ptitle:focus{border-color:var(--border);background:var(--surface)}.vis{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.badge{background:var(--line2);height:22px;color:var(--text2);border-radius:99px;align-items:center;gap:4px;padding:0 9px;font-size:12px;font-weight:600;display:inline-flex}.badge.dark{background:var(--text);color:#fff}.sec{border-bottom:1px solid var(--line);flex-direction:column;gap:7px;padding:12px 22px;display:flex}.sec .kick.row small{letter-spacing:0;color:var(--muted);margin-left:auto;font-weight:400}.sec .kick.row .btn{letter-spacing:0;margin-left:auto}.sw{border-radius:2px;width:10px;height:10px;display:inline-block}.sw.waits{background:var(--dep-tint);box-shadow:inset 0 0 0 2px var(--dep)}.sw.link{background:var(--lnk-tint);box-shadow:inset 0 0 0 2px var(--lnk)}.kpis{grid-template-columns:repeat(auto-fit,minmax(min(130px,100%),1fr));gap:10px;display:grid}.kpi{border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:5px;padding:10px 12px;display:flex}.kpi span{color:var(--muted);font-size:11px}.kpi b{font-size:22px;font-family:var(--mono);font-variant-numeric:tabular-nums}.kpi small{color:var(--muted);font-size:11px}.kpi.bad{border-color:var(--late-bd);background:var(--late-bg)}.kpi small.late{color:var(--late)}.bar{background:var(--line);border-radius:3px;height:5px;display:block}.bar i{background:var(--primary);border-radius:3px;height:5px;display:block}.pills{flex-flow:wrap;gap:4px}.pill{border:1px solid var(--border);background:var(--surface);height:30px;color:var(--text2);border-radius:99px;padding:0 11px;font-size:12px}.pill.on{border-color:var(--text);background:var(--text);color:#fff;font-weight:600}.grid4{grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr));gap:10px;display:grid}.grid4 label{color:var(--muted);flex-direction:column;gap:4px;font-size:11px;display:flex}.grid4 select,.grid4 input{box-sizing:border-box;border:1px solid var(--border);background:var(--surface);border-radius:8px;height:34px;padding:0 8px;font-size:13px}.ro{height:34px;color:var(--text);align-items:center;font-size:13px;font-weight:600;display:flex}.late.full{grid-column:1/-1;font-size:12px}textarea{border:1px solid var(--border);resize:vertical;border-radius:8px;padding:8px 10px;font-size:13px;line-height:19px}.outline{flex-direction:column;display:flex}.orow{border-bottom:1px solid var(--line2);align-items:center;gap:6px;min-height:28px;display:flex}.tog{width:16px;color:var(--muted);background:0 0;border:0;flex:none;padding:0;font-size:10px}.odot{background:var(--faint);border-radius:2px;flex:none;width:8px;height:8px}.odot.project,.odot.subproject{background:var(--lnk-text)}.ot{text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;flex:1;min-width:0;padding:0;overflow:hidden}.ot b{color:var(--muted);margin-right:6px;font-size:11px}.ot.b{font-weight:600}.orow small{color:var(--muted);flex:none;font-size:11px}.orow small.late{color:var(--late)}.quick{box-sizing:border-box;background:var(--canvas);border:1px dashed #b5bbc4;border-radius:8px;width:100%;height:36px;padding:0 12px;font-size:13px}.quick:focus{border-style:solid;border-color:var(--primary);background:var(--surface);outline:none}.rel{align-items:center;gap:6px;display:flex}.rel>button:first-child{text-align:left;background:0 0;border:0;padding:0;font-size:13px}.rel small{color:var(--muted);margin-left:auto;font-size:11px}.rel .x{width:22px;height:22px;color:var(--faint);background:0 0;border:0;font-size:15px}b.dep{color:var(--dep-text);font-size:11px}b.lnk{color:var(--lnk-text);font-size:11px}.scroll{flex:1;min-height:0;overflow:auto}.page{box-sizing:border-box;width:100%;max-width:1400px;padding-block:18px 40px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));outline:none;flex-direction:column;gap:16px;margin:0 auto;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px}.phead{flex-wrap:wrap;align-items:flex-start;gap:14px;display:flex}.ptitles{flex-direction:column;gap:4px;min-width:0;display:flex}.ptitles h1{text-wrap:balance;margin:0;font-size:28px;line-height:34px}.ptitles .sub{color:var(--sec)}.chips{flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.cchip{background:var(--surface);height:28px;color:var(--text2);border:1px dashed #b5bbc4;border-radius:99px;padding:0 10px;font-size:12px}.cchip.on{background:var(--primary-dark);color:#fff;border:0;font-weight:600}.cchip.on:disabled{opacity:1}.vsep{background:var(--border);width:1px;height:18px;margin:0 4px}.chk{color:var(--text2);align-items:center;gap:5px;display:flex}.kgrid{grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:12px;display:grid}.kgrid .kpi{padding:14px 16px}.kgrid .kpi b{font-size:26px}.kgrid .kpi span,.kgrid .kpi small{font-size:12px}.cpbanner{border-color:var(--late-bd);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;display:flex}.cpbanner .mono{font-size:12.5px}.cpbanner em{color:var(--dep-text);font-style:normal;font-weight:600}.gantt{overflow-x:auto}.gin{min-width:980px;position:relative}.grow{border-bottom:1px solid var(--line2);grid-template-columns:300px minmax(0,1fr);height:34px;display:grid}.ghd{border-bottom:1px solid var(--border);height:36px}.ghd .kick{align-items:center;padding:0 16px;display:flex}.gh{background:#f7f8f6;border-bottom:1px solid #eef0f2;height:30px}.glab{white-space:nowrap;text-align:left;background:0 0;border:0;align-items:center;gap:8px;min-width:0;padding:0 16px 0 28px;font-size:13px;display:flex;overflow:hidden}.gh .glab{color:var(--text2);padding-left:16px;font-size:12px;font-weight:700}.glab .tx{text-overflow:ellipsis;overflow:hidden}.glab small{color:var(--muted);margin-left:auto;font-size:11px;font-weight:400}.trk{position:relative}.tick{height:36px;color:var(--muted);white-space:nowrap;align-items:center;padding-left:5px;font-size:11px;display:flex;position:absolute;top:0}.gbody{position:relative}.glines{pointer-events:none;position:absolute;inset:0 0 0 300px}.vl{background:#eef0f2;width:1px;position:absolute;top:0;bottom:0}.today{background:var(--primary);width:2px;position:absolute;top:0;bottom:0}.gbar{border-radius:4px;height:14px;position:absolute;top:10px}.gbar.crit{background:var(--crit)}.gbar.slk{background:var(--slack)}.gbar.dn{background:var(--done-bar)}.gbar.est{opacity:.55}.due{background:var(--text);width:9px;height:9px;margin-left:-4px;position:absolute;top:12px;transform:rotate(45deg)}.due.missed{background:var(--late)}.cross{color:var(--dep-text);background:var(--dep-tint);white-space:nowrap;border:1px solid #f3c99a;border-radius:4px;padding:1px 5px;font-size:10px;font-weight:700;position:absolute;top:7px}.legend{border-top:1px solid var(--line);color:var(--sec);flex-wrap:wrap;gap:16px;padding:10px 16px;font-size:12px;display:flex}.legend span{align-items:center;gap:6px;display:flex}.lg{border-radius:3px;width:18px;height:8px;display:inline-block}.lg.crit{background:var(--crit)}.lg.slk{background:var(--slack)}.lg.dn{background:var(--done-bar)}.lg.est{opacity:.55}.dia{background:var(--text);width:8px;height:8px;display:inline-block;transform:rotate(45deg)}.tl{background:var(--primary);width:2px;height:12px;display:inline-block}.tscroll{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:1100px;font-size:13px}th{text-align:left;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--border);padding:10px 8px;font-size:11px;font-weight:700}th:first-child,td:first-child{padding-left:16px}td{white-space:nowrap;border-bottom:1px solid #f0f1f3;padding:6px 8px}tr.crit{background:var(--late-bg)}td select{border:1px solid var(--line);background:var(--surface);border-radius:6px;height:28px;font-size:12px}select.st-Done{color:var(--done)}select.st-Inprogress{color:var(--primary-dark)}select.st-Atrisk{color:var(--risk)}select.st-Late{color:var(--late)}.dur{box-sizing:border-box;border:1px solid var(--line);border-radius:6px;width:56px;height:28px;padding:0 6px;font-size:12px}.dur.est{background:var(--amber);border-color:#f5dfb3}.lnkbtn{text-align:left;font-weight:inherit;background:0 0;border:0;padding:0}.deps{align-items:center;gap:4px;display:flex}.depchip{background:var(--dep-tint);font-family:var(--mono);color:var(--dep-text);border-radius:4px;align-items:center;gap:2px;padding:1px 4px 1px 6px;font-size:11px;display:inline-flex}.depchip button{color:var(--dep-text);background:0 0;border:0;padding:0 2px}.depin{box-sizing:border-box;border:1px dashed #c9ced6;border-radius:6px;width:64px;height:26px;padding:0 6px;font-size:11px}.tfoot{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;display:flex}.mine{max-width:1040px}.mhead{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.mhead h1{margin:0 0 4px;font-size:26px}.ghead{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:14px 18px;display:flex}.ghead b{font-size:15px}.mrow{border-bottom:1px solid var(--line2);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 18px;display:flex}.mrow .mono{width:38px;font-size:12px}.mrow .check{width:17px;height:17px}.mt{text-align:left;background:0 0;border:0;flex-direction:column;flex:260px;align-items:flex-start;gap:2px;min-width:0;padding:0;display:flex}.mt b{font-weight:600}.mt small{color:var(--muted);font-size:12px}.tag{background:var(--line2);color:var(--sec);white-space:nowrap;border-radius:99px;padding:2px 8px;font-size:12px}.tag.wait{background:var(--dep-tint);color:var(--dep-text)}.tag.st-Atrisk{color:var(--risk);background:#fffaeb}.tag.st-Late{background:var(--late-bg);color:var(--late)}.tag.st-Inprogress{background:var(--tint2);color:var(--primary-dark)}.tag.st-Done{color:var(--done);background:#ecfdf3}.due.mono,.mrow .due{width:auto;height:auto;color:var(--muted);white-space:nowrap;background:0 0;margin:0;font-size:12px;position:static;transform:none}.mrow .due.late{color:var(--late)}.fgroup{border-bottom:1px solid var(--line)}.fhead{flex-wrap:wrap;align-items:center;gap:10px;padding:12px 18px 6px;display:flex}.fhead .btn{margin-left:auto}.more{color:var(--primary);background:0 0;border:0;padding:8px 18px 12px;font-weight:600}.empty{color:var(--faint);margin:0;padding:16px 18px}.pop.help{z-index:45;box-sizing:border-box;background:var(--surface);border:1px solid var(--border);width:380px;max-width:calc(100vw - 32px);color:var(--text2);border-radius:12px;flex-direction:column;gap:10px;padding:16px 18px;line-height:18px;display:flex;position:absolute;top:58px;right:16px;box-shadow:0 16px 40px #14171c29}.pop .x{width:26px;height:26px;color:var(--muted);background:0 0;border:0;margin-left:auto;font-size:18px}.kgrid2{grid-template-columns:84px minmax(0,1fr);gap:5px 10px;display:grid}.kgrid2 b{font-size:12px}.kgrid2 b.pri{color:var(--primary)}.kgrid2 b.dep{color:var(--risk)}.kgrid2 b.lnk{color:#6d28d9}.scrim{z-index:70;background:#14171c47;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{box-sizing:border-box;background:var(--surface);width:460px;max-width:100%;color:var(--text2);border-radius:14px;flex-direction:column;gap:10px;padding:20px 22px;display:flex;box-shadow:0 24px 60px #14171c40}.dt{color:var(--text);font-size:16px}.popt{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.popt.on{border:1.5px solid var(--primary);background:var(--tint2)}.popt label{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.popt label span{flex-direction:column;gap:2px;display:flex}.popt b{color:var(--text)}.popt small{color:var(--muted);font-size:12px}.popt input[type=radio]{margin-top:3px}.grants{flex-direction:column;gap:6px;padding-left:26px;display:flex}.grants label{align-items:center}.note{color:var(--sec);background:#f9fafb;border-radius:8px;padding:9px 11px;font-size:12px;line-height:17px}@media (width<=860px){.workspace{flex-flow:column}.canvas{flex:auto;height:auto;min-height:55%}.panel{border-left:0;border-top:1px solid var(--border);flex:0 0 45%;height:auto}.panel.wide{flex-basis:60%}.toast{flex-basis:100%;order:10;max-width:none}.crumb{display:none}.search input,.search input:focus{width:150px}}.auth{box-sizing:border-box;background:var(--page) radial-gradient(#e1e3e7 1px, transparent 1px) 0 0 / 20px 20px;min-height:100%}.auth.center{justify-content:center;align-items:center;padding:24px 16px;display:flex}.auth.split{grid-template-columns:1fr 1fr;display:grid}.auth-art{background:var(--canvas) radial-gradient(#e1e3e7 1px, transparent 1px) 0 0 / 20px 20px;border-right:1px solid var(--border);flex-direction:column;justify-content:space-between;gap:40px;padding:40px 70px;display:flex}.auth-art h1{text-wrap:balance;max-width:520px;margin:0 0 8px;font-size:30px;line-height:38px}.auth-art p{margin:0;font-size:15px}.mini{flex-direction:column;gap:10px;font-size:16px;display:flex}.mini span{border-bottom:2px solid #e0703d;width:fit-content;padding:0 8px 4px;display:inline-block}.mini .m0,.mini .m1{font-weight:600}.mini i{font:500 11px var(--mono);color:#1e3f9e;background:#e8eefc;border-radius:3px;margin-right:8px;padding:1px 4px;font-style:normal}.mini .mb{border-left:2px solid #e0703d;flex-direction:column;gap:10px;margin-left:20px;padding-left:20px;display:flex}.auth-form{background:var(--page);justify-content:center;align-items:center;padding:40px 24px;display:flex}.aform,.acard{flex-direction:column;gap:14px;width:100%;max-width:420px;display:flex}.acard{background:var(--surface);border:1px solid var(--border);box-sizing:border-box;border-radius:16px;max-width:440px;padding:32px 36px;box-shadow:0 16px 40px #14171c14}.acard.wide{max-width:560px}.aform h2,.acard h2{text-wrap:balance;margin:0;font-size:28px;line-height:34px}.aform p,.acard p{margin:0;line-height:20px}.aform label,.acard label{color:var(--text2);flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.aform input:not([type=checkbox]),.acard input:not([type=checkbox]){box-sizing:border-box;border:1px solid var(--border);background:var(--surface);border-radius:8px;height:44px;padding:0 14px;font-size:15px}.acard input.ro{background:var(--page);color:var(--sec)}.aform label.chk,.acard label.chk{flex-direction:row;align-items:center;gap:10px;font-size:14px;font-weight:400}.btn.big{border-radius:8px;justify-content:center;height:46px;font-size:15px;font-weight:600}.or{color:var(--faint);align-items:center;gap:12px;font-size:12px;display:flex}.or:before,.or:after{content:"";border-top:1px solid var(--line);flex:1}.link{color:var(--primary);font-size:inherit;background:0 0;border:0;padding:0;font-weight:500;text-decoration:underline}.link.center{align-self:center}.link.left{text-align:left}.good{color:var(--done)}.center{text-align:center}.mailicon{width:44px;height:44px;color:var(--done);background:#e7f6ec;border-radius:50%;justify-content:center;align-items:center;display:flex}@media (width<=860px){.auth.split{grid-template-columns:1fr}.auth-art{display:none}}.menu .who{flex-direction:column;padding:4px 8px;display:flex}.menu .who small{color:var(--muted);font-size:11px}.taskpage{flex-direction:column;gap:16px;display:flex}.ptitle.big{margin-left:-5px;font-size:28px;line-height:34px}.tgrid{grid-template-columns:minmax(0,1fr) 400px;align-items:start;gap:18px;display:grid}.tcol{flex-direction:column;gap:16px;min-width:0;display:flex}.tcol .card{flex-direction:column;gap:10px;padding:18px 20px;display:flex}.tcol .card.bad{border-color:var(--late-bd)}.tcol textarea{border:1px solid var(--border);resize:vertical;border-radius:8px;min-height:70px;padding:10px 12px}.tcol .pills{flex-wrap:wrap;gap:6px;display:flex}.tcol .kick.row small{letter-spacing:0;font-weight:400}.mono.big{font-size:18px}.req{background:var(--amber);border:1px solid #f5d9a8;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;font-size:12px;display:flex}.frow{border-bottom:1px solid var(--line2);min-height:34px;color:var(--sec);align-items:center;gap:10px;display:flex}.frow .x{color:var(--faint);background:0 0;border:0;font-size:15px}.row.wrap{flex-wrap:wrap}.fill{flex:1;min-width:160px}.row input.fill,.card input.fill{border:1px solid var(--border);box-sizing:border-box;border-radius:7px;height:32px;padding:0 10px}.crow{align-items:flex-start;gap:10px;display:flex}.crow p{white-space:pre-wrap;margin:2px 0 0;line-height:20px}.crow .av:not(.me){background:var(--line2);color:var(--text2)}.mention{color:var(--primary);font-weight:600}.btn.danger{color:var(--late)}.depin{width:100%}@media (width<=1000px){.tgrid{grid-template-columns:1fr}}.page.admin{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:30px;display:grid}.adminnav{flex-direction:column;gap:4px;padding-top:8px;display:flex}.adminnav button{text-align:left;color:var(--sec);background:0 0;border:1px solid #0000;border-radius:9px;padding:9px 14px;font-size:15px}.adminnav button.on{background:var(--surface);border-color:var(--border);color:var(--text);font-weight:600}.adminnav .muted{padding:8px 14px}.adminmain{flex-direction:column;gap:18px;min-width:0;display:flex}.adminmain h1{margin:0 0 4px;font-size:30px}.adminmain h3{margin:0 0 8px;font-size:17px}.adminmain>.card{padding:18px 20px}.adminmain>.card.table{padding:0;overflow:hidden}.thead,.trow{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 210px 240px 130px;align-items:center;gap:12px;padding:12px 20px;display:grid}.thead{background:#f9fafb}.trow:last-child{border-bottom:0}.trow.sub{background:#f9fafb;grid-template-columns:1fr;padding-block:8px}.trow.off{color:var(--muted)}.trow .who{align-items:center;gap:12px;min-width:0;display:flex}.trow .who>span:last-child{flex-direction:column;min-width:0;display:flex}.trow .who b{text-overflow:ellipsis;font-size:14px;overflow:hidden}.trow .who small{font-size:12px}.trow .av{background:var(--line2);width:40px;height:40px;color:var(--text2);font-size:12px}.trow .av.me{background:var(--primary);color:#fff}.trow .av.dashed{border:1.5px dashed var(--faint);background:0 0}.trow select{border:1px solid var(--border);background:var(--surface);border-radius:8px;width:100%;height:36px;padding:0 8px}.badge.amber{color:var(--risk);background:#fef0c7}.matrix{border-collapse:collapse;width:100%;font-size:14px}.matrix th{text-align:left;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;padding:8px 6px;font-size:11px}.matrix td{border-top:1px solid var(--line);padding:9px 6px}.matrix td:not(:first-child),.matrix th:not(:first-child){text-align:center}.card.notice{background:var(--tint2);border-color:#b9c8f3;flex-direction:column;gap:8px;display:flex}.branchpick{border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:6px;max-height:260px;padding:8px 10px;display:flex;overflow:auto}.branchpick label{color:var(--text2);flex-direction:row;align-items:center;gap:8px;font-size:13px;display:flex}.dialog label{color:var(--sec);flex-direction:column;gap:4px;font-size:12px;display:flex}.dialog input:not([type=checkbox]):not([type=radio]){border:1px solid var(--border);box-sizing:border-box;border-radius:8px;height:34px;padding:0 10px;font-size:13px}.importgrid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;margin-top:12px;display:grid}.drop{background:var(--tint2);text-align:center;border:2px dashed #9db2ee;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:200px;padding:20px;display:flex}.drop.over{background:var(--tint);border-color:var(--primary)}.drop b{font-size:16px}.opts{flex-direction:column;gap:10px;display:flex}.opts p{margin:0}.opts label.chk{gap:10px;font-size:14px}.opts textarea{box-sizing:border-box;border:1px solid var(--border);width:100%;font-family:var(--mono);border-radius:8px;margin:8px 0;padding:8px;font-size:12px}@media (width<=900px){.page.admin{grid-template-columns:1fr}.adminnav{flex-flow:wrap}.importgrid{grid-template-columns:1fr}.thead{display:none}.trow{grid-template-columns:1fr;gap:8px}}.matrix{min-width:0}.matrix td{white-space:normal}.row>.sh-wrap{flex:1;min-width:0}.row>.sh-wrap>input,.tcol .sh-wrap>input.fill{box-sizing:border-box;border:1px solid var(--border);border-radius:8px;width:100%;height:36px;padding:0 12px}.tcol .pill.on[data-s=At\ risk]{background:var(--risk);border-color:var(--risk)}.tcol .pill.on[data-s=Late]{background:var(--late);border-color:var(--late)}.tcol .pill.on[data-s=In\ progress]{background:var(--primary-dark);border-color:var(--primary-dark)}.tcol .pill.on[data-s=Done]{background:var(--done);border-color:var(--done)}.bell,.inboxbtn{width:36px;height:34px;color:var(--sec);background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;display:inline-flex;position:relative}.bell:hover,.bell.on,.inboxbtn:hover,.inboxbtn.on{background:var(--tint2);border-color:var(--line);color:var(--primary-dark)}.bell .dot{background:var(--crit);width:8px;height:8px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;top:6px;right:7px}.page.notes,.page.dash,.page.review{flex-direction:column;gap:16px;display:flex}.page.notes{max-width:1060px}.page h1{margin:0;font-size:30px}.pillrow{flex-wrap:wrap;gap:8px;display:flex}.pillrow .pill{height:36px;padding:0 16px;font-size:14px}.notelist{padding:0;overflow:hidden}.nday{border-bottom:1px solid var(--line);background:#f9fafb;padding:12px 22px 8px}.note{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:14px 22px;display:flex}.note.unread{background:#f7f9ff}.udot{background:0 0;border-radius:50%;flex:none;width:8px;height:8px;margin-top:14px}.note.unread .udot{background:var(--primary)}.bub{background:var(--line2);width:36px;height:36px;color:var(--sec);font:600 11px var(--mono);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.bub.bad{color:var(--late);background:#fee4e2}.bub.good{color:var(--done);background:#dcfae6}.bub.pri{background:var(--tint);color:var(--primary-dark)}.bub.chief{color:var(--risk);background:#fef0c7}.nbody{text-align:left;background:0 0;border:0;flex-direction:column;flex:1;gap:3px;min-width:0;padding:0;display:flex}.nline{font-size:15px;line-height:22px}.nline .chip{vertical-align:2px;font-size:11px}.nbody small{font-size:13px}span.st-Atrisk{color:var(--risk);font-weight:600}span.st-Late{color:var(--late);font-weight:600}span.st-Done{color:var(--done);font-weight:600}span.st-Inprogress{color:var(--primary-dark);font-weight:600}.kpis4{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.kpis4 .kpi{border:1px solid var(--border);background:var(--surface);border-radius:12px;gap:8px;padding:18px 22px}.kpis4 .kpi span{color:var(--sec);font-size:15px}.kpis4 .kpi b{font-size:34px;font-family:var(--ui);font-weight:500}.kpis4 .kpi small{font-size:14px}.kpis4 .kpi.bad{background:var(--surface)}.kpis4 .kpi.bad span,.kpis4 .kpi.bad b{color:var(--late)}.kpis4 .kpi.lnk{border-color:#d9ccf7}.kpis4 .kpi.lnk span,.kpis4 .kpi.lnk b{color:var(--lnk)}.page.dash>.card,.grid2>.card{padding:18px 22px}.page.dash h3{margin:0 0 10px;font-size:19px}.page.dash h3.mt{margin-top:22px}.dtable{min-width:760px}.dtable td{padding:9px 8px;font-size:14px}.dtable tr.faint td{color:var(--faint)}.card:has(>.dtable){overflow-x:auto}.link.plain{color:var(--text);font-weight:600;text-decoration:none}.pbar{background:var(--line);vertical-align:middle;border-radius:9px;width:110px;height:6px;display:inline-block;overflow:hidden}.pbar i{background:var(--primary);height:100%;display:block}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.wl{grid-template-columns:90px minmax(0,1fr) 90px;align-items:center;gap:12px;min-height:36px;font-size:15px;display:grid}.wbar{background:var(--line2);border-radius:4px;height:16px;display:flex;overflow:hidden}.wbar i{height:100%;display:block}.wbar .ok,.legend .ok{background:var(--slack)}.wbar .risk,.legend .risk{background:#d9822b}.wbar .lt,.legend .lt{background:var(--crit)}.wbar .none{background:var(--faint)}.legend{color:var(--sec);gap:16px;margin-top:12px;font-size:13px;display:flex}.legend i{border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}.wrow{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;align-items:center;gap:10px;width:100%;padding:10px 0;font-size:15px;display:flex}.wrow small{font-size:13px}small.risk{color:var(--risk);font-weight:600}.rhead{gap:14px}.rprog{background:var(--line);border-radius:9px;width:240px;height:8px;overflow:hidden}.rprog i{background:var(--primary);height:100%;display:block}.rgrid{grid-template-columns:330px minmax(0,1fr);align-items:start;gap:20px;display:grid}.queue{flex-direction:column;padding:14px 0 6px;display:flex}.queue .kick{padding:0 18px 10px}.qrow{border:0;border-top:1px solid var(--line);text-align:left;background:0 0;align-items:center;gap:10px;padding:10px 18px;font-size:15px;display:flex}.qrow.on{background:var(--tint2);font-weight:600}.qi{text-align:center;width:16px;color:var(--faint)}.qi.done{color:var(--done)}.qi.cur{color:var(--primary)}.ritem h2{margin:4px 0;font-size:32px}.ritem .chips .tag{border-radius:8px;padding:6px 12px;font-size:14px}.acts{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:6px;display:grid}.act{border:1px solid var(--border);background:var(--surface);text-align:left;border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;font-size:16px;display:flex}.act:hover:not(:disabled){border-color:var(--primary);background:var(--tint2)}.key{font:600 12px var(--mono);border:1px solid var(--border);border-radius:5px;padding:1px 6px}.filters select{border:1px solid var(--border);background:var(--surface);border-radius:99px;height:36px;padding:0 14px;font-size:14px}.filters .pill{height:36px;padding:0 16px;font-size:14px}.hlist,.tlist{padding:0;overflow:hidden}.hrow{border-bottom:1px solid var(--line);align-items:flex-start;gap:14px;padding:14px 22px;font-size:15px;display:flex}.hrow>.mono{width:44px;padding-top:8px}.hrow .fill{flex-direction:column;gap:3px;padding-top:6px;display:flex}.hdet{color:var(--sec);font-size:14px}.av.grey{background:var(--line2);color:var(--text2);width:34px;height:34px}.av.me{width:34px;height:34px}.trrow{border-bottom:1px solid var(--line);align-items:center;gap:18px;padding:16px 22px;font-size:16px;display:flex}.trrow .fill{flex-direction:column;gap:4px;display:flex}.trrow small{font-size:14px}.right{text-align:left;min-width:160px}.btn.dangerfill{background:var(--late);border-color:var(--late);color:#fff;font-weight:600}.notice.amber{background:#fffbeb;border-color:#f5d9a8;padding:16px 22px;font-size:15px}.confirm{gap:8px}@media (width<=1000px){.kpis4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid2,.rgrid{grid-template-columns:1fr}.acts{grid-template-columns:repeat(2,minmax(0,1fr))}}.adminmain>.card.hlist,.adminmain>.card.tlist{padding:0}.card.notice.amber{display:block}.hrow:last-child,.trrow:last-child,.note:last-child{border-bottom:0}.node{width:236px}.canvas.panning,.canvas.panning *{cursor:grabbing!important}.node.editing{z-index:20}.node.editing .row{max-width:none}.node input.ed,.node .sh-wrap>input.ed{border-radius:6px;width:460px;height:34px;padding:0 10px;font-size:15px;box-shadow:0 8px 24px #14171c29}.node.editing .sh-wrap{width:460px}.dot.zoom{background:var(--surface);color:var(--primary-dark);border:1.5px solid var(--primary);font-size:14px}.chip.go{cursor:pointer}.chip.go:hover{outline-offset:1px;outline:1.5px solid;text-decoration:underline}.datef{box-sizing:border-box;border:1px solid var(--border);background:var(--surface);border-radius:8px;align-items:center;min-width:120px;height:34px;display:inline-flex;position:relative}.datef .dshow{height:100%;color:var(--text);text-align:left;pointer-events:none;background:0 0;border:0;flex:1;align-items:center;gap:7px;padding:0 10px;font-size:13px;display:inline-flex}.datef .dshow svg{color:var(--muted);flex:none}.datef input[type=date]{opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.datef input[type=date]:focus-visible+.dclear,.datef:focus-within{border-color:var(--primary);box-shadow:0 0 0 2px #2f5bd326}.datef .dclear{z-index:1;width:24px;height:24px;color:var(--faint);background:0 0;border:0;border-radius:50%;margin-right:4px;font-size:15px;position:relative}.datef .dclear:hover{background:var(--line2);color:var(--text)}.datef.off{background:var(--page)}.datef.off input{cursor:default}.grid4 .datef{height:34px}td .datef{border-color:var(--line);min-width:104px;height:28px}td .datef .dshow{font-family:var(--mono);padding:0 7px;font-size:12px}.ritem .datef{min-width:240px;height:38px}.gbar{touch-action:none}.gbar.can{cursor:grab}.gbar.can.fixed{cursor:default}.gbar.dragging{cursor:grabbing;opacity:.9;z-index:3;box-shadow:0 4px 12px #14171c40}.gbar:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.ghandle{cursor:ew-resize;border-radius:3px;width:10px;position:absolute;top:-3px;bottom:-3px;right:-3px}.gbar.can:hover .ghandle{background:#14171c2e}.gnew{font:600 11px var(--mono);color:var(--primary-dark);background:var(--surface);border:1px solid var(--primary);white-space:nowrap;z-index:4;border-radius:4px;padding:1px 5px;position:absolute;top:8px}.grow.hl{background:#fff8e1}tr.hl td{transition:background .3s;background:#fff3c4!important}.glab{cursor:pointer}.typesel{background:var(--line2);border-radius:9px;align-self:flex-start;gap:2px;margin-top:6px;padding:3px;display:inline-flex}.typesel button{height:26px;color:var(--sec);background:0 0;border:0;border-radius:7px;padding:0 10px;font-size:12px}.typesel button.on{background:var(--surface);color:var(--text);font-weight:700;box-shadow:0 1px 2px #14171c26}.ms{color:#7c3aed;font-size:12px;line-height:1}.node .title .ms{margin-right:2px}.node.complete .title .tx{color:var(--done)}.kpi.good{background:#f6fef9;border-color:#abefc6}.kpi.good b{color:var(--done)}.dnote{z-index:30;white-space:nowrap;color:var(--risk);background:#fffaeb;border:1px solid #f5d9a8;border-radius:6px;padding:2px 7px;font-size:11px;position:absolute;top:calc(100% + 4px);left:0}.gbar:not(.dragging){transition:left .18s,width .18s}.ghandle.l{cursor:ew-resize;left:-3px;right:auto}.gms{touch-action:none;background:#7c3aed;border-radius:2px;width:14px;height:14px;margin-left:-7px;position:absolute;top:9px;transform:rotate(45deg)}.gms.crit{background:var(--crit)}.gms.dn{background:var(--done-bar)}.gms.can{cursor:grab}.gms.dragging{cursor:grabbing;box-shadow:0 4px 10px #14171c4d}.gms:not(.dragging){transition:left .18s}.gsum{cursor:pointer;background:#475467;border-radius:2px;height:8px;position:absolute;top:13px}.gsum:before,.gsum:after{content:"";border-top:8px solid #475467;width:0;height:0;position:absolute;top:0}.gsum:before{border-right:6px solid #0000;left:0}.gsum:after{border-left:6px solid #0000;right:0}.gsum.late{background:var(--crit)}.gsum.late:before,.gsum.late:after{border-top-color:var(--crit)}.gsum.dn{background:var(--done)}.gsum.dn:before,.gsum.dn:after{border-top-color:var(--done)}.grow.gh .trk{position:relative}.glab.gproj:not(:disabled){cursor:pointer}.glab.gproj:not(:disabled):hover{color:var(--primary-dark);text-decoration:underline}.glines .off{background:repeating-linear-gradient(135deg,#98a2b31a 0 4px,#0000 4px 8px);position:absolute;top:0;bottom:0}.glines .off.hol{background:#d9822b1a}.lg.off{background:repeating-linear-gradient(135deg,#98a2b359 0 3px,#0000 3px 6px);width:14px;height:10px;margin-right:6px;display:inline-block}.msl{color:#7c3aed;margin-right:6px;font-style:normal}.gnew{transition:left 80ms linear}.pswitch{color:var(--muted);flex-direction:column;gap:4px;font-size:11px;display:flex}.pswitch select{border:1px solid var(--border);background:var(--surface);border-radius:8px;max-width:280px;height:34px;padding:0 8px;font-size:13px}.pdetails{flex-direction:column;gap:10px;padding:16px 20px;display:flex}.pdetails textarea{border:1px solid var(--border);resize:vertical;border-radius:8px;padding:8px 10px}.pdetails .sec{border:0;padding:0}.dialog.impact{gap:10px;width:620px}.imptable{border-collapse:collapse;width:100%;min-width:0;font-size:13px}.imptable th{color:var(--muted);text-align:left;border-bottom:1px solid var(--line);padding:6px 4px;font-size:11px}.imptable td{border-bottom:1px solid var(--line2);white-space:normal;padding:7px 4px}.imptable tr.project td{background:#f9fafb}.daypick{flex-wrap:wrap;gap:6px;margin:6px 0;display:flex}label.inline{align-items:center;gap:8px;margin-top:8px;font-size:14px;display:flex}label.inline select{border:1px solid var(--border);border-radius:7px;height:32px;padding:0 8px}.holtable{border-collapse:collapse;width:100%;min-width:0;margin:10px 0;font-size:14px}.holtable th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:6px;font-size:11px}.holtable td{border-bottom:1px solid var(--line2);white-space:normal;padding:7px 6px}.holtable tr.off td{opacity:.45}.holtable .x{color:var(--faint);background:0 0;border:0;font-size:16px}.tag.sa{color:var(--done);background:#ecfdf3}.tag.sy{color:var(--lnk-text);background:#f5f0ff}.addhol{gap:8px}.addhol select{border:1px solid var(--border);border-radius:8px;height:34px;padding:0 8px}.gt-tools{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 16px;display:flex}.gt-scroll{overflow-x:auto}.gt-in{min-width:1060px;position:relative}.gt-row{box-sizing:border-box;border-bottom:1px solid var(--line2);grid-template-columns:320px minmax(0,1fr);height:34px;display:grid}.gt-row.gt-head{border-bottom:1px solid var(--border);height:34px}.gt-scale button{height:26px;padding:0 10px;font-size:12px}.gt-row.gt-head.wk{height:40px}.wkcell{box-sizing:border-box;border-left:1px solid var(--line2);white-space:nowrap;height:39px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;line-height:1.15;display:flex;position:absolute;top:0;overflow:hidden}.wkcell b{color:var(--text2);font-size:11.5px}.wkcell small{font-size:10px}.wkcell.hol{background:#fef0c7;box-shadow:inset 0 -3px #dc8a1e}.wkcell.hol b,.wkcell.hol small{color:var(--risk)}.glines .wband{background:#98a2b312;position:absolute;top:0;bottom:0}.glines .wband.hol{background:#e9a23b29}.lg.wkhol{background:#fef0c7;border:1px solid #dc8a1e;width:14px;height:10px;margin-right:6px;display:inline-block}.wkcell.mark{box-shadow:inset 0 -3px #dc8a1e}.wkcell.mark b{color:var(--risk)}.gantt.coarse .glines .off.hol{background:#dc8a1e73;min-width:2px}.lg.wkmark{box-sizing:border-box;border-bottom:3px solid #dc8a1e;width:14px;height:10px;margin-right:6px;display:inline-block}.lg.holday{vertical-align:-1px;background:#dc8a1eb3;width:3px;height:12px;margin-right:6px;display:inline-block}.gt-row.hl{background:#fff8e1}.gt-proj{background:#f7f8f6}.gt-proj.d0{background:#eef1f6}.gt-proj.d0 .gt-name{font-size:13.5px;font-weight:800}.gt-proj .gt-name{color:var(--text2);font-weight:700}.gt-lab{white-space:nowrap;border-right:1px solid var(--line);align-items:center;gap:6px;min-width:0;padding-right:12px;font-size:13px;display:flex;overflow:hidden}.gt-lab small{flex:none;margin-left:auto;font-size:11px}.gt-tog{width:18px;height:18px;color:var(--muted);background:0 0;border:0;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;font-size:11px;display:inline-flex}button.gt-tog:hover{background:var(--line);color:var(--text)}.gt-name{text-overflow:ellipsis;text-align:left;min-width:0;font:inherit;color:inherit;background:0 0;border:0;padding:0;overflow:hidden}button.gt-name{cursor:pointer}button.gt-name:hover{text-decoration:underline}.gt-name.b{font-weight:700}.gt-name.done{color:var(--faint);text-decoration:line-through}.gt-body{position:relative}.gt-body .glines{pointer-events:none;position:absolute;top:0;bottom:0;right:0}.gt-arrows{pointer-events:none;position:absolute;top:0;overflow:visible}.gt-arrows path{fill:none;stroke:#98a2b3;stroke-width:1.4px}.gt-arrows path.crit{stroke:var(--crit);stroke-width:1.6px}.gt-row .trk{position:relative}.gt-row .gsum{top:12px}.lg.sum{background:#475467;height:6px}.arr{color:#98a2b3;font-style:normal;font-weight:700}.page.timeline{flex-direction:column;gap:14px;display:flex}.deppick{margin-top:4px;display:block;position:relative}.deppick input{box-sizing:border-box;border:1px dashed var(--border);background:var(--surface);border-radius:7px;width:100%;height:32px;padding:0 10px;font-size:13px}.deppick input:focus{border-style:solid;border-color:var(--dep);outline:none}.deppick.compact{margin:0;display:inline-block}.deppick.compact input{width:120px;height:26px;font-size:12px}.depmenu{z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;min-width:320px;max-width:420px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 12px 30px #14171c29}.depmenu button{text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.depmenu button.on,.depmenu button:hover{background:var(--dep-tint)}.depmenu .dt{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.depmenu em{color:var(--muted);font-size:12px;font-style:normal}.depmenu small{color:var(--muted);white-space:nowrap;font-size:11px}.depchip.proj{background:var(--tint);color:var(--primary-dark)}.groupbar{background:var(--tint2);border-bottom:1px solid #b9c8f3;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;display:flex}.groupbar input{border:1px solid var(--border);border-radius:7px;flex:1;min-width:240px;height:32px;padding:0 10px}tr.picked td{background:#f3f6fe!important}.durcell{white-space:nowrap}.tomile{border:1px solid var(--line);background:var(--surface);color:#7c3aed;opacity:.6;border-radius:5px;width:22px;height:22px;margin-left:4px;padding:0;font-size:11px}.tomile:hover{opacity:1;border-color:#7c3aed}.mstag{color:#7c3aed;font-size:12px;font-weight:600}.mstag button{color:var(--faint);background:0 0;border:0;margin-left:4px}.cpchips .info{border:1px solid var(--border);background:var(--surface);width:20px;height:20px;color:var(--sec);border-radius:50%;padding:0;font-size:11px;font-weight:700}.card.helpnote{background:var(--tint2);border-color:#b9c8f3;padding:12px 16px;font-size:13px;line-height:20px}.cmap{flex-direction:column;gap:8px;padding:14px 18px;display:flex}.cm-scroll{overflow-x:auto}.cm-in{position:relative}.cm-in svg{position:absolute;top:0;left:0}.cm-in svg path{fill:none;stroke-width:2px}.cm-node{box-sizing:border-box;border:0;border-bottom:2px solid var(--faint);text-align:left;white-space:nowrap;cursor:pointer;background:0 0;align-items:center;gap:5px;height:26px;padding:0 6px;font-size:12.5px;display:flex;position:absolute;overflow:hidden}.cm-node .tx{text-overflow:ellipsis;min-width:0;overflow:hidden}.cm-node:hover{background:var(--tint2)}.cm-node.root{border:2px solid #2f86b5;border-radius:6px;justify-content:center;height:28px;font-weight:700}.cm-node.anc{font-weight:600}.cm-node.cur{background:var(--tint);box-shadow:inset 0 0 0 1.5px var(--primary);cursor:default;border-radius:6px 6px 0 0;font-weight:700}.cm-node.sib{opacity:.7}.cm-node.done .tx{color:var(--faint);text-decoration:line-through}.cm-node.late .tx{color:var(--late)}.cm-more{color:var(--muted);padding-left:6px;font-size:11px;position:absolute}.gt-tog{color:var(--sec);width:20px;height:20px;font-size:14px}.gt-proj .gt-tog{color:var(--text)}.dialog.impact{outline:none;width:600px;max-height:calc(100vh - 48px);overflow-y:auto}.dialog.impact .dt{font-size:17px}.imp-lead{color:var(--text2);margin:0;font-size:14px;line-height:1.5}.imp-lead b{color:var(--text)}.imp-warn{background:var(--amber);color:var(--risk);border:1px solid #f5c77e;border-radius:10px;padding:10px 12px;font-size:13px}.imp-warn ul{color:var(--text2);margin:6px 0 0;padding-left:18px}.imp-warn li{margin:2px 0}.imp-list{border:1px solid var(--line);border-radius:10px;flex-direction:column;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.imp-list li{border-bottom:1px solid var(--line2);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name pill""when pill";align-items:center;gap:2px 12px;padding:9px 12px;font-size:13px;display:grid}.imp-list li:last-child{border-bottom:0}.imp-list li.sub{background:#fafbfc;padding-left:30px}.imp-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;grid-area:name;font-weight:600;overflow:hidden}.imp-when{color:var(--text2);grid-area:when}.imp-when .muted{margin-left:4px}.imp-pill{white-space:nowrap;border-radius:999px;grid-area:pill;padding:3px 9px;font-size:11.5px;font-weight:700}.imp-pill.later{color:var(--late);background:#fef3f2}.imp-pill.earlier{color:var(--done);background:#ecfdf3}.imp-list.tasks li{padding-block:7px}.imp-toggle{align-self:flex-start;font-size:13px}.imp-actions{align-items:center;margin-top:4px}.btn.good{color:var(--done);background:#f3fbf6;border-color:#a6e3bf}.btn.good:hover{background:#e6f7ec}.completebar{color:var(--text2);background:#f3fbf6;border:1px solid #a6e3bf;border-radius:10px;flex-direction:column;gap:8px;margin:8px 16px;padding:10px 12px;font-size:13px;display:flex}.completebar .row{justify-content:flex-end;gap:8px}.completebar.compact{flex-flow:wrap;align-items:center;max-width:560px;margin:0}.gbar.picked{box-shadow:0 0 0 2px var(--primary)}.gt-arrows path.hot{stroke:var(--primary);stroke-width:2.2px}.gt-arrows path.crit.hot{stroke:var(--crit)}.gt-arrows path.dim{opacity:.25}.gt-pop{z-index:60;box-sizing:border-box;background:var(--surface);border:1px solid var(--border);width:360px;max-height:calc(100vh - 24px);color:var(--text2);border-radius:12px;flex-direction:column;gap:6px;padding:12px 14px;font-size:13px;display:flex;position:fixed;overflow-y:auto;box-shadow:0 14px 36px #14171c2e}.gt-pop .row{align-items:center;gap:8px}.gt-pop-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gt-pop .kick{margin-top:6px}.gt-pop ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.gt-pop li{background:#f7f8fa;border-radius:8px;flex-direction:column;gap:1px;padding:6px 8px;display:flex}.gt-pop li.done{opacity:.7}.gt-pop li small{color:var(--muted)}.gt-pop li .late{color:var(--late)}.gt-pop .link.plain{text-align:left;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;padding:0}.gt-pop .link.plain:hover{text-decoration:underline}.gt-pop .x{color:var(--faint);cursor:pointer;background:0 0;border:0;font-size:18px}.gt-pop .sm{font-size:12.5px}.gt-pop .end{justify-content:flex-end;margin-top:4px}.expmenu{position:relative}.expmenu .menu{width:300px;top:42px}.expmenu .menu button{flex-direction:column;align-items:flex-start;gap:2px;font-weight:600}.expmenu .menu button small{font-weight:400}.expopts{border-top:1px solid var(--line);flex-direction:column;gap:6px;margin-top:4px;padding:8px 8px 2px;font-size:13px;display:flex}.exportgrid{grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:24px;margin-top:12px;display:grid}.exportgrid .opts{flex-direction:column;gap:10px;display:flex}.exportgrid .pswitch select{max-width:100%}.expbtns{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.expbtn{text-align:left;border:1px solid var(--border);background:var(--surface);color:var(--text2);font:inherit;cursor:pointer;border-radius:12px;flex-direction:column;gap:4px;padding:14px 16px;font-size:13px;display:flex}.expbtn b{color:var(--text);font-size:15px}button.expbtn:hover:not(:disabled){border-color:var(--primary);background:var(--tint2)}.expbtn:disabled,.expbtn.off{opacity:.55;cursor:default}@media (width<=900px){.exportgrid,.expbtns{grid-template-columns:1fr}}.page.report{max-width:1240px}.reportbar{align-items:center;gap:12px}.rephead{border-bottom:2px solid var(--text);align-items:flex-end;gap:16px;padding-bottom:10px;display:flex}.rephead>div{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.rephead h1{margin:0;font-size:28px}.repdesc{white-space:pre-wrap;color:var(--text2);margin:0}.repcrit{margin:0;font-size:13px}.reptable{padding:0;overflow:hidden}.reptable table{min-width:0}.reptable th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:8px;font-size:11px}.reptable td{border-bottom:1px solid var(--line2);vertical-align:top;padding:7px 8px}.reptable tr.crit td{background:var(--late-bg)}.reptable td.done{color:var(--faint);text-decoration:line-through}@media print{@page{size:A4 landscape;margin:10mm}html,body,#root,.app,main.scroll{height:auto!important;display:block!important;overflow:visible!important}body{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff}.top,.focusbar,.rolebar,.noprint,.toast,.gt-tools button,.gt-legend button{display:none!important}.page{gap:10px;max-width:none!important;padding:0!important}.card{break-inside:avoid;box-shadow:none}.gt-scroll{overflow:visible!important}.gt-in{min-width:0!important}.reptable{break-inside:auto}.reptable tr{break-inside:avoid}.kpis{grid-template-columns:repeat(4,1fr)}}.alerttable{border-collapse:collapse;width:100%;min-width:0;margin:6px 0 4px;font-size:14px}.alerttable th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:6px;font-size:11px}.alerttable th:not(:first-child),.alerttable td:not(:first-child){text-align:center;width:110px}.alerttable td{border-bottom:1px solid var(--line2);padding:9px 6px}.alerttable th:not(:first-child),.alerttable td:not(:first-child){width:150px}.alerttable thead th small{font-weight:400}.alerttable .allbtns{justify-content:center;gap:10px;margin-top:3px;font-size:12px;display:flex}.alerttable .allbtns .link:disabled{opacity:.4;cursor:default}.alerttable tr.grp th{color:var(--ink);text-transform:none;text-align:left;border-bottom:1px solid var(--line);padding:14px 6px 4px;font-size:12px;font-weight:700}@media (width<=600px){.alerttable th:not(:first-child),.alerttable td:not(:first-child){width:84px}.alerttable thead th small{display:none}}.toggle{cursor:pointer;background:#d0d5dd;border:0;border-radius:99px;width:38px;height:22px;padding:0;transition:background .15s;position:relative}.toggle i{background:#fff;border-radius:50%;width:16px;height:16px;transition:left .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0003}.toggle.on{background:var(--primary)}.toggle.on i{left:19px}input.prefix{border:1px solid var(--border);width:56px;height:32px;font-family:var(--mono);text-transform:uppercase;border-radius:7px;padding:0 8px}.page.welcome{max-width:900px}.steps{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.steps li{background:var(--line2);color:var(--muted);border-radius:99px;align-items:center;gap:8px;padding:8px 14px 8px 8px;font-size:14px;font-weight:600;display:flex}.steps li b{background:var(--surface);border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;display:inline-flex}.steps li.on{background:var(--primary);color:#fff}.steps li.on b{color:var(--primary)}.steps li.done{color:var(--done);background:#ecfdf3}.wcard{flex-direction:column;gap:14px;padding:20px 22px;display:flex}.wcard h3{margin:0}.wchoices{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.wchoice{border:1.5px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:column;gap:6px;padding:14px;font-size:13px;display:flex}.wchoice input{opacity:0;pointer-events:none;position:absolute}.wchoice b{color:var(--text);flex-wrap:wrap;align-items:center;gap:6px;font-size:15px;display:flex}.wchoice.on{border-color:var(--primary);background:var(--tint2)}.wchoice:focus-within{outline:2px solid var(--primary);outline-offset:2px}.wbody{flex-direction:column;gap:10px;display:flex}.wbody .drop{min-height:150px}.wfield{color:var(--muted);flex-direction:column;gap:4px;max-width:360px;font-size:12px;display:flex}.wfield input{border:1px solid var(--border);height:38px;color:var(--text);border-radius:8px;padding:0 10px;font-size:15px}.wwarn{background:var(--amber);color:var(--risk);border:1px solid #f5c77e;border-radius:8px;margin:0;padding:8px 12px;font-size:13px}.wdone{color:var(--done);margin:0;font-weight:600}.wpeople{border:1px solid var(--line);border-radius:10px;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.wpeople li{border-bottom:1px solid var(--line2);grid-template-columns:28px minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 12px;font-size:14px;display:grid}.wpeople li:last-child{border-bottom:0}.wtips{color:var(--text2);flex-direction:column;gap:8px;margin:0;padding-left:18px;line-height:1.5;display:flex}@media (width<=720px){.wchoices{grid-template-columns:1fr}}.mapsw{min-width:0;position:relative}.mapbtn{cursor:pointer;font:inherit;color:var(--muted);text-overflow:ellipsis;background:0 0;border:1px solid #0000;border-radius:8px;max-width:300px;padding:5px 8px;overflow:hidden}.mapbtn:hover,.mapbtn[aria-expanded=true]{border-color:var(--border);background:var(--surface);color:var(--text)}.menu.mapmenu{gap:2px;width:340px;max-width:calc(100vw - 24px);max-height:calc(100vh - 120px);top:40px;left:0;right:auto;overflow-y:auto}.mapmenu .kick{padding:2px 8px 6px}.maprow{border-radius:8px;align-items:center;gap:2px;display:flex}.maprow.on{background:var(--tint2)}.maprow .mapgo{flex-direction:column;flex:1;align-items:flex-start;gap:1px;min-width:0}.maprow .mapgo b{text-overflow:ellipsis;white-space:nowrap;max-width:240px;font-weight:600;overflow:hidden}.maprow.archived{opacity:.8;padding:4px 8px}.maprow.archived .mapgo{display:flex}.mapmenu button.icon{width:30px;height:30px;color:var(--muted);justify-content:center;padding:0}.mapmenu button.icon:hover{color:var(--text)}.mapmenu .mapnew{color:var(--primary-dark);font-weight:600}.mapform{box-sizing:border-box;gap:6px;width:100%;padding:4px;display:flex}.mapform input{border:1px solid var(--primary);border-radius:7px;flex:1;min-width:0;height:30px;padding:0 8px;font-size:13px}.mapmenu p.xs{margin:6px 8px 2px;line-height:1.4}.ac .ac-head{color:var(--text);border-bottom:1px solid var(--line);text-overflow:ellipsis;white-space:nowrap;max-width:360px;margin-bottom:3px;padding:4px 8px 6px;font-size:12px;overflow:hidden}.ac.choose{min-width:260px}.offbar{padding:7px max(16px, env(safe-area-inset-left,0px));color:var(--risk);background:#fff4e5;border-bottom:1px solid #f5c77e;flex-wrap:wrap;align-items:baseline;gap:10px;font-size:13px;display:flex}.offbar b{font-weight:700}.offbar span{color:var(--text2)}.offbar.syncing{background:var(--tint2);color:var(--primary-dark);border-color:#c9d5f5}.mapmenu .btn.xs.ghost{color:var(--muted);background:0 0;border-color:#0000}.mapmenu .btn.xs.ghost:hover{color:var(--late);border-color:var(--border)}.donetoggle{height:32px;color:var(--sec);font-size:13px}.donetoggle.on{color:var(--done);background:#ecfdf3;border-color:#a6e3bf;font-weight:600}.node.tucked{opacity:.55}.node.tucked .tx{text-decoration:line-through;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint)}.donechip{color:var(--done);cursor:pointer;vertical-align:1px;background:#f3fbf6;border:1px solid #a6e3bf;border-radius:99px;height:18px;margin-left:6px;padding:0 7px;font-size:10.5px;font-weight:700}.donechip:hover:not(:disabled){background:#e6f7ec}.donechip.open{background:var(--done);color:#fff;border-color:var(--done)}.donechip:disabled{cursor:default;opacity:.8}.donebar{border-bottom:1px solid var(--line2);align-items:baseline;gap:10px;padding:10px 16px;display:flex}.donepage{max-width:1100px}.donefilters{align-items:flex-end;gap:12px}.donegroup{padding:14px 18px}.donegroup ul{margin:8px 0 0;padding:0;list-style:none}.donegroup li{border-bottom:1px solid var(--line2);grid-template-columns:22px minmax(0,1fr) auto auto auto;grid-template-areas:"c what when tag acts"".new new new new";align-items:center;gap:2px 14px;padding:9px 0;display:grid}.donegroup li:last-child{border-bottom:0}.donecheck{color:var(--done);grid-area:c;font-weight:800}.donewhat{flex-direction:column;grid-area:what;min-width:0;display:flex}.donewhat .link.plain{text-align:left;font:inherit;color:var(--text);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;padding:0;overflow:hidden}.donewhat .link.plain:hover{text-decoration:underline}.donewhat small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.donewhen{white-space:nowrap;grid-area:when;font-size:13px}.donegroup .tag{grid-area:tag}.tag.ontime{color:var(--done);background:#ecfdf3}.tag.late{color:var(--late);background:#fef3f2}.doneacts{grid-area:acts;gap:6px;display:flex}.donenew{grid-area:new}@media (width<=860px){.donegroup li{grid-template-columns:22px minmax(0,1fr);grid-template-areas:"c what"".when"".tag"".acts"".new"}}.workspace{position:relative}.bulkbar{z-index:40;white-space:nowrap;box-sizing:border-box;background:var(--surface);border:1px solid #c9d5f5;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;width:max-content;max-width:calc(100% - 32px);padding:8px 10px 8px 14px;font-size:13px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #14171c24}.bulkbar b{color:var(--primary-dark)}.bulkbar .seg button:disabled{opacity:.4;cursor:default}.node.multi{background:var(--tint);box-shadow:inset 0 0 0 1.5px var(--primary);border-radius:6px 6px 0 0}textarea.namebox{box-sizing:border-box;resize:none;white-space:pre-wrap;overflow-wrap:anywhere;width:calc(100% + 10px);color:var(--text);font-family:inherit;line-height:1.25;display:block;overflow:hidden}.ptitle.big.namebox{line-height:34px}.phead .ptitles{flex:360px}.tabs button.ptab{text-overflow:ellipsis;white-space:nowrap;max-width:240px;overflow:hidden}.node{height:auto;transform:translateY(-100%)}.node .title{text-align:left;align-items:flex-start}.node.l .title{text-align:right}.node .title .tx{white-space:normal;text-overflow:clip;overflow-wrap:anywhere;line-height:18px;overflow:visible}.node .title .chip,.node .title .ms,.node .row>.check{margin-top:2px}.root{white-space:normal;text-align:center;overflow-wrap:anywhere;height:auto;min-height:54px;padding:8px;line-height:1.25;transform:translateY(calc(27px - 50%))}.selbox{z-index:5;border:1.5px solid var(--primary);pointer-events:none;background:#2f5bd314;border-radius:4px;position:absolute}.node .row{width:100%}.node .title,.node .title .tx{flex:auto}.node .row{align-items:flex-start}.node{z-index:2}.dot.sib{z-index:1}.node.sel,.node.editing{z-index:4}.chip.r{color:var(--risk);background:#fef0c7}.riskmark{flex:none;font-size:13px;line-height:18px}.riskmark.low{color:#98a2b3}.riskmark.medium{color:#d9822b}.riskmark.high{color:#d92d20}.riskmark.critical{color:#fff;background:#b42318;border-radius:3px;padding:0 2px}.node.riskoff{opacity:.55}.node.riskoff .tx{text-decoration:line-through;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint)}.riskband{border-radius:99px;align-items:center;height:20px;padding:0 8px;font-size:11.5px;font-weight:700;display:inline-flex}.riskband.low{color:#475467;background:#f2f4f7}.riskband.medium{color:var(--risk);background:#fef0c7}.riskband.high{color:var(--late);background:#fee4e2}.riskband.critical{color:#fff;background:#b42318}.riskfields{flex-direction:column;gap:10px;display:flex}.riskfields .row{align-items:center;gap:8px}.riskrow{flex-direction:column;gap:4px;display:flex}.page.portfolio{max-width:1400px}.ptiles{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;display:grid}.ptile{border:1px solid var(--border);background:var(--surface);text-align:left;font:inherit;cursor:pointer;border-radius:12px;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.ptile b{font-size:26px;font-family:var(--mono)}.ptile span{color:var(--muted);font-size:12px}.ptile.on{box-shadow:0 0 0 2px var(--primary)}.ptile.info{cursor:default}.ptile.st-late b{color:var(--late)}.ptile.st-risk b{color:var(--risk)}.ptile.st-ok b{color:var(--primary-dark)}.ptile.st-complete b{color:var(--done)}.ptile.st-none b{color:var(--faint)}.prow{cursor:pointer}.prow:hover td{background:var(--tint2)}.prow.notasks td{background:var(--amber)}.prow.notasks:hover td{background:#fef0c7}.prow.notasks td:first-child{box-shadow:inset 3px 0 #e9a23b}.notaskstag{color:var(--risk);white-space:nowrap;background:#fef0c7;border-radius:10px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.notasksbar{background:var(--amber);color:var(--risk);border-color:#f5dfb3;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:12px;padding:10px 14px;display:flex}.notasksbar span{color:var(--text2)}.notasksbar .btn{margin-left:auto}.pstatus{white-space:nowrap;border-radius:99px;padding:2px 9px;font-size:12px;font-weight:700;display:inline-block}.pstatus.st-late{color:var(--late);background:#fee4e2}.pstatus.st-risk{color:var(--risk);background:#fef0c7}.pstatus.st-ok{background:var(--tint);color:var(--primary-dark)}.pstatus.st-complete{color:var(--done);background:#ecfdf3}.pstatus.st-none{background:var(--line2);color:var(--muted)}.preason{margin-top:3px;font-size:11.5px;display:block}.pprog{align-items:center;gap:6px;display:flex}.pprog .bar{width:70px}.reptable td small.good{color:var(--done)}.reptable td small.late{color:var(--late)}.riskhead{align-items:flex-start;gap:28px}.heat{grid-template-rows:auto auto;grid-template-columns:22px auto;padding-left:4px;display:grid;position:relative}.heat-y{transform-origin:0 0;color:var(--muted);white-space:nowrap;font-size:11px;position:absolute;top:50%;left:-18px;transform:rotate(-90deg)translate(50%)}.heat-row{grid-column:1/3;align-items:center;gap:4px;margin-bottom:4px;display:flex}.heat-l{width:56px;color:var(--muted);text-align:right;padding-right:6px;font-size:11px}.heat-l.x{text-align:center;width:64px;padding:0}.heat-x{text-align:center;color:var(--muted);grid-column:1/3;padding-left:56px;font-size:11px}.heat-c{width:64px;height:48px;font-size:18px;font-weight:700;font-family:var(--mono);cursor:pointer;border:0;border-radius:8px}.heat-c.low{color:#475467;background:#f2f4f7}.heat-c.medium{color:var(--risk);background:#fef0c7}.heat-c.high{color:var(--late);background:#fecdca}.heat-c.critical{color:#fff;background:#d92d20}.heat-c.on{box-shadow:0 0 0 3px var(--primary)}.riskfilters{flex-direction:column;gap:10px;min-width:240px;display:flex}@media print{.ptile{break-inside:avoid}.prow:hover td{background:0 0}}.inboxbtn .count{box-sizing:border-box;background:var(--primary);color:#fff;text-align:center;border-radius:99px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:2px;right:0}.addbtn{color:var(--primary-dark);font-size:20px;font-weight:600}.capture-scrim{align-items:flex-start;padding-top:14vh}.dialog.capture{width:560px}.dialog.capture textarea{box-sizing:border-box;border:1.5px solid var(--primary);width:100%;font:inherit;resize:vertical;border-radius:10px;outline:none;min-height:56px;padding:10px 12px;font-size:16px}.page.inboxpage{max-width:900px}.inboxadd{align-items:flex-start;gap:8px;padding:10px;display:flex}.inboxadd textarea{font:inherit;resize:none;background:0 0;border:0;outline:none;flex:1;padding:7px 6px;font-size:15px}.inboxsort{align-items:center}.bulkbar.inline{width:auto;position:static;transform:none}.inboxlist{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.inboxlist:empty{display:none}.inboxlist li{border-bottom:1px solid var(--line2);align-items:flex-start;gap:10px;padding:10px 14px;display:flex}.inboxlist li:last-child{border-bottom:0}.inboxlist li.picked{background:var(--tint2)}.inboxlist li>input[type=checkbox]{margin-top:5px}.ibdone{border:1.5px solid var(--muted);background:var(--surface);cursor:pointer;border-radius:50%;flex:none;width:18px;height:18px;margin-top:2px}.ibdone:hover{border-color:var(--done);background:#ecfdf3}.ibmain{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.ibtext{font:inherit;color:var(--text);text-align:start;cursor:text;white-space:pre-wrap;overflow-wrap:anywhere;background:0 0;border:0;padding:0;font-size:15px}.ibedit{font:inherit;border:1.5px solid var(--primary);border-radius:6px;padding:3px 6px;font-size:15px}.ibmain textarea{border:1px solid var(--border);font:inherit;resize:vertical;border-radius:8px;padding:6px 8px;font-size:13px}.ibacts{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.ibsug{background:var(--tint2);color:var(--primary-dark);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border:1px dashed #a6b9ee;border-radius:99px;max-width:220px;padding:2px 10px;font-size:12px;overflow:hidden}.ibsug:hover{border-style:solid}.inboxlist.done li{opacity:.75}.inboxlist.done .ibtext{color:var(--muted);text-decoration:line-through}.dealt{flex-direction:column;gap:8px;display:flex}.dialog.filedlg{width:560px}.filedlg input{border:1px solid var(--border);height:36px;font:inherit;border-radius:8px;padding:0 10px}.placelist{border:1px solid var(--line);border-radius:10px;max-height:280px;margin:0;padding:0;list-style:none;overflow:auto}.placelist button{text-align:left;width:100%;font:inherit;cursor:pointer;border:0;border-bottom:1px solid var(--line2);background:0 0;flex-direction:column;align-items:flex-start;padding:7px 10px;display:flex}.placelist button.on{background:var(--tint);box-shadow:inset 3px 0 0 var(--primary)}.placelist button:hover{background:var(--tint2)}.placelist li.muted{padding:8px 10px}@media (width<=1800px){.top .wide{display:none}.top .search input{width:150px}.top .search input:focus{width:220px}.top{gap:8px}}@media (width<=1200px){.top{row-gap:8px}.brand{gap:0;font-size:0}.brand svg{font-size:15px}.tright{order:1}.tabs{scrollbar-width:none;order:2;max-width:100%;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.top .search,.top .seg,.top .donetoggle{order:3}.toast{flex:100%;order:4;justify-content:flex-start;font-size:13px}.mapsw{flex:0 auto;min-width:90px}.mapbtn{max-width:100%}.top .crumb.mapbtn{display:block}}@media (width<=600px){.top{padding-left:max(10px, env(safe-area-inset-left,0px));padding-right:max(10px, env(safe-area-inset-right,0px));gap:6px}.top .undobtn,.top .helpbtn,.top .zoom{display:none}.tabs{flex:100%}.mapsw{flex:1 1 0}.top .search{flex:auto}.top .search input,.top .search input:focus{width:100%}}.inboxpanel{z-index:40;box-sizing:border-box;background:var(--page);border-left:1px solid var(--border);width:min(440px,100vw);padding-right:env(safe-area-inset-right,0px);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-16px 0 40px #14171c1f}.ibphead{border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:10px;padding:12px 16px;display:flex}.ibphead b{font-size:16px}.ibphead .x{width:30px;height:30px;color:var(--sec);cursor:pointer;background:0 0;border:0;border-radius:8px;font-size:20px}.ibphead .x:hover{background:var(--tint2)}.ibpbody{overscroll-behavior:contain;flex-direction:column;flex:1;gap:12px;padding:12px 14px 24px;display:flex;overflow-y:auto}.ibpintro{margin:0;line-height:1.4}.inboxpanel .inboxlist li{flex-wrap:wrap;padding:10px 12px}.inboxpanel .ibmain{flex:200px}.inboxpanel .ibacts{flex:100%;justify-content:flex-start;padding-left:50px}.inboxpanel .bulkbar.inline{flex-wrap:wrap}.page.roles{max-width:1200px}.rolestable .thead,.rolestable .trow{grid-template-columns:minmax(200px,1.2fr) minmax(180px,1fr) minmax(200px,1.3fr) 190px}.rolestable .inrole{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rolestable .covers{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.rolestable .acts{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.coverchip{background:var(--dep-tint,#fff4e5);border:1px solid #f3c99a;border-radius:99px;align-items:center;gap:6px;padding:3px 4px 3px 10px;font-size:13px;display:inline-flex}.coverchip small{color:var(--muted)}.coverchip.future{background:var(--surface);border-style:dashed}.coverchip button{cursor:pointer;width:20px;height:20px;color:var(--sec);background:0 0;border:0;border-radius:50%}.coverchip button:hover{background:#0000000f}.av.dashed{background:var(--surface);color:var(--muted);border:1.5px dashed var(--muted);box-sizing:border-box}.card.notice.amber{background:#fffaeb;border-color:#fedf89}.emptyroles ul{margin:6px 0;padding-left:18px}@media (width<=860px){.rolestable .thead{display:none}.rolestable .trow{grid-template-columns:1fr;gap:6px}.rolestable .acts{justify-content:flex-start}}.padder{display:inline-block;position:relative}.cchip.add{color:var(--primary);border-style:solid;font-weight:600}.cchip.add small{color:var(--sec);font-weight:400}.padpop{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:10px;width:min(440px,100vw - 32px);padding:8px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 10px 30px #14182124}.padpop input{box-sizing:border-box;width:100%}.padpop ul{max-height:300px;margin:6px 0 0;padding:0;list-style:none;overflow-y:auto}.padpop li{cursor:pointer;border-radius:6px;align-items:baseline;gap:8px;padding:7px 8px;font-size:13px;display:flex}.padpop li .mono{color:var(--sec);flex:none;min-width:38px}.padpop li .t{flex:1;min-width:0}.padpop li .tag{flex:none;font-size:11px}.padpop li.hi{background:var(--primary-50,#eef2fd)}.padpop li.none{cursor:default}@media (width<=600px){.cpchips{position:relative}.padder{position:static}.padpop{width:auto;margin-top:6px;top:auto;left:0;right:0}}.levelbar{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:10px;align-items:center;gap:8px;padding:6px 8px 6px 12px;font-size:12px;display:flex;position:absolute;bottom:16px;left:16px;box-shadow:0 4px 14px #14171c1a}.levelbar .seg button{font-variant-numeric:tabular-nums;min-width:34px}@media (width<=860px){.levelbar{padding:4px 6px;bottom:8px;left:8px}.levelbar>.muted{display:none}}.pwaits{flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:12px;display:flex}.pwaits .kick{width:100%}.cross.before{left:auto}.gt-pop.peek{box-shadow:0 10px 28px #14171c29}.gt-pop-hint{font-size:11.5px}.mittag{color:var(--risk);letter-spacing:.02em;vertical-align:1px;background:#fef0c7;border-radius:999px;margin:0 6px 0 4px;padding:1px 6px;font-size:10.5px;font-weight:600;display:inline-block}.mitnote{color:var(--text2);flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;font-size:13px;display:flex}.mitnote .mittag{margin:0}.mitnote .link{padding:0}.mitsum .row{align-items:center;gap:10px}.mitsum .bar{flex:0 0 140px}.mitsum.card{flex-direction:column;gap:8px;padding:12px 16px;display:flex}.closenudge{color:#067647;background:#ecfdf3;border:1px solid #abefc6;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.riskdetails .riskfields{border:0;padding:0}.mitcell{min-width:120px}.mitcell small{display:block}
