.ai-chat{position:fixed;top:0;right:0;bottom:0;width:min(420px,100%);background:var(--panel);border-left:1px solid var(--border-strong);box-shadow:-6px 0 24px #0000001f;z-index:41;display:flex;flex-direction:column;font-size:13px}.ai-unavailable{margin:0;padding:12px 18px;background:var(--amber-bg);color:var(--amber);font-size:12px;border-bottom:1px solid var(--border)}.ai-body{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:10px}.ai-msg{max-width:88%;padding:9px 12px;border-radius:10px;font-size:12.5px;line-height:1.5;white-space:pre-wrap}.ai-msg.bot{background:var(--g-100);border:1px solid var(--border);align-self:flex-start}.ai-msg.user{background:var(--g-800);color:#fff;margin-left:auto}.ai-msg.pending{color:var(--text-3);font-style:italic}.ai-proposal{margin-top:8px;padding:12px;border:1px solid var(--border-strong);border-left:3px solid var(--g-800);border-radius:8px;background:var(--panel)}.ai-proposal-text{white-space:pre-line;margin:0 0 4px;font-size:12.5px;font-weight:600;line-height:1.45}.ai-proposal-note{margin:0 0 10px;font-size:11px;color:var(--text-3)}.ai-proposal-actions{display:flex;gap:8px}.ai-proposal-actions button,.ai-foot button{font:inherit;font-size:12px;font-weight:600;padding:6px 12px;border:1px solid var(--border-strong);border-radius:6px;background:#fff;cursor:pointer}.ai-proposal-actions .primary,.ai-foot .primary{background:var(--g-800);border-color:var(--g-800);color:#fff}.ai-foot{display:flex;gap:8px;padding:12px 18px;border-top:1px solid var(--border)}.ai-foot input{flex:1;min-width:0;font:inherit;font-size:12.5px;padding:8px 10px;border:1px solid var(--border-strong);border-radius:6px}.ai-fab{position:fixed;right:20px;bottom:20px;width:46px;height:46px;border-radius:50%;border:1px solid var(--g-800);background:var(--g-800);color:#fff;font-size:19px;cursor:pointer;box-shadow:0 4px 14px #00000038;z-index:30}.ai-fab:hover{background:var(--text)}.ai-fab{right:24px;bottom:24px;width:56px;height:56px;display:inline-flex;align-items:center;justify-content:center;border:0;background:var(--ink-900);color:var(--accent-ai);box-shadow:var(--shadow-md)}.ai-fab:hover{background:var(--ink-600)}.ai-new{margin-right:8px;padding:5px 10px;border:1px solid var(--border-strong);border-radius:6px;background:var(--panel);color:var(--text-2);font:inherit;font-size:11.5px;cursor:pointer}.ai-new:hover:not(:disabled){color:var(--text);background:var(--g-100)}.ai-new:disabled{opacity:.45;cursor:default}.drawer.alerts-panel{width:min(520px,100%)}.drawer.alerts-panel .drawer-head{align-items:center;padding:20px 20px 18px 28px}.drawer.alerts-panel .drawer-head .icon-btn{border:1px solid var(--border-default);background:#fff}.drawer.alerts-panel .drawer-head .icon-btn:hover{background:var(--surface-subtle)}.alerts-body{flex:1;overflow-y:auto;display:flex;flex-direction:column}.alerts-empty{padding:64px 28px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;font-size:16px;color:var(--text-strong)}.alerts-empty p{margin:0}.alerts-empty-mark{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--success-bg);color:var(--success-fg)}.alert-item{display:flex;flex-direction:column;gap:8px;padding:22px 28px;border-bottom:1px solid var(--border-subtle)}.alert-item p{margin:0}.alert-kind{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--danger-fg)}.alert-main{font-size:16px;line-height:1.5;color:var(--text-strong);text-wrap:pretty}.alert-main strong{font-weight:600}.alert-meta{font-size:13px;color:var(--text-muted)}.alert-meta .code{font-weight:500}.alert-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:6px}.alert-see,.alert-resolve{height:36px;display:inline-flex;align-items:center;gap:8px;border-radius:999px;font-family:var(--font-sans);font-size:14px;font-weight:500;cursor:pointer}.alert-see{padding:0 18px;border:0;background:var(--ink-900);color:#fff}.alert-see:hover{background:var(--ink-600)}.alert-resolve{padding:0 16px;border:1px solid var(--border-default);background:#fff;color:var(--text-strong)}.alert-resolve:hover{background:var(--surface-subtle)}.alert-see:focus-visible,.alert-resolve:focus-visible{outline:2px solid var(--ink-900);outline-offset:2px}.alerts-search{padding:12px 28px;border-bottom:1px solid var(--border-subtle)}.alerts-search input{width:100%;height:44px;padding:0 14px;border:1px solid var(--border-default);border-radius:10px;background:#fff;font-family:var(--font-sans);font-size:15px;color:var(--text-strong);outline:none}.alerts-search input:focus-visible{border-color:var(--gray-300);box-shadow:var(--ring-focus)}.alerts-scope{flex-shrink:0;margin:0;padding:12px 28px;display:flex;align-items:center;gap:8px;background:var(--surface-subtle);font-size:14px;color:var(--text-body)}.alerts-scope>.msym{color:var(--text-muted)}.alerts-scope strong{font-weight:600;color:var(--text-strong)}.notif-bell{position:relative;width:34px;height:34px;border-radius:8px;border:1px solid rgba(255,255,255,.35);background:transparent;cursor:pointer;font-size:15px;line-height:1;color:#fff}.notif-bell:hover{background:#ffffff1f}.notif-badge{position:absolute;top:-5px;right:-5px;background:var(--red);color:#fff;font-size:9.5px;font-weight:700;border-radius:9px;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;padding:0 4px;border:1.5px solid var(--g-800)}.grid{display:flex;flex-direction:column;flex:1;min-height:0;background:var(--panel)}.grid-header,.row{display:grid;grid-template-columns:var(--row-header-width) 1fr;align-items:stretch}.grid-header{position:sticky;top:0;z-index:3;background:var(--panel);border-bottom:1px solid var(--border-strong);flex-shrink:0}.grid-body{flex:1;overflow-y:auto;min-height:0}.row-track{position:relative;display:grid;min-height:var(--row-height)}.day-head{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:6px 2px;font-size:10.5px;color:var(--text-2);border-left:1px solid var(--g-150);white-space:nowrap;overflow:hidden}.day-head.week-start{border-left:1px solid var(--border-strong)}.day-head.today{background:var(--g-150);color:var(--text);font-weight:700}.day-head.holiday{color:var(--text-3)}.day-head-tag{font-size:8.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3)}.row-label{display:flex;align-items:center;gap:8px;padding:4px 10px;border-right:1px solid var(--border);overflow:hidden;background:var(--panel)}.header-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3)}.avatar{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--g-150);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--g-700)}.identity{display:flex;flex-direction:column;min-width:0;line-height:1.25}.name{font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meta,.client{font-size:10px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-label{padding-left:26px;gap:6px}.identity.inline{flex-direction:row;align-items:baseline;gap:6px}.identity.inline .meta{flex-shrink:1}.project-link{flex:1;min-width:0;display:flex;align-items:baseline;gap:5px;padding:0;border:none;background:none;font:inherit;text-align:left;cursor:pointer;color:inherit}.project-link:hover .project,.project-link:focus-visible .project{text-decoration:underline}.project-link .dot{flex-shrink:0;color:var(--text-3)}.project-link .client{flex-shrink:0;overflow:visible;text-overflow:clip}.code-tag{flex-shrink:0;padding:1px 6px;border-radius:4px;background:var(--g-150);color:var(--text-3);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:9px;font-weight:700;letter-spacing:.02em;line-height:1.6;white-space:nowrap}.project{font-size:11.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resource-block{border-bottom:1px solid var(--border)}.summary-row{background:var(--panel);border-bottom:1px solid var(--g-200);cursor:pointer}.project-row{min-height:var(--row-height)}.day-cell,.track-cell{position:relative;border-left:1px solid var(--g-150);min-height:var(--row-height);background-clip:padding-box}.day-cell.week-start,.track-cell.week-start{border-left:1px solid var(--border-strong)}.day-cell.today,.track-cell.today{background-color:#00000009}.day-cell.absent,.track-cell.absent{background-image:repeating-linear-gradient(135deg,var(--g-200) 0,var(--g-200) 3px,transparent 3px,transparent 7px)}.resize-handle{flex-shrink:0;width:10px;align-self:stretch;display:flex;align-items:center;justify-content:center;cursor:ew-resize;touch-action:none;opacity:0;border-radius:3px 0 0 3px}.resize-handle.right{border-radius:0 3px 3px 0}.resize-handle .dots{display:flex;flex-direction:column;gap:1.5px}.resize-handle .dots span{display:block;width:2px;height:2px;border-radius:50%;background:var(--g-600)}.project-charges .grid-body{overflow:visible;position:relative;z-index:1}.row-menu-btn{flex-shrink:0;width:18px;height:22px;border:1px solid transparent;border-radius:5px;background:none;color:var(--text-3);cursor:pointer;font-size:13px;line-height:1;padding:0}.row-menu-btn:hover{background:var(--g-150);border-color:var(--border-strong);color:var(--text)}.row-actions-popover{position:fixed;background:#fff;border:1px solid var(--border-strong);border-radius:8px;box-shadow:0 6px 16px #00000024;z-index:45;display:flex;flex-direction:column;min-width:190px;max-height:320px;overflow-y:auto}.row-actions-item{text-align:left;padding:9px 12px;font:inherit;font-size:12px;color:var(--text);background:#fff;border:none;cursor:pointer}.row-actions-item:hover{background:var(--g-100)}.row-actions-item+.row-actions-item{border-top:1px solid var(--border)}.row-actions-item .muted{color:var(--text-3);font-weight:400}.notice-stack{position:fixed;right:16px;bottom:16px;z-index:50;display:flex;flex-direction:column;gap:8px;max-width:360px}.notice{padding:10px 14px;border-radius:8px;border:1px solid var(--border-strong);background:var(--panel);box-shadow:0 4px 14px #0000001f;font-size:12px;line-height:1.45;display:flex;gap:10px;align-items:flex-start}.notice.warning{border-color:var(--amber);background:var(--amber-bg);color:var(--amber)}.notice.error{border-color:var(--red);background:var(--red-bg);color:var(--red)}.notice button{border:none;background:none;font:inherit;cursor:pointer;color:inherit;opacity:.7;padding:0}.notice-hint{display:block;margin-top:3px;opacity:.85}.add-project-row{display:grid;grid-template-columns:var(--row-header-width) 1fr}.add-project-btn{margin:2px 0 4px 26px;padding:3px 8px;border:1px dashed var(--border-strong);border-radius:5px;background:none;font:inherit;font-size:10.5px;color:var(--text-3);cursor:pointer;justify-self:start}.add-project-btn:hover{border-color:var(--g-600);color:var(--text)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.toggle{width:15px;height:15px;border:1.4px solid var(--g-600);border-radius:3px;display:flex;align-items:center;justify-content:center;font:inherit;font-size:11px;line-height:1;color:var(--g-700);flex-shrink:0;-webkit-user-select:none;user-select:none;background:#fff;cursor:pointer;padding:0}.toggle:hover{background:var(--g-100);border-color:var(--g-800);color:var(--text)}.row-label.lvl-person{gap:7px}.row-label .row-menu-btn,.gantt-label .row-menu-btn,.cover-actions .row-menu-btn,.resource-card .row-menu-btn,.resource-card .card-action{margin-left:auto}.resource-card .card-action+.row-menu-btn{margin-left:4px}.data-table .cell-action .row-menu-btn{margin-left:auto;display:inline-flex;align-items:center;justify-content:center}.months-track{border-bottom:1px solid var(--g-150)}.month-head{display:flex;align-items:center;justify-content:center;padding:3px 4px;border-left:1px solid var(--border-strong);background:var(--g-100);font-size:10px;font-weight:700;text-transform:capitalize;letter-spacing:.02em;color:var(--text-3);white-space:nowrap;overflow:hidden}.months-label,.add-row{border-bottom:1px solid var(--g-150)}.add-row .row-label{border-right:1px solid var(--border)}.add-row .row-label{padding-left:26px}.charge-grid{--row-header-width: 340px;--row-height: 48px;background:#fff;color:var(--text-strong);font-family:var(--font-sans);font-size:14px;font-feature-settings:"tnum" 1;-webkit-font-smoothing:antialiased}.project-charges .charge-grid{--row-header-width: 240px}.charge-grid .grid-header{z-index:5;background:#fff;border-bottom:1px solid var(--border-default)}.charge-grid .row-label{gap:12px;padding:0 10px 0 16px;background:#fff;border-right:1px solid var(--border-default)}.charge-grid .header-label{height:48px;font-size:12px;font-weight:500;letter-spacing:.06em;color:var(--text-muted)}.charge-grid .months-label,.charge-grid .months-track{height:40px;border-bottom:0}.charge-grid .month-head{padding:0 4px;border-left:1px solid var(--border-default);background:#fff;font-size:13px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--text-muted)}.charge-grid .day-head{height:48px;padding:0;gap:0;border-left:1px solid var(--border-subtle);font-size:14px;font-weight:400;color:var(--text-strong);font-variant-numeric:tabular-nums}.charge-grid .day-head.week-start{border-left-color:var(--border-default)}.charge-grid .day-head.past,.charge-grid .day-head.holiday{color:var(--text-faint)}.charge-grid .day-head-label{min-width:30px;height:24px;padding:0 6px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center}.charge-grid .day-head.today{background:transparent;font-weight:400}.charge-grid .day-head.today .day-head-label{background:var(--ink-900);color:#fff}.charge-grid .day-head-tag{font-size:9px;letter-spacing:.04em;color:var(--text-faint)}.charge-grid.dense .day-head{font-size:12px}.charge-grid.dense .day-head-label{min-width:0;height:20px;padding:0 3px}.charge-grid.dense .day-head-tag{display:none}.charge-grid.tight .day-head{font-size:10px}.charge-grid.tight .day-head-label{padding:0 1px}.charge-grid.tight .month-head{font-size:11px}.charge-grid .resource-block{border-bottom:0;border-top:1px solid var(--border-default)}.charge-grid .grid-body>.resource-block:first-child{border-top:0}.charge-grid .grid-body{border-bottom:1px solid var(--border-default)}.charge-grid .row-track{min-height:var(--row-height)}.charge-grid .track-cell{min-height:0;border-left:1px solid var(--border-subtle)}.charge-grid .track-cell.week-start{border-left-color:var(--border-default)}.charge-grid .track-cell.today{background-color:#16161508}.charge-grid .track-cell.absent{background-color:var(--surface-subtle);background-image:repeating-linear-gradient(-45deg,rgba(22,22,21,.14) 0 1px,transparent 1px 7px)}.charge-grid button.track-cell{padding:0;border:0;border-left:1px solid var(--border-subtle);background-color:transparent;background-clip:padding-box;font:inherit;cursor:pointer}.charge-grid button.track-cell.week-start{border-left-color:var(--border-default)}.charge-grid button.track-cell.addable:hover:after,.charge-grid button.track-cell.addable:focus-visible:after{content:"+";position:absolute;top:7px;right:3px;bottom:7px;left:3px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--gray-300);border-radius:6px;color:var(--text-muted);font-size:16px;line-height:1;pointer-events:none}.charge-grid button.track-cell:focus-visible{outline:2px solid var(--ink-900);outline-offset:-2px}.charge-grid .track-cell.drafting{background-color:#1616151a}.charge-grid .track-cell.drafting.deselect{background-color:#d2345a1f}.charge-grid .track-cell.drafting:after{content:none}.charge-grid .summary-row{min-height:52px;border-bottom:0;background:#fff;cursor:pointer}.charge-grid .summary-row .row-track{min-height:52px;background-color:var(--surface-muted)}.charge-grid .summary-row .track-cell.today{background-color:#1616150a}.charge-grid .summary-row:hover .row-label{background:var(--surface-muted)}.charge-grid .summary-row:focus-visible{outline:2px solid var(--ink-900);outline-offset:-2px}.charge-grid .avatar{width:30px;height:30px;font-size:12px;font-weight:600;color:var(--text-strong)}.charge-grid .identity.inline{flex:1;min-width:0;gap:8px}.charge-grid .name{font-size:16px;font-weight:500;flex-shrink:1}.charge-grid .meta{font-size:13px;color:var(--text-muted);flex-shrink:2}.charge-grid .row-chevron{flex-shrink:0;width:32px;height:32px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-body)}.charge-grid .row-chevron .msym{transition:transform .2s}.charge-grid .row-chevron.collapsed .msym{transform:rotate(-90deg)}.charge-grid .summary-row:hover .row-chevron{background:var(--surface-subtle)}.charge-grid .load-pill{position:absolute;top:10px;bottom:10px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:6px;font-size:12px;font-weight:600;letter-spacing:.02em;white-space:nowrap;overflow:hidden;font-variant-numeric:tabular-nums;container-type:inline-size}.charge-grid .load-pill .day-short,.charge-grid .load-pill .day-tiny{display:none}@container (max-width: 58px){.charge-grid .load-pill .day-value{font-size:11px;letter-spacing:0}}@container (max-width: 44px){.charge-grid .load-pill .day-value{display:none}.charge-grid .load-pill .day-short{display:inline;font-size:10.5px;letter-spacing:0}}@container (max-width: 22px){.charge-grid .load-pill .day-short{display:none}.charge-grid .load-pill .day-tiny{display:inline;font-size:8px;font-weight:500}}.charge-grid .load-pill.state-partial{background:#fff;border-color:var(--border-default);color:var(--text-body)}.charge-grid .load-pill.state-full{background:var(--success-fg);color:var(--success-bg)}.charge-grid .load-pill.state-overloaded{background:var(--load-over-bg);color:var(--danger-bg)}.charge-grid .load-pill.state-unavailable{background:var(--ink-900);color:#fff}.charge-grid .leave-label{gap:10px;padding:0 16px 0 58px}.charge-grid .leave-mark{flex-shrink:0;width:10px;height:10px;border-radius:2px;background:var(--ink-900)}.charge-grid .leave-title{flex:1;font-size:15px}.charge-grid .leave-count{font-size:12px;color:var(--text-muted);white-space:nowrap}.charge-grid .leave-bar{position:absolute;top:7px;bottom:7px;z-index:1;display:flex;align-items:center;justify-content:center;border-radius:6px;background:var(--ink-900);color:#fff;font-size:12px;font-weight:600;letter-spacing:.06em;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}.charge-grid .leave-bar.editable{cursor:pointer}.charge-grid .leave-bar.movable{cursor:grab}.charge-grid .leave-bar.editable:hover{background:var(--ink-600)}.charge-grid .project-label{gap:10px;padding:0 10px 0 58px}.charge-grid .tone-dot{flex-shrink:0;width:10px;height:10px;border-radius:50%}.charge-grid .project-link{gap:6px;overflow:hidden;white-space:nowrap}.charge-grid .project-link .client{font-size:13px;color:var(--text-muted)}.charge-grid .project-link .dot{color:var(--text-faint)}.charge-grid .project{font-size:15px;color:var(--text-strong)}.charge-grid .code-tag{height:20px;padding:0 6px;display:inline-flex;align-items:center;border-radius:4px;background:var(--surface-subtle);color:var(--text-muted);font-family:var(--font-mono);font-size:11px;font-weight:400;letter-spacing:0;line-height:1}.charge-grid .row-menu-btn{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;color:var(--text-strong)}.charge-grid .row-menu-btn:hover,.charge-grid .row-menu-btn[aria-expanded=true]{background:var(--surface-subtle);border-color:transparent}.charge-grid .project-row.selecting .row-track{background-color:#16161505}.charge-grid button.track-cell.selectable{cursor:cell}.charge-grid .sel-run{position:absolute;top:4px;bottom:4px;z-index:1;border:2px solid var(--ink-900);border-radius:8px;background:#1616150f;pointer-events:none}.charge-grid .proj-bar{position:absolute;top:7px;bottom:7px;z-index:1;display:flex;align-items:center;justify-content:center;gap:6px;border-radius:6px;background:var(--role-butter);color:var(--text-strong);overflow:visible;touch-action:none;-webkit-user-select:none;user-select:none;transition:box-shadow .12s}.charge-grid .proj-bar.editable{cursor:grab}.charge-grid .proj-bar:hover{z-index:3;box-shadow:var(--shadow-sm)}.charge-grid .proj-bar.inert{pointer-events:none}.charge-grid .bar-duration{min-width:0;padding:2px 7px;border-radius:4px;background:#fff9;font-size:13px;line-height:18px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;pointer-events:none}.charge-grid .bar-note{flex-shrink:0;pointer-events:none}.charge-grid.dense .bar-duration{padding:2px 3px;font-size:11px}.charge-grid.dense .bar-note{display:none}.charge-grid .resize-handle{position:absolute;top:0;bottom:0;width:8px;display:flex;align-items:center;justify-content:center;opacity:1;border-radius:0;background:none;cursor:ew-resize;touch-action:none}.charge-grid .resize-handle.left{left:0}.charge-grid .resize-handle.right{right:0}.charge-grid .resize-handle:before{content:"";width:2px;height:14px;border-radius:2px;background:#16161540}.charge-grid .leave-bar .resize-handle:before{background:#ffffff73}.charge-grid.dense .resize-handle{width:4px}.charge-grid.dense .resize-handle:before{content:none}.charge-grid.tight .resize-handle{width:3px}.charge-grid.tight .bar-duration{padding:0;background:none;font-size:9px}.charge-grid.tight .leave-bar{font-size:8px;letter-spacing:0}.charge-grid .proj-bar.gantt-overrun{outline:1.5px dashed var(--red-600);outline-offset:-1px}.charge-grid .deadline-badge{position:absolute;top:-6px;right:-6px;width:16px;height:16px;border-radius:50%;background:var(--red-600);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center}.charge-grid .cell-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);display:none;width:max-content;max-width:280px;padding:7px 10px;border-radius:8px;background:var(--ink-900);color:#fff;font-size:12px;font-weight:400;line-height:1.4;white-space:normal;text-align:left;box-shadow:var(--shadow-md);z-index:10;pointer-events:none}.charge-grid .proj-bar:hover .cell-tooltip,.charge-grid .proj-bar:focus-visible .cell-tooltip{display:block}.charge-grid .grid-body>.resource-block:first-child .cell-tooltip,.project-charges .charge-grid .cell-tooltip{bottom:auto;top:calc(100% + 6px)}.charge-grid .add-row{min-height:52px;border-bottom:0}.charge-grid .add-row .row-track{min-height:52px}.charge-grid .add-label{padding:0 16px 0 54px}.charge-grid .add-project-link{height:32px;padding:0 14px;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-default);border-radius:999px;background:#fff;color:var(--text-strong);font:inherit;font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer}.charge-grid .add-project-link:hover,.charge-grid .add-project-link:focus-visible{background:var(--surface-subtle)}.charge-grid .grid-empty{padding:64px 24px;display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--text-muted);font-size:15px}.pill-btn{height:40px;padding:0 16px;display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;background:var(--surface-subtle);color:var(--text-strong);font-family:var(--font-sans);font-size:14px;font-weight:500;white-space:nowrap;cursor:pointer}.pill-btn:hover{background:var(--gray-150)}.pill-btn.primary{padding:0 18px;background:var(--ink-900);color:#fff}.pill-btn.primary:hover{background:var(--ink-600)}.planning-page{background:#fff;font-family:var(--font-sans);color:var(--text-strong);-webkit-font-smoothing:antialiased}.planning-page .toolbar{gap:12px;padding:16px 24px;background:#fff;border-bottom:1px solid var(--border-default)}.planning-page .toolbar-title{margin:0 8px 0 0;font-family:var(--font-display);font-size:22px;font-weight:500;letter-spacing:-.015em;white-space:nowrap}.planning-page .toolbar-field{position:relative;height:40px;display:flex;align-items:center;gap:10px;border:1px solid var(--border-default);border-radius:10px;background:#fff;color:var(--text-muted)}.planning-page .toolbar-field:focus-within{border-color:var(--gray-300);box-shadow:var(--ring-focus)}.planning-page .search-field{width:240px;padding:0 14px}.planning-page .search-field input{flex:1;min-width:0;border:0;outline:none;background:transparent;font-family:var(--font-sans);font-size:15px;color:var(--text-strong)}.planning-page .search-field input::placeholder{color:var(--text-faint)}.planning-page .select-field{color:var(--text-body)}.planning-page .select-field>.msym{position:absolute;left:14px;pointer-events:none}.planning-page .select-field>.select-chevron{left:auto;right:14px}.planning-page .select-field select{-moz-appearance:none;appearance:none;-webkit-appearance:none;height:100%;padding:0 40px 0 42px;border:0;border-radius:10px;outline:none;background:transparent;font-family:var(--font-sans);font-size:15px;color:var(--text-strong);cursor:pointer}.planning-page .zoom-group{gap:6px}.planning-page .zoom-btn{width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;background:var(--surface-subtle);color:var(--text-strong)}.planning-page .zoom-btn:hover:not(:disabled){background:var(--gray-150)}.planning-page .week-nav{height:40px;gap:0;border:1px solid var(--border-default);border-radius:10px;background:#fff;overflow:hidden}.planning-page .week-nav button{min-width:40px;height:100%;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:0;background:transparent;color:var(--text-strong);font-family:var(--font-sans);font-size:15px;font-weight:400}.planning-page .week-nav button+button{border-left:1px solid var(--border-subtle)}.planning-page .week-nav button:hover{background:var(--surface-subtle)}.planning-page .state-message{font-size:15px;color:var(--text-muted)}.row-actions-popover{width:260px;padding:6px;gap:2px;border:1px solid var(--border-default);border-radius:12px;box-shadow:var(--shadow-md);font-family:var(--font-sans);overflow:visible}.row-actions-popover .row-actions-item{height:44px;padding:0 12px;display:flex;align-items:center;gap:12px;border-radius:8px;font-size:15px;color:var(--text-strong)}.row-actions-popover .row-actions-item>.msym{color:var(--text-body)}.row-actions-popover .row-actions-label{flex:1}.row-actions-popover .row-actions-hint{font-size:12px;color:var(--text-muted)}.row-actions-popover .row-actions-item.separated{position:relative;margin-top:9px}.row-actions-popover .row-actions-item.separated:before{content:"";position:absolute;left:6px;right:6px;top:-5px;height:1px;background:var(--border-subtle)}.row-actions-popover .row-actions-item.danger,.row-actions-popover .row-actions-item.danger>.msym{color:var(--danger-fg)}.row-actions-popover .row-actions-item.danger:hover{background:var(--danger-bg)}.selection-bar{position:fixed;left:50%;bottom:28px;transform:translate(-50%);z-index:45;max-width:calc(100vw - 32px);padding:8px 8px 8px 20px;display:flex;align-items:center;gap:14px;border-radius:999px;background:var(--ink-900);color:#fff;box-shadow:var(--shadow-dialog);font-family:var(--font-sans);white-space:nowrap}.selection-icon{color:var(--accent-ai)}.selection-text{min-width:0;display:flex;flex-direction:column;line-height:1.25}.selection-count{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.selection-hint{font-size:12px;color:#ffffffa6}.sel-btn{height:40px;padding:0 16px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:transparent;color:#fff;font-family:var(--font-sans);font-size:14px;font-weight:500;cursor:pointer}.sel-btn:hover{background:#ffffff1a}.sel-btn.primary{padding:0 18px;border-color:#fff;background:#fff;color:var(--ink-900)}.sel-btn.primary:hover{background:var(--gray-150)}.sel-btn:disabled{opacity:.4;cursor:default}.charge-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);z-index:80;height:44px;padding:0 20px;display:flex;align-items:center;gap:10px;border-radius:999px;background:var(--ink-900);color:#fff;box-shadow:var(--shadow-md);font-family:var(--font-sans);font-size:14px;white-space:nowrap}.charge-toast .msym{color:var(--accent-ai)}.charge-grid{--focus-blink-period: .7s;--focus-blink-count: 4}@keyframes charge-focus-blink{0%,to{opacity:0}50%{opacity:1}}.charge-grid .focus-blink{position:absolute;top:0;bottom:0;z-index:4;border-radius:6px;background:#d2345a47;pointer-events:none;animation:charge-focus-blink var(--focus-blink-period) ease-in-out var(--focus-blink-count) both}@media(prefers-reduced-motion:reduce){.charge-grid .focus-blink{animation:charge-focus-blink .01ms linear 1 both}}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000047;z-index:40}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(420px,100%);background:var(--panel);border-left:1px solid var(--border-strong);box-shadow:-6px 0 24px #0000001f;z-index:41;display:flex;flex-direction:column;font-size:13px}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border)}.drawer-head h2{margin:0;font-size:15px}.icon-btn{width:30px;height:30px;border:1px solid var(--border-strong);border-radius:6px;background:#fff;cursor:pointer;font-size:13px;color:var(--g-700)}.icon-btn:hover{background:var(--g-100)}.drawer-context{margin:0;padding:12px 18px;background:var(--g-100);border-bottom:1px solid var(--border);color:var(--text-2);font-size:12px}.drawer-body{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:6px}.drawer-body label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);margin-top:8px}.drawer-body input[type=email],.drawer-body input[type=text],.drawer-body input[type=date],.drawer-body input[type=number],.drawer-body select{font:inherit;font-size:13px;width:100%;padding:8px 10px;border:1px solid var(--border-strong);border-radius:6px;background:#fff;color:var(--text)}.drawer-body .date-range-row{display:flex;align-items:center;gap:8px}.drawer-body .date-range-row input{flex:1;min-width:0}.drawer-body .date-range-sep{flex-shrink:0;color:var(--text-3);font-size:12px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-row label{display:block;margin-top:8px}.hint{margin:2px 0 0;font-size:11px;color:var(--text-3)}.recurrence{margin-top:14px;padding:10px 12px 14px;border:1px solid var(--border);border-radius:8px}.recurrence legend{padding:0 4px}.checkbox{display:flex;align-items:center;gap:6px;margin:0;font-size:12px;font-weight:600;text-transform:none;letter-spacing:0;color:var(--text);cursor:pointer}.drawer-error{margin-top:14px;padding:10px 12px;border-radius:6px;background:var(--red-bg);color:var(--red);font-size:12px}.drawer-foot{display:flex;align-items:center;gap:8px;padding:14px 18px;border-top:1px solid var(--border)}.foot-spacer{flex:1}.drawer-foot button{font:inherit;font-size:12.5px;font-weight:600;padding:8px 14px;border-radius:6px;cursor:pointer;border:1px solid var(--border-strong);background:#fff;color:var(--text)}.drawer-foot button:disabled{opacity:.55;cursor:default}.drawer-foot .primary{background:var(--g-800);border-color:var(--g-800);color:#fff}.drawer-foot .danger{color:var(--red);border-color:var(--red)}.duration-stepper{display:flex;align-items:stretch;justify-content:flex-start;gap:6px}.drawer-body .duration-stepper input[type=text]{width:110px;min-width:0;flex:0 0 auto;text-align:center;font-variant-numeric:tabular-nums}.stepper-btn{width:30px;flex-shrink:0;border:1px solid var(--border-strong);border-radius:6px;background:#fff;color:var(--text);font:inherit;font-size:15px;line-height:1;cursor:pointer}.stepper-btn:hover:not(:disabled){background:var(--g-100)}.stepper-btn:disabled{opacity:.45;cursor:default}.drawer-body .readonly{padding:9px 11px;border:1px solid var(--border);border-radius:6px;background:var(--g-100);color:var(--text-2);font-size:12.5px}.drawer-body textarea{width:100%;padding:9px 11px;border:1px solid var(--border-strong);border-radius:6px;background:#fff;font:inherit;font-size:12.5px;color:var(--text);resize:vertical}.drawer-body .field-label{display:block;margin-bottom:4px;font-size:11.5px;font-weight:600;color:var(--text-2)}.field-warning{margin:-6px 0 12px;padding:8px 10px;border-radius:6px;background:var(--g-100);border-left:3px solid var(--g-600);font-size:11.5px;color:var(--text-2);line-height:1.45}.drawer{width:min(480px,100%);border-left:0;box-shadow:var(--shadow-dialog);font-family:var(--font-sans);font-size:16px;color:var(--text-strong);-webkit-font-smoothing:antialiased}.drawer .drawer-head{align-items:flex-start;gap:16px;padding:24px 24px 20px 28px;border-bottom:1px solid var(--border-subtle)}.drawer .drawer-head h2{font-family:var(--font-display);font-size:32px;font-weight:400;line-height:1.1;letter-spacing:-.015em}.drawer .icon-btn{flex-shrink:0;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;background:transparent;color:var(--text-strong)}.drawer .icon-btn:hover{background:var(--surface-subtle)}.drawer .drawer-body{padding:24px 28px;gap:10px}.drawer .drawer-body>*{flex-shrink:0}.drawer .drawer-body label{margin-top:12px;font-size:16px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--text-strong)}.drawer .drawer-body>label:first-child{margin-top:0}.drawer .drawer-body input[type=email],.drawer .drawer-body input[type=text],.drawer .drawer-body input[type=date],.drawer .drawer-body input[type=number],.drawer .drawer-body select{height:48px;padding:0 16px;border:1px solid var(--border-default);border-radius:10px;font-family:var(--font-sans);font-size:16px;color:var(--text-strong)}.drawer .drawer-body input:focus-visible,.drawer .drawer-body select:focus-visible,.drawer .drawer-body textarea:focus-visible{outline:none;border-color:var(--gray-300);box-shadow:var(--ring-focus)}.drawer .drawer-body select:disabled{background:var(--surface-subtle);border-color:transparent;color:var(--text-body);opacity:1}.drawer .drawer-body .readonly{height:48px;padding:0 16px;display:flex;align-items:center;gap:12px;border:0;border-radius:10px;background:var(--surface-subtle);color:var(--text-strong);font-size:16px}.drawer .readonly-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .tone-dot{flex-shrink:0;width:12px;height:12px;border-radius:50%}.drawer .person-badge{flex-shrink:0;width:28px;height:28px;margin-left:-6px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#fff;font-size:11px;font-weight:600}.drawer .drawer-body .date-range-row{gap:10px}.drawer .drawer-body .date-range-sep{color:var(--text-strong)}.drawer .run-chips{display:flex;flex-wrap:wrap;gap:6px}.drawer .run-chip{height:30px;padding:0 12px;display:inline-flex;align-items:center;border-radius:999px;background:var(--gray-150);font-size:14px;white-space:nowrap}.drawer .hint{margin:0;font-size:13px;color:var(--text-muted)}.drawer .duration-stepper{gap:8px}.drawer .stepper-btn{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-default);border-radius:12px;color:var(--text-strong)}.drawer .stepper-btn:hover:not(:disabled){background:var(--surface-subtle)}.drawer .drawer-body .duration-stepper input[type=text]{width:120px;font-size:18px}.drawer .recurrence{margin:12px 0 0;padding:16px;border:1px solid var(--border-default);border-radius:12px}.drawer .recurrence legend{float:left;width:100%;padding:0}.drawer .recurrence .field-row{clear:both;padding-top:6px}.drawer .drawer-body .checkbox{margin:0;gap:12px;font-size:16px;font-weight:400}.drawer .checkbox input{width:22px;height:22px;margin:0;accent-color:var(--control-checked)}.drawer .recurrence .field-row label{font-size:14px;color:var(--text-body)}.drawer .drawer-body textarea{padding:12px 16px;border:1px solid var(--border-default);border-radius:10px;font-family:var(--font-sans);font-size:15px;line-height:1.45;color:var(--text-strong)}.drawer .drawer-body textarea::placeholder{color:var(--text-faint)}.drawer .drawer-error{border-radius:10px;background:var(--danger-bg);color:var(--danger-fg);font-size:14px}.drawer .drawer-foot{gap:12px;padding:18px 28px;border-top:1px solid var(--border-subtle)}.drawer .drawer-foot button{height:48px;padding:0 22px;border:1px solid var(--border-default);border-radius:999px;font-family:var(--font-sans);font-size:15px;font-weight:500;color:var(--text-strong)}.drawer .drawer-foot .primary{padding:0 28px;border-color:var(--ink-900);background:var(--ink-900);color:#fff}.drawer .drawer-foot .primary:hover:not(:disabled){border-color:var(--ink-600);background:var(--ink-600)}.drawer .drawer-foot .danger{border-color:transparent;background:var(--danger-bg);color:var(--danger-fg)}.drawer .drawer-foot .danger:hover:not(:disabled){background:#fbd6e0}.drawer.project-picker .drawer-head{border-bottom:0}.drawer .drawer-context{padding:12px 28px;display:flex;align-items:center;gap:10px;border-bottom:0;background:var(--surface-subtle);font-size:16px;color:var(--text-strong)}.drawer .drawer-context strong{font-weight:500}.drawer .drawer-context .person-badge{margin-left:0}.drawer .context-role{font-size:14px;color:var(--text-muted)}.drawer.project-picker .drawer-body{padding:20px 28px 28px;gap:14px}.drawer .drawer-body .picker-search{flex-shrink:0;height:48px;margin:0;padding:0 16px;display:flex;align-items:center;gap:10px;border:1px solid var(--gray-300);border-radius:10px;box-shadow:var(--ring-focus);color:var(--text-muted)}.drawer .picker-search input{flex:1;min-width:0;border:0;outline:none;background:transparent;font-family:var(--font-sans);font-size:16px;color:var(--text-strong)}.drawer .drawer-body .picker-search input,.drawer .drawer-body .picker-search input:focus-visible{height:auto;padding:0;border:0;box-shadow:none;-moz-appearance:none;appearance:none;-webkit-appearance:none}.drawer .picker-list{display:flex;flex-direction:column;gap:8px;border:0;border-radius:0}.drawer .picker-list li+li{border-top:0}.drawer .picker-row{gap:14px;padding:12px 16px;border:1px solid var(--border-subtle);border-radius:12px;font-family:var(--font-sans);color:var(--text-strong);transition:background .12s}.drawer .picker-row:hover,.drawer .picker-row:focus-visible{background:var(--surface-muted)}.drawer .picker-row.assigned{opacity:.55}.drawer .picker-row .tone-dot{width:10px;height:10px}.drawer .picker-identity{gap:2px}.drawer .picker-leave-icon{flex-shrink:0;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:var(--ink-900);color:#fff}.drawer .picker-row.leave{border-color:var(--border-default)}.drawer .picker-client{font-size:12px;color:var(--text-muted)}.drawer .picker-name{font-size:15px;font-weight:500}.drawer .picker-status{height:22px;padding:0 8px;display:inline-flex;align-items:center;font-size:12px;font-weight:500}.drawer .picker-flag{font-size:13px;color:var(--text-muted)}.drawer .state-message{padding:32px 0;text-align:center;font-size:15px;color:var(--text-muted)}.drawer.project-picker .drawer-body{display:flex;flex-direction:column;gap:10px;min-height:0}.picker-list{list-style:none;margin:0;padding:0;overflow-y:auto;min-height:0;border:1px solid var(--border);border-radius:6px}.picker-list li+li{border-top:1px solid var(--border)}.picker-row{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:none;background:none;font:inherit;text-align:left;cursor:pointer;color:var(--text)}.picker-row:hover,.picker-row:focus-visible{background:var(--g-100)}.picker-identity{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.3}.picker-client{font-size:10.5px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.picker-name{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.picker-status{flex-shrink:0;padding:1px 6px;border-radius:999px;background:var(--g-150);color:var(--text-2);font-size:10px;white-space:nowrap}.picker-flag{flex-shrink:0;font-size:10px;color:var(--text-3);font-style:italic;white-space:nowrap}.confirm-popin{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:42;width:min(380px,calc(100% - 32px));padding:18px;border-radius:8px;border:1px solid var(--border-strong);background:var(--panel);box-shadow:0 10px 30px #0000002e;font-size:13px}.confirm-popin h2{margin:0 0 8px;font-size:14px}.confirm-popin p{margin:0 0 16px;color:var(--text-2);line-height:1.5}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.confirm-actions button{padding:7px 13px;border-radius:6px;border:1px solid var(--border-strong);background:#fff;font:inherit;font-size:12.5px;cursor:pointer;color:var(--text)}.confirm-actions button:hover:not(:disabled){background:var(--g-100)}.confirm-actions button:disabled{opacity:.55;cursor:default}.confirm-actions .primary{background:var(--g-800);border-color:var(--g-800);color:#fff}.confirm-actions .primary:hover:not(:disabled){background:var(--g-700)}.name-prompt-label{display:block;margin-bottom:5px;font-size:11.5px;font-weight:600;color:var(--text-2)}.confirm-popin input[type=text]{width:100%;margin-bottom:16px;padding:9px 11px;border:1px solid var(--border-strong);border-radius:6px;background:#fff;font:inherit;font-size:13px;color:var(--text)}.drawer.resource-drawer{width:min(520px,100%)}.drawer.resource-drawer .drawer-head{align-items:center;padding:20px 20px 18px 28px}.drawer.resource-drawer .drawer-head h2{font-size:30px}.drawer.resource-drawer .icon-btn{border:1px solid var(--border-default);background:#fff}.drawer.resource-drawer .icon-btn:hover{background:var(--surface-subtle)}.drawer.resource-drawer .drawer-body{gap:20px}.drawer.resource-drawer .rd-field{display:flex;flex-direction:column;gap:8px}.drawer.resource-drawer .drawer-body label,.drawer.resource-drawer .entries-title{margin:0;display:flex;align-items:center;gap:4px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.drawer.resource-drawer .rd-required{color:var(--danger-fg)}.drawer.resource-drawer .rd-label-note{font-weight:500;letter-spacing:.04em}.drawer.resource-drawer .rd-names{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.drawer.resource-drawer .drawer-body input[type=email],.drawer.resource-drawer .drawer-body input[type=text],.drawer.resource-drawer .drawer-body select{width:100%;height:48px;padding:0 14px}.drawer.resource-drawer .drawer-body input::placeholder{color:var(--text-faint)}.drawer.resource-drawer .rd-select{position:relative;display:block}.drawer.resource-drawer .rd-select select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:44px;background:#fff;cursor:pointer}.drawer.resource-drawer .rd-select-chevron{position:absolute;top:50%;right:16px;transform:translateY(-50%);color:var(--text-body);pointer-events:none}.drawer.resource-drawer .hint{font-size:13px;line-height:1.45;color:var(--text-muted)}.drawer.resource-drawer .field-error{margin:0;font-size:13px;color:var(--danger-fg)}.drawer.resource-drawer .rd-divider{width:100%;height:1px;margin:0;border:0;background:var(--border-subtle)}.drawer.resource-drawer .admin-only-badge{height:20px;margin-left:6px;padding:0 8px;display:inline-flex;align-items:center;border-radius:5px;background:var(--ink-900);color:#fff;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.drawer.resource-drawer .workweek{display:flex;flex-direction:column;gap:12px}.drawer.resource-drawer .workweek-toggle{width:100%;display:flex;align-items:center;gap:8px;padding:0;border:0;background:transparent;font-family:var(--font-sans);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-align:left;color:var(--text-muted);cursor:pointer}.drawer.resource-drawer .workweek-toggle>span:first-child{flex:1}.drawer.resource-drawer .workweek-toggle:hover{color:var(--text-strong)}.drawer.resource-drawer .workweek-chevron{color:var(--text-body);transition:transform .2s}.drawer.resource-drawer .workweek-toggle.open .workweek-chevron{transform:rotate(180deg)}.drawer.resource-drawer .workweek-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.drawer.resource-drawer .workday-row{padding:10px 8px;display:flex;flex-direction:column;align-items:center;gap:6px;border:1px solid var(--border-default);border-radius:12px;background:#fff}.drawer.resource-drawer .workday-row.off{border-color:var(--border-subtle);background:var(--surface-subtle)}.drawer.resource-drawer .workday-toggle{padding:0;border:0;background:transparent;font-family:var(--font-sans);font-size:14px;font-weight:600;color:var(--text-strong);cursor:pointer}.drawer.resource-drawer .workday-row.off .workday-toggle{color:var(--text-muted)}.drawer.resource-drawer .workday-stepper{display:flex;align-items:center;gap:2px}.drawer.resource-drawer .workday-row.off .workday-stepper{opacity:.35}.drawer.resource-drawer .workday-step{width:22px;height:22px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:6px;background:transparent;color:var(--text-body);cursor:pointer}.drawer.resource-drawer .workday-step:hover:not(:disabled){background:var(--surface-subtle)}.drawer.resource-drawer .workday-step:disabled{cursor:default}.drawer.resource-drawer .drawer-body .workday-stepper input[type=text],.drawer.resource-drawer .workday-off{width:40px;height:auto;padding:0;border:0;background:transparent;text-align:center;font-size:13px;font-variant-numeric:tabular-nums;color:var(--text-strong)}.drawer.resource-drawer .drawer-body .workday-stepper input[type=text]:focus-visible{box-shadow:none}.drawer.resource-drawer .entries-section{display:flex;flex-direction:column;gap:12px}.drawer.resource-drawer .entry-row{padding:10px 10px 10px 14px;display:flex;align-items:center;gap:12px;border:1px solid var(--border-default);border-radius:12px}.drawer.resource-drawer .off-chip{height:22px;padding:0 8px;display:inline-flex;align-items:center;flex-shrink:0;border-radius:5px;background:var(--ink-900);color:#fff;font-size:11px;font-weight:600;letter-spacing:.06em}.drawer.resource-drawer .entry-info{flex:1;min-width:0;font-size:15px;color:var(--text-strong)}.drawer.resource-drawer .entry-name{font-weight:600}.drawer.resource-drawer .entry-count{font-size:13px;color:var(--text-muted);white-space:nowrap}.drawer.resource-drawer .entry-remove{width:32px;height:32px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-default);border-radius:8px;background:#fff;color:var(--text-strong);cursor:pointer}.drawer.resource-drawer .entry-remove:hover:not(:disabled){background:var(--danger-bg);color:var(--danger-fg)}.drawer.resource-drawer .absence-add{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:end}.drawer.resource-drawer .absence-add label{flex-direction:column;align-items:stretch;gap:6px}.drawer.resource-drawer .drawer-body .absence-add input[type=date],.drawer.resource-drawer .drawer-body .absence-add select{width:100%;min-width:0;height:44px;padding:0 10px;font-size:14px;font-weight:400;letter-spacing:0;text-transform:none}.drawer.resource-drawer .drawer-body .absence-add select{padding-right:32px}.drawer.resource-drawer .absence-add .rd-select-chevron{right:10px}.drawer.resource-drawer .drawer-body .absence-add input[aria-invalid=true]{border-color:var(--danger-fg)}.drawer.resource-drawer .absence-add-btn{align-self:flex-start;padding:0 18px}.drawer.resource-drawer .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.projects-page .toolbar-field.select-field select{min-width:190px}.projects-page .projects-body{padding:24px 28px 48px;display:flex;flex-direction:column;gap:32px}.projects-page .client-group{margin:0;display:flex;flex-direction:column;gap:12px}.projects-page .client-group-head{display:flex;align-items:center;gap:10px}.projects-page .client-heading{margin:0;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.projects-page .client-count{padding:0;background:none;font-size:13px;color:var(--text-faint)}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.card.project-card{padding:0;border:1px solid var(--border-default);border-radius:14px;background:#fff;transition:box-shadow .15s,border-color .15s,transform .15s}.card.project-card:hover{border-color:var(--gray-300);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.project-card .card-main{align-self:stretch;min-height:132px;padding:16px 18px;gap:6px;border-radius:14px;color:var(--text-strong);font-family:var(--font-sans)}.project-card .card-main:focus-visible{outline:none;box-shadow:var(--ring-focus)}.project-card .card-top-row{margin-bottom:6px}.project-card .status-pill{height:24px;padding:0 10px;border-radius:999px;font-size:13px;font-weight:500}.project-card .card-code{font-family:var(--font-sans);font-size:12px;font-weight:500;letter-spacing:.04em;color:var(--text-muted)}.project-card .card-client{font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-card .card-name{font-size:17px;font-weight:600;line-height:1.3;color:var(--text-strong)}.project-card .card-tags{margin-top:2px;gap:6px}.project-card .card-meta{margin-top:auto;padding-top:6px;gap:6px}.project-card .ui-chip.alert-pill,.project-card .ui-chip.gantt-pill{height:24px;padding:0 10px;border-radius:6px;font-size:13px;font-weight:500}.project-card .ui-chip.alert-pill{background:var(--danger-bg);color:var(--danger-fg)}.project-card .ui-chip.gantt-pill{background:var(--surface-subtle);color:var(--text-body)}.project-drawer .required-mark{color:var(--danger-fg)}.project-drawer .status-options{display:flex;flex-wrap:wrap;gap:8px}.project-drawer .status-option{height:40px;padding:0 16px;display:inline-flex;align-items:center;border:1px solid var(--border-default);border-radius:999px;background:#fff;color:var(--text-strong);font-family:var(--font-sans);font-size:14px;font-weight:500;cursor:pointer}.project-drawer .status-option:hover:not([aria-checked=true]){background:var(--surface-subtle)}.project-drawer .status-option[aria-checked=true]{border-color:currentColor}.project-drawer .status-option:focus-visible{outline:none;box-shadow:var(--ring-focus)}@media(max-width:640px){.projects-page .projects-body{padding:16px 16px 40px;gap:24px}.projects-page .toolbar-field.search-field{width:100%}}.page{display:flex;flex-direction:column;flex:1;min-height:0}.list-body{flex:1;overflow-y:auto;min-height:0;padding:16px 20px 40px}.tabs{display:flex;gap:2px;background:var(--g-150);border-radius:7px;padding:2px}.tabs button{font:inherit;font-size:12px;font-weight:600;padding:5px 12px;border:none;border-radius:5px;background:none;color:var(--text-2);cursor:pointer;white-space:nowrap}.tabs button.active{background:var(--panel);color:var(--text);box-shadow:0 1px 2px #00000014}.primary-btn{font:inherit;font-size:12px;font-weight:600;padding:7px 14px;border:1px solid var(--g-800);border-radius:6px;background:var(--g-800);color:#fff;cursor:pointer;white-space:nowrap}.primary-btn:hover{background:var(--text)}.client-group{margin-bottom:26px}.client-heading{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}.client-count{padding:1px 6px;border-radius:8px;background:var(--g-150);font-size:10px;color:var(--text-2)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.card-grid.wide{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.card{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--panel)}.card:hover{border-color:var(--border-strong)}.card-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;border:none;background:none;font:inherit;text-align:left;cursor:pointer;padding:0}.card-top-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.card-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.tag-chip{padding:1px 6px;border-radius:4px;background:var(--g-150);color:var(--text-2);font-size:9.5px;font-weight:600;white-space:nowrap}.card-code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:9.5px;font-weight:700;color:var(--text-3);letter-spacing:.02em}.card-client{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);font-weight:700}.card-name{font-size:13px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.status-pill,.alert-pill,.gantt-pill,.level-pill,.tag{display:inline-flex;align-items:center;font-size:10px;font-weight:700;border-radius:4px;padding:2px 7px;white-space:nowrap}.status-pill{background:var(--g-150);color:var(--text-2)}.alert-pill{background:var(--red-bg);color:var(--red)}.gantt-pill,.tag{background:var(--g-100);color:var(--text-2);font-weight:600}.card-action{flex-shrink:0;font:inherit;font-size:11px;font-weight:600;padding:5px 10px;border:1px solid var(--border-strong);border-radius:6px;background:#fff;color:var(--text-2);cursor:pointer}.card-action:hover{color:var(--text);background:var(--g-100)}.resource-card .avatar{width:30px;height:30px;font-size:13px}.resource-identity{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.tag-row{display:flex;gap:4px;flex-wrap:wrap;margin-top:3px}.level-pill{background:var(--g-150);color:var(--text-2)}.level-pill.level-admin{background:var(--g-800);color:#fff}.level-pill.level-contributor{background:var(--g-300);color:var(--g-800)}.data-table{width:100%;border-collapse:collapse;font-size:12.5px;background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden}.data-table th{text-align:left;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);padding:9px 12px;background:var(--g-100);border-bottom:1px solid var(--border)}.data-table td{padding:9px 12px;border-bottom:1px solid var(--g-150)}.data-table tr:last-child td{border-bottom:none}.cell-code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;font-weight:700;color:var(--text-3)}.cell-strong{font-weight:700}.cell-num{font-variant-numeric:tabular-nums;color:var(--text-2)}.cell-action{text-align:right}.cell-action button{font:inherit;font-size:11px;font-weight:600;padding:4px 10px;border:1px solid var(--border-strong);border-radius:6px;background:#fff;cursor:pointer}.banner{margin:0;padding:10px 20px;font-size:12.5px;border-bottom:1px solid var(--border)}.banner.error{background:var(--red-bg);color:var(--red)}.popin{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(440px,calc(100% - 32px));padding:22px;border-radius:10px;background:var(--panel);box-shadow:0 12px 40px #0003;z-index:41;font-size:13px;line-height:1.5}.popin h2{margin:0 0 10px;font-size:15px}.popin p{margin:0 0 18px;color:var(--text-2)}.popin-actions{display:flex;justify-content:flex-end;gap:8px}.popin-actions button{font:inherit;font-size:12.5px;font-weight:600;padding:8px 14px;border:1px solid var(--border-strong);border-radius:6px;background:#fff;cursor:pointer}.popin-actions .primary{background:var(--g-800);border-color:var(--g-800);color:#fff}.client-list-row{display:flex;align-items:center;gap:16px;padding:14px 16px;margin-bottom:10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--panel)}.client-list-name-wrap{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.client-list-name{font-size:13px;font-weight:700;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-list-code{flex-shrink:0;padding:2px 6px;border-radius:4px;background:var(--g-150);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10.5px;font-weight:700;color:var(--text-3)}.client-list-stats{display:flex;align-items:center;gap:8px;flex-shrink:0;font-size:12px;color:var(--text-2);white-space:nowrap}.client-list-sep{color:var(--text-3)}.resource-list-rows{display:flex;flex-direction:column;gap:10px}.resource-list-row{display:flex;align-items:center;gap:16px;padding:14px 18px;border:1px solid var(--border-strong);border-radius:8px;background:var(--panel)}.profile-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;background:var(--g-300);border:1px solid var(--g-500);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:var(--g-800)}.cover-body{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}.cover-client{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);font-weight:700}.cover-name{font-size:15px;font-weight:700;color:var(--text);line-height:1.2;max-width:100%}.cover-meta-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;color:var(--text-2)}.cover-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.access-level-badge{flex-shrink:0;padding:3px 10px;border-radius:9px;background:var(--g-150);color:var(--text-2);font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.archived-tag{padding:2px 8px;border-radius:4px;border:1px solid var(--border-strong);background:var(--g-150);color:var(--text-2);font-size:11px;font-weight:700;white-space:nowrap}.clients-page .toolbar-title{font-size:30px;font-weight:400}.clients-page .toolbar-field.search-field{width:280px}.clients-page .clients-list{display:flex;flex-direction:column;gap:12px;padding:24px 28px 48px}.clients-page .client-list-row{display:block;flex-shrink:0;margin:0;padding:0;border:1px solid var(--border-default);border-radius:14px;background:#fff;transition:border-color .15s,box-shadow .15s}.clients-page .client-list-row:hover{box-shadow:var(--shadow-sm)}.clients-page .client-list-row.open{border-color:var(--gray-300)}.clients-page .client-card-head{display:flex;align-items:center;gap:4px;min-height:68px;padding:0 12px 0 0}.clients-page .client-card-toggle{flex:1;min-width:0;align-self:stretch;display:flex;align-items:center;gap:14px;padding:0 0 0 24px;border:0;border-radius:14px 0 0 14px;background:transparent;color:var(--text-strong);font-family:var(--font-sans);text-align:left;cursor:pointer}.clients-page .client-card-toggle:focus-visible{outline:none;box-shadow:var(--ring-focus)}.clients-page .client-tone{flex-shrink:0;width:12px;height:12px;border-radius:50%}.clients-page .client-list-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:600;color:var(--text-strong)}.clients-page .client-card-spacer{flex:1}.clients-page .client-list-stats{display:flex;align-items:center;gap:8px;flex-shrink:0;font-size:15px;white-space:nowrap}.clients-page .client-stat-active{color:var(--text-body)}.clients-page .client-stat-archived{color:var(--text-muted)}.clients-page .client-list-sep{color:var(--text-faint)}.clients-page .client-chevron{margin:0 4px 0 8px;color:var(--text-body);transition:transform .2s}.clients-page .client-list-row.open .client-chevron{transform:rotate(180deg)}.clients-page .client-card-projects{display:flex;flex-direction:column;gap:6px;padding:4px 24px 18px 50px;border-top:1px solid var(--border-subtle)}.clients-page .client-project-line{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 12px;border-radius:10px;color:var(--text-strong);text-decoration:none}.clients-page .client-project-line:first-child{margin-top:10px}.clients-page .client-project-line:hover,.clients-page .client-project-line:focus-visible{background:var(--surface-muted);outline:none}.clients-page .client-project-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.clients-page .client-project-status{height:22px;padding:0 8px;display:inline-flex;align-items:center;flex-shrink:0;border-radius:999px;background:var(--surface-subtle);color:var(--text-body);font-size:12px;font-weight:500;white-space:nowrap}.clients-page .client-project-arrow{color:var(--text-muted)}.clients-page .client-card-note{margin:0;padding:14px 12px 0;font-size:14px;color:var(--text-muted)}.drawer.client-drawer{width:min(460px,100%);margin:0}.drawer.client-drawer .required-mark{color:var(--danger-fg)}.drawer.client-drawer .drawer-body input.client-code-input{width:120px;font-family:var(--font-mono)}.drawer.client-drawer .drawer-body input.client-code-input:disabled{background:var(--surface-subtle);border-color:transparent;color:var(--text-body)}.drawer.client-drawer .drawer-body input.client-code-input.invalid{border-color:var(--danger-fg)}.drawer.client-drawer .hint.error{color:var(--danger-fg)}.drawer.client-drawer .drawer-foot .primary:disabled{opacity:.4;cursor:default}.resources-page .list-body{padding:20px 28px 48px}.resources-page .resource-list-rows{gap:10px}.resources-page .resource-list-row{min-height:76px;gap:18px;padding:12px 12px 12px 20px;border:1px solid var(--border-default);border-radius:14px;background:#fff;transition:box-shadow .15s}.resources-page .resource-list-row:hover{box-shadow:var(--shadow-sm)}.resources-page .resource-list-row.archived{opacity:.7}.resources-page .profile-avatar{width:44px;height:44px;border:0;font-size:16px;font-weight:600;color:var(--text-strong)}.resources-page .profile-avatar.emoji{background:var(--surface-subtle);font-size:20px}.resources-page .cover-body{gap:3px}.resources-page .cover-client{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.resources-page .cover-client .team-label{display:inline-flex;align-items:center;gap:6px}.resources-page .cover-name{max-width:100%;overflow:hidden;font-family:var(--font-display);font-size:22px;font-weight:500;letter-spacing:-.01em;line-height:1.15;white-space:nowrap;text-overflow:ellipsis;color:var(--text-strong)}.resources-page .cover-meta-row{margin-top:2px;gap:6px}.resources-page .ui-chip.small.tag-chip{padding:0 8px;background:var(--surface-subtle);color:var(--text-body);font-weight:500}.resources-page .archived-tag{height:20px;padding:0 8px;display:inline-flex;align-items:center;border:0;border-radius:5px;background:var(--gray-150);color:var(--text-body);font-size:11px;font-weight:600}.resources-page .cover-actions{gap:18px}.resources-page .resource-off-chip,.resources-page .access-level-badge{height:24px;padding:0 10px;display:inline-flex;align-items:center;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.resources-page .resource-off-chip{letter-spacing:.06em;background:var(--ink-900);color:#fff}.resources-page .access-level-badge.level-admin{background:var(--ink-900);color:#fff}.resources-page .access-level-badge.level-contributor{background:var(--info-bg);color:var(--info-fg)}.resources-page .access-level-badge.level-viewer{background:var(--surface-subtle);color:var(--text-body)}.resources-page .card-action{height:36px;padding:0 16px;border:1px solid var(--border-default);border-radius:999px;background:#fff;color:var(--text-strong);font-family:var(--font-sans);font-size:14px;font-weight:500}.resources-page .card-action:hover{background:var(--surface-subtle);color:var(--text-strong)}.resources-page .ui-empty .primary-btn{height:40px;padding:0 18px;font-size:14px}.resources-page .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.resources-page .toolbar{gap:14px}.resources-page .toolbar-field.search-field{width:240px}.project-cover{flex-shrink:0;display:flex;flex-direction:column;gap:14px;padding:16px 28px 22px;background:var(--surface-subtle);border-bottom:1px solid var(--border-default);font-family:var(--font-sans);color:var(--text-strong)}.cover-actions-row,.cover-actions{display:flex;align-items:center;gap:12px}.project-cover .cover-back{padding:0 16px 0 12px;text-decoration:none}.project-cover .cover-follow{padding:0 18px}.cover-title{margin:0;display:flex;align-items:baseline;flex-wrap:wrap;column-gap:14px;row-gap:2px;font-family:var(--font-display);font-size:40px;font-weight:400;line-height:1.1;letter-spacing:-.015em;color:var(--text-strong)}.cover-dot{color:var(--text-faint)}.cover-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:16px}.cover-meta-item{display:inline-flex;align-items:center;gap:8px}.project-cover .status-pill{background:var(--surface-muted);color:var(--text-body)}.cover-meta-sep{width:1px;height:18px;background:var(--border-strong)}.cover-alert-link{height:40px;margin:0;padding:0;display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;font-family:var(--font-sans);font-size:16px;color:var(--text-strong);cursor:pointer}.cover-alert-word{position:relative}.cover-alert-word:after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:2px;border-radius:2px;background:var(--ink-900);transition:width .35s cubic-bezier(.2,.7,.2,1)}.cover-alert-link:hover .cover-alert-word:after,.cover-alert-link:focus-visible .cover-alert-word:after{width:100%}.cover-alert-count{min-width:24px;height:24px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--success-bg);color:var(--success-fg);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.cover-alert-count.open{background:var(--danger-bg);color:var(--danger-fg)}.banner{margin:0;padding:10px 28px;font-size:14px;color:var(--text-body);background:var(--surface-subtle);border-bottom:1px solid var(--border-default)}.tab-bar{flex-shrink:0;min-height:64px;display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:0 24px 0 28px;background:#fff;border-bottom:1px solid var(--border-default);font-family:var(--font-sans)}.project-tabs{display:flex;gap:4px;align-self:stretch}.project-tabs a{position:relative;min-height:64px;padding:0 16px;display:inline-flex;align-items:center;font-size:16px;font-weight:400;color:var(--text-muted);text-decoration:none}.project-tabs a:after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;border-radius:2px;background:transparent}.project-tabs a:hover{color:var(--text-strong)}.project-tabs a.active{font-weight:600;color:var(--text-strong)}.project-tabs a.active:after{background:var(--ink-900)}.project-tabs a:focus-visible{outline:2px solid var(--ink-900);outline-offset:-6px;border-radius:8px}.tab-bar-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;flex-shrink:0;max-width:100%}.charges-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 0}.project-cover .outline-btn.active:hover:not(:disabled),.charges-actions .outline-btn.active:hover:not(:disabled){border-color:var(--ink-600);background:var(--ink-600);color:#fff}.charges-actions .zoom-group{display:flex;gap:6px}.charges-actions .zoom-btn{width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;background:var(--surface-subtle);color:var(--text-strong);cursor:pointer}.charges-actions .zoom-btn:hover:not(:disabled){background:var(--gray-150)}.charges-actions .zoom-btn:disabled{opacity:.4;cursor:default}.charges-actions .week-nav{height:40px;display:flex;align-items:center;border:1px solid var(--border-default);border-radius:10px;background:#fff;overflow:hidden}.charges-actions .week-nav button{min-width:40px;height:100%;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:0;background:transparent;color:var(--text-strong);font-family:var(--font-sans);font-size:15px;cursor:pointer}.charges-actions .week-nav button:first-child,.charges-actions .week-nav button:last-child{padding:0;color:var(--text-body)}.charges-actions .week-nav button+button{border-left:1px solid var(--border-subtle)}.charges-actions .week-nav button:hover{background:var(--surface-subtle)}.project-charges{background:#fff}.project-charges .charge-grid{--row-height: 56px}.project-charges .charge-grid .proj-bar{top:8px;bottom:8px}.project-charges .charge-grid .track-cell{position:relative}.free-capacity{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-body);white-space:nowrap;overflow:hidden;pointer-events:none;font-variant-numeric:tabular-nums}.free-capacity{container-type:inline-size}@container (max-width: 68px){.free-capacity-suffix{display:none}}@container (max-width: 26px){.free-capacity-text{display:none}}.free-capacity.all-free{color:var(--success-fg)}.free-capacity.none{color:var(--text-faint)}.charge-grid.dense .free-capacity{font-size:10px}.charge-grid.tight .free-capacity{display:none}.project-charges .add-project-row{display:block;padding:20px 28px}.project-charges .add-project-row .outline-btn{padding:0 18px}.history-body{flex:1;min-height:0;overflow-y:auto;background:var(--surface-muted)}.history{max-width:1000px;margin:0;padding:12px 28px 48px;list-style:none;font-family:var(--font-sans)}.history li{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;padding:18px 12px;border-bottom:1px solid var(--border-default)}.history-when{font-size:14px;color:var(--text-muted);font-variant-numeric:tabular-nums}.history-what{font-size:16px;line-height:1.5;color:var(--text-strong);text-wrap:pretty}.history-what strong{font-weight:600}.ai-pill{height:20px;padding:0 8px;display:inline-flex;align-items:center;vertical-align:2px;border-radius:5px;background:var(--surface-subtle);color:var(--text-body);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.tab-state{padding:24px 40px}.drawer-body textarea{font:inherit;font-size:13px;width:100%;padding:8px 10px;border:1px solid var(--border-strong);border-radius:6px;background:#fff;color:var(--text);resize:vertical}@media(max-width:720px){.project-cover{padding:12px 16px 18px}.cover-title{font-size:28px;column-gap:10px}.tab-bar{padding:0 16px}.history li{grid-template-columns:minmax(0,1fr);gap:4px}}.drawer.add-resource-drawer{width:min(440px,100%)}.drawer.add-resource-drawer .drawer-head{align-items:flex-start;padding:24px 24px 16px 28px;border-bottom:0}.drawer.add-resource-drawer .drawer-body{padding:0 28px 28px;gap:8px}.add-resource-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.add-resource-row{width:100%;padding:12px 16px;display:flex;align-items:center;gap:14px;border:1px solid var(--border-subtle);border-radius:12px;background:#fff;font-family:var(--font-sans);color:var(--text-strong);text-align:left;cursor:pointer}.add-resource-row:hover{background:var(--surface-subtle)}.add-resource-row:focus-visible{outline:2px solid var(--ink-900);outline-offset:2px}.add-resource-avatar{width:32px;height:32px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:12px;font-weight:600}.add-resource-identity{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.add-resource-name{font-size:15px;font-weight:500}.add-resource-meta{font-size:13px;color:var(--text-muted)}.add-resource-free{height:22px;padding:0 8px;display:inline-flex;align-items:center;flex-shrink:0;border-radius:999px;background:var(--surface-subtle);color:var(--text-body);font-size:12px;font-weight:500;white-space:nowrap}.add-resource-free.wide{background:var(--success-bg);color:var(--success-fg)}.add-resource-free.none{background:var(--danger-bg);color:var(--danger-fg)}.add-resource-free.unknown{color:var(--text-muted)}.add-resource-empty{padding:32px 0;text-align:center}.gantt-planning{display:flex;flex-direction:column;flex:1;min-height:0;background:#fff;font-family:var(--font-sans);color:var(--text-strong)}.gantt-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 0}.gantt-menu{position:relative;font-family:inherit}.gantt-menu-trigger{height:40px;display:inline-flex;align-items:center;gap:10px;padding:0 12px 0 14px;border:1px solid var(--border-default);border-radius:10px;background:#fff;color:var(--text-strong);font-family:var(--font-sans);font-size:15px;font-weight:400;white-space:nowrap;cursor:pointer}.gantt-menu-trigger:hover,.gantt-menu-trigger.open{background:var(--surface-subtle)}.gantt-menu-trigger-arrow{width:16px;height:16px;color:var(--text-body);transition:transform .15s ease}.gantt-menu-trigger.open .gantt-menu-trigger-arrow{transform:rotate(180deg)}.gantt-menu-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:30;width:290px;padding:6px;display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--border-default);border-radius:12px;box-shadow:var(--shadow-md)}.gantt-menu-section-title{padding:10px 12px 4px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.gantt-menu-sep{height:1px;margin:4px 6px;background:var(--border-subtle)}.gantt-menu-version-row,.gantt-menu-create-version-btn,.gantt-menu-action-btn{width:100%;min-height:44px;display:flex;align-items:center;gap:12px;padding:0 12px;border:0;border-radius:8px;background:transparent;font-family:var(--font-sans);font-size:15px;text-align:left;color:var(--text-strong);cursor:pointer}.gantt-menu-version-row:hover,.gantt-menu-version-row:focus-visible,.gantt-menu-create-version-btn:hover,.gantt-menu-action-btn:hover:not(:disabled),.gantt-menu-action-btn:focus-visible{background:var(--surface-subtle);outline:none}.gantt-menu-action-btn .msym,.gantt-menu-create-version-btn .msym{flex-shrink:0;color:var(--text-body)}.gantt-menu-action-btn:disabled{cursor:progress;color:var(--text-muted)}.gantt-menu-version-row.current{font-weight:500}.gantt-menu-version-check{flex-shrink:0;width:18px;color:var(--text-strong)}.gantt-menu-version-spacer{width:18px;flex-shrink:0}.gantt-menu-version-name-group{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.gantt-menu-version-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-version-star{flex-shrink:0;color:var(--amber-700)}.gantt-menu-version-edit-btn{width:32px;height:32px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:8px;background:transparent;color:var(--text-muted);cursor:pointer}.gantt-menu-version-edit-btn:hover{background:var(--gray-150);color:var(--text-strong)}.gantt-menu-create-version-btn{font-weight:500}.gantt-toolbar .gantt-undo-btn{height:40px;display:inline-flex;align-items:center;gap:8px;padding:0 16px;border:0;border-radius:999px;background:var(--surface-subtle);color:var(--text-strong);font-family:var(--font-sans);font-size:14px;font-weight:500;cursor:pointer}.gantt-toolbar .gantt-undo-btn:hover:not(:disabled){background:var(--gray-150)}.gantt-toolbar .gantt-undo-btn:disabled{opacity:.4;cursor:default}.gantt-toolbar .zoom-group{display:flex;gap:6px}.gantt-toolbar .gantt-zoom-btn{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;background:var(--surface-subtle);color:var(--text-strong);cursor:pointer}.gantt-toolbar .gantt-zoom-btn:hover:not(:disabled){background:var(--gray-150)}.gantt-toolbar .gantt-zoom-btn:disabled{opacity:.4;cursor:default}.gantt-toolbar .week-nav-group{height:40px;display:flex;align-items:stretch;border:1px solid var(--border-default);border-radius:10px;background:#fff;overflow:hidden}.gantt-toolbar .gantt-week-nav-btn,.gantt-toolbar .gantt-today-btn{border:0;background:transparent;font-family:var(--font-sans);cursor:pointer}.gantt-toolbar .gantt-week-nav-btn{width:40px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-body)}.gantt-toolbar .gantt-today-btn{padding:0 14px;border-left:1px solid var(--border-subtle);border-right:1px solid var(--border-subtle);font-size:15px;color:var(--text-strong);white-space:nowrap}.gantt-toolbar .gantt-week-nav-btn:hover,.gantt-toolbar .gantt-today-btn:hover{background:var(--surface-subtle)}.gantt-board{--gantt-label-w: 240px;--gantt-col-px: 46px;--gantt-cols: 135;--gantt-assignee-w: 0px;--gantt-tag-w: 0px;--gantt-section-h: 60px;--gantt-task-h: 56px;--gantt-bar-inset: 16px;position:relative;display:flex;flex-direction:column;flex:1;min-height:0;background:#fff;color:var(--text-strong);font-family:var(--font-sans);font-feature-settings:"tnum" 1}.gantt-board .grid-scroll{flex:1;min-height:0;overflow:auto}.gantt-board .timeline{min-width:1150px;width:max-content;min-height:100%;display:flex;flex-direction:column}.gantt-board .col-def{display:grid;grid-template-columns:var(--gantt-label-w) var(--gantt-assignee-w) var(--gantt-tag-w) calc(var(--gantt-cols) * var(--gantt-col-px))}.gantt-board .gantt-edge-shadow{position:absolute;top:0;height:var(--gantt-content-h, 100%);z-index:9;width:16px;pointer-events:none;background:linear-gradient(90deg,#16161529,#16161500);opacity:0;transition:opacity .2s}.gantt-board .gantt-edge-shadow.visible{opacity:1}.gantt-board .gantt-header{position:sticky;top:0;z-index:6;background:#fff;border-bottom:1px solid var(--border-default)}.gantt-board .lh,.gantt-board .ah,.gantt-board .th{position:sticky;z-index:8;min-width:0;overflow:hidden;background:#fff}.gantt-board .lh{left:0;grid-column:1;border-right:1px solid var(--border-default)}.gantt-board .ah{left:var(--gantt-label-w);grid-column:2}.gantt-board .th{left:calc(var(--gantt-label-w) + var(--gantt-assignee-w));grid-column:3}.gantt-board .gantt-band-row>*{height:40px;border-bottom:0}.gantt-board .gantt-days-row>*{height:48px}.gantt-board .gantt-header .header-label{align-items:center;padding:0 10px;font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.gantt-board .gantt-header .lh.header-label{display:flex;padding-left:16px}.gantt-board .header-days-track{grid-column:4;display:grid;grid-template-columns:repeat(var(--gantt-cols),var(--gantt-col-px))}.gantt-board .gantt-header .month-head{padding:0 4px;border-left:1px solid var(--border-default);background:#fff;font-size:13px;font-weight:500;letter-spacing:0;text-transform:capitalize;color:var(--text-muted)}.gantt-board .gantt-header .day-head{padding:0;gap:0;border-left:1px solid var(--border-subtle);background:transparent;font-size:13px;font-weight:400;color:var(--text-strong);font-variant-numeric:tabular-nums}.gantt-board .gantt-header .day-head.week-start{border-left-color:var(--border-default)}.gantt-board .gantt-header .day-head.past{color:var(--text-faint)}.gantt-board .gantt-header .day-head-label{height:24px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;white-space:nowrap}.gantt-board .gantt-header .day-head.today{background:transparent;font-weight:400}.gantt-board .gantt-header .day-head.today .day-head-label{background:var(--ink-900);color:#fff}.gantt-board .gantt-header.dense .day-head{font-size:12px}.gantt-board .gantt-header.dense .day-head-label{height:20px;padding:0 4px}.gantt-board .gantt-header.tight .day-head,.gantt-board .gantt-header.tight .month-head{font-size:10px}.gantt-board .gantt-header.tight .day-head-label{padding:0 1px}.gantt-board .day-head.conges-col,.gantt-board .gantt-col-highlight{background-image:repeating-linear-gradient(-45deg,rgba(22,22,21,.12) 0 1px,transparent 1px 7px)}.gantt-board .ah,.gantt-board .th,.gantt-board .row-assignee-cell,.gantt-board .row-tag-cell{display:none}.gantt-board.show-assignee-col .ah,.gantt-board.show-tag-col .th,.gantt-board.show-assignee-col .row-assignee-cell,.gantt-board.show-tag-col .row-tag-cell{display:flex}.gantt-board.show-assignee-col .lh,.gantt-board.show-assignee-col .row-label,.gantt-board.show-tag-col .lh,.gantt-board.show-tag-col .row-label,.gantt-board.show-tag-col .ah,.gantt-board.show-tag-col .row-assignee-cell{border-right:1px solid var(--border-subtle)}.gantt-board.show-assignee-col .ah,.gantt-board.show-assignee-col .row-assignee-cell,.gantt-board.show-tag-col .th,.gantt-board.show-tag-col .row-tag-cell{border-right:1px solid var(--border-default)}.gantt-board .gantt-rows{position:relative;-webkit-user-select:none;user-select:none}.gantt-board .g-row{--row-bg: #fff;position:relative;align-items:stretch;min-height:var(--gantt-task-h);border-bottom:1px solid var(--border-subtle);background:var(--row-bg)}.gantt-board .row-label{position:sticky;left:0;z-index:3;grid-column:1;min-width:0;display:flex;align-items:center;gap:8px;padding:0 8px 0 10px;overflow:hidden;border-right:1px solid var(--border-default);background:var(--row-bg);font-size:13px}.gantt-board .row-assignee-cell,.gantt-board .row-tag-cell{position:sticky;z-index:3;min-width:0;align-items:center;gap:6px;padding:0 10px;overflow:hidden;white-space:nowrap;background:var(--row-bg)}.gantt-board .row-assignee-cell{left:var(--gantt-label-w);grid-column:2}.gantt-board .row-tag-cell{left:calc(var(--gantt-label-w) + var(--gantt-assignee-w));grid-column:3}.gantt-board .row-track{grid-column:4;position:relative;height:100%;min-height:var(--gantt-task-h);background-color:var(--row-bg);background-image:linear-gradient(to right,var(--border-default) 1px,transparent 1px),linear-gradient(to right,var(--border-subtle) 1px,transparent 1px);background-size:calc(var(--gantt-col-px) * 5) 100%,var(--gantt-col-px) 100%}.gantt-board .gantt-col-today,.gantt-board .gantt-col-highlight,.gantt-board .gantt-hover-cell,.gantt-board .gantt-select-preview{position:absolute;top:0;bottom:0;pointer-events:none}.gantt-board .gantt-col-today{background:#16161508}.gantt-board .gantt-col-highlight{pointer-events:auto}.gantt-board .gantt-hover-cell{display:none;top:var(--gantt-bar-inset);bottom:var(--gantt-bar-inset)}.gantt-board .gantt-hover-cell:after{content:"+";position:absolute;top:0;right:3px;bottom:0;left:3px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--gray-300);border-radius:6px;font-size:15px;line-height:1;color:var(--text-muted)}.gantt-board .gantt-select-preview{top:var(--gantt-bar-inset);bottom:var(--gantt-bar-inset);border-radius:6px;background:#1616151a}.gantt-board .gantt-leaf-track{cursor:pointer}.gantt-board .g-row.gantt-lot-row{--row-bg: var(--surface-subtle);min-height:var(--gantt-section-h);border-bottom-color:var(--border-default);cursor:pointer}.gantt-board .gantt-lot-row .row-label{gap:4px;padding:0 8px 0 6px}.gantt-board .gantt-lot-row .row-track{min-height:var(--gantt-section-h);background-color:var(--surface-muted)}.gantt-board .gantt-lot-row .gantt-row-name{font-weight:600}.gantt-board .g-row.gantt-midlot-row{cursor:pointer}.gantt-board .gantt-midlot-row .row-label{gap:4px}.gantt-board .gantt-midlot-row .gantt-row-name{font-weight:500}.gantt-board .gantt-task-row.gantt-row-selected{--row-bg: var(--info-bg)}.gantt-board .hidden-row{display:none}.gantt-board .gantt-row-name{flex:1;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;line-height:1.3}.gantt-board .gantt-task-name{cursor:pointer;text-underline-offset:3px}.gantt-board .gantt-task-name:hover{text-decoration:underline}.gantt-board .gantt-sub-arrow+.gantt-row-name{font-size:12px;color:var(--text-body)}.gantt-board .gantt-sub-arrow{flex-shrink:0;margin-left:-4px;color:var(--text-faint)}.gantt-board .gantt-drag-handle{width:16px;height:20px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text-faint);cursor:grab;touch-action:none}.gantt-board .gantt-drag-handle:hover{color:var(--text-strong)}.gantt-board .gantt-task-id-wrap{position:relative;min-width:20px;height:18px;flex-shrink:0}.gantt-board .gantt-task-id{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:flex-end;font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.gantt-board .gantt-task-id-wrap .gantt-drag-handle{position:absolute;top:0;right:0;bottom:0;left:0;width:auto;height:auto;justify-content:flex-end;opacity:0;pointer-events:none}.gantt-board .gantt-task-row:hover .gantt-task-id{opacity:0}.gantt-board .gantt-task-row:hover .gantt-task-id-wrap .gantt-drag-handle{opacity:1;pointer-events:auto}.gantt-board .gantt-toggle{width:28px;height:28px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;color:var(--text-strong)}.gantt-board .g-row:hover>.row-label .gantt-toggle{background:var(--gray-150)}.gantt-board .gantt-toggle-arrow{width:18px;height:18px;transition:transform .2s ease}.gantt-board .gantt-toggle-arrow.collapsed{transform:rotate(-90deg)}.gantt-board .gantt-row-tools{position:absolute;top:50%;right:6px;display:flex;gap:4px;padding:2px 2px 2px 12px;transform:translateY(-50%);background:linear-gradient(90deg,transparent,var(--row-bg) 12px);opacity:0;transition:opacity .12s ease}.gantt-board .g-row:hover .gantt-row-tools,.gantt-board .gantt-row-tools:focus-within{opacity:1}.gantt-board .gantt-row-add-btn,.gantt-board .gantt-row-edit-btn{width:28px;height:28px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--border-default);border-radius:8px;background:#fff;color:var(--text-strong);cursor:pointer;transition:background .15s}.gantt-board .gantt-row-add-btn:hover,.gantt-board .gantt-row-edit-btn:hover{background:var(--surface-subtle)}.gantt-board .gantt-avatars{display:inline-flex;align-items:center;padding-right:10px}.gantt-board .gantt-avatar{width:28px;height:28px;margin-right:-10px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:2px solid #fff;border-radius:50%;font-size:11px;font-weight:600;color:var(--text-strong)}.gantt-board .gantt-chip-ro{height:22px;max-width:96px;min-width:0;flex-shrink:1;display:inline-block;padding:0 8px;border-radius:999px;font-size:11px;font-weight:500;line-height:22px;color:var(--text-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-board .gantt-chip-more{flex-shrink:0;font-size:12px;color:var(--text-muted);cursor:default}.gantt-chip-tooltip{position:fixed;z-index:200;max-width:220px;padding:6px 10px;border-radius:8px;background:var(--ink-900);color:#fff;font-family:var(--font-sans);font-size:12px;line-height:1.4;pointer-events:none;transform:translate(-50%,-100%)}.gantt-board .gantt-lot-bar,.gantt-board .gantt-midlot-bar{position:absolute;top:50%;z-index:1;border-radius:4px;transform:translateY(-50%)}.gantt-board .gantt-lot-bar{height:12px;background:var(--ink-900)}.gantt-board .gantt-midlot-bar{height:8px;background:var(--gray-400)}.gantt-board.editable .gantt-lot-bar,.gantt-board.editable .gantt-midlot-bar{cursor:grab}.gantt-board .gantt-lot-bar:hover,.gantt-board .gantt-midlot-bar:hover{box-shadow:var(--shadow-sm)}.gantt-board .gantt-task-bar{position:absolute;top:var(--gantt-bar-inset);bottom:var(--gantt-bar-inset);z-index:1;display:flex;align-items:center;justify-content:center;border-radius:6px;background:var(--role-butter);transition:box-shadow .12s}.gantt-board.editable .gantt-task-bar{cursor:grab}.gantt-board .gantt-task-bar:active{cursor:grabbing}.gantt-board .gantt-task-bar:hover,.gantt-board .gantt-task-bar:focus-visible{box-shadow:var(--shadow-sm);outline:none}.gantt-board .gantt-task-bar:focus-visible{outline:2px solid var(--ink-900);outline-offset:1px}.gantt-board .gantt-task-milestone{position:absolute;top:50%;z-index:1;width:0;height:0}.gantt-board.editable .gantt-task-milestone{cursor:grab}.gantt-board .gantt-task-milestone:before{content:"";position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px}.gantt-board .gantt-task-milestone-shape{position:absolute;top:50%;left:50%;width:18px;height:18px;border-radius:3px;background:var(--ink-900);transform:translate(-50%,-50%) rotate(45deg)}.gantt-board .gantt-task-milestone:hover .gantt-task-milestone-shape{box-shadow:var(--shadow-sm)}.gantt-board .gantt-task-milestone:focus-visible{outline:none}.gantt-board .gantt-task-milestone:focus-visible .gantt-task-milestone-shape{outline:2px solid var(--ink-900);outline-offset:3px}.gantt-board .resize-handle{position:absolute;top:0;bottom:0;z-index:6;width:8px;display:flex;align-items:center;justify-content:center;opacity:1;cursor:ew-resize}.gantt-board .resize-handle.left{left:0}.gantt-board .resize-handle.right{right:0}.gantt-board .resize-handle .grip-line{width:2px;height:12px;border-radius:2px;background:#16161540;pointer-events:none}.gantt-board .gantt-link-handle{position:absolute;top:50%;left:-18px;z-index:7;width:12px;height:12px;margin-top:-6px;padding:0;border:2px solid var(--info-fg);border-radius:50%;background:#fff;box-shadow:0 0 0 3px #fffc;opacity:0;cursor:crosshair;transition:opacity .12s ease,transform .12s ease}.gantt-board .gantt-link-handle.end{left:auto;right:-18px}.gantt-board .gantt-task-milestone .gantt-link-handle{left:-30px}.gantt-board .gantt-task-milestone .gantt-link-handle.end{left:auto;right:-30px}.gantt-board .gantt-task-bar:hover .gantt-link-handle,.gantt-board .gantt-task-milestone:hover .gantt-link-handle,.gantt-board .gantt-link-handle.link-drag-hover{opacity:1}.gantt-board .gantt-link-handle:hover,.gantt-board .gantt-link-handle.link-drag-hover{background:var(--info-fg);transform:scale(1.15)}.gantt-board .gantt-task-bar.link-drag-hover,.gantt-board .gantt-task-milestone.link-drag-hover .gantt-task-milestone-shape{outline:2px solid var(--info-fg);outline-offset:1px}.gantt-board .gantt-links-overlay{position:absolute;top:0;left:0;z-index:2;overflow:visible;pointer-events:none}.gantt-board .gantt-link-path,.gantt-board .gantt-link-path-temp{fill:none;stroke:var(--info-fg);stroke-width:1.5;stroke-linejoin:round;pointer-events:none}.gantt-board .gantt-link-path.unlocked,.gantt-board .gantt-link-path-temp{stroke-dasharray:4 3}.gantt-board .gantt-link-hit{fill:none;stroke:transparent;stroke-width:12;pointer-events:stroke;cursor:pointer}.gantt-board .gantt-link-hit:hover+.gantt-link-path{stroke:var(--ink-900);stroke-width:2.5}.gantt-board .gantt-link-unlock-mark{stroke:var(--info-fg);stroke-width:2;pointer-events:none}.gantt-board .gantt-gap-row{position:relative;height:1px}.gantt-board .gantt-gap-row:before{content:"";position:absolute;top:-6px;bottom:-6px;left:0;right:0}.gantt-board .gantt-gap-line{position:absolute;top:0;left:0;right:0;height:1px;background:transparent}.gantt-board .gantt-gap-row.gantt-drop-hover .gantt-gap-line{top:-2px;z-index:3;height:4px;border-radius:2px;background:var(--info-fg)}.gantt-board .g-row.gantt-row-dragged{opacity:.4}body.gantt-row-dragging,body.gantt-row-dragging *{cursor:grabbing!important;-webkit-user-select:none;user-select:none}.gantt-drag-ghost{position:fixed;top:0;left:0;z-index:1000;max-width:260px;padding:6px 12px;border-radius:999px;background:var(--ink-900);color:#fff;font-family:var(--font-sans);font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;box-shadow:var(--shadow-md)}.gantt-drag-ghost.refused{background:var(--gray-500)}.gantt-board .g-row.gantt-drop-hover{--row-bg: var(--info-bg);box-shadow:inset 0 0 0 2px var(--info-fg)}.gantt-board .gantt-add-section-footer{flex-shrink:0;display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;padding:14px 104px 14px 28px;border-top:1px solid var(--border-default);background:#fff}.gantt-board .gantt-legend-help{flex:1 1 360px;min-width:0;max-width:760px;line-height:1.5}.gantt-board .gantt-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;font-size:13px;color:var(--text-muted)}.gantt-board .gantt-legend-item{display:inline-flex;align-items:center;gap:8px}.gantt-board .gantt-legend-milestone{width:12px;height:12px;border-radius:2px;background:var(--ink-900);transform:rotate(45deg)}.gantt-board .gantt-legend-task{width:28px;height:10px;border-radius:4px}.gantt-board .gantt-legend-section{width:28px;height:6px;border-radius:3px;background:var(--ink-900)}.gantt-board .empty-state{position:sticky;left:0;z-index:3;width:var(--gantt-visible-w, 100%);box-sizing:border-box;display:flex;flex-direction:column;align-items:center;padding:64px 28px;background:#fff;text-align:center;font-size:15px;color:var(--text-muted)}.gantt-board .empty-state p{margin:0 0 16px}.gantt-btn-ghost[aria-busy=true]{cursor:progress;color:var(--text-body)}.gantt-btn-ghost{height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 20px;border:1px solid var(--border-default);border-radius:12px;background:#fff;color:var(--text-strong);font-family:var(--font-sans);font-size:15px;font-weight:600;cursor:pointer}.gantt-btn-ghost:hover:not(:disabled){background:var(--surface-subtle)}.gantt-btn-ghost:disabled{opacity:.4;cursor:default}.gantt-btn-ghost svg{width:16px;height:16px}.gantt-btn-ghost.danger{border-color:var(--danger-fg);color:var(--danger-fg)}.gantt-btn-primary{height:48px;display:inline-flex;align-items:center;gap:8px;padding:0 24px;border:0;border-radius:999px;background:var(--ink-900);color:#fff;font-family:var(--font-sans);font-size:15px;font-weight:500;cursor:pointer}.gantt-btn-primary:hover{background:var(--ink-600)}.gantt-suggestions{display:flex;flex-wrap:wrap;gap:6px}.gantt-suggestion{height:30px;padding:0 12px;border:1px solid var(--border-default);border-radius:999px;background:#fff;font-family:var(--font-sans);font-size:13px;font-weight:500;color:var(--text-strong);cursor:pointer}.gantt-suggestion:hover{background:var(--surface-subtle)}.gantt-share-view{margin:0;padding:12px 16px 14px;border:1px solid var(--border-default);border-radius:12px}.gantt-share-view legend{padding:0 4px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.drawer.gantt-drawer .drawer-body label.gantt-check,.gantt-check{display:flex;align-items:center;gap:10px;margin:6px 0;font-size:15px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-strong);cursor:pointer}.gantt-check input{width:20px;height:20px;margin:0;accent-color:var(--control-checked)}.gantt-slot-tip{position:fixed;z-index:200;max-width:320px;padding:10px 12px;border-radius:10px;background:var(--ink-900);color:#fff;font-family:var(--font-sans);font-size:12px;line-height:1.45;pointer-events:none;box-shadow:var(--shadow-md);transform:translate(-50%,calc(-100% - 8px))}.gantt-slot-tip.below{transform:translate(-50%,8px)}.gantt-slot-tip strong{display:block;margin-bottom:2px;font-size:13px;font-weight:600}.gantt-slot-tip .tip-line{display:flex;align-items:center;gap:6px;color:#ffffffd1;overflow-wrap:anywhere}.gantt-slot-tip .tip-parent{display:block;margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.18);color:#ffffffb3}.gantt-context-menu{position:fixed;z-index:100;min-width:240px;padding:6px;display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--border-default);border-radius:12px;box-shadow:var(--shadow-md)}.gantt-context-menu-item{min-height:44px;width:100%;padding:0 12px;border:0;border-radius:8px;background:none;font-family:var(--font-sans);font-size:15px;text-align:left;color:var(--text-strong);cursor:pointer}.gantt-context-menu-item:hover{background:var(--surface-subtle)}.gantt-context-menu-item.danger{color:var(--danger-fg)}.gantt-context-menu-item.danger:hover{background:var(--danger-bg)}.gantt-error-banner,.gantt-status-banner{margin:0;padding:10px 28px;display:flex;align-items:center;gap:10px;font-size:14px;border-bottom:1px solid var(--border-subtle)}.gantt-error-banner{background:var(--danger-bg);color:var(--danger-fg)}.gantt-status-banner{background:var(--info-bg);color:var(--text-strong)}.gantt-error-banner button{margin-left:auto;border:0;background:none;font-family:var(--font-sans);font-size:14px;color:var(--danger-fg);text-decoration:underline;cursor:pointer}.print-board .gantt-board{--gantt-section-h: 44px;--gantt-task-h: 40px;--gantt-bar-inset: 11px}.print-board .gantt-board .grid-scroll{overflow:visible}.print-board .gantt-board .timeline{min-width:0}.print-board .gantt-board .gantt-header,.print-board .gantt-board .lh,.print-board .gantt-board .row-label{position:static}.print-board .gantt-board .gantt-edge-shadow{display:none}@media print{.print-board .gantt-board .g-row{break-inside:avoid}}.print-board .gantt-board .gantt-link-handle,.shared-board .gantt-board .gantt-link-handle{display:none}.shared-board{display:flex;flex-direction:column;flex:1;min-height:0;border-top:1px solid var(--border-default)}.gantt-board .gantt-add-section-footer .gantt-legend{flex:1 1 420px;min-width:0}.gantt-board .gantt-add-row .row-label{padding:12px 10px}.gantt-board .gantt-add-row .row-track{min-height:0}.gantt-board .gantt-add-row{--row-bg: #fff;border-bottom:1px solid var(--border-subtle)}.gantt-board .gantt-fill-row{--row-bg: #fff;flex:1 0 0;min-height:0}.gantt-board .gantt-fill-row .row-track{min-height:0}.drawer.gantt-drawer{width:min(520px,100%);font-size:16px}.drawer.gantt-drawer .drawer-head{align-items:center;padding:20px 20px 18px 28px}.drawer.gantt-drawer .drawer-head h2{font-size:30px}.drawer.gantt-drawer .drawer-head .icon-btn{border:1px solid var(--border-default);background:#fff}.drawer.gantt-drawer .drawer-head .icon-btn:hover{background:var(--surface-subtle)}.drawer.gantt-drawer .drawer-body{padding:24px 0;gap:0}.gantt-drawer-inner{display:flex;flex-direction:column;gap:22px;padding:0 28px}.gantt-field{display:flex;flex-direction:column;gap:8px}.drawer.gantt-drawer .drawer-body label,.drawer.gantt-drawer .gantt-field-label{margin:0;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.drawer.gantt-drawer .required-mark{color:var(--danger-fg)}.drawer.gantt-drawer .field-subtitle{display:block;margin:-6px 0 0;font-size:13px;color:var(--text-muted)}.drawer.gantt-drawer .drawer-body input[type=password],.drawer.gantt-drawer .drawer-body input[type=text],.drawer.gantt-drawer .drawer-body input[type=date],.drawer.gantt-drawer .drawer-body select{width:100%;height:48px;padding:0 16px;border:1px solid var(--border-default);border-radius:10px;background-color:#fff;font-family:var(--font-sans);font-size:16px;color:var(--text-strong)}.drawer.gantt-drawer .drawer-body textarea{width:100%;padding:12px 16px;border:1px solid var(--border-default);border-radius:10px;font-family:var(--font-sans);font-size:16px;line-height:1.5;color:var(--text-strong);resize:vertical}.drawer.gantt-drawer .drawer-body input::placeholder,.drawer.gantt-drawer .drawer-body textarea::placeholder{color:var(--text-faint)}.drawer.gantt-drawer .drawer-body input:disabled,.drawer.gantt-drawer .drawer-body input[readonly]{border-color:var(--border-subtle);background:var(--surface-subtle);color:var(--text-body);opacity:1}.drawer.gantt-drawer .field-error,.drawer.gantt-drawer .drawer-body input.field-error{border-color:var(--danger-fg)}.drawer.gantt-drawer .field-error-msg{font-size:13px;color:var(--danger-fg)}.drawer.gantt-drawer .date-range-row{display:flex;align-items:center;gap:10px}.drawer.gantt-drawer .date-range-row input{flex:1;min-width:0}.drawer.gantt-drawer .date-range-sep{flex-shrink:0;font-size:14px;color:var(--text-muted)}.drawer.gantt-drawer .note-inline{padding:12px 14px;border-radius:10px;background:var(--surface-subtle);font-size:14px;line-height:1.5;color:var(--text-body)}.drawer.gantt-drawer .drawer-foot{gap:12px;padding:16px 28px}.drawer.gantt-drawer .drawer-foot button{height:48px;padding:0 22px;border:1px solid var(--border-default);border-radius:12px;background:#fff;font-size:15px;font-weight:600;color:var(--text-strong)}.drawer.gantt-drawer .drawer-foot button:hover:not(:disabled){background:var(--surface-subtle)}.drawer.gantt-drawer .drawer-foot .primary{padding:0 24px;border-color:var(--ink-900);background:var(--ink-900);color:#fff}.drawer.gantt-drawer .drawer-foot .primary:hover:not(:disabled){border-color:var(--ink-600);background:var(--ink-600)}.drawer.gantt-drawer .drawer-foot .danger{border-color:var(--danger-fg);background:#fff;color:var(--danger-fg)}.drawer.gantt-drawer .drawer-foot .danger:hover:not(:disabled){background:var(--danger-bg)}.drawer.gantt-drawer .drawer-foot .push-left{margin-right:auto}.drawer.gantt-drawer .drawer-foot .full-width{flex:1}.drawer.gantt-drawer .drawer-error{margin:0}.gantt-chip-list{display:flex;flex-wrap:wrap;gap:6px}.gantt-chip{height:30px;display:inline-flex;align-items:center;gap:6px;padding:0 6px 0 12px;border-radius:999px;background:var(--surface-subtle);font-size:14px;color:var(--text-strong)}.gantt-chip-remove{width:20px;height:20px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:50%;background:transparent;color:var(--text-body);cursor:pointer}.gantt-chip-remove:hover{background:var(--gray-150)}.gantt-status-row{display:flex;align-items:center;gap:12px}.gantt-color-swatch{width:24px;height:24px;flex-shrink:0;border:1px solid rgba(22,22,21,.12);border-radius:50%}.gantt-slot-list{display:flex;flex-direction:column;gap:10px}.gantt-slot-list:empty{display:none}.gantt-slot-row{display:flex;flex-direction:column;gap:12px;padding:14px 12px 14px 16px;border:1px solid var(--border-default);border-radius:12px}.gantt-slot-row-head{display:flex;align-items:center;gap:8px}.drawer.gantt-drawer .drawer-body .gantt-slot-row select,.drawer.gantt-drawer .drawer-body .gantt-slot-row input[type=date],.drawer.gantt-drawer .drawer-body .gantt-slot-row input[type=text]{height:44px;font-size:15px}.gantt-slot-delete-btn,.gantt-slot-edit-btn{width:36px;height:36px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--border-default);border-radius:10px;background:#fff;color:var(--text-strong);cursor:pointer}.gantt-slot-edit-btn:hover{background:var(--surface-subtle)}.gantt-slot-delete-btn:hover{background:var(--danger-bg);color:var(--danger-fg)}.gantt-slot-row-read{flex-direction:row;align-items:center;gap:8px}.gantt-slot-summary{flex:1;min-width:0}.gantt-slot-summary-main{font-size:15px;color:var(--text-strong)}.gantt-slot-summary-main strong{font-weight:600}.gantt-slot-summary-comment{margin-top:4px;display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-slot-summary-actions{display:flex;gap:8px;flex-shrink:0}.gantt-slot-validate{align-self:flex-end}.gantt-add-slot-btn{align-self:flex-start}.gantt-children-list-row{display:flex;gap:10px;padding:10px 2px;border-bottom:1px solid var(--border-subtle);font-size:15px;color:var(--text-strong)}.gantt-children-list-row:last-child{border-bottom:0}.gantt-children-list-num{flex-shrink:0;min-width:20px;font-family:var(--font-mono);font-size:12px;line-height:22px;color:var(--text-muted)}.gantt-section-title{margin:8px 0 0;padding-bottom:8px;border-bottom:1px solid var(--border-subtle);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.gantt-highlight-entry{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 12px 14px 16px;border:1px solid var(--border-default);border-radius:12px;background:#fff}.gantt-highlight-info{display:flex;flex-direction:column;gap:2px;min-width:0}.gantt-highlight-dates{font-size:13px;color:var(--text-muted)}.gantt-highlight-name{font-size:15px;font-weight:600;color:var(--text-strong);overflow-wrap:anywhere}.drawer.gantt-drawer .empty-state{padding:24px 0;text-align:center;font-size:15px;color:var(--text-muted)}.gantt-share-pdf{margin-top:6px;padding-top:20px;border-top:1px solid var(--border-subtle)}.drawer.gantt-drawer .gantt-btn-ghost.block{width:100%}.gantt-history-row{width:100%;margin-bottom:8px;display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid var(--border-default);border-radius:12px;background:#fff;font-family:var(--font-sans);text-align:left;cursor:pointer}.gantt-history-row:hover:not(:disabled){background:var(--surface-muted)}.gantt-history-row.selected{border-color:var(--ink-900);background:var(--surface-subtle)}.gantt-history-row:disabled{opacity:.55;cursor:default}.gantt-history-radio{width:18px;height:18px;margin-top:2px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--gray-300);border-radius:50%}.gantt-history-row.selected .gantt-history-radio{border-color:var(--ink-900)}.gantt-history-row.selected .gantt-history-radio:after{content:"";width:9px;height:9px;border-radius:50%;background:var(--ink-900)}.gantt-history-info{display:flex;flex-direction:column;gap:4px;min-width:0}.gantt-history-time{font-size:13px;color:var(--text-muted);font-variant-numeric:tabular-nums}.gantt-history-text{font-size:15px;line-height:1.45;color:var(--text-strong)}.drawer.gantt-drawer .drawer-body .gantt-radio-line{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--text-strong);cursor:pointer}.drawer.gantt-drawer .gantt-radio-line input{width:20px;height:20px;margin:0;accent-color:var(--control-checked)}.gantt-version-status{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--text-strong)}.gantt-version-status .gantt-version-star{color:var(--amber-700)}.gantt-popin-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:var(--surface-overlay)}.confirm-popin.gantt-popin{z-index:61}.confirm-popin.gantt-popin .confirm-actions .danger{border-color:var(--danger-fg);background:var(--danger-fg);color:#fff}.dashboard-page .dashboard-body{padding:24px 28px 48px;display:flex;flex-direction:column;gap:32px}.dash-block{display:flex;flex-direction:column;gap:12px}.dash-head{min-height:44px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px}.dash-head .section-caps{font-size:13px}.dash-empty{margin:0;padding:20px;border:1px dashed var(--border-default);border-radius:14px;color:var(--text-muted);font-size:15px}.week-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.week-tile{padding:18px 20px;border:1px solid var(--border-default);border-radius:14px;background:#fff}.week-tile.over{border-color:var(--danger-fg);background:var(--danger-bg)}.week-tile.under{border-color:var(--warning-fg);background:var(--warning-bg)}.tile-label{margin:0 0 8px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.tile-value{margin:0;font-family:var(--font-display);font-size:36px;font-weight:500;line-height:1;letter-spacing:-.015em;font-variant-numeric:tabular-nums;color:var(--text-strong)}.week-tile.over .tile-value{color:var(--danger-fg)}.week-tile.under .tile-value{color:var(--warning-fg)}.tile-detail{margin:8px 0 0;font-size:14px;color:var(--text-body);font-variant-numeric:tabular-nums}.dash-alerts{list-style:none;margin:0;padding:0;border:1px solid var(--border-default);border-radius:14px;background:#fff;overflow:hidden}.dash-alerts li{min-height:56px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,180px) auto;align-items:center;gap:16px;padding:10px 20px;border-bottom:1px solid var(--border-subtle);font-size:15px}.dash-alerts li:last-child{border-bottom:none}.dash-alert-name{font-weight:500;color:var(--text-strong)}.dash-alert-team{font-size:14px;color:var(--text-muted)}.ui-chip.dash-alert-pct{justify-self:end;font-variant-numeric:tabular-nums}.ui-chip.dash-alert-pct.overload{background:var(--danger-bg);color:var(--danger-fg)}.ui-chip.dash-alert-pct.underload{background:var(--warning-bg);color:var(--warning-fg)}.projects-cards-row{margin:0}@media(max-width:640px){.dashboard-page .dashboard-body{padding:16px 16px 40px;gap:24px}.dash-alerts li{grid-template-columns:minmax(0,1fr) auto}.dash-alert-team{display:none}}.settings-page{background:var(--surface-muted)}.settings-body{flex:1;min-height:0;overflow-y:auto;background:var(--surface-muted)}.settings-column{max-width:880px;padding:28px 28px 64px;box-sizing:border-box}.settings-section{display:flex;flex-direction:column;gap:16px}.settings-page .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.settings-section-head{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}.settings-section-title{margin:0;font-family:var(--font-display);font-size:28px;font-weight:400;letter-spacing:-.015em;color:var(--text-strong)}.settings-note{margin:0;max-width:600px;font-size:15px;line-height:1.5;color:var(--text-muted);text-wrap:pretty}.settings-page .settings-banner{padding:12px 16px;border-bottom:0;font-size:14px}.settings-input{height:44px;padding:0 14px;box-sizing:border-box;border:1px solid var(--border-default);border-radius:10px;background:#fff;font-family:var(--font-sans);font-size:15px;color:var(--text-strong);outline:none}.settings-input::placeholder{color:var(--text-faint)}.settings-input:focus{border-color:var(--ink-900)}.settings-input[aria-invalid=true]{border-color:var(--danger-fg)}.settings-select{position:relative;display:inline-flex;flex:1;min-width:0}.settings-select select{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:100%;height:40px;padding:0 32px 0 12px;border:1px solid var(--border-default);border-radius:10px;background:#fff;font-family:var(--font-sans);font-size:14px;color:var(--text-strong);cursor:pointer}.settings-select select:focus-visible{border-color:var(--ink-900);outline:none}.settings-select-chevron{position:absolute;top:50%;right:10px;transform:translateY(-50%);color:var(--text-body);pointer-events:none}.settings-add{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 18px;border:1px dashed var(--gray-300);border-radius:14px}.settings-add .section-caps{white-space:nowrap}.settings-add-gap{margin-left:8px}.settings-add-name{flex:1;min-width:160px;max-width:280px}.settings-add-team{flex:1;min-width:140px;max-width:220px}.settings-add-holiday{flex:1;min-width:160px;max-width:260px}.settings-add .team-icon-picker .settings-select{flex:none;width:160px}.settings-add .settings-select select{height:44px}.settings-add-error{flex-basis:100%;font-size:13px;color:var(--danger-fg)}.settings-rows{display:flex;flex-direction:column;gap:16px}.settings-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 12px 12px 18px;border:1px solid var(--border-default);border-radius:14px;background:#fff}.settings-row-preview{width:84px;flex-shrink:0;display:flex}.settings-row-pill{max-width:100%;overflow:hidden;text-overflow:ellipsis}.settings-status-name{flex:1;min-width:160px;height:44px;padding:0 14px;box-sizing:border-box;border:1px solid var(--border-default);border-radius:10px;background:#fff;font-family:var(--font-sans);font-size:15px;color:var(--text-strong);outline:none}.settings-status-name:focus{border-color:var(--ink-900)}.settings-color-swatches{display:flex;gap:6px;flex-shrink:0}.settings-color-swatch{width:26px;height:26px;padding:0;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:transform .12s}.settings-color-swatch:hover{transform:scale(1.1)}.settings-color-swatch.active{outline:2px solid var(--ink-900);outline-offset:2px}.settings-row-count{width:82px;flex-shrink:0;text-align:right;font-size:13px;color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.settings-row-delete{width:36px;height:36px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-default);border-radius:10px;background:#fff;color:var(--text-strong);cursor:pointer}.settings-row-delete:hover{background:var(--surface-subtle)}.settings-row-delete.locked{opacity:.35;cursor:not-allowed}.settings-table-card{overflow:hidden}.settings-table{width:100%;border-collapse:collapse;table-layout:fixed}.settings-table .col-icon{width:234px}.settings-table .col-count{width:156px}.settings-table .col-action{width:136px}.settings-table .col-date{width:236px}.settings-table .col-action-sm{width:126px}.settings-table th{height:44px;padding:0 8px;background:var(--surface-subtle);border-bottom:1px solid var(--border-default);text-align:left;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.settings-table td{height:60px;padding:8px;border-bottom:1px solid var(--border-subtle);vertical-align:middle}.settings-table th:first-child,.settings-table td:first-child{padding-left:18px}.settings-table th:last-child,.settings-table td:last-child{padding-right:16px}.settings-table tbody tr:last-child td{border-bottom:0}.settings-table .cell-num{font-size:15px;color:var(--text-body);font-variant-numeric:tabular-nums}.settings-table .cell-action{text-align:right}.settings-table .settings-pill-btn{height:36px;padding:0 14px;border:1px solid var(--border-default);border-radius:999px;background:#fff;color:var(--text-strong);font-family:var(--font-sans);font-size:13px;font-weight:500;cursor:pointer}.settings-table .settings-pill-btn:hover{background:var(--surface-subtle)}.settings-table .settings-pill-btn.danger{color:var(--danger-fg)}.settings-table .settings-pill-btn.locked{color:var(--text-muted);opacity:.4;cursor:not-allowed}.settings-table-empty{margin:0;padding:32px 18px;text-align:center;font-size:15px;color:var(--text-muted)}.team-icon-picker{display:flex;align-items:center;gap:10px;min-width:0}.team-icon-square{width:36px;height:36px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:var(--surface-subtle);color:var(--text-strong)}.settings-table .inline-input{width:100%;height:40px;padding:0 12px;box-sizing:border-box;border:1px solid transparent;border-radius:10px;background:transparent;font-family:var(--font-sans);font-size:15px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-strong);outline:none}.settings-table .inline-input:hover{border-color:var(--border-default);background:#fff}.settings-table .inline-input:focus{border-color:var(--ink-900);background:#fff}.settings-year{display:flex;align-items:center;gap:12px}.settings-year-select{flex:none;width:120px}.settings-year-select select{height:44px;padding-left:14px;font-size:15px}.settings-year-count{font-size:14px;color:var(--text-muted)}.settings-holidays-table td{height:52px;padding-top:6px;padding-bottom:6px;transition:background .3s}.settings-holidays-table tr.fresh td{background:var(--success-bg)}.holiday-date{display:flex;align-items:baseline;gap:10px}.holiday-dow{width:32px;flex-shrink:0;font-size:13px;color:var(--text-muted)}.holiday-day{font-size:15px;font-weight:500;font-variant-numeric:tabular-nums}.holiday-label{display:flex;align-items:center;gap:8px;font-size:15px}.holiday-weekend{height:20px;padding:0 8px;display:inline-flex;align-items:center;border-radius:999px;background:var(--surface-subtle);font-size:11px;font-weight:500;color:var(--text-muted)}.import-section{display:flex;flex-direction:column;gap:16px}.import-drop{display:flex;align-items:center;gap:14px;padding:18px 20px;border:1px dashed var(--gray-300);border-radius:14px;background:#fff;color:var(--text-body)}.import-drop-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.import-drop-text strong{font-size:15px;font-weight:600;color:var(--text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-drop-text span{font-size:13px;color:var(--text-muted)}.import-done{display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:14px;background:var(--success-bg);color:var(--success-fg);font-size:15px}.import-done span{flex:1;color:var(--text-strong)}.import-figures{margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.import-figure{padding:14px 16px;border:1px solid var(--border-default);border-radius:14px;background:#fff}.import-figure dt{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.import-figure dd{margin:6px 0 0;display:flex;flex-direction:column;gap:2px}.import-figure strong{font-family:var(--font-display);font-size:22px;font-weight:500;font-variant-numeric:tabular-nums}.import-figure span{font-size:13px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-summary{display:flex;flex-direction:column;gap:12px}.import-notes{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.import-notes li{display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height:1.45;color:var(--text-body)}.import-notes .msym{margin-top:2px;color:var(--info-fg)}.import-details{padding:12px 16px;border:1px solid var(--border-default);border-radius:12px;background:#fff;font-size:14px}.import-details summary{cursor:pointer;font-weight:500}.import-details p{margin:8px 0 4px;color:var(--text-muted)}.import-details ul{margin:0;padding-left:18px;max-height:220px;overflow-y:auto;color:var(--text-body);line-height:1.6}.import-option{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid var(--border-default);border-radius:12px;background:#fff;font-size:14px;cursor:pointer}.import-option input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--control-checked)}.import-option small{display:block;margin-top:4px;font-size:13px;color:var(--text-muted)}.import-block{display:flex;flex-direction:column;gap:8px}.import-block-title{margin:8px 0 0;font-family:var(--font-display);font-size:22px;font-weight:400}.import-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--border-default);border-radius:14px;background:#fff;overflow:hidden;font-size:14px}.import-table th{padding:10px 14px;background:var(--surface-subtle);border-bottom:1px solid var(--border-default);text-align:left;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.import-table td{padding:10px 14px;border-bottom:1px solid var(--border-subtle);vertical-align:middle}.import-table tr:last-child td{border-bottom:0}.import-table tr.needs-review td:first-child{box-shadow:inset 3px 0 0 var(--warning-fg)}.import-table td:first-child{display:flex;flex-direction:column;gap:4px}.import-table td:last-child{width:300px}.import-table .settings-select,.import-table select{width:100%}.import-project-name{font-weight:600}.import-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.import-muted{font-size:13px;color:var(--text-muted)}.import-num{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text-body)}.import-badge{align-self:flex-start;height:22px;padding:0 8px;display:inline-flex;align-items:center;border-radius:999px;background:var(--success-bg);color:var(--success-fg);font-size:12px;font-weight:500;white-space:nowrap}.import-badge.new{background:var(--info-bg);color:var(--info-fg)}.import-badge.close,.import-badge.code,.import-badge.manual,.import-badge.warn{background:var(--warning-bg);color:var(--warning-fg)}.import-suggestion{align-self:flex-start;padding:0;border:0;background:none;font:inherit;font-size:13px;color:var(--info-fg);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.import-actions{position:sticky;bottom:0;padding:14px 0;display:flex;justify-content:flex-end;background:linear-gradient(to top,var(--surface-muted) 70%,transparent)}.login-status{display:flex;align-items:flex-start;gap:12px;padding:14px 18px;border-radius:14px;font-size:14px}.login-status.on{background:var(--success-bg);color:var(--success-fg)}.login-status.off{background:var(--info-bg);color:var(--info-fg)}.login-status>div{display:flex;flex-direction:column;gap:4px;min-width:0;color:var(--text-body)}.login-status strong{font-size:15px;color:var(--text-strong)}.login-status code{font-family:var(--font-mono);font-size:13px;overflow-wrap:anywhere}.import-notes li.warn .msym{color:var(--warning-fg)}.login-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.login-actions .primary-btn{margin-left:auto}.login-saved{font-size:14px;color:var(--success-fg)}.login-table td:last-child{width:360px}.login-email-input{width:100%;height:38px;padding:0 12px;border:1px solid var(--border-default);border-radius:10px;background:#fff;font:inherit;font-size:14px;color:var(--text-strong)}.login-email-input[aria-invalid=true]{border-color:var(--danger-fg)}.login-table .field-error{margin:4px 0 0;font-size:12.5px;color:var(--danger-fg)}.drawer.account-drawer{width:min(560px,100%)}.drawer.account-drawer .drawer-head{align-items:center;padding:20px 20px 18px 28px}.drawer.account-drawer .drawer-head .icon-btn{border:1px solid var(--border-default);background:#fff}.drawer.account-drawer .drawer-head .icon-btn:hover{background:var(--surface-subtle)}.account-body{flex:1;overflow-y:auto;padding:0 28px}.profile-section{padding:24px 0;display:flex;flex-direction:column;gap:14px;border-bottom:1px solid var(--border-default)}.profile-section:last-child{padding-bottom:32px;border-bottom:0}.profile-section p{margin:0}.profile-title{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.profile-section:first-child{gap:6px}.profile-name{font-size:22px;font-weight:600}.profile-sub{font-size:15px;color:var(--text-muted)}.profile-empty{font-size:14px;line-height:1.5;color:var(--text-muted);text-wrap:pretty}.account-avatar-display{width:72px;height:72px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:50%;background:var(--surface-subtle);font-size:36px;font-weight:600;color:var(--text-strong)}.account-avatar-display.initial{background:var(--role-peach);font-size:24px}.account-avatar-display img{width:100%;height:100%;object-fit:cover}.avatar-picker{display:flex;flex-wrap:wrap;gap:10px}.avatar-picker button{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-default);border-radius:50%;background:#fff;font-family:var(--font-sans);font-size:22px;font-weight:600;color:var(--text-strong);cursor:pointer;transition:border-color .15s,transform .15s}.avatar-picker button:hover{transform:scale(1.06)}.avatar-picker button:focus-visible{outline:2px solid var(--ink-900);outline-offset:2px}.avatar-picker button.active{border:2px solid var(--ink-900)}.avatar-picker .avatar-initial{background:var(--role-peach);font-size:18px}.avatar-picker .avatar-more:hover{transform:none;background:var(--surface-subtle)}.avatar-picker .avatar-more.active{border:1px solid var(--ink-900)}.avatar-picker.avatar-picker-more{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:6px;max-height:220px;overflow-y:auto;padding:12px;border:1px solid var(--border-default);border-radius:12px;background:var(--surface-muted)}.avatar-picker.avatar-picker-more button{width:auto;height:40px;border:0;border-radius:10px;background:transparent;font-size:20px}.avatar-picker.avatar-picker-more button:hover,.avatar-picker.avatar-picker-more button.active{transform:none;background:#fff}.avatar-upload{display:flex;flex-wrap:wrap;gap:8px}.avatar-upload .outline-btn{padding:0 18px}.account-drawer .drawer-error{margin:0;padding:10px 14px}.pref-radios{display:flex;flex-direction:column;gap:14px}.pref-radio{display:flex;align-items:center;gap:12px;font-size:16px;color:var(--text-strong);cursor:pointer}.pref-radio strong{font-weight:600}.pref-radio input{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:20px;height:20px;margin:0;flex-shrink:0;display:inline-grid;place-content:center;border:1.5px solid var(--border-strong);border-radius:50%;background:#fff;cursor:pointer}.pref-radio input:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--ink-900);opacity:0;transition:opacity .15s}.pref-radio input:checked{border:2px solid var(--ink-900)}.pref-radio input:checked:before{opacity:1}.pref-radio input:focus-visible{outline:2px solid var(--ink-900);outline-offset:2px}.followed-list{margin:-8px 0 0;padding:0;list-style:none}.followed-list li{display:flex;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid var(--border-subtle)}.followed-list li:last-child{border-bottom:0}.followed-name{flex:1;min-width:0;padding:0;display:flex;flex-direction:column;gap:2px;border:0;background:none;font-family:var(--font-sans);text-align:left;color:var(--text-strong);cursor:pointer}.followed-name .code{font-size:12px;font-weight:500;letter-spacing:.04em;color:var(--text-muted)}.followed-title{font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.followed-name:hover .followed-title{text-decoration:underline;text-underline-offset:3px}.pref-table{width:100%;border-collapse:collapse;table-layout:fixed}.pref-table th{padding:10px 10px 10px 0;border-bottom:1px solid var(--border-default);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-align:left;color:var(--text-muted)}.pref-table th:first-child{width:30%}.pref-table th:nth-child(3){width:26%}.pref-table td{padding:8px 10px 8px 0;border-bottom:1px solid var(--border-subtle);font-size:15px;line-height:1.3}.pref-table td:last-child,.pref-table th:last-child{padding-right:0}.pref-select-wrap{position:relative}.pref-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:100%;height:40px;padding:0 28px 0 12px;border:1px solid var(--border-default);border-radius:10px;background:#fff;font-family:var(--font-sans);font-size:14px;color:var(--text-strong);text-overflow:ellipsis;cursor:pointer}.pref-select.on{background:var(--surface-muted)}.pref-select:focus-visible{outline:none;border-color:var(--gray-300);box-shadow:var(--ring-focus)}.pref-chevron{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--text-body);pointer-events:none}.account-drawer .foot-note{flex:1;font-size:13px;color:var(--text-muted)}.account-drawer .drawer-foot .account-logout{height:48px;padding:0 20px;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border-default);border-radius:999px;background:#fff;color:var(--danger-fg);font-family:var(--font-sans);font-size:15px;font-weight:500;white-space:nowrap;cursor:pointer}.account-drawer .drawer-foot .account-logout:hover:not(:disabled){background:var(--danger-bg);border-color:transparent}.side-nav{position:fixed;top:0;left:0;bottom:0;width:min(280px,86vw);background:var(--panel);border-right:1px solid var(--border-strong);box-shadow:6px 0 24px #0000001f;z-index:41;display:flex;flex-direction:column}.side-nav-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}.side-nav-title{font-family:Caveat,cursive;font-size:26px;font-weight:700;color:var(--text);margin:0;line-height:1}.side-nav-list{display:flex;flex-direction:column;padding:8px 0}.side-nav-item{display:flex;align-items:center;gap:12px;padding:12px 20px;font-size:13px;font-weight:600;color:var(--text);text-decoration:none;background:none;border:none;cursor:pointer;text-align:left}.side-nav-item+.side-nav-item{border-top:1px solid var(--border)}.side-nav-item:hover,.side-nav-item.current{background:var(--g-100)}.side-nav-item svg{width:18px;height:18px;color:var(--g-600);flex-shrink:0}.side-nav-item span{flex:1}.side-nav-check{width:16px!important;height:16px!important;color:var(--g-800)!important;visibility:hidden}.side-nav-item.current .side-nav-check{visibility:visible}.burger-btn{width:34px;height:34px;border-radius:8px;border:1px solid transparent;background:transparent;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.burger-btn:hover{background:#ffffff1f}.burger-btn svg{width:18px;height:18px}.side-nav{width:min(320px,90vw);border-right:0;box-shadow:var(--shadow-dialog);font-family:var(--font-sans);color:var(--text-strong)}.side-nav-head{height:72px;flex-shrink:0;padding:0 16px 0 24px;border-bottom:1px solid var(--border-subtle)}.side-nav-title{display:flex;align-items:center;gap:10px;font-family:var(--font-sans);font-size:13px;font-weight:400}.side-nav-title img{display:block}.side-nav-by{color:var(--text-muted)}.side-nav .icon-btn{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-default);border-radius:12px;color:var(--text-strong)}.side-nav .icon-btn:hover{background:var(--surface-subtle)}.side-nav-list{gap:2px;padding:12px}.side-nav-item{height:48px;gap:14px;padding:0 14px;border-radius:10px;font-size:16px;font-weight:400;color:var(--text-strong)}.side-nav-item+.side-nav-item{border-top:0}.side-nav-item:hover,.side-nav-item.current{background:var(--surface-subtle)}.side-nav-item.current{font-weight:500}.side-nav-item svg{width:20px;height:20px;color:var(--text-body)}.side-nav-check{width:18px!important;height:18px!important;color:var(--text-strong)!important}.print-page{display:flex;flex-direction:column;min-height:100vh;background:#fff;padding:16px 20px}.print-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding-bottom:14px;margin-bottom:12px;border-bottom:2px solid var(--g-800)}.print-code{margin:0;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10px;font-weight:700;color:var(--text-3)}.print-client{margin:2px 0 0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3)}.print-title{margin:4px 0 0;font-size:24px;font-weight:700;line-height:1.15}.print-meta{text-align:right;font-size:11.5px;color:var(--text-2)}.print-meta p{margin:0 0 3px}.print-logo{display:block;margin:2px 0 8px auto;color:var(--g-800)}.print-legend{margin-top:18px;page-break-inside:avoid}.print-legend h2{margin:0 0 6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3)}.print-legend ul{margin:0;padding-left:16px;font-size:11.5px;line-height:1.6}html.print-route,html.print-route body,html.print-route #root{height:auto;min-height:100%;overflow:visible;background:#fff}.print-page .gantt,.print-page .gantt-body{overflow:visible;min-height:0;flex:none}.print-page .gantt-header{position:static}@media print{html,body{overflow:visible;height:auto;background:#fff}.print-page{padding:0}.print-page .lot-row{page-break-before:auto;break-inside:avoid}.print-page .gantt-row{break-inside:avoid}.print-page .add-row{display:none}}.shared-gate{max-width:400px;margin:14vh auto;padding:28px;background:var(--panel);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;gap:10px;font-size:13px;line-height:1.5}.shared-gate .app-name{color:var(--text);margin:0 0 6px}.shared-gate label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3)}.shared-gate input,.shared-gate button{font:inherit;font-size:13px;padding:9px 11px;border:1px solid var(--border-strong);border-radius:6px;background:#fff}.shared-gate button{background:var(--g-800);border-color:var(--g-800);color:#fff;font-weight:600;cursor:pointer}.shared-page{width:100%;height:100vh;overflow:hidden}.print-page.shared-page .gantt-header{position:sticky;top:0}.shared-page .print-legend{flex-shrink:0;max-height:22vh;overflow-y:auto}.shared-lots{list-style:none;margin:0;padding:0}.shared-lots>li{margin-bottom:22px;break-inside:avoid}.shared-lot-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:5px;border-bottom:1px solid var(--border-strong)}.shared-lot-head h2{margin:0;font-size:14px;font-weight:700}.shared-dates{font-size:11.5px;color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap}.shared-tasks{list-style:none;margin:0;padding:0}.shared-tasks li{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:7px 0 7px 14px;border-bottom:1px solid var(--g-150);font-size:12.5px}.shared-tasks li.milestone-row{font-weight:700}.shared-task-name{min-width:0}.shared-foot{margin-top:30px;padding-top:12px;border-top:1px solid var(--border);font-size:11px;color:var(--text-3);text-align:center}.app{display:flex;flex-direction:column;height:100vh}.open-access-banner{flex-shrink:0;margin:0;padding:6px 16px;background:var(--red-bg);color:var(--red);border-bottom:1px solid var(--red);font-size:12px;line-height:1.4}.open-access-banner strong{text-transform:uppercase;letter-spacing:.04em}.app-header{display:flex;align-items:center;gap:10px;padding:10px 20px;background:var(--g-800);flex-shrink:0}.app-name{font-family:Caveat,cursive;font-size:26px;font-weight:700;color:#fff;line-height:1;text-decoration:none;flex-shrink:0}.app-header-left,.app-header-right{display:flex;align-items:center;gap:10px}.account{display:flex;align-items:center;gap:8px;padding:5px 12px 5px 6px;border:1px solid rgba(255,255,255,.35);border-radius:8px;background:transparent;color:#fff;font:inherit;font-size:12px;font-weight:600;cursor:pointer}.account:hover{background:#ffffff1f}.account-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.account-avatar{width:22px;height:22px;border-radius:50%;background:#ffffff2e;display:flex;align-items:center;justify-content:center;font-size:10px}.account-level{font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;padding:2px 6px;border-radius:3px;background:#ffffff29;font-weight:700}.toolbar{display:flex;align-items:center;gap:10px;padding:12px 20px;background:var(--panel);border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap}.toolbar-title{font-size:13px;margin-right:6px;white-space:nowrap}.toolbar-spacer{flex:1}.search-input,.filter-select{font:inherit;font-size:12px;padding:7px 10px;border:1px solid var(--border-strong);border-radius:6px;background:#fff;color:var(--text)}.search-input{min-width:180px}.zoom-group,.week-nav{display:flex;gap:4px}.zoom-btn,.week-nav button{font:inherit;font-size:12px;font-weight:600;padding:6px 10px;border:1px solid var(--border-strong);border-radius:6px;background:#fff;color:var(--g-700);cursor:pointer}.zoom-btn:hover,.week-nav button:hover{background:var(--g-100)}.zoom-btn.active{background:var(--g-800);border-color:var(--g-800);color:#fff}.state-message{padding:24px 20px;font-size:13px;color:var(--text-2)}.state-message.error,.error{color:var(--red)}.login{max-width:420px;margin:12vh auto;padding:28px;background:var(--panel);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;gap:10px;font-size:13px}.login .app-name{color:var(--text);margin:0}.login label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3)}.login select,.login button{font:inherit;font-size:13px;padding:8px 10px;border:1px solid var(--border-strong);border-radius:6px;background:#fff}.login button{background:var(--g-800);color:#fff;border-color:var(--g-800);font-weight:600;cursor:pointer}.login .zoho-login{display:flex;flex-direction:column;gap:10px}.login .zoho-login p{margin:0}.login .zoho-login input{font:inherit;font-size:14px;padding:9px 10px;border:1px solid var(--border-strong);border-radius:6px;background:#fff}.login .zoho-login input[aria-invalid=true]{border-color:var(--danger-fg)}.login button.login-fallback{background:#fff;color:var(--text);border-color:var(--border-strong)}.reset-filters-link{background:none;border:none;font:inherit;font-size:12px;font-weight:600;color:var(--text-2);text-decoration:underline;cursor:pointer;padding:0;white-space:nowrap}.reset-filters-link:hover{color:var(--text)}.zoom-group{display:flex;align-items:center;gap:6px}.zoom-btn svg{width:16px;height:16px}.zoom-btn:disabled{opacity:.4;cursor:default}.zoom-level{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);min-width:56px;text-align:center}.open-access-banner{padding:10px 24px;border-bottom:0;background:var(--danger-bg);color:var(--danger-fg);font-family:var(--font-sans);font-size:13px}.open-access-banner strong{font-weight:600}.app-header{height:64px;gap:14px;padding:0 16px;background:var(--surface-inverse);color:#fff;font-family:var(--font-sans)}.app-header-left{gap:14px}.app-brand{display:flex;align-items:center;gap:10px;text-decoration:none}.app-brand img{display:block}.app-brand-by{font-size:13px;color:#fff9}.app-header .burger-btn,.app-header .notif-bell{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px}.app-header .notif-badge{top:4px;right:4px;border-radius:999px;background:var(--red-600);font-size:10px;font-weight:600}.app-header .account{height:44px;gap:10px;padding:0 12px 0 6px;border:0;border-radius:999px;background:#ffffff14;font-family:var(--font-sans);font-size:15px;font-weight:400}.app-header .account:hover{background:#ffffff24}.app-header .account-avatar{width:32px;height:32px;overflow:hidden;background:#fff;color:var(--text-strong);font-size:15px;font-weight:600}.app-header .account-level{height:20px;padding:0 8px;display:inline-flex;align-items:center;border-radius:999px;font-size:10px;font-weight:600;letter-spacing:.06em}:root{--bg: #f9f9f8;--panel: #ffffff;--border: #e6e5e1;--border-strong: #c9c8c4;--text: #161615;--text-2: #72716d;--text-3: #9d9c98;--g-100: #f3f3f1;--g-150: #ededea;--g-200: #e6e5e1;--g-300: #c9c8c4;--g-400: #9d9c98;--g-500: #72716d;--g-600: #72716d;--g-700: #474745;--g-800: #161615;--red: #d2345a;--red-bg: #fde6ec;--amber: #9a5b0e;--amber-bg: #fef8e7;--load-free: #9fee9b;--load-free-text: #044c00;--load-free-soft: #d1f5cf;--load-free-soft-text: #2f842b;--load-full: #57b652;--load-over: #ef2a2a;--load-off: #000000;--load-empty: #ececec;--bar-default: #f5e7b9;--bar-default-border: #d3bc6f;--bar-text: #442c02;--row-header-width: 300px;--row-height: 34px;font-family:var(--font-sans);font-feature-settings:"tnum" 1;-webkit-font-smoothing:antialiased}:root{--ink-900: #161615;--ink-800: #232322;--ink-700: #2e2e2d;--ink-600: #474745;--gray-500: #72716d;--gray-400: #9d9c98;--gray-300: #c9c8c4;--gray-200: #e6e5e1;--gray-150: #ededea;--gray-100: #f3f3f1;--gray-50: #f9f9f8;--role-lavender: #e2d2fb;--role-mint: #b2f5da;--role-rose: #fddaea;--role-sky: #c9eef8;--role-peach: #ffdcc0;--role-butter: #fef0c3;--role-stone: #efefee;--green-600: #1c9a57;--green-100: #e2f5e9;--orange-600: #e0690f;--orange-100: #fdeadb;--red-600: #d2345a;--red-100: #fde6ec;--teal-700: #1f5c55;--mint-400: #52edb2;--load-over-bg: #c3141d;--blue-600: #2c77db;--blue-300: #a5c8f3;--blue-50: #eef4fd;--violet-600: #6b45c9;--violet-200: #dccff6;--violet-50: #f5f0fe;--amber-700: #9a5b0e;--amber-200: #f4e3b5;--amber-50: #fef8e7;--info-fg: var(--blue-600);--info-bg: var(--blue-50);--info-border: var(--blue-300);--warning-fg: var(--orange-600);--warning-bg: var(--orange-100);--surface-page: #ffffff;--surface-card: #ffffff;--text-inverse: #ffffff;--gradient-ai: linear-gradient(100deg, #f3ecfd 0%, #c4f5e2 62%, #6ff0c0 100%);--shadow-xs: 0 1px 2px rgba(22, 22, 21, .05);--surface-subtle: var(--gray-100);--surface-muted: var(--gray-50);--surface-inverse: var(--ink-800);--surface-overlay: rgba(22, 22, 21, .36);--text-strong: var(--ink-900);--text-body: var(--ink-700);--text-muted: var(--gray-500);--text-faint: var(--gray-400);--border-default: var(--gray-200);--border-subtle: var(--gray-150);--success-fg: var(--green-600);--success-bg: var(--green-100);--danger-fg: var(--red-600);--danger-bg: var(--red-100);--control-checked: var(--teal-700);--accent-ai: var(--mint-400);--font-display: "Playfair Display", Georgia, "Times New Roman", serif;--font-sans: "Google Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "Geist Mono", ui-monospace, Menlo, monospace;--shadow-sm: 0 2px 6px -2px rgba(22, 22, 21, .1);--shadow-md: 0 10px 24px -10px rgba(22, 22, 21, .2);--shadow-dialog: 0 30px 70px -24px rgba(22, 22, 21, .3), 0 2px 8px rgba(22, 22, 21, .06);--ring-focus: 0 0 0 3px rgba(22, 22, 21, .12)}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);overflow:hidden}#root{height:100vh}:focus-visible{outline:2px solid var(--g-800);outline-offset:1px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.msym{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;display:inline-block;vertical-align:middle;font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 20}.msym.filled{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 20}button>.msym{vertical-align:-.1em}.team-label{display:inline-flex;align-items:center;gap:4px;vertical-align:bottom}body{background:var(--surface-page);color:var(--text-strong);font-family:var(--font-sans)}button,input,select,textarea{font-family:inherit}.page{background:var(--surface-muted);font-family:var(--font-sans);color:var(--text-strong)}.toolbar{gap:16px;padding:14px 28px;background:#fff;border-bottom:1px solid var(--border-default)}.toolbar-title{margin:0 4px 0 0;font-family:var(--font-display);font-size:22px;font-weight:500;letter-spacing:-.015em;white-space:nowrap;color:var(--text-strong)}.tabs{display:flex;flex-wrap:wrap;gap:2px;padding:4px;border:0;border-radius:12px;background:var(--surface-subtle)}.tabs button{height:36px;padding:0 14px;border:0;border-radius:9px;background:transparent;box-shadow:none;color:var(--text-muted);font-family:var(--font-sans);font-size:15px;font-weight:500;white-space:nowrap;cursor:pointer;transition:background .15s}.tabs button:hover{color:var(--text-strong)}.tabs button.active,.tabs button[aria-selected=true]{background:#fff;color:var(--text-strong);box-shadow:var(--shadow-xs)}.toolbar-field{position:relative;height:44px;display:flex;align-items:center;gap:10px;border:1px solid var(--border-default);border-radius:10px;background:#fff;color:var(--text-muted)}.toolbar-field:focus-within{border-color:var(--gray-300);box-shadow:var(--ring-focus)}.toolbar-field.search-field{width:260px;max-width:100%;padding:0 14px}.toolbar-field.search-field input{flex:1;min-width:0;height:100%;padding:0;border:0;outline:none;background:transparent;font-family:var(--font-sans);font-size:15px;color:var(--text-strong)}.toolbar-field.search-field input::placeholder{color:var(--text-faint)}.toolbar-field.select-field{color:var(--text-body)}.toolbar-field.select-field>.msym{position:absolute;left:14px;pointer-events:none}.toolbar-field.select-field>.select-chevron{left:auto;right:14px}.toolbar-field.select-field select{-moz-appearance:none;appearance:none;-webkit-appearance:none;height:100%;padding:0 40px 0 16px;border:0;border-radius:10px;outline:none;background:transparent;font-family:var(--font-sans);font-size:15px;color:var(--text-strong);cursor:pointer}.toolbar-field.select-field.with-icon select{padding-left:42px}.toolbar>.primary-btn:last-child{margin-left:auto}.search-input,.filter-select{height:44px;padding:0 14px;border:1px solid var(--border-default);border-radius:10px;background:#fff;font-family:var(--font-sans);font-size:15px;color:var(--text-strong)}.primary-btn{height:44px;padding:0 22px;display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;background:var(--ink-900);color:#fff;font-family:var(--font-sans);font-size:15px;font-weight:500;white-space:nowrap;cursor:pointer}.primary-btn:hover:not(:disabled){background:var(--ink-600)}.primary-btn:disabled{opacity:.4;cursor:default}.outline-btn,.ghost-btn{height:40px;padding:0 16px;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border-default);border-radius:999px;background:#fff;color:var(--text-strong);font-family:var(--font-sans);font-size:14px;font-weight:500;white-space:nowrap;cursor:pointer}.outline-btn:hover:not(:disabled),.ghost-btn:hover:not(:disabled){background:var(--surface-subtle)}.outline-btn.small,.ghost-btn.small{height:36px;padding:0 14px;font-size:13px}.outline-btn.active,.ghost-btn.active{border-color:var(--ink-900);background:var(--ink-900);color:#fff}.outline-btn.danger{color:var(--danger-fg)}.outline-btn:disabled,.ghost-btn:disabled{opacity:.4;cursor:default}.icon-square{width:40px;height:40px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;background:var(--surface-subtle);color:var(--text-strong);cursor:pointer}.icon-square:hover:not(:disabled){background:var(--gray-150)}.icon-square.plain{background:transparent}.icon-square.plain:hover:not(:disabled){background:var(--surface-subtle)}.icon-square.bordered{border:1px solid var(--border-default);background:#fff}.icon-square.small{width:36px;height:36px;border-radius:10px}.row-menu-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;background:transparent;color:var(--text-strong)}.row-menu-btn:hover,.row-menu-btn[aria-expanded=true]{border-color:transparent;background:var(--surface-subtle);color:var(--text-strong)}.ui-card{background:#fff;border:1px solid var(--border-default);border-radius:14px}.ui-pill{height:24px;padding:0 10px;display:inline-flex;align-items:center;gap:6px;border-radius:999px;font-size:13px;font-weight:500;white-space:nowrap}.ui-chip{height:24px;padding:0 10px;display:inline-flex;align-items:center;gap:6px;border-radius:6px;background:var(--surface-subtle);color:var(--text-body);font-size:13px;font-weight:500;white-space:nowrap}.ui-chip.danger{background:var(--danger-bg);color:var(--danger-fg)}.ui-chip.small{height:20px;padding:0 8px;border-radius:5px;font-size:11px}.code-chip{height:22px;padding:0 7px;display:inline-flex;align-items:center;flex-shrink:0;border-radius:5px;background:var(--surface-subtle);color:var(--text-muted);font-family:var(--font-mono);font-size:12px;font-weight:400;letter-spacing:0}.section-caps{margin:0;font-family:var(--font-sans);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.tone-dot{flex-shrink:0;width:10px;height:10px;border-radius:50%}.ui-empty{padding:64px 0;display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--text-muted);font-size:15px;text-align:center}.state-message{font-family:var(--font-sans);font-size:15px;color:var(--text-muted)}.banner{border-radius:10px;font-size:14px}.banner.error{background:var(--danger-bg);color:var(--danger-fg)}.row-actions-popover{min-width:230px;padding:6px;gap:2px;border:1px solid var(--border-default);border-radius:12px;box-shadow:var(--shadow-md);font-family:var(--font-sans)}.row-actions-popover .row-actions-item{min-height:44px;padding:0 12px;display:flex;align-items:center;gap:12px;border-radius:8px;font-size:15px;color:var(--text-strong)}.row-actions-popover .row-actions-item+.row-actions-item{border-top:0}.row-actions-popover .row-actions-item:hover{background:var(--surface-subtle)}.charge-toast{font-family:var(--font-sans)}.avatar-img{display:block;width:100%;height:100%;border-radius:inherit;object-fit:cover}
