.project-view{flex-direction:column;height:100vh;min-height:0;font:13px/1.4 system-ui,sans-serif;display:flex}.pv-toolbar{border-bottom:1px solid #e5e7eb;flex:none;align-items:center;gap:8px;padding:4px 8px;display:flex}.pv-report-controls{border-bottom:1px solid #e5e7eb;flex:none;align-items:center;gap:12px;padding:6px 8px;display:flex}.export-wrap{align-items:center;gap:8px;display:inline-flex}.export-xlsx{color:#2563eb;cursor:pointer;background:#fff;border:1px solid #2563eb;padding:2px 8px}.export-xlsx:disabled{opacity:.45;cursor:default}.export-error{color:#b91c1c;font-size:12px}.pv-zoom{display:inline-flex}.pv-zoom button{cursor:pointer;background:#fff;border:1px solid #d1d5db;padding:2px 8px}.pv-zoom button+button{border-left:none}.pv-zoom button[aria-pressed=true]{background:#e5edff;border-color:#93b4ff;font-weight:600}.pv-zoom-slider{accent-color:#2563eb;cursor:pointer;background:0 0;width:120px;margin-left:8px}.pv-view{display:inline-flex}.pv-view button{cursor:pointer;background:#fff;border:1px solid #d1d5db;padding:2px 8px}.pv-view button+button{border-left:none}.pv-view button[aria-pressed=true]{background:#e5edff;border-color:#93b4ff;font-weight:600}.pv-gantt-undo{cursor:pointer;background:#fff;border:1px solid #d1d5db;padding:2px 8px}.pv-gantt-undo:disabled{opacity:.45;cursor:default}.pv-redo{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;padding:2px 8px}.pv-redo:disabled{opacity:.45;cursor:default}.pv-identity{align-items:center;gap:8px;margin-left:auto;display:inline-flex}.pv-user{color:#374151}.pv-logout{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;padding:2px 8px}.pv-panel-toggle{cursor:pointer;background:#fff;border:1px solid #d1d5db;padding:0 6px;line-height:20px}.pv-moved-counter{color:#2563eb;cursor:pointer;background:#e5edff;border:1px solid #93b4ff;padding:2px 8px;transition:opacity .3s ease-out}@media (prefers-reduced-motion:reduce){.pv-moved-counter{transition:none}}.pv-columns-wrap{display:inline-flex;position:relative}.pv-columns{cursor:pointer;background:#fff;border:1px solid #d1d5db;padding:2px 8px}.pv-columns-menu{z-index:4;white-space:nowrap;background:#fff;border:1px solid #d1d5db;flex-direction:column;gap:4px;padding:8px;display:flex;position:absolute;top:100%;left:0}.pv-columns-menu label{cursor:pointer;align-items:center;gap:4px;display:flex}.pv-list-scroll{flex:auto;min-height:0;overflow:auto}.pv-scroll{flex:auto;align-items:flex-start;min-height:0;display:flex;overflow:hidden auto}.pv-grid{border-right:1px solid #e5e7eb;flex:none}.pv-gantt-names{border-right:1px solid #e5e7eb;flex:0 0 280px}.pv-gantt-names-header{height:var(--header-h);box-sizing:border-box;z-index:3;white-space:nowrap;background:#fff;border-bottom:1px solid #e5e7eb;align-items:flex-end;padding:0 8px 4px;font-weight:600;display:flex;position:sticky;top:0;overflow:hidden}.pv-gantt-name-row{height:var(--row-h);box-sizing:border-box;line-height:var(--row-h);white-space:nowrap;align-items:center;gap:8px;padding:0 8px;display:flex;overflow:hidden}.pv-gn-wbs{color:#6b7280;flex:none}.pv-gn-name{text-overflow:ellipsis;flex:auto;overflow:hidden}.pv-timeline{flex:auto;min-width:0;overflow:auto hidden}.pv-timeline-inner{position:relative}.pv-time-header{height:var(--header-h);box-sizing:border-box;z-index:3;background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;overflow:hidden}.task-table thead{z-index:3;background:#fff;position:sticky;top:0}.task-table table{border-collapse:collapse}.task-table tr{height:var(--row-h)}.task-table th,.task-table td{height:var(--row-h);box-sizing:border-box;line-height:var(--row-h);white-space:nowrap;text-overflow:ellipsis;padding:0 8px;overflow:hidden}.tt-name-wrap{display:inline}.tt-collapse{cursor:pointer;font:inherit;line-height:var(--row-h);background:0 0;border:none;margin-inline-end:4px;padding:0}.tt-value{cursor:text;outline:none}.tt-value:focus{outline-offset:-1px;outline:1px solid #93b4ff}.task-table td{position:relative}.tt-input{box-sizing:border-box;font:inherit;z-index:1;background:#fff;border:1px solid #2563eb;border-radius:2px;padding:0 4px;line-height:normal;position:absolute;inset:3px 4px}.task-table td[data-readonly=true]{color:#6b7280;cursor:default;background:#f4f5f7}.tt-ro{color:#6b7280}.tt-pin{width:20px;height:var(--row-h);cursor:pointer;font-size:11px;line-height:var(--row-h);text-align:center;opacity:.55;z-index:2;background:0 0;border:none;padding:0;position:absolute;top:0;right:2px}.tt-pin:hover,.tt-pin[aria-pressed=true]{opacity:1}.task-table td[data-col=start] .tt-input{right:44px}.task-table td[data-col=start] .tt-value,.task-table td[data-col=start] .tt-ro{padding-inline-end:44px}.task-table td[data-col=start] .tt-pin{right:22px}.tt-done{height:var(--row-h);cursor:pointer;font-size:11px;line-height:var(--row-h);color:#16a34a;opacity:.55;background:0 0;border:none;padding:0;position:absolute;top:0;right:4px}.tt-done:hover,.tt-done[data-done=true]{opacity:1}.tt-ro-percent{color:#6b7280}.tt-actual-warning{z-index:5;white-space:normal;background:#fff;border:1px solid #d97706;border-radius:3px;min-width:240px;padding:8px;line-height:1.4;position:absolute;top:100%;left:0;box-shadow:0 2px 8px #00000026}.tt-actual-warning p{font-size:13px}.tt-start-alert{z-index:6;white-space:normal;background:#fff;border:1px solid #d97706;border-radius:3px;align-items:flex-start;gap:6px;min-width:260px;padding:8px;line-height:1.4;display:flex;position:absolute;top:100%;left:0;box-shadow:0 2px 8px #00000026}.tt-start-alert-text{color:#92400e;font-size:13px}.tt-start-alert-dismiss{cursor:pointer;color:#6b7280;background:0 0;border:none;padding:0 2px;font-size:12px;line-height:1.2}.tt-external{vertical-align:baseline;margin:0}.task-table th[data-col=external],.task-table td[data-col=external]{text-align:center;width:52px}.tt-actual-deviation{margin-inline-start:6px}.task-table tr[data-pinned=true] .tt-pin{opacity:1}.tt-wbs-code{padding-inline-end:16px}.tt-history{height:var(--row-h);cursor:pointer;font-size:11px;line-height:var(--row-h);opacity:.55;background:0 0;border:none;padding:0;position:absolute;top:0;right:4px}.tt-history:hover{opacity:1}.tt-dep-chip{white-space:nowrap;margin-inline-end:3px;font-size:11px}.tt-dep-del{cursor:pointer;color:#dc2626;font-size:12px;line-height:var(--row-h);background:0 0;border:none;padding:0 1px}.tt-dep-add,.tt-dep-ctrl,.tt-assignee-add{font:inherit;vertical-align:middle;background:#fff;border:1px solid #d1d5db;border-radius:2px;max-width:120px;font-size:11px;line-height:normal}.tt-dep-ctrl{max-width:84px;margin-inline-end:2px}.tt-dep-edit{cursor:pointer;font:inherit;color:inherit;font-size:11px;line-height:var(--row-h);white-space:nowrap;background:0 0;border:none;padding:0}.tt-dep-edit:hover{text-decoration:underline}.tt-dep-open{cursor:pointer;color:#2563eb;vertical-align:middle;background:0 0;border:none;padding:0 2px;font-size:12px;font-weight:600;line-height:normal}.tt-dep-open:hover{text-decoration:underline}.tt-dep-editor{vertical-align:middle;align-items:center;gap:3px;margin-inline-start:3px;display:inline-flex}.tt-dep-editor .tt-dep-ctrl{max-width:120px}.tt-dep-editor-pred{white-space:nowrap;font-size:11px;font-weight:600}.tt-dep-anchor-reveal{cursor:pointer;font:inherit;color:#6b7280;background:0 0;border:none;padding:0 2px;font-size:11px;line-height:normal;text-decoration:underline}.tt-dep-save{font:inherit;cursor:pointer;vertical-align:middle;background:#f3f4f6;border:1px solid #d1d5db;border-radius:2px;font-size:11px;line-height:normal}.tt-dep-save:disabled{color:#9ca3af;cursor:not-allowed}.tt-dep-cancel{cursor:pointer;color:#6b7280;background:0 0;border:none;padding:0 1px;font-size:12px;line-height:normal}.tt-priority-dot{vertical-align:baseline;border-radius:50%;width:8px;height:8px;margin-inline-end:4px;display:inline-block}.tt-overdue-badge{color:#d97706;font-size:13px;font-weight:700;line-height:var(--row-h);position:absolute;top:0;right:20px}.tt-assignee-chip{white-space:nowrap;margin-inline-end:3px;font-size:11px}.tt-assignee-del{cursor:pointer;color:#dc2626;font-size:12px;line-height:var(--row-h);background:0 0;border:none;padding:0 1px}@keyframes cs-moved-fade{0%{background-color:#e5edff}to{background-color:#0000}}.task-table tr[data-summary=true]{background-color:#f9fafb}.task-table tr[data-summary=true] td:first-child{box-shadow:inset 3px 0 #9ca3af}.task-table tr[data-overdue=true]{background-color:#fdf4e7}.task-table tr[data-overdue=true] td:first-child{box-shadow:inset 3px 0 #d97706}.task-table tr[data-moved=true]{animation:1.2s ease-out cs-moved-fade}@media (prefers-reduced-motion:reduce){.task-table tr[data-moved=true]{background-color:#e5edff;animation:none}}.project-view[data-pending=true] .task-table{box-shadow:inset 3px 0 #d97706}.bar-row:hover .bar-body-drag{cursor:grab}.bar-row .bar-body-drag:active{cursor:grabbing}.bar-stretch{opacity:0;cursor:ew-resize}.bar-row:hover .bar-stretch{opacity:.55}.bar-pin{opacity:0;cursor:pointer;font-size:11px}.bar-row:hover .bar-pin,.bar-pin:focus{opacity:1}.bar-ghost,.bar-origin{opacity:.35;pointer-events:none}.bar-floor-line{pointer-events:none}.bar-floor-hint{fill:#d97706;pointer-events:none;font-size:11px}.pv-layout{align-items:stretch;height:100vh;min-height:0;display:flex}.pv-layout>.project-view{flex:auto;min-width:0;height:100%}.change-summary{background:#f4f5f7;border-left:1px solid #e5e7eb;flex-direction:column;flex:none;width:320px;min-height:0;font:13px/1.4 system-ui,sans-serif;display:flex}.change-summary[data-collapsed=true]{width:auto}.cs-header{background:#fff;border-bottom:1px solid #e5e7eb;flex:none;align-items:center;gap:8px;padding:4px 8px;display:flex}.cs-toggle{cursor:pointer;background:#fff;border:1px solid #d1d5db;padding:0 6px;line-height:20px}.cs-title{font-size:16px;font-weight:600;line-height:1.3}.cs-body{flex-direction:column;flex:auto;gap:24px;min-height:0;padding:16px;display:flex;overflow-y:auto}.cs-summary-header{margin:0;font-size:16px;font-weight:600;line-height:1.3}.cs-changes{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.cs-change{font-size:13px;line-height:1.4}.cs-empty{flex-direction:column;gap:8px;display:flex}.cs-empty-heading{margin:0;font-weight:600}.cs-empty-body{color:#6b7280;margin:0}.cs-error{flex-direction:column;gap:8px;display:flex}.cs-error p{margin:0}.cs-error-cycle{color:#dc2626}.cs-error-stale{color:#d97706}.cs-cycle-path{font-weight:600}.cs-actions{align-items:center;gap:8px;margin-top:auto;display:flex}.cs-undo{color:#2563eb;cursor:pointer;background:#fff;border:1px solid #2563eb;padding:4px 12px}.cs-undo:disabled{color:#9ca3af;cursor:not-allowed;border-color:#d1d5db}.cs-redo{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;padding:4px 12px}.cs-undone{flex-direction:column;gap:12px;display:flex}.cs-undone-heading{margin:0;font-size:16px;font-weight:600}.cs-confirm{flex-direction:column;gap:8px;display:flex}.cs-confirm p{margin:0}.cs-confirm-yes{color:#d97706;cursor:pointer;background:#fff;border:1px solid #d97706;padding:4px 12px}.cs-confirm-no{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;padding:4px 12px}.cs-error-precondition{color:#d97706}.cs-conflicts{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.cs-conflict{font-size:13px;line-height:1.4}.cs-conflict-more{color:#6b7280;margin:0;font-size:13px}.cs-refresh{color:#2563eb;cursor:pointer;background:#fff;border:1px solid #2563eb;align-self:flex-start;padding:4px 12px}.history-panel{background:#f4f5f7;border-left:1px solid #e5e7eb;flex-direction:column;flex:none;width:320px;min-height:0;font:13px/1.4 system-ui,sans-serif;display:flex}.hp-header{background:#fff;border-bottom:1px solid #e5e7eb;flex:none;justify-content:space-between;align-items:center;gap:8px;padding:4px 8px;display:flex}.hp-title{font-size:16px;font-weight:600;line-height:1.3}.hp-close{cursor:pointer;background:#fff;border:1px solid #d1d5db;padding:0 6px;line-height:20px}.hp-body{flex:auto;min-height:0;padding:16px;overflow-y:auto}.hp-loading,.hp-empty-heading,.hp-empty-body{margin:0}.hp-empty{flex-direction:column;gap:8px;display:flex}.hp-empty-heading{font-weight:600}.hp-empty-body{color:#6b7280}.hp-rows{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.hp-row{flex-direction:column;gap:2px;font-size:13px;line-height:1.4;display:flex}.hp-when{color:#9ca3af;font-size:11px}.hp-direct .hp-text{color:#111827;font-weight:600}.hp-propagated .hp-text{color:#6b7280}.hp-undone .hp-text{color:#9ca3af;text-decoration:line-through}.hp-undone-mark{color:#dc2626;font-size:11px}.detail-panel{background:#f4f5f7;border-left:1px solid #e5e7eb;flex-direction:column;flex:none;width:320px;min-height:0;font:13px/1.4 system-ui,sans-serif;display:flex}.dp-empty{flex-direction:column;gap:8px;display:flex}.dp-empty-heading{margin:0;font-weight:600}.dp-empty-body{color:#6b7280;margin:0}.dp-fields{flex-direction:column;display:flex}.dp-field{flex-direction:column;gap:2px;margin-bottom:8px;display:flex}.dp-label{color:#9ca3af;font-size:11px}.dp-value{color:#111827;font-size:13px}.pv-parity-banner{z-index:1000;color:#fff;text-align:center;background:#dc2626;padding:6px 12px;font-size:13px;font-weight:600;position:fixed;top:0;left:0;right:0}.pv-reload-prompt{z-index:999;color:#92400e;text-align:center;background:#fef3c7;border-bottom:1px solid #d97706;padding:6px 12px;font-size:13px;position:fixed;top:0;left:0;right:0}.tt-date-value{cursor:text}.task-table td[data-col=finish] .tt-date-value{padding-inline-end:20px}.task-table td[data-col=finish] .tt-input{right:20px}.tt-cal{width:18px;height:var(--row-h);cursor:pointer;font-size:11px;line-height:var(--row-h);text-align:center;opacity:0;z-index:2;background:0 0;border:none;padding:0;position:absolute;top:0;right:2px}.task-table td:hover .tt-cal{opacity:.75}.tt-cal:hover,.tt-cal:focus-visible{opacity:1}.tt-date-native{width:18px;height:var(--row-h);opacity:0;pointer-events:none;z-index:0;border:0;margin:0;padding:0;position:absolute;top:0;right:2px}.tt-date-hint{z-index:6;white-space:normal;color:#b91c1c;background:#fff;border:1px solid #dc2626;border-radius:3px;min-width:200px;padding:4px 8px;font-size:12px;line-height:1.3;position:absolute;top:100%;left:0;box-shadow:0 2px 8px #00000026}.login-view{color:#374151;justify-content:center;align-items:center;min-height:100vh;font:13px/1.4 system-ui,sans-serif;display:flex}.auth-status{color:#374151;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100vh;font:13px/1.4 system-ui,sans-serif;display:flex}.login-card{background:#fff;border:1px solid #d1d5db;border-radius:4px;flex-direction:column;gap:12px;width:280px;padding:24px;display:flex}.login-title{text-align:center;color:#374151;margin:0 0 4px;font-size:20px;font-weight:600}.login-field{flex-direction:column;gap:4px;display:flex}.login-field span{color:#374151;font-size:12px}.login-field input{font:inherit;background:#fff;border:1px solid #2563eb;border-radius:2px;padding:2px 8px;line-height:normal}.login-error{color:#b91c1c;margin:0;font-size:12px}.login-submit{color:#fff;cursor:pointer;background:#2563eb;border:1px solid #2563eb;border-radius:2px;padding:2px 8px}.login-submit:disabled{opacity:.45;cursor:default}.cpw-intro{color:#6b7280;text-align:center;margin:0 0 4px;font-size:12px}.worklist{flex-direction:column;gap:8px;padding:8px;display:flex}.worklist-toolbar{gap:8px;display:flex}.worklist-buckets{flex-direction:column;gap:24px;display:flex}.worklist-table td[data-col=percent][data-layout=inline] .tt-percent-inline{align-items:center;gap:6px;display:inline-flex}.worklist-table .tt-percent-inline .tt-done{height:var(--row-h);position:static}.worklist-table td[data-col=latedays]{color:#d97706;white-space:nowrap}.worklist-late-days{white-space:nowrap;font-size:12px;font-weight:600}.worklist-table tr[data-summary=true]{background:#f9fafb}.worklist-table tr[data-summary=true] td:first-child{box-shadow:inset 3px 0 #9ca3af}.worklist-table tr[data-summary=true] td[data-col=name]{color:#374151;font-weight:600}.worklist-bucket-head{color:#374151;margin:0 0 4px;font-size:13px;font-weight:600}.worklist-bucket-head[data-bucket=overdue]{color:#d97706}.tt-pred-late-badge{color:#d97706;font-size:11px;font-weight:600;line-height:var(--row-h);pointer-events:none;position:absolute;top:0;right:20px}.project-list-page{color:#374151;flex-direction:column;gap:16px;max-width:640px;margin:0 auto;padding:24px;font:13px/1.4 system-ui,sans-serif;display:flex}.project-list-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.project-list-title{text-align:left;margin:0}.project-list-empty{align-items:flex-start}.project-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.project-list li{border-bottom:1px solid #e5e7eb}.project-row{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:#fff;border:none;justify-content:space-between;align-items:center;gap:8px;padding:8px;display:flex}.project-row:hover{background:#f9fafb}.project-row-name{font-size:13px}.project-row-percent{font-size:12px}.project-list-nav{display:flex}.project-list-link,.pv-back-link{color:#2563eb;text-decoration:none}.project-list-link:hover,.pv-back-link:hover{text-decoration:underline}
