:root{--bg:#f6f7f9;--surface:#fff;--surface-2:#f1f2f5;--border:#e2e5ea;--border-strong:#cdd2da;--text:#1c2330;--muted:#667085;--primary:#c51f47;--primary-hover:#a3183a;--primary-strong:#c51f47;--primary-strong-hover:#a3183a;--primary-soft:#fbeaee;--danger:#c9372c;--ok:#1f845a;--hover:#f4f5f7;--row-hover:#fafafc;--line:#eef0f3;--column:#eceef2;--faint:#a0a7b4;--overlay:#0000000f;--chip-bg:#ffffffb3;--ghost-bg:#ffffff80;--danger-soft:#fde7e5;--danger-line:#f3c4bf;--info-bg:#e3edfd;--info-text:#12428f;--hold-bg:#fff4d6;--hold-bg-hover:#ffe9a8;--hold-text:#8a5a00;--summary:#d5d9e0;--summary-fill:#8c95a6;--backdrop:#10182873;--auth-bg:linear-gradient(135deg, #fbeaee 0%, #f6f7f9 55%, #f3f4f6 100%);--st-todo:#5b6475;--st-todo-bg:#eef0f4;--st-prog:#1d63d8;--st-prog-bg:#e3edfd;--st-over:#c9372c;--st-over-bg:#fde7e5;--st-done:#1f845a;--st-done-bg:#dff5ea;--star:#e2a500;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--radius:10px;--shadow-sm:0 1px 2px #1018280f, 0 1px 3px #10182814;--shadow-lg:0 20px 40px -12px #10182840;color:var(--text);-webkit-font-smoothing:antialiased;font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.45}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2,h3,h4{margin:0;line-height:1.25}h1{font-size:22px;font-weight:700}h2{font-size:17px;font-weight:650}h3{font-size:14px;font-weight:650}h4{align-items:center;gap:6px;margin-bottom:8px;font-size:13px;font-weight:650;display:flex}a{color:var(--primary);text-decoration:none}button{font:inherit;cursor:pointer;color:inherit}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;min-width:0;padding:8px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px;border-color:#0000}textarea{resize:vertical;width:100%}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:12.5px}.row{align-items:center;display:flex}.row.gap{gap:8px}.row.center{align-items:center}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.grow{flex:1;min-width:0}.stack{flex-direction:column;gap:14px;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.grid2.tight{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.pad{padding:12px}.danger{color:var(--danger)}.loading{text-align:center;color:var(--muted);padding:48px}.loading.full{place-items:center;min-height:100vh;display:grid}.empty{text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius);padding:32px}.tag{background:var(--surface-2);color:var(--muted);border-radius:99px;padding:2px 8px;font-size:11.5px;font-weight:600;display:inline-block}.notice{word-break:break-word;border-radius:8px;padding:10px 12px;font-size:13px}.notice.ok{background:var(--st-done-bg);color:var(--ok-text,#135c3e)}.notice.err{background:var(--danger-soft);color:var(--err-text,#8f2219)}.btn{border:1px solid var(--border-strong);background:var(--surface);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-weight:550;transition:background .15s,border-color .15s;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--primary-strong);border-color:var(--primary-strong);color:#fff}.btn.primary:hover{background:var(--primary-hover)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2)}.btn.small{padding:5px 10px;font-size:13px}.btn.full{width:100%}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger-ghost{color:var(--danger);border-color:var(--danger-line);background:var(--surface)}.btn.danger-ghost:hover{background:var(--danger-soft)}.icon-btn{width:34px;height:34px;color:var(--muted);background:0 0;border:none;border-radius:8px;flex-shrink:0;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn.tiny{width:24px;height:24px}.link{color:var(--primary);background:0 0;border:none;padding:0;font-weight:550}.link:hover{text-decoration:underline}.avatar{color:#fff;letter-spacing:.02em;border-radius:50%;flex-shrink:0;place-items:center;font-weight:650;display:inline-grid}.avatar.more{background:var(--surface-2);color:var(--muted)}.avatar.ghost{background:var(--surface-2);width:32px;height:32px;color:var(--muted)}.avatar-stack{display:inline-flex}.avatar-stack .avatar{box-shadow:0 0 0 2px var(--surface)}.avatar-stack .avatar+.avatar{margin-left:-6px}.pill{white-space:nowrap;border-radius:99px;align-items:center;gap:6px;padding:3px 10px;font-size:12.5px;font-weight:600;display:inline-flex}.pill.small{gap:5px;padding:1px 8px;font-size:11.5px}.dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.label-bars{gap:4px;margin-bottom:6px;display:flex}.label-bar{border-radius:99px;width:36px;height:7px;display:inline-block}.label-chip{color:#fff;text-shadow:0 1px 1px #00000026;border-radius:6px;padding:3px 10px;font-size:12px;font-weight:600}.label-dot{border-radius:4px;width:14px;height:14px;display:inline-block}.chips{flex-wrap:wrap;gap:6px;display:flex}.auth-wrap{background:var(--auth-bg);place-items:center;min-height:100vh;padding:16px;display:grid}.auth-card{background:var(--surface);width:100%;max-width:400px;box-shadow:var(--shadow-lg);border-radius:16px;flex-direction:column;gap:16px;padding:32px;display:flex}.auth-links{flex-wrap:wrap;justify-content:center;gap:8px 16px;font-size:13px;display:flex}.brand{color:var(--text);align-items:center;gap:8px;font-size:16px;font-weight:750;display:inline-flex}.brand svg{color:var(--primary)}.brand.big{font-size:18px}.field{flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.field input,.field select,.field textarea{font-weight:400}.check{align-items:center;gap:8px;font-size:13px;display:flex}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:30;justify-content:space-between;align-items:center;height:56px;padding:0 16px;display:flex;position:sticky;top:0}main{flex-direction:column;flex:1;min-height:0;display:flex}.user-menu{position:relative}.user-btn{background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:4px 8px;display:flex}.user-btn:hover{background:var(--surface-2)}.user-name{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-weight:550;overflow:hidden}.menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:40;min-width:220px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.menu-info{border-bottom:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:6px;padding:8px 10px 10px;display:flex}.menu button{text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;width:100%;padding:8px 10px;display:flex}.menu button:hover{background:var(--surface-2)}.page{width:100%;max-width:1200px;margin:0 auto;padding:28px 16px 48px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head p{margin:4px 0 0}.section-head{justify-content:space-between;align-items:center;margin:36px 0 14px;display:flex}.section-head h2{align-items:center;gap:8px;display:flex}.project-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.project-card{background:var(--surface);border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow-sm);border-radius:12px;flex-direction:column;gap:6px;padding:18px 18px 16px;transition:transform .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}a.project-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px -8px #10182833}.project-card .swatch{border-radius:0;width:auto;height:5px;position:absolute;top:0;left:0;right:0}.project-card.template{gap:12px}.project-card-link{color:var(--text);flex-direction:column;gap:6px;display:flex}.project-name{font-size:15px;font-weight:650}.swatch{border-radius:4px;flex-shrink:0;width:14px;height:14px;display:inline-block}.swatch.lg{border-radius:8px;width:28px;height:28px}.progress{background:var(--surface-2);border-radius:99px;height:6px;margin:8px 0 4px;overflow:hidden}.progress span{background:var(--ok);border-radius:99px;height:100%;transition:width .3s;display:block}.progress.thin{height:4px;margin:0 0 8px}.overdue-count{color:var(--danger);font-weight:600}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch-btn{border:2px solid #0000;border-radius:7px;width:26px;height:26px;padding:0;box-shadow:inset 0 0 0 1px #00000014}.swatch-btn.on{border-color:var(--text);box-shadow:inset 0 0 0 2px #fff}.project-page{flex-direction:column;flex:1;height:calc(100vh - 56px);min-height:0;display:flex}.project-head{background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.project-title{font-size:19px}.people-btn{background:0 0;border:none;align-items:center;gap:10px;padding:2px;display:flex}.toolbar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:0 16px;display:flex}.tabs{gap:2px;display:flex;overflow-x:auto}.tab{color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:12px 12px 10px;font-weight:550;display:inline-flex}.tab:hover{color:var(--text)}.tab.on{color:var(--primary);border-bottom-color:var(--primary)}.filters{flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;display:flex}.filters select{max-width:160px;padding:6px 8px;font-size:13px}.search{border:1px solid var(--border-strong);background:var(--surface);color:var(--muted);border-radius:8px;align-items:center;gap:6px;padding:0 8px;display:flex}.search input{border:none;width:150px;padding:6px 0;font-size:13px}.search input:focus{outline:none}.search:focus-within{outline:2px solid var(--primary);outline-offset:-1px;border-color:#0000}.view-area{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.board{align-items:flex-start;gap:12px;width:max-content;min-height:100%;padding:16px;display:flex}.column{background:var(--column);border-radius:12px;flex-direction:column;flex-shrink:0;width:290px;max-height:calc(100vh - 200px);display:flex}.column-head{justify-content:space-between;align-items:center;gap:8px;padding:12px 12px 8px;display:flex}.column-title{cursor:default;flex:1;font-size:14px}.count{color:var(--muted);background:var(--chip-bg);border-radius:99px;padding:1px 8px;font-size:12px;font-weight:600}.inline-input{flex:1;padding:4px 8px;font-weight:650}.card-list{border-radius:8px;flex:1;min-height:12px;padding:2px 8px 4px;transition:background .15s;overflow-y:auto}.card-list.over{background:#c51f4714}.card{background:var(--surface);box-shadow:var(--shadow-sm);cursor:pointer;border:1px solid #0000;border-radius:9px;margin-bottom:8px;padding:10px 12px}.card:hover{border-color:var(--border-strong)}.card.dragging{box-shadow:var(--shadow-lg);transform:rotate(1.5deg)}.card-title{word-break:break-word;margin-bottom:8px;font-weight:550}.card-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.meta{color:var(--muted);align-items:center;gap:3px;font-size:12px;display:inline-flex}.meta.danger{color:var(--danger);font-weight:600}.meta.ok{color:var(--ok);font-weight:600}.meta.inline{margin-left:8px}.add-card{color:var(--muted);text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;margin:0 8px 8px;padding:8px;font-weight:550;display:flex}.add-card:hover{background:var(--overlay);color:var(--text)}.add-form{flex-direction:column;gap:8px;padding:0 8px 8px;display:flex}.add-form textarea{min-height:60px}.add-stage{border:1px dashed var(--border-strong);background:var(--ghost-bg);width:290px;color:var(--muted);border-radius:12px;flex-shrink:0;align-items:center;gap:6px;padding:12px;font-weight:550;display:flex}.add-stage:hover{background:var(--surface);color:var(--text)}.add-stage-form{gap:8px;padding:12px}.table-wrap{padding:16px;overflow:auto}.task-table{border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;min-width:1180px}.task-table td:first-child{min-width:260px}.task-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--border);background:var(--surface-2);z-index:1;padding:0;font-size:12px;font-weight:650;position:sticky;top:0}.task-table th:first-child{border-top-left-radius:12px}.task-table th:last-child{border-top-right-radius:12px}.th-btn{width:100%;font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;background:0 0;border:none;align-items:center;gap:4px;padding:10px 12px;display:flex}.task-table th:not(:has(button)){padding:10px 12px}.task-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:8px 12px}.task-table tr:last-child td{border-bottom:none}.task-table tr:hover td{background:var(--row-hover)}.task-table tr.done .cell-title{color:var(--muted);text-decoration:line-through}.cell-title{text-align:left;background:0 0;border:none;padding:0;font-weight:550}.cell-title:hover{color:var(--primary)}.date-cell{background:0 0;border-color:#0000;padding:4px 6px;font-size:13px}.date-cell:hover{border-color:var(--border-strong);background:var(--surface)}td.danger .date-cell{color:var(--danger);font-weight:600}.status-select{border-radius:99px;align-items:center;gap:6px;padding:0 4px 0 0;font-size:12.5px;font-weight:600;display:inline-flex;position:relative}.status-select select{color:inherit;cursor:pointer;background:0 0;border:none;border-radius:99px;padding:4px 6px 4px 10px;font-size:12.5px;font-weight:600}.overdue-flag{background:var(--danger);color:#fff;border-radius:99px;margin-right:4px;padding:1px 6px;font-size:11px}.calendar-layout{grid-template-columns:1fr 260px;align-items:start;gap:16px;padding:16px;display:grid}.calendar{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:10px;min-width:0;padding:14px;display:flex}.cal-head{justify-content:space-between;align-items:center;display:flex}.cal-head h2{text-align:center;min-width:160px}.cal-grid{border-top:1px solid var(--border);border-left:1px solid var(--border);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-wd{color:var(--muted);border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface-2);padding:6px 8px;font-size:12px;font-weight:650}.cal-day{border-right:1px solid var(--border);border-bottom:1px solid var(--border);flex-direction:column;gap:4px;min-width:0;min-height:110px;padding:4px;display:flex}.cal-day.other{background:var(--row-hover)}.cal-day.other .cal-num{color:var(--faint)}.cal-day.today .cal-num{background:var(--primary-strong);color:#fff}.cal-day.over{background:var(--primary-soft)}.cal-num{border-radius:50%;place-items:center;width:24px;height:24px;font-size:12px;font-weight:600;display:grid}.cal-items{flex-direction:column;gap:3px;min-width:0;display:flex}.cal-item{border:1px solid var(--border);background:var(--surface);text-align:left;border-left:3px solid;border-radius:5px;align-items:center;gap:5px;min-width:0;padding:3px 6px;font-size:12px;display:flex}.cal-item:hover{background:var(--surface-2)}.cal-item.done .cal-item-title{color:var(--muted);text-decoration:line-through}.cal-item[draggable=true]{cursor:grab}.cal-item-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.unscheduled{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:8px;max-height:calc(100vh - 220px);padding:14px;display:flex;position:sticky;top:16px;overflow:auto}.unscheduled h3{align-items:center;gap:8px;display:flex}.unscheduled .count{background:var(--surface-2)}.gantt-wrap{flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px 16px 16px;display:flex}.gantt-bar{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.seg{background:var(--surface-2);border-radius:8px;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--muted);background:0 0;border:none;border-radius:6px;padding:5px 12px;font-size:13px;font-weight:550}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.seg.wide{margin-bottom:16px;display:flex}.seg.wide button{flex:1}.legend{color:var(--muted);flex-wrap:wrap;gap:12px;font-size:12.5px;display:flex}.legend span{align-items:center;gap:5px;display:inline-flex}.gantt{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex:1;position:relative;overflow:auto}.g-header{z-index:5;background:var(--surface);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.g-name{z-index:3;background:var(--surface);border:none;border-right:1px solid var(--border);text-align:left;flex-shrink:0;align-items:center;gap:6px;height:100%;padding:0 12px;display:flex;position:sticky;left:0}.g-corner{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);z-index:6;font-size:12px;font-weight:650}.g-timeline-head{flex-shrink:0;position:relative}.g-months{border-bottom:1px solid var(--border);height:26px;position:relative}.g-month{border-left:1px solid var(--border);white-space:nowrap;height:100%;padding:4px 8px;font-size:12px;font-weight:650;position:absolute;top:0;overflow:hidden}.g-ticks{height:26px;position:relative}.g-tick{height:100%;color:var(--muted);border-left:1px solid var(--border);white-space:nowrap;text-align:center;padding:5px 4px;font-size:11px;position:absolute;top:0}.g-tick.weekend{background:var(--row-hover)}.g-body{position:relative}.g-grid{pointer-events:none;position:absolute;top:0;bottom:0}.g-line{border-left:1px solid var(--line);position:absolute;top:0;bottom:0}.g-weekend{background:var(--row-hover);position:absolute;top:0;bottom:0}.g-today{border-left:2px solid var(--danger);z-index:2;position:absolute;top:0;bottom:0}.g-today span{color:var(--danger);background:var(--surface);border-radius:4px;padding:0 4px;font-size:10.5px;font-weight:700;position:absolute;top:2px;left:4px}.g-row{border-bottom:1px solid var(--line);display:flex;position:relative}.g-row:hover .g-name,.g-row:hover .g-track{background-color:#c51f4708}.g-stage .g-name{background:var(--row-hover);font-size:13px}.g-stage{background:var(--row-hover)}.g-name.task{padding-left:28px;font-size:13px}.g-name.task:hover .g-task-title{color:var(--primary)}.g-task-title{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.g-task-title.done{color:var(--muted);text-decoration:line-through}.g-track{flex-shrink:0;position:relative}.g-track.schedulable{cursor:copy}.g-track.schedulable:hover{background:repeating-linear-gradient(45deg,#0000,#0000 6px,#c51f470d 6px 12px)}.g-summary{background:var(--summary);border-radius:99px;height:8px;position:absolute;top:14px;overflow:hidden}.g-summary span{background:var(--summary-fill);height:100%;display:block}.g-task-bar{color:#fff;z-index:1;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;height:22px;font-size:11.5px;font-weight:600;display:flex;position:absolute;top:7px;overflow:hidden;box-shadow:0 1px 2px #00000026}.g-task-bar.editable{cursor:grab}.g-task-bar.dragging{cursor:grabbing;opacity:.85;box-shadow:var(--shadow-lg);z-index:4}.g-bar-label{white-space:nowrap;text-overflow:ellipsis;pointer-events:none;padding:0 10px;overflow:hidden}.g-handle{cursor:ew-resize;width:8px;position:absolute;top:0;bottom:0}.g-handle.l{left:0}.g-handle.r{right:0}.g-handle:hover{background:#ffffff59}.g-outside-label{color:var(--muted);white-space:nowrap;pointer-events:none;font-size:11.5px;position:absolute;top:9px}.modal-backdrop{background:var(--backdrop);z-index:50;justify-content:center;align-items:flex-start;padding:6vh 16px 16px;animation:.15s fade;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);width:100%;max-width:560px;box-shadow:var(--shadow-lg);border-radius:14px;animation:.18s rise}.modal.wide{max-width:920px}.modal-head{justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 8px;display:flex}.modal-title{flex:1;min-width:0;font-size:18px;font-weight:700}.modal-body{padding:8px 20px 20px}.modal-foot{border-top:1px solid var(--border);padding:12px 20px}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.title-input{border-color:#0000;width:100%;margin-left:-8px;padding:4px 8px;font-size:18px;font-weight:700}.title-input:hover{border-color:var(--border-strong)}.task-layout{grid-template-columns:1fr 260px;gap:24px;display:grid}.task-main{flex-direction:column;gap:20px;min-width:0;display:flex}.task-side{flex-direction:column;gap:16px;display:flex}.side-field{flex-direction:column;gap:6px;display:flex}.side-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:5px;font-size:12px;font-weight:650;display:flex}.task-side input[type=date],.task-side select{width:100%;min-width:0}.task-side input[type=date]{padding:8px 6px;font-size:13px}.pick-list{flex-direction:column;gap:2px;max-height:220px;display:flex;overflow-y:auto}.pick{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:5px 6px;font-size:13px;display:flex}.pick:hover{background:var(--surface-2)}.pick.on{background:var(--primary-soft)}.pick input{margin:0}.desc{min-height:90px}.desc-read{white-space:pre-wrap;margin:0}.checklist{margin:0 0 8px;padding:0;list-style:none}.checklist li{border-radius:6px;align-items:center;gap:6px;padding:4px 2px;display:flex}.checklist li:hover{background:var(--surface-2)}.checklist label{cursor:pointer;flex:1;align-items:center;gap:8px;display:flex}.checklist li.done span{color:var(--muted);text-decoration:line-through}.comment-form{align-items:flex-start;gap:10px;display:flex}.comments{flex-direction:column;gap:14px;margin:14px 0 0;padding:0;list-style:none;display:flex}.comments li{gap:10px;display:flex}.comment-head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.comment-body{background:var(--surface-2);white-space:pre-wrap;word-break:break-word;border-radius:0 10px 10px;margin-top:4px;padding:8px 12px}.invite-row{grid-template-columns:1fr auto auto;gap:8px;display:grid}.member-list{flex-direction:column;margin:16px 0 0;padding:0;list-style:none;display:flex}.member-list li{border-top:1px solid var(--border);align-items:center;gap:10px;padding:10px 0;display:flex}.member-list li select{padding:4px 8px;font-size:13px}.edit-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.edit-list li{align-items:center;gap:8px;display:flex}.edit-list li input{flex:1}.colour-pick{display:inline-flex;position:relative}.colour-pop{z-index:10;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:10px;grid-template-columns:repeat(5,26px);gap:6px;padding:8px;display:grid;position:absolute;top:32px;left:0}.danger-zone{border-top:1px solid var(--border);padding-top:16px}@media (width<=760px){.task-layout,.calendar-layout{grid-template-columns:1fr}.unscheduled{max-height:none;position:static}.cal-day{min-height:70px}.cal-item-title,.user-name{display:none}.invite-row,.grid2{grid-template-columns:1fr}.search input{width:110px}.column,.add-stage{width:260px}.project-page{height:auto;min-height:calc(100vh - 56px)}}.row.wrap{flex-wrap:wrap}.client-group{margin-bottom:28px}.client-group-head{border-bottom:1px solid var(--border);align-items:center;gap:12px;margin-bottom:12px;padding-bottom:8px;display:flex}.client-name-link{color:var(--text);align-items:center;gap:10px;display:flex}a.client-name-link:hover h2{color:var(--primary)}.client-badge{color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:14px;font-weight:700;display:inline-grid}.client-badge.lg{border-radius:12px;width:48px;height:48px;font-size:22px}.client-link{color:var(--primary);font-weight:550}.back-link{color:var(--muted);align-items:center;gap:6px;margin-bottom:14px;font-weight:550;display:inline-flex}.back-link:hover{color:var(--text)}.client-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}.panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;padding:16px}.panel-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.panel-head h2{font-size:15px}.summary-row{background:var(--surface-2);border-radius:8px;gap:24px;margin-bottom:12px;padding:10px 12px;display:flex}.summary-row strong{font-size:18px}.table-wrap.flush{padding:0}.task-table.compact{border-radius:10px;min-width:560px}.task-table.compact td:first-child{min-width:0}.task-table.compact .cell-title{color:var(--text);align-items:center;gap:8px;display:inline-flex}.contact-list,.link-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.contact-list li{border-top:1px solid var(--border);align-items:flex-start;gap:10px;padding:10px 0;display:flex}.contact-list li:first-child{border-top:none;padding-top:0}.contact-line{color:var(--muted);word-break:break-all;align-items:center;gap:5px;margin-top:2px;display:flex}.contact-line:hover{color:var(--primary)}.link-list li{align-items:center;gap:8px;padding:6px 0;display:flex}.link-list a{word-break:break-all;align-items:center;gap:4px;display:inline-flex}.desc-read a,.comment-body a{color:var(--primary);word-break:break-word;text-decoration:underline}.desc-read.editable{cursor:text;white-space:pre-wrap;border-radius:8px;margin:-8px -10px;padding:8px 10px}.desc-read.editable:hover{background:var(--surface-2)}.suggest{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip-btn{border:1px dashed var(--border-strong);background:var(--surface);border-radius:99px;padding:3px 10px;font-size:12.5px;font-weight:550}.chip-btn:hover{border-color:var(--primary);color:var(--primary)}.pending-assignee{color:var(--muted);cursor:default}.drop-zone{border:2px dashed var(--border-strong);color:var(--muted);text-align:center;cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:40px 16px;display:flex;position:relative}.drop-zone:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.drop-zone input{opacity:0;cursor:pointer;position:absolute;inset:0}.import-summary{background:var(--surface-2);border-radius:10px;flex-wrap:wrap;align-items:center;gap:20px;padding:14px 16px;display:flex}.import-summary>div:not(.statuses){flex-direction:column;display:flex}.import-summary strong{font-size:20px;line-height:1.1}.import-summary span{color:var(--muted);font-size:12px}.import-summary .statuses{flex-wrap:wrap;gap:6px;margin-left:auto;display:flex}.map-table{border-collapse:collapse;width:100%;font-weight:400}.map-table td{vertical-align:middle;padding:6px 8px 6px 0}.map-table td:first-child{word-break:break-all;width:160px}.map-table select,.map-table input{width:100%}.notice.info{background:var(--info-bg);color:var(--info-text);align-items:flex-start;gap:8px;display:flex}@media (width<=900px){.client-layout{grid-template-columns:1fr}}.client-logo{object-fit:contain;border:1px solid var(--border);background:#fff;border-radius:8px;flex-shrink:0;padding:2px}.colour-picker{flex-direction:column;gap:10px;display:flex}.colour-input{cursor:pointer;border-radius:8px;width:40px;height:34px;padding:2px}.hex-input{text-transform:uppercase;width:110px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.colour-pop{flex-direction:column;grid-template-columns:none;gap:10px;width:260px;display:flex}.colour-pop .swatches{grid-template-columns:repeat(5,26px);gap:6px;display:grid}.pending-assignee{min-width:0}.pending-assignee span:not(.avatar):not(.tag){text-overflow:ellipsis;overflow:hidden}.pick-list{overflow-x:hidden}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rule-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.rule-list li{border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.rule-list li.off{opacity:.6}.rule-text{background:var(--surface-2);border-radius:8px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.5}.switch{cursor:pointer;align-items:center;gap:8px;font-size:13px;font-weight:550;display:inline-flex}.switch input{opacity:0;width:0;height:0;position:absolute}.switch span{background:var(--border-strong);border-radius:99px;width:36px;height:20px;transition:background .15s;position:relative}.switch span:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.switch input:checked+span{background:var(--ok)}.switch input:checked+span:after{transform:translate(16px)}.switch input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}.rule-box{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:8px;padding:12px;display:flex}.rule-box h4{margin:0}.action-row{background:var(--surface-2);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 8px;display:flex}.action-name{min-width:150px;font-size:13px;font-weight:600}.action-row select{flex:1;min-width:140px}.rule-preview{background:var(--primary-soft);border-radius:8px;padding:10px 12px;font-size:13px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.howto summary{cursor:pointer;font-weight:600}.howto ol{margin:8px 0;padding-left:20px}.saved-select{max-width:170px;padding:5px 8px;font-size:13px}.brand-logo{color:var(--text);align-items:center;gap:10px;display:inline-flex}.brand-logo img{width:auto;height:24px;display:block}.brand-logo .brand-product{color:var(--primary);letter-spacing:.01em;border-left:1px solid var(--border-strong);padding-left:10px;font-size:15px;font-weight:600;line-height:1.2}.auth-brand{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.auth-brand img{width:auto;height:30px}.auth-brand .brand-product{color:var(--primary);font-size:15px;font-weight:600}h1,h2,h3,.project-name,.modal-title{letter-spacing:-.01em}@media (width<=520px){.brand-logo img{height:20px}.brand-logo .brand-product{font-size:13px}}.colour-mode{flex-direction:column;gap:4px;font-weight:400;display:flex}.colour-mode .check{cursor:pointer;border:1px solid #0000;border-radius:8px;padding:6px 8px}.colour-mode .check.on{border-color:var(--border-strong);background:var(--surface-2)}.field .colour-picker{font-weight:400}.backup-list{flex-direction:column;max-height:320px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.backup-list li{border-top:1px solid var(--border);align-items:center;gap:10px;padding:10px 0;display:flex}.due-cell{align-items:center;gap:2px;display:flex}.time-cell{width:92px}.cal-time{font-weight:600}.dashboard{flex-direction:column;gap:14px;margin-bottom:8px;display:flex}.tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.tile{text-align:left;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:12px;flex-direction:column;align-items:flex-start;gap:6px;padding:14px 16px;transition:border-color .15s,transform .15s;display:flex}.tile:hover{border-color:var(--border-strong);transform:translateY(-1px)}.tile.on{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.tile-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:flex}.tile-num{font-size:30px;font-weight:700;line-height:1}.tile.danger .tile-num{color:var(--st-over)}.tile.today .tile-num{color:var(--primary)}.tile.week .tile-num{color:var(--text)}.tile.inprog .tile-num{color:var(--st-prog)}.due-panel{padding-bottom:8px}.due-group+.due-group{margin-top:10px}.due-group-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);align-items:center;gap:6px;margin:6px 0 4px;font-size:12.5px;display:flex}.due-group-title.overdue{color:var(--st-over)}.due-group-title .count{background:var(--surface-2)}.due-list{margin:0;padding:0;list-style:none}.due-row{color:var(--text);border-radius:8px;grid-template-columns:10px minmax(0,1.4fr) minmax(0,1.6fr) 170px 54px;align-items:center;gap:10px;padding:8px 6px;display:grid}.due-row:hover{background:var(--surface-2)}.due-title{text-overflow:ellipsis;white-space:nowrap;font-weight:550;overflow:hidden}.due-where{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;display:flex;overflow:hidden}.due-where .swatch{border-radius:3px;width:10px;height:10px}.due-when{text-align:right;white-space:nowrap}.due-when.danger{color:var(--st-over);font-weight:600}.due-who{justify-content:flex-end;display:flex}.client-group.collapsed{margin-bottom:8px}.client-group.collapsed .client-group-head{margin-bottom:0}.client-group-head .icon-btn{margin-left:-8px}.client-name-link.plain{cursor:pointer;background:0 0;border:none;padding:0}.group-summary{cursor:pointer}.project-rows{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.project-row{color:var(--text);border-top:1px solid var(--border);grid-template-columns:12px minmax(0,1.4fr) 180px 110px minmax(0,1.6fr);align-items:center;gap:14px;padding:12px 16px;display:grid}.project-row:first-child{border-top:none}.project-row:hover{background:var(--row-hover)}.project-row .swatch{width:12px;height:12px}.project-row-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.project-row-progress{grid-template-columns:1fr auto;align-items:center;gap:8px;display:grid}.project-row-next{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width<=760px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.due-row{grid-template-columns:10px minmax(0,1fr) auto}.due-where,.due-who{display:none}.project-row{grid-template-columns:12px minmax(0,1fr) 90px}.project-row-overdue,.project-row-next{display:none}}.card.kbd-active{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft), var(--shadow-sm)}.quick-pop{z-index:60;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:12px;flex-direction:column;gap:10px;max-height:340px;padding:12px;animation:.12s rise;display:flex;position:fixed;overflow-y:auto}.quick-pop-head{justify-content:space-between;align-items:center;display:flex}kbd{border:1px solid var(--border-strong);background:var(--surface-2);text-align:center;min-width:20px;color:var(--text);white-space:nowrap;border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-family:inherit;font-size:11.5px;font-weight:600;display:inline-block}.kbd-btn{width:30px;height:30px}.keys-table{border-collapse:collapse;width:100%}.keys-table td{border-top:1px solid var(--border);padding:6px 4px;font-size:13.5px}.keys-table td:first-child{width:150px}.keys-table tr:first-child td{border-top:none}.card-title-row{align-items:flex-start;gap:0;margin-bottom:8px;display:flex}.card-title-row .card-title{margin-bottom:0}.card-title.done{color:var(--muted)}.done-tick{border:1.5px solid var(--border-strong);background:var(--surface);color:#0000;opacity:0;border-radius:50%;flex-shrink:0;place-items:center;width:0;height:18px;margin-top:2px;padding:0;transition:width .15s,margin .15s,opacity .15s,background .15s;display:inline-grid;overflow:hidden}.card:hover .done-tick,.card.kbd-active .done-tick,.done-tick:focus-visible,.done-tick.on{opacity:1;width:18px;margin-right:8px}.done-tick:hover{border-color:var(--ok);color:var(--ok)}.done-tick.on{background:var(--ok);border-color:var(--ok);color:#fff}.done-tick.static{cursor:default}.task-table .done-tick{opacity:.55;width:18px;margin-right:2px}.task-table tr:hover .done-tick,.task-table .done-tick.on{opacity:1}.tag.hold{background:var(--hold-bg);color:var(--hold-text);vertical-align:middle;border:none;margin-left:8px}button.tag.hold{cursor:pointer}button.tag.hold:hover{background:var(--hold-bg-hover)}.video-cover{aspect-ratio:16/9;background:#1f1f24;border-radius:9px 9px 0 0;margin:-10px -12px 10px;position:relative;overflow:hidden}.video-cover img{object-fit:cover;width:100%;height:100%;display:block}.video-cover.no-thumb{aspect-ratio:auto;background:linear-gradient(135deg,#2a2a31,#45454f);height:64px}.video-play{color:#fff;background:#0009;border-radius:50%;place-items:center;width:40px;height:40px;margin:auto;padding-left:2px;display:grid;position:absolute;inset:0}.video-source{color:#fff;background:#0000008c;border-radius:99px;padding:1px 7px;font-size:11px;font-weight:600;position:absolute;bottom:6px;left:8px}.video-embeds{gap:14px;margin-top:12px;display:grid}.video-embed{margin:0}.video-frame{aspect-ratio:16/9;background:#000;border-radius:10px;position:relative;overflow:hidden}.video-frame iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.video-embed figcaption{align-items:center;gap:4px;margin-top:6px;display:flex}.video-embed figcaption a{align-items:center;gap:3px;display:inline-flex}.google-btn{justify-content:center;align-items:center;gap:10px;margin-bottom:4px;font-weight:600;display:flex}.auth-or{color:var(--muted);align-items:center;gap:10px;margin:8px 0;font-size:12px;display:flex}.auth-or:before,.auth-or:after{content:"";background:var(--border);flex:1;height:1px}.google-btn.subtle{color:var(--muted);margin:0;font-size:14px;font-weight:500}.rich-wrap{border-radius:8px}.rich-wrap.editable{cursor:text;margin:-6px -8px;padding:6px 8px}.rich-wrap.editable:hover{background:var(--hover)}.rich-wrap.editing{border:1px solid var(--border-strong,#c9c9d1);padding:0;overflow:hidden}.rich-wrap.editing .rich{min-height:120px;padding:10px 12px}.rich-empty{padding:2px 0}.rich{word-break:break-word;outline:none;line-height:1.55}.rich>:first-child{margin-top:0}.rich>:last-child{margin-bottom:0}.rich p{margin:0 0 8px}.rich h2{margin:14px 0 6px;font-size:17px}.rich h3{margin:12px 0 4px;font-size:15px}.rich ul,.rich ol{margin:0 0 8px;padding-left:22px}.rich li>p{margin:0 0 2px}.rich blockquote{border-left:3px solid var(--border-strong,#c9c9d1);color:var(--muted);margin:0 0 8px;padding:2px 12px}.rich code{background:var(--surface-2,#f1f1f4);border-radius:4px;padding:1px 5px;font-size:.92em}.rich pre{background:var(--surface-2,#f1f1f4);border-radius:6px;padding:10px 12px;overflow-x:auto}.rich pre code{background:0 0;padding:0}.rich hr{border:0;border-top:1px solid var(--border,#e3e3e8);margin:12px 0}.rich a{color:var(--primary,#c51f47);text-decoration:underline}.rich p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--muted);float:left;pointer-events:none;height:0}.rich-toolbar{border-bottom:1px solid var(--border,#e3e3e8);background:var(--surface-2,#f7f7f9);flex-wrap:wrap;align-items:center;gap:2px;padding:5px 6px;display:flex}.tb-btn{width:30px;height:30px;color:var(--text,#1d1d24);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:inline-grid}.tb-btn:hover:not(:disabled){background:var(--overlay)}.tb-btn.on{background:var(--primary-soft,#fbeaee);color:var(--primary,#c51f47)}.tb-btn:disabled{opacity:.35;cursor:default}.tb-btn:focus-visible{outline:2px solid var(--primary,#c51f47);outline-offset:1px}.tb-sep{background:var(--border,#e3e3e8);width:1px;height:18px;margin:0 4px}.rich-actions{border-top:1px solid var(--border,#e3e3e8);align-items:center;padding:8px 10px}img.avatar.photo{object-fit:cover;background:var(--surface);padding:0;display:inline-block}.photo-row{align-items:center;gap:16px;display:flex}.stack.tight{gap:6px}.star-btn{width:30px;height:30px;color:var(--faint);cursor:pointer;background:0 0;border:0;border-radius:8px;flex-shrink:0;place-items:center;display:inline-grid}.star-btn:hover{background:var(--overlay);color:var(--star)}.star-btn.on{color:var(--star)}.star-btn:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.project-row-wrap{border-top:1px solid var(--border);position:relative}.project-row-wrap:first-child{border-top:none}.project-row-wrap .project-row{border-top:none;padding-right:52px}.row-star{opacity:0;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.project-row-wrap:hover .row-star,.row-star.on,.row-star:focus-visible{opacity:1}.project-card-wrap,.starred-card-wrap{display:flex;position:relative}.project-card-wrap>.project-card{flex:1}.card-star{opacity:0;position:absolute;top:8px;right:8px}.project-card-wrap:hover .card-star,.starred-card-wrap:hover .card-star,.card-star.on,.card-star:focus-visible{opacity:1}.starred{margin-bottom:20px}.starred-title{color:var(--text);align-items:center;gap:6px;margin:0 0 10px;font-size:15px;display:flex}.starred-title svg{color:var(--star)}.starred-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.starred-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);color:var(--text);box-shadow:var(--shadow-sm);border-radius:10px;flex-direction:column;flex:1;gap:2px;padding:12px 40px 12px 14px;transition:box-shadow .15s,transform .15s;display:flex}.starred-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px)}.starred-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.starred-client{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.starred-meta{justify-content:space-between;gap:8px;display:flex}@media (hover:none){.row-star,.card-star{opacity:1}}.vc{position:relative}.vc-btn{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.vc-btn.active{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.vc-badge{background:var(--primary-strong);color:#fff;border-radius:99px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:600;display:inline-grid}.vc-pop{z-index:50;background:var(--surface);border:1px solid var(--border);width:290px;max-height:min(70vh,560px);box-shadow:var(--shadow-lg);border-radius:12px;flex-direction:column;gap:10px;padding:12px;display:flex;position:absolute;top:calc(100% + 6px);overflow-y:auto}.vc-pop.left{left:0}.vc-pop.right{right:0}.vc-head{justify-content:space-between;align-items:center;display:flex}.vc-section{border:0;flex-direction:column;gap:6px;margin:0;padding:0;display:flex}.vc-section legend{width:100%;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;margin-bottom:4px;padding:0;font-size:12px;font-weight:600;display:flex}.vc-section select{width:100%}.vc-list{flex-direction:column;gap:2px;max-height:190px;display:flex;overflow-y:auto}.vc-check{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:4px 6px;font-size:14px;display:flex}.vc-check:hover{background:var(--hover)}.vc-toggle{font-weight:500}.vc-option{text-align:left;cursor:pointer;font:inherit;color:var(--text);background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:6px;font-size:14px;display:flex}.vc-option:hover{background:var(--hover)}.vc-option.on{color:var(--primary);font-weight:600}.vc-tick{place-items:center;width:16px;display:inline-grid}.vc-dir{align-self:flex-start}.vc-range input{flex:1;min-width:0}.view-note{background:var(--primary-soft);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:6px 16px;display:flex}.task-table .group-row td{background:var(--hover);padding-top:10px;padding-bottom:8px;font-weight:600}.vc-section select{max-width:none}button.label-bars{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;flex-wrap:wrap;margin:-2px 0 4px;padding:2px 0}button.label-bars:hover .label-bar{filter:brightness(.9);height:9px}button.label-bars:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button.label-bars.expanded{gap:4px}button.label-bars.expanded .label-chip{text-shadow:none;padding:2px 8px;font-size:11.5px;line-height:1.4}.label-bar{transition:height .1s}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111418;--surface:#1b1f26;--surface-2:#232832;--border:#2e343f;--border-strong:#404855;--text:#e6e9ef;--muted:#9ca5b4;--primary:#f2728f;--primary-hover:#f68fa7;--primary-soft:#f2728f24;--primary-strong:#c51f47;--primary-strong-hover:#d6305a;--danger:#f07a6a;--ok:#3fb984;--hover:#262c36;--row-hover:#20252d;--line:#262c35;--column:#161a20;--faint:#6e7786;--overlay:#ffffff12;--chip-bg:#ffffff14;--ghost-bg:#ffffff08;--danger-soft:#f07a6a26;--danger-line:#6e3129;--info-bg:#6ea4ff24;--info-text:#a9c8ff;--hold-bg:#f2c14e26;--hold-bg-hover:#f2c14e40;--hold-text:#f2c14e;--summary:#3a414d;--summary-fill:#8b96a8;--backdrop:#0000009e;--auth-bg:linear-gradient(135deg, #2b1820 0%, #111418 55%, #0d0f12 100%);--st-todo:#aeb7c6;--st-todo-bg:#aeb7c621;--st-prog:#75a8ff;--st-prog-bg:#75a8ff26;--st-over:#ff8070;--st-over-bg:#ff807026;--st-done:#4cc38a;--st-done-bg:#4cc38a26;--star:#f5be3a;--ok-text:#7fdbaf;--err-text:#ffb0a6;--shadow-sm:0 1px 2px #0006, 0 1px 3px #0000004d;--shadow-lg:0 20px 40px -12px #000000b3}:root[data-theme=dark] .btn.primary:hover{background:var(--primary-strong-hover);border-color:var(--primary-strong-hover)}:root[data-theme=dark] .client-logo{background:#fff}:root[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator{filter:invert();opacity:.75}:root[data-theme=dark] input[type=time]::-webkit-calendar-picker-indicator{filter:invert();opacity:.75}:root[data-theme=dark] .label-bar,:root[data-theme=dark] .label-chip{box-shadow:inset 0 0 0 1px #ffffff0f}.theme-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;padding:6px 10px 8px;display:flex}.theme-row .seg button{padding:4px 8px}:root[data-theme=dark] .g-task-bar{color:#111418}.people-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.people-bar .search{min-width:260px}.people-list{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.person-row{border-top:1px solid var(--border);grid-template-columns:minmax(220px,1fr) minmax(0,2fr) auto;align-items:center;gap:16px;padding:14px 16px;display:grid}.person-row:first-child{border-top:none}.person-who{align-items:center;gap:12px;min-width:0;display:flex}.person-name{flex-direction:column;gap:2px;min-width:0;display:flex}.person-name>*{text-overflow:ellipsis;overflow:hidden}.person-projects{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.proj-chip{background:var(--surface-2);border-radius:99px;align-items:center;gap:2px;max-width:100%;padding:2px 4px 2px 10px;font-size:12.5px;display:inline-flex}.proj-chip a{color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.proj-chip a:hover{text-decoration:underline}.proj-chip button{width:20px;height:20px;color:var(--muted);background:0 0;border:0;border-radius:50%;place-items:center;display:inline-grid}.proj-chip button:hover{background:var(--danger-soft);color:var(--danger)}.person-actions{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.danger-link{color:var(--danger)!important}.avatar.invite{background:var(--surface-2);color:var(--muted)}.tag.staff{background:var(--primary-soft);color:var(--primary);border:none}@media (width<=860px){.person-row{grid-template-columns:1fr}.person-actions{flex-direction:row;align-items:center}}.people-bar .search input{width:100%}.cal-agenda{border-top:1px solid var(--border);flex-direction:column;display:flex}.agenda-day{border-bottom:1px solid var(--border);grid-template-columns:48px 1fr;gap:10px;padding:10px 0;display:grid}.agenda-day.past{opacity:.7}.agenda-date{flex-direction:column;align-items:center;line-height:1.1;display:flex}.agenda-wd{text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.agenda-num{font-size:20px;font-weight:700}.agenda-day.today .agenda-num{color:var(--primary)}.cal-agenda .cal-item-title{white-space:normal;display:block!important}@media (hover:none){.done-tick{opacity:1;width:18px;margin-right:8px}}@media (width<=760px){.page{padding:18px 12px 40px}.page-head{align-items:flex-start}.page-head .btn{padding:7px 10px;font-size:13px}.project-head{padding:12px}.project-title{font-size:19px}.toolbar{padding:0 12px}.tab{padding:12px 8px 10px;font-size:13.5px}.tabs{scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.board{scroll-snap-type:x mandatory;gap:10px;padding:12px}.column,.add-stage{scroll-snap-align:start;width:min(290px,100vw - 48px)}.view-area{scroll-snap-type:x proximity}.table-wrap{padding:8px}.task-table td:first-child{background:var(--surface);z-index:1;min-width:190px;box-shadow:1px 0 0 var(--border);position:sticky;left:0}.task-table th:first-child{z-index:2;position:sticky;left:0}.task-table tr:hover td:first-child{background:var(--row-hover)}.g-hint,.g-name .avatar-stack{display:none}.gantt-bar{flex-wrap:wrap;gap:8px}.view-note{padding:6px 12px}.vc-pop{width:min(290px,100vw - 24px)}}@media (width<=640px){.modal-backdrop{align-items:stretch;padding:0}.modal{border-radius:0;min-height:100%;animation:none;max-width:none!important}.modal-head{background:var(--surface);z-index:2;position:sticky;top:0}.filters{gap:6px}.filters .search{flex:140px}.filters .search input{width:100%}.kbd-btn{display:none}.tiles{gap:8px}.due-row{grid-template-columns:10px 1fr auto!important}.people-bar .seg{width:100%;overflow-x:auto}.people-bar .search{width:100%;min-width:0}}@media (width<=760px){.task-side{border-bottom:1px solid var(--border);order:-1;grid-template-columns:1fr 1fr;gap:12px;padding-bottom:16px;display:grid}.task-side>*{min-width:0}}@media (width<=900px){.client-layout{grid-template-columns:minmax(0,1fr)}.client-layout>*{min-width:0}}
