:root{--brand: #256a93;--brand-deep: #1a4f72;--accent: #f26423;--accent-hover: #d9531a;--bg: #0e1820;--surface: #15232e;--surface-2: #1c2e3b;--row: #111d26;--row-hover: #1d303e;--text: #e9eff3;--text-2: #9fb0bd;--line: #26394a;--line-strong: #44596b;--primary: #3d8bbd;--primary-hover: #2f7aab;--primary-soft: #173a52;--negative: #e0485e;--run: #f5a23d;--run-soft: #3a2a12;--ok: #1fbf7a;--tl: #4f9ed0;--tl-rest: #2c3e4c;--font: Roboto, "Segoe UI", Arial, sans-serif;--font-title: "Barlow Condensed", Roboto, "Segoe UI", sans-serif;color-scheme:dark}:root[data-theme=light]{--bg: #f3f6f9;--surface: #ffffff;--surface-2: #e9f0f5;--row: #ffffff;--row-hover: #f0f5f9;--text: #212121;--text-2: #5f6b75;--line: #dbe3ea;--line-strong: #b9c6d1;--primary: #256a93;--primary-hover: #1a4f72;--primary-soft: #d8e7f1;--run-soft: #fff1e0;--tl: #3f86b8;--tl-rest: #c9d5de;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:15px/1.4 var(--font)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}:focus-visible{outline:2px solid var(--primary);outline-offset:1px}input,select,textarea{background:var(--bg);border:1px solid var(--line-strong);border-radius:4px;padding:5px 8px}a{color:var(--primary)}.small{font-size:13px}.muted{color:var(--text-2)}.over{color:var(--negative)}.ok{color:var(--ok)}.mono{font-family:Consolas,Cascadia Mono,monospace;font-size:13.5px}code{font-family:Consolas,monospace;font-size:12.5px;background:var(--surface-2);padding:1px 4px;border-radius:3px;overflow-wrap:anywhere}.app{display:grid;grid-template-columns:56px 270px 1fr;height:100%}.rail{background:var(--bg);border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:14px}.logo{width:34px;height:34px;border-radius:8px;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px}.side{background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.side-head{display:flex;align-items:center;justify-content:space-between;margin:12px 10px 6px 16px}.side h2{font-size:15px;font-weight:600;margin:0}.side-search{margin:0 12px 8px;background:none;border:1px solid var(--line)}.tree{overflow:auto;flex:1;padding:0 8px 12px}.folder{border-radius:6px;margin-bottom:2px}.folder.over{background:var(--primary-soft)}.folder-head{display:flex;align-items:center}.folder-btn{flex:1;min-width:0;display:flex;align-items:center;gap:6px;border:0;background:none;padding:6px;border-radius:6px;font-size:14px;text-align:left}.folder-btn:hover{background:var(--surface-2)}.fchev{font-size:11px;color:var(--text-2);width:12px;transition:transform .15s}.fchev.closed{transform:rotate(-90deg)}.ficon{font-size:13px}.fname{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fcount{font-size:12px;color:var(--text-2)}.fmenu,.pmenu{opacity:0;flex:none}.folder-head:hover .fmenu,.proj:hover .pmenu,.fmenu:focus,.pmenu:focus{opacity:1}.folder-empty{font-size:12px;color:var(--text-2);padding:4px 10px 8px 36px}.proj{display:flex;align-items:center;border-radius:6px;margin-left:18px}.proj-btn{flex:1;min-width:0;display:flex;gap:8px;align-items:center;text-align:left;border:0;background:none;padding:5px 8px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proj-ic{color:var(--text-2);font-size:12px}.proj:hover{background:var(--surface-2)}.proj.on{background:var(--primary-soft)}.proj.closed .proj-btn{color:var(--text-2)}.closed-toggle{border:0;background:none;color:var(--text-2);font-size:13px;padding:4px 10px 4px 26px}.me{border-top:1px solid var(--line);padding:10px 12px;display:grid;gap:6px;font-size:13px;color:var(--text-2)}.me select{background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:4px 6px}.main{min-width:0;display:flex;flex-direction:column;min-height:0;position:relative}.head{padding:16px 28px 0;background:var(--bg)}.titlebar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.titlebar h1{font-size:24px;font-weight:600;margin:0;display:flex;gap:8px;align-items:baseline}.titlebar h1 .code{color:var(--text-2);font-weight:500}.cust-chip{border:1px solid var(--line);background:none;border-radius:14px;padding:2px 12px;font-size:13px;color:var(--text-2)}.cust-chip:hover{color:var(--text);border-color:var(--line-strong)}.editable{cursor:text;border-radius:4px;padding:0 3px;margin:0 -3px}.editable:hover{outline:1px dashed var(--line-strong)}.edit-input{padding:2px 6px;font:inherit;min-width:120px;width:100%}.tabs{display:flex;gap:2px;margin-top:10px;border-bottom:1px solid var(--line);padding:0 28px;background:var(--bg);align-items:flex-end;flex-wrap:wrap}.tab{border:0;background:none;padding:8px 10px;border-bottom:2px solid transparent;color:var(--text-2);display:flex;align-items:center;gap:6px;cursor:pointer;font-size:14px;border-radius:4px 4px 0 0}.tab:hover{background:var(--surface-2);color:var(--text)}.tab.on{color:var(--text);border-bottom-color:var(--primary)}.tab-ic{font-size:13px;opacity:.8}.tab-more{border:0;background:none;color:var(--text-2);padding:0 2px}.tab.add{font-size:18px;padding:4px 12px 6px}.toolbar{display:flex;gap:6px;align-items:center;padding:10px 28px;flex-wrap:wrap}.toolbar-info{margin-left:8px}.split{display:inline-flex}.split .btn-primary:first-child{border-radius:4px 0 0 4px}.split .caret{border-radius:0 4px 4px 0;border-left:1px solid rgba(255,255,255,.25);padding:7px 8px}.btn-primary{background:var(--accent);color:#fff;border:0;border-radius:6px;padding:7px 14px;font-weight:500}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-ghost{background:none;border:1px solid transparent;border-radius:4px;padding:6px 10px;color:var(--text-2)}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.tool.active{background:var(--primary-soft);color:var(--text)}.search{background:none;border:1px solid var(--line);border-radius:4px;padding:6px 10px;width:180px}.icon{border:0;background:none;color:var(--text-2);border-radius:4px;padding:2px 7px}.icon:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.live-wrap{position:fixed;right:20px;bottom:20px;z-index:40}.live{display:flex;align-items:center;gap:10px;background:var(--run-soft);border:1px solid var(--run);border-radius:18px;padding:5px 6px 5px 14px;font-size:14px;box-shadow:0 6px 18px #00000059}.live b{color:var(--run);font-variant-numeric:tabular-nums}.live>button:last-child{border:0;background:var(--run);color:#111;border-radius:14px;padding:4px 12px;font-weight:600}.live-link{border:0;background:none;padding:0;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scroll{overflow:auto;flex:1;padding:0 28px 90px}.table-wrap{width:max-content;min-width:100%}.group{margin:26px 0 6px;--tl: var(--gc)}.ghead{display:flex;align-items:center;gap:6px;margin-left:-30px;padding:4px 0;position:sticky;left:0;width:max-content;z-index:4}.gmenu{opacity:0;width:24px}.ghead:hover .gmenu,.gmenu:focus{opacity:1}.chev{border:0;background:none;color:var(--gc);font-size:16px;transition:transform .15s;padding:0 2px}.chev.closed{transform:rotate(-90deg)}.gname{font-size:18px;font-weight:500;cursor:text}.gcount{font-size:13px;color:var(--text-2);margin-left:6px}.collapsed-row{border:1px solid var(--line);border-left:6px solid;background:var(--row);padding:8px 16px;border-radius:4px;cursor:pointer;width:600px}.add-group{margin:18px 0;border:1px solid var(--line)}table.board{border-collapse:separate;border-spacing:0;table-layout:fixed}.board th{font-weight:400;font-size:14px;color:var(--text-2);height:36px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-right:1px solid var(--line);background:var(--row);text-align:center;position:relative;-webkit-user-select:none;user-select:none}.board th.name{text-align:left;padding-left:16px;border-top-left-radius:6px}.board th.drop-left{box-shadow:inset 3px 0 0 var(--primary)}.th-inner{display:flex;align-items:center;justify-content:center;gap:2px;padding:0 6px}.board th.name .th-inner{justify-content:flex-start;padding:0}.th-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:grab}.th-menu{border:0;background:none;color:var(--text-2);opacity:0;padding:0 4px;border-radius:4px}.board th:hover .th-menu,.th-menu:focus{opacity:1}.th-menu:hover{background:var(--surface-2)}.resize{position:absolute;right:-3px;top:0;bottom:0;width:6px;cursor:col-resize;z-index:2}.resize:hover{background:var(--primary)}.add-col{cursor:pointer;font-size:18px;border-top-right-radius:6px}.add-col:hover{color:var(--text);background:var(--surface-2)!important}.board td{height:36px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);background:var(--row);text-align:center;padding:0;font-size:14px;position:relative;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.board tr:hover>td{background:var(--row-hover)}.board .bar{border-left:6px solid var(--gc)}.board td.name{text-align:left;padding:0 6px 0 4px}.board tr.drop-above>td{box-shadow:inset 0 2px 0 var(--primary)}td.name .inner{display:flex;align-items:center;gap:4px;height:36px}td.name .label{flex:1;min-width:0;overflow:hidden}.label-txt{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:text}.row-menu{border:0;background:none;color:var(--text-2);opacity:0;width:20px;padding:0;border-radius:4px}tr:hover .row-menu,.row-menu:focus{opacity:1}.expander{border:0;background:none;color:var(--text-2);width:26px;display:flex;align-items:center;gap:1px;padding:0;opacity:0;transition:transform .1s;font-size:16px}.expander small{font-size:11px}.expander.has,tr:hover .expander{opacity:1}.expander.open{color:var(--primary)}.open-btn{border:0;background:none;color:var(--text-2);font-size:12px;opacity:0;padding:2px 6px;border-radius:4px;white-space:nowrap}tr:hover .open-btn{opacity:1}.open-btn:hover{background:var(--surface-2);color:var(--text)}.bubble{border:0;background:none;color:var(--text-2);font-size:13px;display:flex;gap:2px;align-items:center;padding:2px 4px;border-radius:4px;opacity:.5}.bubble.has{opacity:1;color:var(--primary)}.bubble:hover{background:var(--surface-2);opacity:1}.board th.name,.board td.name{position:sticky;left:0;z-index:3}td.filler{border-right:0;background:transparent!important}.c-status{color:#fff;cursor:pointer;border-right:1px solid var(--row)!important}.board tr:hover>td.c-status{filter:brightness(1.08)}.status-txt{padding:0 6px}.c-people,.c-timeline,.c-text,.c-file{cursor:pointer}.avatars{display:inline-flex}.avatars .person+.person{margin-left:-6px}.person{display:inline-grid;place-items:center;border-radius:50%;font-weight:600;color:#fff;flex:none;border:2px solid var(--row)}.empty-person{width:26px;height:26px;background:var(--surface-2);color:var(--text-2);opacity:0}td:hover .empty-person{opacity:1}.cell-btn{width:100%;height:36px;border:0;background:none;padding:0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-btn.txt{text-align:center}.cell-btn:hover{outline:1px solid var(--line-strong);outline-offset:-4px;border-radius:4px}.cell-input{width:100%;height:36px;border:1px solid var(--primary);border-radius:0;background:var(--surface);text-align:center}.date-cell{position:relative;display:block;height:36px;line-height:36px;cursor:pointer}.date-cell input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;padding:0;border:0}.tl{display:inline-block;vertical-align:middle;line-height:18px;min-width:70%;max-width:92%;padding:2px 10px;border-radius:12px;color:#fff;font-size:13px;overflow:hidden;text-overflow:ellipsis}.tl.tl-none{background:var(--tl-rest);color:var(--text-2)}.timer{display:flex;align-items:center;justify-content:center;gap:8px;font-variant-numeric:tabular-nums}.play{width:22px;height:22px;border-radius:4px;border:0;background:var(--primary);color:#fff;font-size:10px;display:grid;place-items:center;flex:none}.play.stop{background:var(--run);color:#111}.c-timer.on{color:var(--run);font-weight:600}.others{color:var(--run);font-size:10px}.c-formula{font-variant-numeric:tabular-nums}.f-err{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--negative);color:#fff;font-size:12px;font-weight:700}.chips{display:inline-flex;gap:4px}.chip{display:inline-flex;align-items:center;gap:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:1px 8px;font-size:12.5px}.chip button{border:0;background:none;color:var(--text-2);padding:0;font-size:11px}.chip.btn:hover{border-color:var(--primary)}tr.add td{text-align:left}.add-input{width:100%;height:34px;border:0;background:transparent;padding:0 12px 0 30px;color:var(--text)}.add-input::placeholder{color:var(--text-2)}.add-input:focus{outline:1px solid var(--primary)}td.add-rest{border-right:0!important;background:transparent!important}tr.sum td{background:transparent!important;border-bottom:0;border-right:0;color:var(--text-2);font-size:13px;height:44px}tr.sum td.box{border:1px solid var(--line);border-top:0;border-left:0;background:var(--row)!important;line-height:1.1}tr.sum td.box b{color:var(--text);font-weight:500}.sum-l{font-size:11px}.battery{display:flex;height:22px;margin:0 8px;border-radius:2px;overflow:hidden}tr.sub-wrap>td{padding:0 0 8px 40px;background:transparent!important;border-right:0}table.board.sub th{background:var(--surface)}table.board.sub td.name .inner{padding-left:8px}.pop{position:fixed;z-index:100;background:var(--surface);border:1px solid var(--line-strong);border-radius:8px;padding:6px;box-shadow:0 10px 30px #00000073;max-height:70vh;overflow:auto;color:var(--text);font-size:14px;text-align:left;white-space:normal}.pop-title{font-size:13px;color:var(--text-2);padding:4px 8px 6px}.pad{padding:6px}.mi{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;padding:7px 8px;border-radius:4px;text-align:left}.mi:hover:not(:disabled),.mi.sel{background:var(--surface-2)}.mi.danger{color:var(--negative)}.mi-ic{width:18px;text-align:center;color:var(--text-2);flex:none}.labels{display:grid;gap:6px;padding:4px}.labels button{border:0;color:#fff;padding:7px;border-radius:4px;min-height:32px}.labels button:hover{filter:brightness(1.1)}.pop-link{display:block;width:100%;border:0;border-top:1px solid var(--line);background:none;color:var(--text-2);padding:8px;margin-top:6px;text-align:center}.pop-link:hover{color:var(--text)}.pop-search{width:100%;margin-bottom:6px}.pop-list{max-height:300px;overflow:auto}.sel-people{display:flex;flex-wrap:wrap;gap:4px;padding:4px 2px 8px}.check-row{display:flex;align-items:center;gap:8px;padding:3px 6px;cursor:pointer}.check-row input{padding:0}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.form{display:grid;gap:12px}.form label{display:grid;gap:4px;font-size:13px;color:var(--text-2)}.form label.check-row{display:flex;color:var(--text)}.form input,.form select,.form textarea{color:var(--text)}.row-btns{display:flex;gap:8px;justify-content:flex-end;align-items:flex-end}.lbl{font-size:13px;color:var(--text-2)}.label-row{display:flex;gap:6px;align-items:center}.label-row>input{flex:1}.filter-row{display:flex;gap:6px;align-items:flex-start;margin:6px 0}.filter-row select{max-width:160px}.val-pick{flex:1;max-height:160px;overflow:auto;border:1px solid var(--line);border-radius:4px;padding:2px;min-height:32px}.insert-cols{display:flex;flex-wrap:wrap;gap:6px}.preview{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:8px 10px;display:grid;gap:4px}.color-pick{position:relative}.swatch{width:24px;height:24px;border-radius:4px;border:2px solid transparent;padding:0}.swatch:hover{border-color:var(--text)}.swatches{position:absolute;z-index:5;top:28px;left:0;display:grid;grid-template-columns:repeat(6,24px);gap:4px;background:var(--surface);border:1px solid var(--line-strong);border-radius:6px;padding:6px}.swatches.grid{position:static;border:0}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#0000008c;display:grid;place-items:center;padding:16px}.modal{background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;width:min(520px,100%);max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 50px #00000080}.modal.wide{width:min(760px,100%)}.modal header{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}.modal header h3{margin:0;flex:1;font-size:18px;font-weight:600}.modal-body{padding:18px 20px;overflow:auto}.modal footer{display:flex;gap:8px;justify-content:flex-end;align-items:center;padding:12px 20px;border-top:1px solid var(--line)}.modal footer .over{margin-right:auto}.close{border:0;background:none;font-size:18px;color:var(--text-2)}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:120;background:#4a1f25;color:#ffd6dc;border:1px solid var(--negative);border-radius:8px;padding:10px 18px;max-width:80vw;box-shadow:0 8px 24px #0006;cursor:pointer}.kanban-by{display:flex;gap:8px;align-items:center;margin:6px 0 10px}.kanban{display:flex;gap:12px;align-items:flex-start;padding-top:6px}.lane{width:270px;flex:none;background:var(--surface);border-radius:8px;border:1px solid var(--line)}.lane.over{outline:2px solid var(--primary)}.lane-head{color:#fff;padding:8px 12px;border-radius:8px 8px 0 0;font-weight:500}.lane-body{padding:8px;display:grid;gap:8px;min-height:60px;max-height:calc(100vh - 280px);overflow:auto}.card{background:var(--row);border:1px solid var(--line);border-radius:6px;padding:10px;cursor:pointer;display:grid;gap:8px}.card:hover{border-color:var(--line-strong)}.card-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.gantt{overflow:auto;padding-top:8px}.g-grid{display:grid}.g-head,.g-row{display:grid;grid-template-columns:300px 1fr}.g-head{position:sticky;top:0;background:var(--bg);z-index:2;height:30px;border-bottom:1px solid var(--line)}.g-scale{position:relative}.g-scale span{position:absolute;top:6px;font-size:12px;color:var(--text-2);padding-left:3px}.g-scale .today{top:0;bottom:-2000px;width:2px;background:var(--primary);padding:0;z-index:1}.g-group{padding:14px 0 4px;font-weight:500}.g-row{height:32px;border-bottom:1px solid var(--line)}.g-label{padding:0 10px;line-height:32px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;font-size:14px}.g-track{position:relative}.g-track i{position:absolute;top:0;bottom:0;border-left:1px solid var(--line)}.g-bar{position:absolute;top:6px;height:20px;border-radius:10px;color:#fff;font-size:12px;line-height:20px;padding:0 8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer}.summary{display:grid;gap:16px;padding-top:10px;max-width:1100px}.tiles{display:flex;gap:12px;flex-wrap:wrap}.tile{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:14px 18px;min-width:150px}.tile-n{font-size:26px;font-weight:600;font-variant-numeric:tabular-nums}.card-box{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:14px 18px}.card-box h4{margin:0 0 10px;font-weight:500}.hbar{display:grid;grid-template-columns:200px 1fr 90px;gap:10px;align-items:center;margin:5px 0;font-size:14px}.hbar-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hbar-t{background:var(--surface-2);height:14px;border-radius:3px;overflow:hidden}.hbar-t span{display:block;height:100%}.hbar b{font-weight:500;text-align:right;font-variant-numeric:tabular-nums}.panel{position:fixed;right:0;top:0;bottom:0;width:min(680px,100vw);background:var(--surface);border-left:1px solid var(--line-strong);box-shadow:-12px 0 32px #00000059;display:flex;flex-direction:column;z-index:50}.panel header{padding:16px 22px 8px;display:flex;gap:12px;align-items:flex-start}.panel header h3{margin:0;font-size:22px;font-weight:600}.crumb{border:0;background:none;color:var(--text-2);font-size:13px;padding:0}.ptabs{display:flex;gap:2px;padding:0 16px;border-bottom:1px solid var(--line)}.composer{padding:14px 22px;border-bottom:1px solid var(--line);display:grid;gap:8px}.composer textarea{min-height:80px;resize:vertical}.composer .row{display:flex;justify-content:flex-end}.feed{overflow:auto;padding:14px 22px 40px;display:grid;gap:14px;align-content:start;flex:1}.post{border:1px solid var(--line);border-radius:8px;background:var(--row)}.post .meta{display:flex;gap:10px;align-items:center;padding:10px 14px 0;font-size:13px;color:var(--text-2)}.post .meta b{color:var(--text);font-weight:600}.post .body{padding:6px 14px 12px;overflow-wrap:anywhere}.post .body p{margin:0 0 6px}.post .body .img-ph{display:inline-block;border:1px dashed var(--line-strong);color:var(--text-2);font-size:12px;padding:6px 10px;border-radius:4px;margin:4px 0}.post .body img.shot{max-width:100%;border-radius:6px;border:1px solid var(--line);margin:6px 0;display:block}.post .files{border-top:1px solid var(--line);padding:8px 14px;display:flex;flex-wrap:wrap;gap:6px}.file{font-size:12px;border:1px solid var(--line);border-radius:4px;padding:3px 8px;color:var(--text-2)}a.file{text-decoration:none;color:var(--primary)}.reply{margin:0 14px 12px 28px}.path{font-family:Consolas,monospace;font-size:12.5px;background:var(--surface-2);padding:1px 4px;border-radius:3px}.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.file-tile{display:grid;gap:6px;border:1px solid var(--line);border-radius:6px;padding:8px;text-decoration:none;color:var(--text);overflow-wrap:anywhere}.file-tile img{width:100%;height:100px;object-fit:cover;border-radius:4px}.file-tile.missing{opacity:.55}.file-ext{height:100px;display:grid;place-items:center;background:var(--surface-2);border-radius:4px;font-weight:600;color:var(--text-2)}table.log{border-collapse:collapse;width:100%;font-size:13px}.log th,.log td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line)}.log th{color:var(--text-2);font-weight:500}.run-txt{color:var(--run)}.empty{color:var(--text-2);padding:40px;text-align:center;line-height:1.6}.err{background:#4a1f25;color:#ffd6dc;padding:8px 28px;font-size:14px}@media(max-width:900px){.app{grid-template-columns:1fr}.rail,.side{display:none}.scroll,.toolbar,.head,.tabs{padding-left:16px;padding-right:16px}}.attach{cursor:pointer;margin-right:auto}.composer .row{gap:8px;align-items:center}.pending{display:flex;flex-wrap:wrap;gap:8px}.pend{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:6px;padding:4px;max-width:280px}.pend img{width:44px;height:44px;object-fit:cover;border-radius:4px}.pend .small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-ext.sm{height:44px;width:44px;font-size:11px}.shots{display:grid;gap:6px;padding:0 14px 10px}.shots img.shot{max-width:100%;max-height:480px;border-radius:6px;border:1px solid var(--line);display:block}.dropzone{border:1px dashed var(--line-strong);border-radius:8px;padding:14px;display:flex;gap:12px;align-items:center}.dash{padding-top:6px;max-width:1400px}.dash-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.dash-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.widget{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:12px 16px 16px;min-height:140px;min-width:0}.widget header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.widget h4{margin:0;font-weight:500;font-size:15px}.w-number{display:grid;gap:4px;padding-top:8px}.w-number b{font-size:38px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.1}.w-number.inline{display:flex;align-items:baseline;gap:10px;padding:0 0 10px}.w-number.inline b{font-size:28px}.battery.big{height:28px;margin:0;gap:2px;border-radius:4px}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:13px}.legend.col{flex-direction:column;flex-wrap:nowrap;margin:0}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:10px;height:10px;border-radius:2px;display:inline-block;flex:none}.legend b{font-weight:500}.w-donut{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.w-donut path{stroke:var(--surface);stroke-width:1.5}.donut-n{fill:var(--text);font-size:16px;font-weight:600}.donut-l{fill:var(--text-2);font-size:10px}.w-cols{display:flex;align-items:flex-end;gap:10px;height:220px;padding-top:6px;overflow-x:auto}.w-col{flex:1;min-width:48px;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px}.w-colbar{width:70%;max-width:46px;border-radius:4px 4px 0 0;min-height:2px}.w-collabel{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}@media(max-width:1100px){.dash-grid{grid-template-columns:1fr}.widget{grid-column:span 1!important}}.app.no-side{grid-template-columns:56px 1fr}.rail-btn{position:relative;width:40px;height:40px;border:0;border-radius:8px;background:none;color:var(--text-2);font-size:18px;display:grid;place-items:center}.rail-btn:hover{background:var(--surface-2);color:var(--text)}.rail-btn.on{background:var(--primary-soft);color:var(--text)}.rail-end{margin-top:auto;display:grid;gap:8px;justify-items:center}.me-btn .person{border-color:var(--bg)}.badge{position:absolute;top:2px;right:0;min-width:18px;height:18px;border-radius:9px;background:var(--negative);color:#fff;font:600 11px/18px var(--font);font-style:normal;padding:0 4px}.badge.static{position:static;display:inline-block;margin-left:6px;vertical-align:middle}.side-head>span{display:flex;gap:2px}.side-show{position:absolute;left:0;top:18px;z-index:6;border:1px solid var(--line);border-left:0;background:var(--surface);color:var(--text-2);border-radius:0 6px 6px 0;padding:6px}.side-show:hover{color:var(--text);background:var(--surface-2)}.cust-chip:disabled{cursor:default}.page{display:flex;flex-direction:column;min-height:0;flex:1}.page-head{display:flex;align-items:center;gap:14px;padding:18px 28px 6px}.page-head h1{margin:0;font-size:24px;font-weight:600}.page-head .btn-primary{margin-left:auto}.page-body{overflow:auto;flex:1;padding:12px 28px 80px}.tabs.flat{margin-top:4px}.toolbar.flat{padding:0 0 12px}.page>.toolbar.flat{padding:12px 28px 0}.toolbar.wrap{flex-wrap:wrap}.inline{display:inline-flex;gap:6px;align-items:center;color:var(--text-2);font-size:14px}.hscroll{overflow-x:auto}table.grid-table{border-collapse:collapse;width:100%;font-size:14px}.grid-table th{text-align:left;font-weight:500;color:var(--text-2);padding:8px 10px;border-bottom:1px solid var(--line-strong);white-space:nowrap;position:sticky;top:0;background:var(--bg)}.grid-table td{padding:6px 10px;border-bottom:1px solid var(--line);vertical-align:middle}.grid-table tr:hover td{background:var(--row-hover)}.grid-table .r{text-align:right;font-variant-numeric:tabular-nums}.grid-table .c{text-align:center}.grid-table tr.off td{opacity:.5}.grid-table tfoot td{border-top:1px solid var(--line-strong);border-bottom:0;padding-top:10px}.grid-table.report td.rep{color:transparent}.grid-table.report tr.brk td{border-top:1px solid var(--line-strong)}.cell-edit{background:transparent;border:1px solid transparent;padding:3px 6px;border-radius:4px;width:100%}.cell-edit:hover{border-color:var(--line)}.cell-edit:focus{border-color:var(--primary);background:var(--bg)}.cell-edit.num{text-align:right}.who{display:inline-flex;gap:8px;align-items:center}.role-help{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:12.5px;color:var(--text-2);margin-bottom:12px}.role-help b{color:var(--text);font-weight:500}.member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2px 12px}.member-grid .check-row{padding:5px 6px;border-radius:4px}.member-grid .check-row:hover{background:var(--surface-2)}.member-grid .muted{margin-left:auto}.report-tiles{padding:4px 28px 0}.danger-txt{color:var(--negative)}.pick-boards{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:4px}.mywork{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:20px;padding:12px 28px 80px;overflow:auto;flex:1;align-items:start}.mw-group{margin-bottom:18px}.mw-group h3{font-size:15px;font-weight:500;margin:8px 0}.mw-row{display:grid;grid-template-columns:4px minmax(160px,2fr) minmax(120px,1.5fr) 120px 120px 60px;gap:10px;align-items:center;width:100%;border:0;border-bottom:1px solid var(--line);background:var(--row);padding:0 10px 0 0;height:38px;text-align:left}.mw-row:hover{background:var(--row-hover)}.mw-bar{height:100%}.mw-name,.mw-board{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mw-status{color:#fff;text-align:center;font-size:13px;height:28px;line-height:28px;border-radius:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 6px}.mw-h{text-align:right}.inbox{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:12px;position:sticky;top:0;max-height:calc(100vh - 120px);overflow:auto}.inbox-head{display:flex;justify-content:space-between;align-items:center}.inbox h3{margin:0 0 8px;font-size:16px;font-weight:500}.note{display:flex;gap:10px;width:100%;text-align:left;border:0;background:none;padding:9px 6px;border-bottom:1px solid var(--line);border-radius:4px}.note:hover{background:var(--surface-2)}.note.unread{background:var(--primary-soft)}.note-kind{width:22px;text-align:center;color:var(--primary);font-weight:700;flex:none}.note-body{display:grid;gap:3px;min-width:0}.note-text{overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:1100px){.mywork{grid-template-columns:1fr}.mw-row{grid-template-columns:4px 1fr 110px 60px}.mw-board,.mw-date{display:none}}.login{min-height:100%;display:grid;place-items:center;padding:16px}.login-box{width:min(420px,100%);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:28px;text-align:center;display:grid;gap:10px}.login-box h1{margin:4px 0 0}.login-box p{margin:0 0 8px}.logo.big{width:52px;height:52px;font-size:18px;margin:0 auto;border-radius:12px}.btn-primary.ms{display:flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;padding:10px;font-weight:500}.dev-login{text-align:left;display:grid;gap:8px;border-top:1px solid var(--line);padding-top:12px;margin-top:6px}.dev-list{max-height:300px;overflow:auto}.mention-pop{position:absolute;z-index:30;background:var(--surface);border:1px solid var(--line-strong);border-radius:8px;padding:4px;width:260px;max-height:240px;overflow:auto;box-shadow:0 10px 30px #00000073}.composer{position:relative}tr.more td{text-align:left;padding:6px 12px;background:transparent!important;border-right:0}.pb-group{margin-bottom:12px}.pb-group>.check-row{padding:6px 0}.members-btn{margin-left:auto;display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:none;border-radius:18px;padding:3px 12px 3px 4px;font-size:13px;color:var(--text-2)}.members-btn:hover:not(:disabled){border-color:var(--line-strong);color:var(--text)}.members-btn:disabled{cursor:default;opacity:1}.members-btn b{color:var(--primary);font-weight:500}.member-list{max-height:55vh;overflow:auto;display:grid;gap:2px}.member-list .check-row{padding:5px 6px;border-radius:4px}.member-list .check-row:hover{background:var(--surface-2)}.ws-btn{display:flex;align-items:center;gap:8px;border:0;background:none;padding:4px 6px;border-radius:6px;min-width:0}.ws-btn:hover{background:var(--surface-2)}.ws-ic{width:24px;height:24px;border-radius:6px;display:inline-grid;place-items:center;font-weight:700;font-size:12px;color:#fff;background:var(--primary);flex:none}.ws-ic.crm{background:#df2f4a}.ws-ic.hr{background:#00a39a}.chip.tag{color:var(--primary)}.chip.link{cursor:pointer;background:var(--primary-soft);border-color:transparent;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip.link:hover{border-color:var(--primary)}.c-rel .chips{max-width:100%;overflow:hidden}table.board.details{width:100%}.board.details th{width:38%;text-align:left;padding:0 12px;color:var(--text-2);border-top:0;background:transparent}.board.details td{text-align:left;padding:0 8px}.board.details td.c-status,.board.details td.c-timer,.board.details td.c-num{text-align:center}.connected h4{margin:8px 0;font-weight:500}.conn-board{margin-bottom:10px;display:grid;gap:4px}.conn-item{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--line);background:var(--row);border-radius:6px;padding:7px 10px;text-align:left}.conn-item:hover:not(:disabled){border-color:var(--primary)}.titlebar h1 .code .muted{opacity:.35;font-size:15px}table.fin{--in: #12a36a;--out: #d8435a;--bal: var(--brand);--amber: #f26423;border-collapse:separate;border-spacing:0;font-size:13.5px;font-variant-numeric:tabular-nums;border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong)}:root[data-theme=light] table.fin{--in: #0a8f55;--out: #c62f47;--amber: #b86e00}.fin th,.fin td{padding:5px 9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap}.fin th{color:var(--text-2);font-weight:600;background:var(--surface-2);position:sticky;top:0;z-index:2}.fin thead tr:nth-child(2) th{top:29px;border-bottom:2px solid var(--line-strong)}.fin th.mh{text-align:center;color:var(--text);font-size:13px;letter-spacing:.02em;text-transform:uppercase}.fin th.now,.fin th.nowc{color:var(--primary)}.fin .ms{border-left:2px solid var(--line-strong)}.fin .sticky{position:sticky;left:0;background:var(--bg);z-index:1;min-width:230px;max-width:280px;overflow:hidden;text-overflow:ellipsis;border-right:2px solid var(--line-strong)}.fin thead .sticky{z-index:3;background:var(--surface-2)}.fin td.name{color:var(--text)}.fin td.num{min-width:76px}.fin tr.dr:nth-child(2n) td{background-color:color-mix(in srgb,var(--surface) 55%,transparent)}.fin tr.dr:nth-child(2n) td.sticky{background:color-mix(in srgb,var(--surface) 55%,var(--bg))}.fin tr.dr:hover td{background-color:var(--row-hover)}.fin tr.dr:hover td.sticky{background:var(--row-hover)}.fin td.h-in[style]{background-color:color-mix(in srgb,var(--in) calc(6% + var(--h) * 40%),transparent)!important}.fin td.h-out[style]{background-color:color-mix(in srgb,var(--out) calc(6% + var(--h) * 38%),transparent)!important}.fin td.zero{color:var(--text-2)}.fin td.nowc,.fin th.nowc{box-shadow:inset 2px 0 0 var(--primary),inset -2px 0 0 var(--primary)}.fin td.click{cursor:pointer}.fin td.click:hover{outline:2px solid var(--primary);outline-offset:-2px}.fin td.rolled{color:var(--amber);font-weight:600}.fin td.rolled:before{content:"↻ ";font-size:11px}.fin td.done{color:var(--in);font-weight:600}.fin td.done:before{content:"✓ ";font-size:11px}.fin td.neg,.fin .neg b{color:var(--out);font-weight:700}.fin td.pos{color:var(--in)}.fin td.act{color:var(--text-2);background-color:color-mix(in srgb,var(--surface-2) 60%,transparent)}.fin td.act.short{color:var(--amber);font-weight:600}.fin td.tcol,.fin th.tcol{font-weight:700;border-left:2px solid var(--line-strong);background-color:color-mix(in srgb,var(--surface-2) 70%,transparent);min-width:90px}.fin tr.sec td{font-weight:700;font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;padding:7px 9px;border-bottom:2px solid currentColor}.fin tr.sec.in td{color:var(--in);background:color-mix(in srgb,var(--in) 14%,var(--bg))}.fin tr.sec.out td{color:var(--out);background:color-mix(in srgb,var(--out) 14%,var(--bg))}.fin tr.dr.in td.sticky{box-shadow:inset 3px 0 0 var(--in)}.fin tr.dr.out td.sticky{box-shadow:inset 3px 0 0 var(--out)}.fin tr.sub td{font-weight:600;font-style:italic;color:var(--text-2);background:var(--surface);border-top:1px solid var(--line-strong)}.fin tr.tot td{font-weight:700;background:var(--surface);border-top:2px solid var(--line-strong);border-bottom:2px solid var(--line-strong)}.fin tr.tot.in td{color:var(--in);background:color-mix(in srgb,var(--in) 10%,var(--surface))}.fin tr.tot.out td{color:var(--out);background:color-mix(in srgb,var(--out) 10%,var(--surface))}.fin tr.tot td.sticky,.fin tr.sub td.sticky{color:var(--text)}.fin tr.tot.saldo td{background:var(--surface)}.fin tr.bal td{background:color-mix(in srgb,var(--bal) 12%,var(--bg));font-weight:600;color:var(--text)}.fin tr.bal.end td{background:color-mix(in srgb,var(--bal) 22%,var(--bg));font-weight:800;font-size:14px;border-top:2px solid var(--bal);border-bottom:2px solid var(--bal)}.fin tr.bal td.neg{color:var(--out);background:color-mix(in srgb,var(--out) 22%,var(--bg))}.fin .r{text-align:right}.fin .dep{display:inline-block;width:16px;height:16px;line-height:16px;text-align:center;border-radius:3px;font-size:10px;font-weight:700;margin-right:7px;color:#fff;vertical-align:1px}.fin .dep.e{background:#3987e5}.fin .dep.t{background:#9085e9}.legend i.lg-done{background:var(--ok)}.legend i.lg-rolled{background:var(--run)}.legend i.lg-now{background:transparent;box-shadow:inset 0 0 0 2px var(--primary)}.legend i.lg-short{background:var(--run)}.note-box{background:var(--run-soft);border:1px solid var(--run);border-radius:6px;padding:8px 12px;margin-bottom:10px;font-size:14px}.nowrap{white-space:nowrap}.fin-settings{display:grid;gap:14px;max-width:900px}.cust-map{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:6px 16px;margin-top:8px}.cust-map .inline{gap:8px}.cm-from{width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}.fin td.fc{font-style:italic;opacity:.8}.legend i.lg-fc{background:repeating-linear-gradient(45deg,var(--text-2) 0 2px,transparent 2px 4px)}.fin .dep.ua{background:#c98500;width:22px}.fin .dep.pl{background:#d55181;width:22px}.fin tr.click-row{cursor:pointer}.fin td.typed{font-weight:700;text-decoration:underline dotted var(--text-2)}.fin td.bonus{color:var(--in);font-weight:600}.file-btn{cursor:pointer;display:inline-flex;align-items:center}.fin tr.sec.nb td{color:var(--text);background:var(--surface-2);border-bottom-color:var(--line-strong)}.fin tr.fold{cursor:pointer;-webkit-user-select:none;user-select:none}.fin tr.fold:hover td{filter:brightness(1.15)}.fin tr.fold .chev{display:inline-block;width:16px;font-size:11px}.fin tr.fold .fold-n{margin-left:10px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-2);font-size:12px}.fin tr.sec.grp td{color:var(--text-2);background:var(--surface);font-size:12px;padding:5px 9px;border-bottom:1px solid var(--line-strong)}.fold-all{display:inline-flex;gap:2px}.bal-head{font-size:14px;color:var(--text-2);padding:3px 10px;border-radius:6px;background:var(--surface)}.bal-head b{color:var(--text)}.bal-head.stale{background:var(--run-soft);color:var(--run);border:1px solid var(--run)}.start-box{background:color-mix(in srgb,var(--primary) 10%,var(--bg));border:1px solid color-mix(in srgb,var(--primary) 45%,transparent);border-radius:6px;padding:8px 12px;margin-bottom:10px;font-size:14px}.undo-redo{display:flex;flex-direction:column;gap:4px;padding-bottom:6px;border-bottom:1px solid var(--line);margin-bottom:4px}.undo-redo .rail-btn:disabled{opacity:.35;cursor:default}.bin-btn{margin-left:auto;font-size:13px}.board-more{font-size:18px;padding:2px 10px}.trash-table .kind-ic{display:inline-block;width:18px;color:var(--text-2)}.trash-days{margin-left:auto;gap:6px}.fin .cust-link{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer;text-align:left}.fin .cust-link:hover{color:var(--primary);text-decoration:underline}.app-footer{flex:none;display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 16px;padding:5px 16px;font-size:11.5px;color:var(--text-2);border-top:1px solid var(--line);background:var(--bg)}.app-footer.compact{flex-direction:column;align-items:center;text-align:center;border:0;background:none;margin-top:18px}.login{grid-template-rows:1fr auto}.logo-img{width:38px;height:38px;object-fit:contain}.logo-img.big{width:auto;height:64px;max-width:240px}h1,.page-head h1,.titlebar h1,.login-box h1{font-family:var(--font-title);font-weight:600;letter-spacing:.01em}.rail .logo-img{width:40px;height:40px;object-fit:cover;object-position:left center}:root:not([data-theme=light]) .logo-img{filter:brightness(0) invert(1)}.login .logo-img.big{height:72px;display:block;margin:0 auto}.rail-btn.on{box-shadow:inset 3px 0 0 var(--accent)}.login-box .tagline{margin:2px 0 0;color:var(--text);font-size:16px}.login-box .motto{margin:10px 0 2px;font-family:Cinzel,Trajan Pro,Georgia,serif;font-weight:700;font-size:17px;letter-spacing:.12em;background:linear-gradient(100deg,#8a5a12,#f7d774 22%,#fff3b0 32%,#e0a83a 48%,#f7d774 66%,#9c6a18);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 6px rgba(255,170,40,.55)) drop-shadow(0 0 14px rgba(255,110,0,.25));animation:ring-glow 6s ease-in-out infinite}:root[data-theme=light] .login-box .motto{background-image:linear-gradient(100deg,#6b4208,#b9811c 25%,#e0a83a 35%,#9a6512 50%,#c48a22 68%,#6b4208);filter:drop-shadow(0 0 3px rgba(230,150,20,.45))}@keyframes ring-glow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@media(prefers-reduced-motion:reduce){.login-box .motto{animation:none}}.auto-btn{margin-left:auto;font-size:13px}.bin-btn.after-auto{margin-left:0}.auto-list{display:grid;gap:6px}.auto-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.auto-row.off .auto-text{opacity:.55}.auto-text{flex:1;min-width:0}.switch{position:relative;width:34px;height:20px;flex:none}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:10px;background:var(--line-strong);cursor:pointer;transition:.15s}.switch span:after{content:"";position:absolute;width:14px;height:14px;left:3px;top:3px;border-radius:50%;background:#fff;transition:.15s}.switch input:checked+span{background:var(--ok)}.switch input:checked+span:after{transform:translate(14px)}.recipes{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}.recipe{display:flex;gap:10px;align-items:flex-start;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer;font-size:13.5px}.recipe:hover{border-color:var(--primary);background:var(--primary-soft)}.recipe span{font-size:16px}.rule{display:grid;gap:10px}.rule-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-radius:8px;background:var(--surface-2)}.rule-line .kw{min-width:62px;color:var(--primary)}.rule-line select.multi{min-width:240px;height:84px}.rule-name{display:grid;gap:4px;max-width:420px}:root{--wl-ok: #1f9e66;--wl-full: #e0a12b;--wl-over: #d8435a}.wl-bar{padding:8px 0 10px;flex-wrap:wrap;gap:8px}.wl-table{border-collapse:separate;border-spacing:0;font-size:13px;font-variant-numeric:tabular-nums;border-top:1px solid var(--line);border-left:1px solid var(--line)}.wl-table th,.wl-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:5px 6px;text-align:center;min-width:46px;white-space:nowrap}.wl-table th{background:var(--surface-2);font-weight:600;color:var(--text-2);position:sticky;top:0;z-index:1}.wl-table th.today{color:var(--primary);box-shadow:inset 0 -3px 0 var(--primary)}.wl-table .sticky{position:sticky;left:0;background:var(--bg);text-align:left;min-width:210px;z-index:2}.wl-table .wkend{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}.wl-table td.ok{background:color-mix(in srgb,var(--wl-ok) 28%,transparent)}.wl-table td.full{background:color-mix(in srgb,var(--wl-full) 38%,transparent);font-weight:600}.wl-table td.over{background:color-mix(in srgb,var(--wl-over) 45%,transparent);color:#fff;font-weight:700}.wl-table td.click{cursor:pointer}.wl-table td.click:hover{outline:2px solid var(--primary);outline-offset:-2px}.wl-person{display:inline-flex;align-items:center;gap:8px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px}.cal-title{margin:0 10px;font-family:var(--font-title);font-size:20px;font-weight:600}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.cal-dow{padding:6px 8px;font-size:12px;font-weight:600;color:var(--text-2);background:var(--surface-2);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.cal-day{min-height:112px;padding:4px 5px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:3px;background:var(--surface)}.cal-day.other{background:var(--bg)}.cal-day.other .cal-num{opacity:.45}.cal-day.wkend{background:color-mix(in srgb,var(--surface-2) 55%,var(--surface))}.cal-day.today .cal-num{background:var(--accent);color:#fff;border-radius:10px;padding:0 7px}.cal-day.over{outline:2px dashed var(--primary);outline-offset:-3px}.cal-num{align-self:flex-end;font-size:12px;color:var(--text-2);font-weight:600}.cal-item{font-size:12px;padding:2px 6px;border-left:3px solid var(--primary);border-radius:3px;background:var(--surface-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.cal-item:hover{background:var(--primary-soft)}.cal-item.big{font-size:14px;padding:6px 10px;margin-bottom:6px}.cal-more{border:0;background:none;color:var(--primary);font-size:12px;text-align:left;padding:0 4px;cursor:pointer}.row-check{width:15px;height:15px;margin:0 2px 0 0;opacity:0;flex:none;cursor:pointer;accent-color:var(--primary)}tr:hover .row-check,.row-check.on,.row-check:checked{opacity:1}tr.sel td.name{background:color-mix(in srgb,var(--primary) 16%,var(--row))!important;box-shadow:inset 0 0 0 1px var(--primary)}.g-check{width:15px;height:15px;accent-color:var(--primary);cursor:pointer}.bulk-bar{position:fixed;left:50%;bottom:46px;transform:translate(-50%);z-index:40;display:flex;align-items:center;gap:6px;padding:8px 10px 8px 8px;background:var(--surface);border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 10px 30px #00000059}.bulk-count{background:var(--primary);color:#fff;border-radius:8px;padding:4px 10px;font-weight:700}.bulk-x{margin-left:4px}.bulk-bar button,.bulk-bar span{white-space:nowrap}.post-acts{margin-left:auto;display:inline-flex;gap:2px}.post .meta{display:flex;align-items:center;gap:8px}.edit-post textarea{width:100%}.edit-post .row{display:flex;justify-content:flex-end;gap:6px;margin-top:6px}.time-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;padding:10px;margin-bottom:10px;border-radius:8px;background:var(--surface-2)}.time-form label{display:grid;gap:3px;font-size:13px}.setup-steps{display:grid;gap:8px;padding-left:18px;line-height:1.5}.ts-bar{flex-wrap:wrap;gap:10px;align-items:center;padding-bottom:10px}.week-nav{display:inline-flex;align-items:center;gap:6px}.week-nav b{min-width:190px;text-align:center}.ts-status{padding:3px 10px;border-radius:12px;font-size:13px;font-weight:600}.st-open{background:var(--surface-2);color:var(--text-2)}.st-sub{background:var(--run-soft);color:var(--run)}.st-ok{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}.st-ret{background:color-mix(in srgb,var(--negative) 15%,transparent);color:var(--negative)}.ts-tot{font-size:14px;color:var(--text-2)}.ts-tot b{color:var(--text)}table.ts td.c{text-align:center}table.ts .ts-cell{padding:2px 4px;min-width:64px}table.ts .ts-cell input{width:58px;text-align:right;border:1px solid transparent;background:transparent;padding:4px 6px;border-radius:4px}table.ts .ts-cell input:hover,table.ts .ts-cell input:focus{border-color:var(--line-strong);background:var(--bg)}table.ts .ts-cell input.manual{color:var(--primary);font-weight:600}table.ts th.wkend,table.ts td.wkend{background:color-mix(in srgb,var(--surface-2) 50%,transparent)}table.ts td.short-day{color:var(--amber, #c98500)}.burn{position:relative;display:inline-block;width:74px;height:16px;border-radius:8px;background:var(--line, #e3e7ea);overflow:hidden;vertical-align:middle}.burn i{position:absolute;left:0;top:0;bottom:0;background:#3aa66b}.burn.warn i{background:#e8a33a}.burn.bad i{background:#d9534f}.burn em{position:relative;font-style:normal;font-size:11px;font-weight:600;display:block;text-align:center;line-height:16px;color:#1d2a33}.rate-set{display:flex;gap:26px;flex-wrap:wrap;align-items:center}.rate-set label{display:flex;gap:8px;align-items:center}.rate-add{display:flex;gap:6px;flex-wrap:wrap}.rate-add select,.rate-test select{max-width:190px}.rate-test{margin-top:16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.costing td.r{white-space:nowrap}.est-head{display:flex;gap:28px;align-items:center;flex-wrap:wrap}.est-kpi{display:flex;flex-direction:column}.est-kpi b{font-size:20px}.est-kpi span{font-size:12px;color:var(--muted, #7d8a94)}.est-table td:first-child{max-width:380px}.est-table button.link{text-align:left}.est-table tr.sel td{background:color-mix(in srgb,var(--brand, #256a93) 10%,transparent)}.est-sim>td{padding:4px 10px 10px 28px!important}.est-sim table{width:100%;font-size:13px}.est-sim td{padding:3px 8px;border:0}.est-boards{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.est-table button.link{background:none;border:0;padding:0;color:inherit;cursor:pointer;font:inherit}.est-table button.link:hover{color:var(--brand, #256a93)}.cap-page .toolbar .spacer{flex:1}.cap-range{margin:0 6px}.cap-legend{margin:4px 0 10px;display:flex;flex-wrap:wrap;gap:14px}.cap-sw{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:4px;vertical-align:-1px}.cap-sw.leave,td.lv{background:repeating-linear-gradient(135deg,#256a9347 0,#256a9347 5px,#256a931f 5px,#256a931f 10px)!important}.cap-sw.req,td.lvreq{background:repeating-linear-gradient(135deg,rgba(242,100,35,.22) 0 5px,transparent 5px 10px)!important}.cap-sw.hol,td.hol{background:#80808038!important}td.holinfo{box-shadow:inset 0 -3px #80808073}.cap-tag{font-size:10px;font-weight:700;letter-spacing:.04em;opacity:.85}.cap-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--brand, #256a93);margin-left:4px;vertical-align:middle}.cap-table tr.cap-me td.name{font-weight:600}.wl-person .cc{font-size:10px;font-weight:600;padding:0 4px;border-radius:3px;background:var(--line, #e3e7ea);color:var(--muted, #6b7780);margin-left:6px}.wl-person .cc.none{opacity:.5}.cap-panel{border:1px solid var(--line, #e3e7ea);border-radius:8px;padding:12px 14px;margin-bottom:12px;max-height:340px;overflow:auto}.cap-cols{display:grid;grid-template-columns:1.1fr 1fr 1.1fr;gap:24px}.cap-cols h4{margin:0 0 8px}.cap-cols label{display:flex;gap:6px;align-items:center;margin-bottom:6px}.cap-hol{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cap-people{display:flex;flex-direction:column;gap:4px}.cap-person{display:flex;gap:6px;align-items:center}.cap-person>span:first-child{flex:1;font-size:13px}.cap-extra{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.cap-kpis{display:flex;gap:18px;margin-bottom:8px}.st-chip{font-size:12px;padding:1px 7px;border-radius:10px;background:var(--line, #e3e7ea)}.st-chip.approved{background:#3aa66b33}.st-chip.requested{background:#e8a33a40}.st-chip.rejected{background:#d9534f33}tr.pend td{background:#e8a33a12}.btn .badge{margin-left:6px;background:var(--accent, #f26423);color:#fff;border-radius:9px;padding:0 6px;font-size:11px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.form-grid label{display:flex;flex-direction:column;gap:4px;font-size:13px}.form-grid label.check-row{flex-direction:row;align-items:center}@media(max-width:900px){.cap-cols{grid-template-columns:1fr}}.topbar{flex:none;display:flex;align-items:center;gap:10px;height:50px;padding:0 16px 0 28px;border-bottom:1px solid var(--line);background:var(--bg)}.topbar-title{flex:1;min-width:0;font-family:Barlow Condensed,Roboto,sans-serif;font-size:18px;font-weight:600;letter-spacing:.02em;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-btn{position:relative;border:0;background:none;color:var(--text-2);width:38px;height:38px;border-radius:8px;display:grid;place-items:center}.topbar-btn:hover,.account-btn:hover,.online-btn:hover{background:var(--surface-2);color:var(--text)}.topbar-btn .badge{position:absolute;top:3px;right:2px;background:var(--accent, #f26423);color:#fff;border-radius:9px;font-size:10px;font-style:normal;font-weight:700;padding:0 5px;line-height:16px}.account-btn{display:flex;align-items:center;gap:9px;border:0;background:none;color:var(--text);padding:4px 8px 4px 4px;border-radius:22px;max-width:260px}.account-name{display:flex;flex-direction:column;text-align:left;line-height:1.15;min-width:0}.account-name b{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-name small{font-size:11.5px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-btn .caret{color:var(--text-2);font-size:11px}.account-head{display:flex;gap:12px;align-items:center;padding:12px 12px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}.account-head b{font-size:14px}.menu-sep{height:1px;background:var(--line);margin:4px 0}img.person.photo{object-fit:cover;padding:0;background:var(--surface-2)}.online-btn{display:flex;align-items:center;gap:8px;border:0;background:none;color:var(--text-2);padding:4px 10px 4px 6px;border-radius:20px;font-size:13px}.online-btn .stack{display:flex}.online-btn .stack>*{margin-left:-7px}.online-btn .stack>*:first-child{margin-left:0}.online-n{display:flex;align-items:center;gap:6px;white-space:nowrap}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#9aa5ae}.dot.online{background:#2fb36b;box-shadow:0 0 0 2px color-mix(in srgb,#2fb36b 25%,transparent)}.dot.away{background:#e8a33a}.who-list{max-height:420px;overflow:auto;padding:4px 0}.who-h{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);padding:8px 12px 4px}.who-row{display:flex;gap:10px;align-items:center;padding:5px 12px}.who-row.offline{opacity:.7}.who-av{position:relative}.who-av .dot{position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border:2px solid var(--surface);box-shadow:none}.who-txt{display:flex;flex-direction:column;min-width:0}.who-txt b{font-size:13px;font-weight:500}.who-txt small{font-size:12px;color:var(--text-2)}.who-txt a{color:var(--primary);cursor:pointer}.profile{display:grid;grid-template-columns:170px 1fr;gap:24px}.profile-photo{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.profile-photo .person{font-size:40px!important}.profile-main{display:flex;flex-direction:column;gap:14px;min-width:0}.form-grid .span2{grid-column:1 / -1}.form-grid input,.form-grid select,.form-grid textarea{font:inherit;padding:7px 9px;border-radius:6px;border:1px solid var(--line);background:var(--surface-2);color:var(--text)}.form-grid input:disabled{opacity:.65}.profile-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;padding:10px 12px;border-radius:8px;background:var(--surface-2)}.profile-facts>div{display:flex;flex-direction:column;font-size:13px}.profile-facts span{font-size:11.5px;color:var(--text-2)}.profile-facts button{align-self:flex-start;padding-left:0}.side-show{top:64px}.mobile-nav,.mobile-more,.drawer-head{display:none}@media(max-width:900px){html,body{overscroll-behavior:none}.app,.app.no-side{grid-template-columns:1fr}.main{padding-bottom:calc(58px + env(safe-area-inset-bottom))}input,select,textarea{font-size:16px}.topbar{padding:0 8px 0 14px;height:50px;gap:4px}.account-name,.account-btn .caret,.online-btn .stack{display:none}.online-btn{padding:4px 6px}.account-btn{padding:2px}.side-show,.app-footer{display:none}.side.drawer{display:flex!important;position:fixed;inset:0 0 calc(58px + env(safe-area-inset-bottom)) 0;z-index:60;border:0}.side.drawer .side-head{margin-top:4px}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 4px 16px;font-size:18px}.side .tree a,.side .tree button{min-height:40px}.mobile-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:70;background:var(--bg);border-top:1px solid var(--line);padding:4px 4px env(safe-area-inset-bottom);height:calc(58px + env(safe-area-inset-bottom))}.mobile-nav button{position:relative;flex:1;border:0;background:none;color:var(--text-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10.5px;border-radius:10px}.mobile-nav button.on{color:var(--primary)}.mobile-nav button.on svg{background:color-mix(in srgb,var(--primary) 14%,transparent);border-radius:12px;padding:2px 10px;box-sizing:content-box}.mobile-nav .badge{position:absolute;top:2px;left:calc(50% + 6px);background:var(--accent, #f26423);color:#fff;border-radius:9px;font-size:10px;font-style:normal;font-weight:700;padding:0 5px;line-height:16px}.mobile-more{display:block;position:fixed;inset:0 0 calc(58px + env(safe-area-inset-bottom));z-index:65;background:#00000073}.mobile-more .sheet{position:absolute;left:0;right:0;bottom:0;background:var(--surface);border-radius:14px 14px 0 0;padding:10px 8px 12px;display:grid;grid-template-columns:1fr 1fr;gap:4px}.mobile-more .sheet>button{display:flex;align-items:center;gap:10px;border:0;background:none;color:var(--text);padding:12px;border-radius:10px;font-size:15px;text-align:left}.mobile-more .sheet>button.on{background:var(--surface-2);color:var(--primary)}.sheet-undo{grid-column:1 / -1;display:flex;gap:16px;justify-content:center;padding-top:6px;border-top:1px solid var(--line)}.live-wrap{left:10px;right:10px;bottom:calc(66px + env(safe-area-inset-bottom))}.live{justify-content:space-between}.live-link{max-width:52vw}.page-head{padding:12px 14px 4px;flex-wrap:wrap;gap:6px 12px}.page-head h1{font-size:20px}.page-head .muted.small{display:none}.page-body{padding:8px 12px 40px}.toolbar,.toolbar.flat{padding-left:12px!important;padding-right:12px!important;flex-wrap:wrap;gap:6px}.toolbar .search,.toolbar input[type=search]{flex:1 1 140px;min-width:0}.tabs{overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap}.tabs::-webkit-scrollbar{display:none}.hscroll,.page-body{-webkit-overflow-scrolling:touch}.grid-table{font-size:13px}.modal-bg{padding:0;place-items:stretch}.modal,.modal.wide{width:100%;max-height:none;height:100%;border-radius:0;border:0}.modal-body{flex:1}.panel{width:100vw;border-left:0;bottom:calc(58px + env(safe-area-inset-bottom))}.panel header h3{font-size:18px}.form-grid,.profile,.profile-facts{grid-template-columns:1fr}.board th.name,.board td.name{min-width:180px;max-width:220px}.wl-table .sticky{min-width:140px}.cap-cols{grid-template-columns:1fr}.est-head{gap:14px}}@media(max-width:900px){.page-head h1{display:none}.page-head:empty,.page-head:not(:has(>:not(h1):not(.muted))){display:none}.tab,.tabs .tab,.view-tab{white-space:nowrap}.cap-legend{padding:0 12px;gap:8px 12px}.cap-legend>span:last-child{display:none}.sheet-undo,.sheet-undo>*{display:flex!important;flex-direction:row!important;gap:22px;align-items:center}.sheet-undo hr,.sheet-undo .rail-sep{display:none}}@media(max-width:900px){.cap-table .sticky{min-width:0;width:128px;max-width:128px}.cap-table .wl-person{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;gap:6px}.cap-table .wl-person .cc{display:none}.cap-table th,.cap-table td{min-width:40px}}.forms-list{display:grid;gap:6px}.forms-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.forms-row.off .forms-title{color:var(--text-2);text-decoration:line-through}.forms-row a.btn-ghost{text-decoration:none}.forms-main{flex:1;min-width:180px;display:grid;gap:2px}.forms-title{font-weight:500;text-align:left;background:none;border:0;padding:0;color:var(--text);justify-self:start}.forms-title:hover{color:var(--primary)}.fe-fields{display:grid;gap:6px;margin-bottom:8px}.fe-field{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:6px}.fe-move{display:grid}.fe-move .btn-ghost{padding:0 6px;line-height:1.2}.fe-body{flex:1;display:grid;gap:4px;min-width:0}.fe-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));max-height:160px;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:4px}.pf-page{min-height:100%;display:grid;justify-items:center;align-content:start;gap:12px;padding:32px 16px}.pf-card{width:min(640px,100%);background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--brand);border-radius:12px;padding:24px 28px}.pf-card h1{font-family:var(--font-title);font-weight:600;margin:8px 0 4px;font-size:30px}.pf-logo .logo-img.big{height:48px;display:block}.pf-desc{white-space:pre-wrap;color:var(--text-2);margin:0 0 8px}.pf-form{display:grid;gap:18px}.pf-field{display:grid;gap:6px}.pf-field input:not([type=checkbox]),.pf-field textarea,.pf-field select{width:100%;padding:9px 10px;font-size:16px}.pf-field.bad input,.pf-field.bad textarea,.pf-field.bad select{border-color:var(--negative)}.pf-label{font-weight:500}.pf-req{color:var(--accent)}.pf-range{display:flex;gap:8px;align-items:center}.pf-choices{display:flex;flex-wrap:wrap;gap:8px}.pf-choice{border:2px solid var(--c);background:none;border-radius:6px;padding:7px 14px}.pf-choice.on{background:var(--c);color:#fff}.pf-checks{display:grid;gap:2px}.pf-check{padding-left:0}.pf-trap{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.pf-submit{justify-self:start;padding:10px 28px;font-size:16px}.pf-sent{font-size:17px;white-space:pre-wrap}.pf-foot{text-align:center}.pf-login-note{text-align:center;padding:16px 16px 0;font-weight:500}@media(max-width:600px){.pf-page{padding:12px 8px}.pf-card{padding:18px 16px}.pf-submit{justify-self:stretch}.fe-field{flex-wrap:wrap}}@media(max-width:900px){.modal-bg{grid-template-rows:100%;grid-template-columns:100%;overflow:hidden}.modal,.modal.wide{min-width:0;min-height:0}.modal-body{min-height:0;overflow:auto}.modal select,.modal input,.modal textarea,.page select{max-width:100%}.toolbar select{max-width:46vw}.ts-table th:first-child,.ts-table td:first-child,.ts .sticky{min-width:0!important;width:140px!important;max-width:140px!important}.gantt .g-label,.gantt-labels,.gantt .labels{width:140px!important;min-width:0!important}.fin .sticky,.fin th:first-child,.fin td:first-child{min-width:0!important;width:120px!important;max-width:120px!important;white-space:normal}.side.drawer .side-head button[title*=Hide],.side.drawer .side-head button[aria-label*=Hide]{display:none}.mywork-inbox,.mw-inbox{order:-1}}@media(max-width:900px){.mywork{padding:8px 12px 40px}.mywork .inbox{order:-1;position:static;max-height:45vh}}@media(max-width:900px){td.name .row-check,td.name .row-menu{display:none}td.name .open-btn{width:24px;min-width:24px;overflow:hidden;white-space:nowrap;padding:0 4px;display:inline-block!important;opacity:.8}td.name .bubble{padding:0 2px}}.cards-view{padding:4px 12px 24px;display:flex;flex-direction:column;gap:14px}.cv-group{display:flex;flex-direction:column;gap:8px}.cv-head{display:flex;gap:8px;align-items:baseline;border:0;background:none;color:var(--gc);font-size:16px;padding:4px 0;text-align:left}.cv-head b{font-weight:600}.cv-head .muted{color:var(--text-2)}.card-item{display:flex;flex-direction:column;gap:8px;text-align:left;border:1px solid var(--line);border-left:4px solid var(--gc);background:var(--surface);color:var(--text);border-radius:8px;padding:10px 12px;font:inherit}.card-item:active{background:var(--surface-2)}.ci-top{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}.ci-name{font-weight:500;font-size:15px;line-height:1.3;word-break:break-word}.ci-status{flex:none;font-size:12px;padding:3px 8px;border-radius:4px;color:#fff;background:#c4c4c4;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ci-meta{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:12.5px;color:var(--text-2)}.ci-people{display:flex}.ci-people>*{margin-left:-5px}.ci-people>*:first-child{margin-left:0}.ci-run{color:var(--run);font-weight:600}.cv-empty{padding:4px 2px}@media(max-width:900px){.board-tools{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;padding-bottom:6px}.board-tools::-webkit-scrollbar{display:none}.board-tools>*{flex:none}.board-tools .search{flex:0 0 130px}.board-tools .toolbar-info:empty{display:none}}@media(max-width:900px){.board-tools input.search{flex:0 0 130px!important;width:130px!important;min-width:130px!important}}.export-btn{margin-left:auto;font-size:13px}.export-btn~.auto-btn,.export-btn~.bin-btn{margin-left:0}:root{--gt-weekend: rgba(255, 255, 255, .035);--gt-link: #8aa3b5;--gt-bad: var(--negative)}:root[data-theme=light]{--gt-weekend: rgba(20, 50, 80, .05);--gt-link: #6f8696}.gt-tools{padding:4px 28px 6px;gap:14px}.gt-tools label{display:inline-flex;align-items:center;gap:6px}.gt-tools .gt-opt{cursor:pointer;-webkit-user-select:none;user-select:none}.gt-tools .gt-hint{margin-left:auto}.gantt .gt-grid{position:relative}.gantt .g-head{z-index:4}.gantt .g-track{background-image:linear-gradient(90deg,var(--gt-weekend) 0 calc(var(--px) * 2),transparent 0);background-size:calc(var(--px) * 7) 100%;background-position:var(--wk) 0;background-repeat:repeat-x}.gantt.gt-months .g-track{background-image:none}.gantt .g-bar{z-index:2;user-select:none;-webkit-user-select:none}.gantt .g-bar.gt-edit{cursor:grab;touch-action:none}.gantt.gt-dragging,.gantt.gt-dragging .g-bar{cursor:grabbing}.gantt .g-bar.gt-drag{box-shadow:0 0 0 2px var(--text),0 4px 12px #00000059;opacity:.92}.gantt .g-bar.gt-pushed{box-shadow:0 0 0 2px var(--accent)}.gantt .g-bar.gt-late{box-shadow:0 0 0 2px var(--gt-bad)}.gantt .g-bar.gt-milestone{padding:0 4px}.gt-hd{position:absolute;top:0;bottom:0;width:9px;cursor:ew-resize;z-index:1}.gt-hd-l{left:0;border-radius:10px 0 0 10px}.gt-hd-r{right:0;border-radius:0 10px 10px 0}.g-bar:hover .gt-hd,.g-bar.gt-drag .gt-hd{background:#ffffff59}.gt-tip{position:absolute;top:6px;z-index:3;height:20px;line-height:20px;padding:0 6px;border-radius:4px;font-size:12px;white-space:nowrap;background:var(--surface-2);color:var(--text);border:1px solid var(--line-strong);pointer-events:none}.gt-links{position:absolute;top:0;z-index:1;pointer-events:none;overflow:visible}.gt-link{fill:none;stroke:var(--gt-link);stroke-width:1.5}.gt-link.bad{stroke:var(--gt-bad);stroke-width:2}.gt-arr{fill:var(--gt-link)}.gt-arr.bad{fill:var(--gt-bad)}.gt-today{stroke:var(--accent);stroke-width:2}.g-scale .gt-now{top:22px;width:8px;height:8px;margin-left:-4px;padding:0;border-radius:50%;background:var(--accent)}@media(max-width:900px){.gt-tools{padding:4px 12px 6px}.gt-tools .gt-hint{display:none}}.inv-table button.link{background:none;border:0;padding:0;color:inherit;cursor:pointer;font:inherit;text-align:left}.inv-table .chip.small{margin-left:8px;font-size:11px}.inv-line td{font-size:13px;background:color-mix(in srgb,var(--surface-2) 50%,transparent)}.inv-h{margin:22px 0 8px;font-size:16px;font-weight:600}.rec-actions{display:inline-flex;gap:4px;align-items:center;flex-shrink:0;margin-right:4px}.rec-actions .rec-on{color:var(--primary)}.rem-custom{display:flex;gap:6px;align-items:center;padding:6px 4px 2px}.rem-custom input{flex:1;min-width:0}.rem-hint{padding:4px}.rem-mine{border-top:1px solid var(--line);margin-top:6px;padding:6px 4px 0}.rem-row{display:flex;align-items:center;gap:6px;justify-content:space-between;padding:3px 0;font-size:13px}.my-reminders{margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}.my-reminders h3{margin:0 0 6px;font-size:15px}.rem-open{flex:1;min-width:0;display:grid;gap:1px;text-align:left;background:none;border:0;padding:6px 8px;border-radius:6px;color:inherit;cursor:pointer}.rem-open:hover{background:var(--surface-2)}.rem-when{font-size:12.5px;color:var(--primary);font-weight:600}.rem-task{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rec-form{min-width:min(560px,100%)}.rec-line{display:flex;flex-wrap:wrap;gap:12px}.rec-line>label{flex:1 1 150px}.rec-every{display:flex;align-items:center;gap:6px;color:var(--text)}.rec-every input{width:70px}.rec-days{display:flex;flex-wrap:wrap;gap:6px}.rec-day{min-width:46px;padding:5px 8px;border-radius:16px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text-2);cursor:pointer}.rec-day.on{background:var(--primary);border-color:var(--primary);color:#fff}.rec-preview{display:grid;gap:4px;padding:10px 12px;border-radius:8px;background:var(--surface-2)}.rec-table td{vertical-align:top}.rec-paused td{opacity:.65}@media(max-width:600px){.rec-actions .btn-ghost{padding:4px 6px}}@media(max-width:900px){.g-head,.g-row{grid-template-columns:120px 1fr}.gantt .g-label{width:auto!important;position:sticky;left:0;z-index:3;background:var(--bg);font-size:13px;padding:0 6px}.g-head .g-label{z-index:4}}.toast.info{background:var(--surface);color:var(--text);border-color:var(--line-strong)}@media(max-width:900px){.toast{bottom:calc(70px + env(safe-area-inset-bottom))}}@media(max-width:900px){.panel header{flex-wrap:wrap;gap:6px 8px;padding:12px 14px 6px}.panel header>div:first-child{flex:1 1 calc(100% - 50px)!important;order:0}.panel header .close{order:1}.panel header .rec-actions{order:2;flex:1 1 100%;display:flex;gap:6px}}@media(max-width:900px){.fe-field{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:start}.fe-field>.fe-move{grid-column:1;grid-row:1 / span 2}.fe-field>.fe-body{grid-column:2;grid-row:1}.fe-field>label.check-row{grid-column:2;grid-row:2;position:static}.fe-field>button{grid-column:3;grid-row:1}}.fx-head{margin-left:auto;padding:2px 8px;border:1px solid var(--line-strong);border-radius:6px;color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums}.fx-box .fx-table{border-collapse:collapse;margin:8px 0;font-size:13px}.fx-box .fx-table th,.fx-box .fx-table td{padding:4px 12px 4px 0;text-align:left;border-bottom:1px solid var(--line, #e5e5e5)}.fx-box .fx-table th.r,.fx-box .fx-table td.r{text-align:right}.fx-box .fx-err{color:#c0392b}@media(max-width:900px){.fx-head{margin-left:0;white-space:normal}.fx-box .fx-table{width:100%}}.folder-kids>.folder{margin-left:14px}.folder-kids>.folder .folder-btn{font-size:13.5px}.tree.over-top{outline:2px dashed var(--primary);outline-offset:-4px;border-radius:8px}.move-list{max-height:320px;overflow:auto}.folder-head[draggable=true]{cursor:grab}.fv-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;background:#0b1015;display:flex;flex-direction:column}.fv-head{display:flex;align-items:center;gap:8px;padding:8px 12px;color:#e8edf1;background:#00000059}.fv-head .btn-ghost{color:#e8edf1;text-decoration:none}.fv-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.fv-nav{display:flex;align-items:center;gap:4px}.fv-close{font-size:18px}.fv-body{flex:1;min-height:0;display:flex}.fv-frame{flex:1;width:100%;border:0;background:#fff}.fv-img{flex:1;overflow:auto;display:grid;place-items:center;cursor:zoom-in;padding:12px}.fv-img img{max-width:100%;max-height:calc(100vh - 90px);object-fit:contain}.fv-img.zoom{cursor:zoom-out;place-items:start}.fv-img.zoom img{max-width:none;max-height:none}.fv-msg{margin:auto;color:#cfd6dc;padding:30px;text-align:center}.fv-msg a{color:#7fc3ec}.fv-text{flex:1;overflow:auto;margin:0;padding:16px 20px;background:#fff;color:#1d2a33;font:13px/1.5 ui-monospace,Consolas,monospace;white-space:pre-wrap}.fv-xlsx{flex:1;display:flex;flex-direction:column;min-width:0;background:#fff}.fv-sheet{flex:1;overflow:auto;background:#fff;color:#1d2a33}.fv-sheet table{border-collapse:collapse;font-size:12.5px}.fv-sheet th,.fv-sheet td{border:1px solid #d9dee3;padding:3px 7px;white-space:nowrap;max-width:360px;overflow:hidden;text-overflow:ellipsis}.fv-sheet th{background:#f1f3f5;color:#59636b;font-weight:500;position:sticky;top:0}.fv-sheet tbody th{position:sticky;left:0;text-align:right}.fv-sheet td.n{text-align:right;font-variant-numeric:tabular-nums}.fv-tabs{display:flex;gap:2px;overflow-x:auto;background:#f1f3f5;border-top:1px solid #d9dee3}.fv-tabs button{border:0;background:none;padding:6px 14px;font-size:13px;color:#44515b;white-space:nowrap}.fv-tabs button.on{background:#fff;color:#217346;font-weight:600;box-shadow:inset 0 2px #217346}.fv-office{flex:1;position:relative;display:flex}.fv-over{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#080c1099}@media(max-width:900px){.fv-hide-sm{display:none}}.fv-pdf{flex:1;overflow:auto;display:flex;flex-direction:column;align-items:center;gap:12px;padding:0 12px 24px;background:#525659}.fv-page{background:#fff;box-shadow:0 2px 10px #0006;max-width:none}.fv-zoom{position:sticky;top:0;z-index:2;display:flex;gap:8px;align-items:center;padding:6px 10px;background:#0000008c;color:#fff;border-radius:0 0 8px 8px;font-size:13px}.fv-zoom .btn-ghost{color:#fff;font-size:16px;padding:0 8px}tr.sum.sum-top td{height:40px;position:static}tr.sum.sum-top td.box{border-top:0;border-bottom:2px solid var(--line-strong)}tr.sum.sum-top td:first-child{border-bottom:0}.collapsed-board{margin-bottom:4px}tr.sum.sum-collapsed td.box{border-top:1px solid var(--line)}tr.sum.sum-collapsed td.name{background:var(--row)!important;border:1px solid var(--line)!important;border-left:6px solid var(--gc, var(--primary))!important;padding:0}.collapsed-name{--gc: var(--primary);display:flex;gap:8px;align-items:baseline;width:100%;height:44px;border:0;background:none;padding:0 12px;text-align:left;cursor:pointer;overflow:hidden;white-space:nowrap;font:inherit}.collapsed-name b{font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis}.collapsed-name:hover{background:var(--surface-2)}
