.loc-view{display:flex;flex-direction:column;height:100%;background:var(--bg, #f9fafb);font-size:13px;color:var(--text, #1f2937)}.loc-toolbar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--panel-bg, #fff);border-bottom:1px solid var(--border, #e5e7eb);flex-shrink:0}.loc-toolbar-title{font-size:14px;font-weight:600;color:var(--text-strong, #111827);margin-right:4px}.loc-toolbar-sep{width:1px;height:20px;background:var(--border, #e5e7eb);margin:0 4px}.loc-btn{display:flex;align-items:center;gap:4px;padding:5px 10px;border:1px solid var(--border, #e5e7eb);border-radius:6px;background:var(--panel-bg, #fff);font-size:12px;color:var(--text, #374151);cursor:pointer;transition:background .1s}.loc-btn:hover{background:var(--hover-bg, #f3f4f6)}.loc-btn-primary{background:#2563eb;color:#fff;border-color:#2563eb}.loc-btn-primary:hover{background:#1d4ed8;border-color:#1d4ed8}.loc-btn-danger{color:#dc2626;border-color:#fca5a5}.loc-btn-danger:hover{background:#fef2f2}.loc-body{display:flex;flex:1;min-height:0;overflow:hidden}.loc-left{width:320px;min-width:200px;max-width:480px;display:flex;flex-direction:column;border-right:1px solid var(--border, #e5e7eb);background:var(--panel-bg, #fff);overflow:hidden}.loc-left-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border, #e5e7eb);flex-shrink:0}.loc-left-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280)}.loc-tree-scroll{flex:1;overflow-y:auto;padding:4px 0}.loc-right{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg, #f9fafb)}.loc-tree-row{display:flex;align-items:center;gap:4px;padding:5px 8px;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;margin:1px 4px;position:relative}.loc-tree-row:hover{background:var(--hover-bg, #f3f4f6)}.loc-tree-row.selected{background:#eff6ff;color:#1d4ed8}.loc-tree-row.loc-dragging{opacity:.45}.loc-tree-row.loc-drop-above{box-shadow:inset 0 2px #2563eb}.loc-tree-row.loc-drop-below{box-shadow:inset 0 -2px #2563eb}.loc-tree-row.loc-drop-inside{background:#dbeafe;outline:1px dashed #2563eb;outline-offset:-2px}.loc-tree-expand-btn{width:16px;height:16px;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;color:var(--text-muted, #9ca3af);font-size:10px;flex-shrink:0;border-radius:2px;padding:0}.loc-tree-expand-btn:hover{background:var(--hover-bg, #e5e7eb);color:var(--text, #374151)}.loc-tree-expand-placeholder{width:16px;flex-shrink:0}.loc-tree-icon{color:var(--text-muted, #9ca3af);flex-shrink:0}.loc-tree-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.loc-tree-area-chip{font-size:11px;color:var(--text-muted, #6b7280);background:var(--hover-bg, #f3f4f6);border:1px solid var(--border, #e5e7eb);border-radius:4px;padding:1px 5px;white-space:nowrap;flex-shrink:0}.loc-tree-actions{display:none;align-items:center;gap:2px;flex-shrink:0}.loc-tree-row:hover .loc-tree-actions{display:flex}.loc-tree-action-btn{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;border-radius:3px;color:var(--text-muted, #9ca3af);padding:0}.loc-tree-action-btn:hover{background:var(--hover-bg, #e5e7eb);color:var(--text, #374151)}.loc-tree-action-btn.danger:hover{background:#fee2e2;color:#dc2626}.loc-inline-new{display:flex;align-items:center;gap:4px;padding:4px 8px;margin:2px 4px}.loc-inline-new input{flex:1;padding:3px 6px;border:1px solid #93c5fd;border-radius:4px;font-size:12px;outline:none;background:#fff}.loc-inline-new input:focus{border-color:#2563eb;box-shadow:0 0 0 2px #bfdbfe}.loc-inline-new-btns{display:flex;gap:3px}.loc-inline-btn{padding:3px 8px;border:1px solid var(--border, #e5e7eb);border-radius:4px;background:var(--panel-bg, #fff);font-size:11px;cursor:pointer}.loc-inline-btn-primary{background:#2563eb;color:#fff;border-color:#2563eb}.loc-inline-btn-primary:hover{background:#1d4ed8}.loc-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 16px;text-align:center;color:var(--text-muted, #6b7280)}.loc-empty-state-icon{color:#d1d5db;margin-bottom:4px}.loc-empty-state p{font-size:13px;max-width:240px;line-height:1.5;margin:0}.loc-detail{flex:1;overflow-y:auto;padding:20px 24px}.loc-detail-header{margin-bottom:16px}.loc-detail-name{font-size:17px;font-weight:600;color:var(--text-strong, #111827);margin:0 0 4px}.loc-breadcrumb{font-size:12px;color:var(--text-muted, #6b7280);display:flex;align-items:center;gap:4px;flex-wrap:wrap}.loc-breadcrumb-sep{color:#d1d5db}.loc-detail-meta{font-size:11px;color:#9ca3af;margin-top:4px}.loc-detail-section{margin-bottom:20px}.loc-detail-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280);margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--border, #e5e7eb)}.loc-form-row{display:flex;align-items:flex-start;gap:8px;margin-bottom:10px}.loc-form-label{width:90px;flex-shrink:0;font-size:12px;color:var(--text-muted, #6b7280);padding-top:6px}.loc-form-input{flex:1;padding:5px 8px;border:1px solid var(--border, #e5e7eb);border-radius:5px;font-size:13px;background:var(--panel-bg, #fff);color:var(--text, #1f2937);outline:none}.loc-form-input:focus{border-color:#93c5fd;box-shadow:0 0 0 2px #bfdbfe}.loc-form-hint{font-size:11px;color:#9ca3af;margin-top:2px}.loc-form-row-dual{display:flex;gap:8px}.loc-form-actions{display:flex;gap:8px;margin-top:4px}.loc-detail-no-selection{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:8px;color:var(--text-muted, #9ca3af);font-size:13px}.loc-tasks-list{display:flex;flex-direction:column;gap:4px}.loc-task-row{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--border, #e5e7eb);border-radius:6px;background:var(--panel-bg, #fff);cursor:pointer}.loc-task-row:hover{background:var(--hover-bg, #f3f4f6)}.loc-task-name{flex:1;font-size:12px;font-weight:500;color:var(--text-strong, #111827);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loc-task-weight{font-size:11px;color:var(--text-muted, #6b7280);background:#f3f4f6;border-radius:4px;padding:1px 5px}.loc-tasks-empty{font-size:12px;color:#9ca3af;padding:8px 0}.loc-picker-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:9999}.loc-picker-dialog{background:var(--panel-bg, #fff);border-radius:10px;box-shadow:0 8px 32px #0003;width:380px;max-width:95vw;max-height:70vh;display:flex;flex-direction:column;overflow:hidden}.loc-picker-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid var(--border, #e5e7eb)}.loc-picker-title{font-size:14px;font-weight:600;color:var(--text-strong, #111827)}.loc-picker-close{border:none;background:none;font-size:18px;cursor:pointer;color:var(--text-muted, #6b7280);padding:0 4px;line-height:1}.loc-picker-weight-row{display:flex;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid var(--border, #e5e7eb);flex-shrink:0}.loc-picker-weight-row label{font-size:12px;color:var(--text-muted, #6b7280);white-space:nowrap}.loc-picker-weight-row input{width:80px;padding:4px 6px;border:1px solid var(--border, #e5e7eb);border-radius:4px;font-size:12px;outline:none}.loc-picker-scroll{flex:1;overflow-y:auto;padding:4px 0}.loc-picker-footer{display:flex;justify-content:flex-end;gap:8px;padding:10px 16px;border-top:1px solid var(--border, #e5e7eb)}.tdp-locations-section{margin-top:8px}.tdp-locations-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.tdp-locations-title{font-size:12px;font-weight:600;color:var(--text-muted, #6b7280);text-transform:uppercase;letter-spacing:.05em}.tdp-loc-row{display:flex;align-items:center;gap:6px;padding:5px 0;border-bottom:1px solid var(--border, #f3f4f6)}.tdp-loc-row:last-child{border-bottom:none}.tdp-loc-name{flex:1;font-size:12px;color:var(--text, #374151);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tdp-loc-weight-input{width:56px;padding:2px 4px;border:1px solid var(--border, #e5e7eb);border-radius:3px;font-size:11px;text-align:right;outline:none;background:var(--panel-bg, #fff)}.tdp-loc-remove-btn{border:none;background:none;cursor:pointer;color:#9ca3af;font-size:14px;padding:0 2px;line-height:1;border-radius:2px}.tdp-loc-remove-btn:hover{color:#dc2626;background:#fee2e2}.tdp-loc-assign-btn{display:flex;align-items:center;gap:3px;padding:4px 8px;border:1px dashed #93c5fd;border-radius:5px;background:none;color:#2563eb;font-size:12px;cursor:pointer;margin-top:6px;width:100%;justify-content:center}.tdp-loc-assign-btn:hover{background:#eff6ff}.tdp-loc-empty{font-size:11px;color:#9ca3af;font-style:italic;padding:4px 0}.tdp-steps-section{margin-top:8px;display:flex;flex-direction:column;gap:6px}.tdp-steps-header{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;color:#1f2937}.tdp-steps-rollup{font-weight:400;font-size:11px;color:#6b7280}.tdp-steps-rollup strong{color:#2563eb;font-weight:600}.tdp-steps-error{font-size:11px;color:#b91c1c;background:#fef2f2;padding:4px 6px;border-radius:3px}.tdp-steps-empty{font-size:11px;color:#9ca3af;font-style:italic}.tdp-step-row{display:grid;grid-template-columns:1fr 56px 1fr 56px 24px 24px;gap:6px;align-items:center;font-size:11px}.tdp-step-add-row{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center;font-size:11px;border-top:1px dashed #e5e7eb;padding-top:6px}.tdp-step-add-row{grid-template-columns:1fr auto;border-top:1px dashed #e5e7eb;padding-top:6px}.tdp-step-name{padding:2px 6px;border:1px solid #d1d5db;border-radius:3px;font-size:11px;min-width:0}.tdp-step-weight{padding:2px 4px;border:1px solid #d1d5db;border-radius:3px;font-size:11px;text-align:right}.tdp-step-pct-slider{width:100%}.tdp-step-pct-label{text-align:right;font-variant-numeric:tabular-nums;color:#4b5563}.tdp-step-pct-input{padding:2px 4px;border:1px solid #d1d5db;border-radius:3px;font-size:11px;text-align:right;font-variant-numeric:tabular-nums}.tdp-step-pct-input:focus{outline:none;border-color:#2563eb}.tdp-step-mark{border:1px solid #93c5fd;background:#eff6ff;color:#1d4ed8;border-radius:3px;width:22px;height:22px;cursor:pointer;font-weight:600;line-height:18px;font-size:12px}.tdp-step-mark:hover{background:#dbeafe;border-color:#2563eb}.tdp-step-delete{border:1px solid #fca5a5;color:#b91c1c;background:#fff;border-radius:3px;width:22px;height:22px;cursor:pointer;font-weight:600;line-height:18px}.tdp-step-delete:hover{background:#fef2f2}.tdp-step-add-btn{padding:4px 12px;border:1px solid #2563eb;border-radius:3px;background:#2563eb;color:#fff;font-size:11px;cursor:pointer}.tdp-step-add-btn:disabled{opacity:.5;cursor:not-allowed}.tdp-step-add-btn:hover:not(:disabled){background:#1d4ed8}.whatif-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a40;z-index:80;display:flex;justify-content:flex-end}.whatif-panel{width:min(480px,95vw);height:100%;background:#fff;border-left:1px solid #cbd5e1;box-shadow:-8px 0 24px #0f172a26;display:flex;flex-direction:column;font-size:13px}.whatif-header{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid #e2e8f0;background:#f8fafc;flex-shrink:0}.whatif-title{flex:1;font-weight:600;color:#0f172a}.whatif-close{background:transparent;border:none;padding:4px;cursor:pointer;color:#64748b}.whatif-close:hover{color:#0f172a}.whatif-controls{padding:12px 14px;display:flex;flex-direction:column;gap:10px;border-bottom:1px solid #f1f5f9}.whatif-field{display:flex;flex-direction:column;gap:4px}.whatif-field-label{font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.whatif-select,.whatif-input{padding:4px 8px;font-size:12px;border:1px solid #cbd5e1;border-radius:4px;background:#fff;color:#0f172a}.whatif-summary{padding:8px 14px;border-bottom:1px solid #f1f5f9;display:flex;flex-direction:column;gap:4px}.whatif-summary-row{display:flex;justify-content:space-between;align-items:baseline;font-size:12px}.whatif-summary-label{color:#475569}.whatif-summary-value{font-weight:600;color:#0f172a;font-variant-numeric:tabular-nums}.whatif-loading{display:inline-flex;align-items:center;gap:6px;color:#64748b;font-style:italic}.whatif-warning{display:inline-flex;align-items:center;gap:6px;color:#b45309;font-size:12px}.whatif-spinner{animation:whatif-spin 1.2s linear infinite}@keyframes whatif-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.whatif-delta-slip{color:#b91c1c;font-weight:600}.whatif-delta-gain{color:#166534;font-weight:600}.whatif-delta-flat{color:#475569;font-weight:500}.whatif-rows{flex:1;min-height:0;display:flex;flex-direction:column;border-bottom:1px solid #f1f5f9}.whatif-rows-head{padding:6px 14px;font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.whatif-rows-list{flex:1;overflow-y:auto;padding:4px 0}.whatif-row{display:grid;grid-template-columns:1fr auto 50px;gap:8px;padding:4px 14px;font-size:11px;align-items:baseline}.whatif-row+.whatif-row{border-top:1px solid #f8fafc}.whatif-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#0f172a}.whatif-row-dates{color:#94a3b8;font-variant-numeric:tabular-nums}.whatif-row-more{text-align:center;color:#94a3b8;font-style:italic;padding:6px 14px}.whatif-error{margin:8px 14px;padding:6px 8px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:11px;border-radius:4px;display:inline-flex;align-items:center;gap:6px}.whatif-footer{padding:10px 14px;border-top:1px solid #e2e8f0;background:#f8fafc;display:flex;flex-direction:column;gap:8px}.whatif-footnote{font-size:10px;color:#94a3b8}.whatif-actions{display:flex;gap:6px;justify-content:flex-end}.whatif-btn{padding:5px 12px;font-size:12px;border:1px solid #cbd5e1;border-radius:4px;background:#fff;cursor:pointer;color:#0f172a}.whatif-btn:hover{background:#f1f5f9}.whatif-btn-primary{background:#2563eb;border-color:#2563eb;color:#fff}.whatif-btn-primary:hover{background:#1d4ed8}.whatif-btn-primary:disabled{background:#94a3b8;border-color:#94a3b8;cursor:not-allowed}.pm-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:100000}.pm-dialog-card{background:#1a202c;color:#e2e8f0;border-radius:8px;border:1px solid #2d3748;box-shadow:0 8px 32px #0006;width:720px;max-width:94vw;max-height:82vh;display:flex;flex-direction:column}.pm-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #2d3748}.pm-dialog-title{margin:0;font-size:14px;font-weight:700;color:#e2e8f0}.pm-dialog-close{background:transparent;border:none;color:#a0aec0;cursor:pointer;padding:4px;border-radius:4px;display:inline-flex;align-items:center}.pm-dialog-close:hover{background:#2d3748;color:#e2e8f0}.pm-dialog-body{flex:1;overflow-y:auto;padding:12px 18px}.pm-dialog-empty{margin:24px 0;text-align:center;color:#718096;font-size:13px}.pm-dialog-table{width:100%;border-collapse:collapse;font-size:12px}.pm-dialog-table th{text-align:left;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#718096;padding:6px 8px;border-bottom:1px solid #2d3748}.pm-col-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.pm-col-sortable:hover{color:#a0aec0}.pm-col-sort-active{color:#90cdf4}.pm-col-sort-label{vertical-align:middle}.pm-col-sort-icon{display:inline-flex;align-items:center;margin-left:3px;vertical-align:middle;opacity:1}.pm-col-sort-idle{opacity:.25}.pm-col-sortable:hover .pm-col-sort-idle{opacity:.55}.pm-dialog-table td{padding:7px 8px;border-bottom:1px solid #1f2937;vertical-align:middle}.pm-row-current{background:#3182ce1a}.pm-col-name{width:auto;font-weight:500;color:#e2e8f0}.pm-tag-current{margin-left:8px;font-size:9px;font-weight:700;text-transform:uppercase;background:#3182ce;color:#fff;padding:2px 6px;border-radius:3px;letter-spacing:.05em}.pm-col-status{width:80px;color:#a0aec0}.pm-col-tasks{width:70px;color:#cbd5e1;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.pm-col-size{width:90px;color:#cbd5e1;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.pm-col-modified,.pm-col-created{width:160px;color:#718096;font-size:11px;white-space:nowrap}[data-theme=light] .pm-col-tasks,[data-theme=light] .pm-col-size{color:#1f2937}.pm-col-actions{width:80px;white-space:nowrap;text-align:right}.pm-action-btn{background:transparent;border:1px solid #2d3748;color:#a0aec0;padding:4px;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;margin-left:4px}.pm-action-btn:hover:not(:disabled){background:#2d3748;color:#e2e8f0;border-color:#4a5568}.pm-action-btn:disabled{opacity:.4;cursor:not-allowed}.pm-action-danger:hover:not(:disabled){background:#742a2a;color:#feb2b2;border-color:#c53030}.pm-dialog-footer{padding:12px 18px;border-top:1px solid #2d3748;display:flex;justify-content:flex-end;gap:8px}.pm-dialog-btn{background:#2d3748;border:1px solid #4a5568;color:#e2e8f0;padding:6px 14px;border-radius:4px;font-size:12px;cursor:pointer}.pm-dialog-btn:hover{background:#4a5568}.pm-dialog-btn-danger{background:#c53030;border-color:#c53030;color:#fff}.pm-dialog-btn-danger:hover{background:#9b2c2c}.pm-confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:100100}.pm-confirm-card{background:#1a202c;color:#e2e8f0;border-radius:8px;border:1px solid #c53030;box-shadow:0 8px 32px #c5303059;padding:18px 20px;width:420px;max-width:90vw}.pm-confirm-title{margin:0 0 8px;font-size:14px;font-weight:700;color:#feb2b2}.pm-confirm-msg{margin:0 0 14px;font-size:12px;line-height:1.5;color:#cbd5e0}.pm-confirm-actions{display:flex;justify-content:flex-end;gap:8px}[data-theme=light] .pm-dialog-card{background:#fff;color:#1a202c;border-color:#cbd5e0}[data-theme=light] .pm-dialog-header{border-bottom-color:#e2e8f0}[data-theme=light] .pm-dialog-title{color:#1a202c}[data-theme=light] .pm-dialog-close{color:#4a5568}[data-theme=light] .pm-dialog-close:hover{background:#edf2f7;color:#1a202c}[data-theme=light] .pm-dialog-table th{color:#718096;border-bottom-color:#e2e8f0}[data-theme=light] .pm-dialog-table td{border-bottom-color:#edf2f7}[data-theme=light] .pm-col-name{color:#1a202c}[data-theme=light] .pm-col-status{color:#4a5568}[data-theme=light] .pm-col-modified,[data-theme=light] .pm-col-created{color:#718096}[data-theme=light] .pm-col-sort-active{color:#2b6cb0}[data-theme=light] .pm-col-sortable:hover{color:#2d3748}[data-theme=light] .pm-row-current{background:#3182ce14}[data-theme=light] .pm-action-btn{border-color:#cbd5e0;color:#4a5568}[data-theme=light] .pm-action-btn:hover:not(:disabled){background:#edf2f7;color:#1a202c}[data-theme=light] .pm-action-danger:hover:not(:disabled){background:#fed7d7;color:#c53030;border-color:#c53030}[data-theme=light] .pm-dialog-footer{border-top-color:#e2e8f0}[data-theme=light] .pm-dialog-btn{background:#fff;border-color:#cbd5e0;color:#2d3748}[data-theme=light] .pm-dialog-btn:hover{background:#edf2f7}[data-theme=light] .pm-confirm-card{background:#fff;color:#1a202c}[data-theme=light] .pm-confirm-msg{color:#4a5568}.pm-dialog-btn-primary{background:#3182ce;border-color:#3182ce;color:#fff}.pm-dialog-btn-primary:hover:not(:disabled){background:#2b6cb0}.pm-dialog-btn-primary:disabled{opacity:.4;cursor:not-allowed}.pm-name-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pm-link-badge{display:inline-flex;align-items:center;gap:3px;font-size:9px;font-weight:700;background:#5a82c82e;color:#90cdf4;border:1px solid rgba(90,130,200,.35);border-radius:3px;padding:1px 5px;cursor:default}.pm-chips-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px}.pm-chips-group{display:inline-flex;align-items:center;gap:3px;flex-wrap:wrap}.pm-chips-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#718096}.pm-chip{display:inline-flex;align-items:center;font-size:10px;font-weight:500;padding:1px 7px;border-radius:4px;background:#6464822e;border:1px solid rgba(100,100,130,.35);color:#a0aec0;cursor:pointer;white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis;transition:opacity .1s}.pm-chip:hover{opacity:.8}[data-theme=light] .pm-chips-label{color:#a0aec0}[data-theme=light] .pm-chip{background:#9696b41f;border-color:#9696b44d;color:#4a5568}[data-theme=light] .pm-link-badge{background:#2b6cb01a;color:#2b6cb0;border-color:#2b6cb040}.spp-dialog-card{width:680px;max-height:85vh}.spp-search-row{display:flex;align-items:center;gap:8px;padding:8px 18px;border-bottom:1px solid #2d3748}.spp-search-icon{color:#718096;flex-shrink:0}.spp-search-input{flex:1;background:transparent;border:none;outline:none;color:#e2e8f0;font-size:13px}.spp-search-input::placeholder{color:#4a5568}.spp-table-body{flex:1;min-height:180px;max-height:260px;padding:0}.spp-row{transition:background .1s}.spp-row:hover{background:#ffffff0d}.spp-row-selected{background:#3182ce2e!important}.spp-row-selected td{color:#90cdf4}.spp-colors-section{padding:12px 18px;border-top:1px solid #2d3748;display:flex;flex-direction:column;gap:10px}.spp-color-row{display:flex;align-items:center;gap:10px}.spp-color-label{font-size:11px;font-weight:600;color:#a0aec0;width:130px;flex-shrink:0;text-transform:uppercase;letter-spacing:.04em}.spp-color-presets{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.spp-color-swatch{width:20px;height:20px;border-radius:4px;border:none;cursor:pointer;flex-shrink:0;transition:transform .1s}.spp-color-swatch:hover{transform:scale(1.15)}.spp-color-custom{width:28px;height:20px;border:none;border-radius:4px;cursor:pointer;padding:0;background:transparent}.spp-color-preview{display:inline-block;width:28px;height:14px;border-radius:3px;border:1px solid rgba(255,255,255,.15);flex-shrink:0}.spp-preview{display:flex;align-items:center;gap:8px;padding-top:4px}.spp-preview-label{font-size:11px;color:#718096;flex-shrink:0}.spp-preview-bar{display:inline-block;width:60px;height:14px;border-radius:3px;border:1px solid rgba(255,255,255,.12)}.spp-preview-critical{width:80px}.spp-selected-name{flex:1;font-size:12px;color:#a0aec0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:italic}[data-theme=light] .spp-search-input{color:#1a202c}[data-theme=light] .spp-search-row{border-bottom-color:#e2e8f0}[data-theme=light] .spp-row:hover{background:#0000000a}[data-theme=light] .spp-row-selected td{color:#2b6cb0}[data-theme=light] .spp-colors-section{border-top-color:#e2e8f0}[data-theme=light] .spp-search-input::placeholder{color:#a0aec0}.sp-color-swatch-wrap{display:inline-flex;align-items:center;cursor:pointer;position:relative}.sp-color-dot{display:inline-block;width:12px;height:12px;border-radius:50%;flex-shrink:0;border:1px solid rgba(255,255,255,.2);cursor:pointer;transition:transform .1s}.sp-color-dot:hover{transform:scale(1.2)}.sp-color-input-hidden{position:absolute;width:0;height:0;opacity:0;pointer-events:none}:root{--tmb-bg: #ffffff;--tmb-bg-alt: #f3f4f6;--tmb-bg-strong: #e5e7eb;--tmb-border: #e5e7eb;--tmb-text: #1f2937;--tmb-text-dim: #6b7280;--tmb-text-faint: #9ca3af;--tmb-accent: #2563eb;--tmb-shadow: 0 -4px 24px rgba(0, 0, 0, .1);--tmb-side-shadow: -4px -4px 20px rgba(0, 0, 0, .15)}[data-theme=dark]{--tmb-bg: #1a2035;--tmb-bg-alt: #2d3a55;--tmb-bg-strong: #3b4f70;--tmb-border: #334155;--tmb-text: #e2e8f0;--tmb-text-dim: #94a3b8;--tmb-text-faint: #64748b;--tmb-accent: #3b82f6;--tmb-shadow: 0 -4px 24px rgba(0, 0, 0, .45);--tmb-side-shadow: -4px -4px 20px rgba(0, 0, 0, .4)}.tmb-panel{flex:0 0 auto;background:var(--tmb-bg);border-top:2px solid var(--tmb-accent);color:var(--tmb-text);padding:6px 16px 8px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--tmb-shadow);font-size:13px;-webkit-user-select:none;user-select:none;position:relative;overflow:visible}.tmb-filter-strip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:24px}.tmb-filter-check{display:flex;align-items:center;gap:4px;cursor:pointer;font-size:12px}.tmb-filter-check input[type=checkbox]{accent-color:#3b82f6;cursor:pointer;width:13px;height:13px}.tmb-filter-divider{width:1px;height:16px;background:var(--tmb-border);margin:0 2px}.tmb-filter-label{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--tmb-text-dim);cursor:default}.tmb-filter-select{background:var(--tmb-bg-alt);border:1px solid var(--tmb-border);color:var(--tmb-text);border-radius:3px;padding:1px 4px;font-size:11px;cursor:pointer;outline:none}.tmb-filter-select:focus{border-color:#3b82f6}.tmb-filter-spacer{flex:1}.tmb-header-controls{display:flex;gap:6px}.tmb-btn{background:var(--tmb-bg-alt);border:1px solid var(--tmb-border);color:var(--tmb-text);border-radius:4px;padding:2px 10px;font-size:12px;cursor:pointer;transition:background .15s}.tmb-btn:hover{background:var(--tmb-bg-strong)}.tmb-btn-active{background:#3b82f6;border-color:#2563eb;color:#fff}.tmb-close-btn{background:transparent;border:none;color:var(--tmb-text-faint);font-size:14px;cursor:pointer;padding:0 4px;line-height:1}.tmb-close-btn:hover{color:var(--tmb-text)}.tmb-date-label{font-size:12px;color:var(--tmb-text-dim);white-space:nowrap}.tmb-nav-btn{background:var(--tmb-bg-alt);border:1px solid var(--tmb-border);color:var(--tmb-text-dim);border-radius:4px;padding:0 8px;font-size:14px;cursor:pointer;line-height:1.6;transition:background .15s;flex-shrink:0}.tmb-nav-btn:hover{background:var(--tmb-bg-strong);color:var(--tmb-text)}.tmb-body{display:flex;flex-direction:column;gap:3px}.tmb-loading,.tmb-empty{color:var(--tmb-text-faint);font-size:12px;padding:4px 0}.tmb-memo-row{position:relative;height:18px;margin-bottom:2px}.tmb-memo-hint{font-size:11px;color:var(--tmb-text-faint);font-style:italic;line-height:18px}.tmb-memo-marker{position:absolute;transform:translate(-50%);top:0;background:none;border:none;cursor:pointer;font-size:14px;color:var(--memo-color, #94a3b8);line-height:1;padding:0;transition:transform .1s}.tmb-memo-marker:hover{transform:translate(-50%) scale(1.3)}.tmb-density-row{display:flex;align-items:flex-end;height:32px;gap:1px;cursor:pointer;border-radius:3px;overflow:hidden;background:var(--tmb-bg-alt);padding:0 1px}.tmb-density-bar{border-radius:1px 1px 0 0;opacity:.75;transition:opacity .1s;cursor:pointer}.tmb-density-bar:hover{opacity:1}.tmb-slider-row{display:flex;align-items:center;gap:6px}.tmb-timeline-wrap{position:relative;flex:1;height:32px}.tmb-tick-row{position:absolute;top:0;left:0;right:0;height:10px;pointer-events:none}.tmb-tick{position:absolute;transform:translate(-50%);width:2px;height:8px;border-radius:1px;top:1px;opacity:.7}.tmb-slider{position:absolute;bottom:0;left:0;right:0;width:100%;accent-color:#3b82f6;cursor:pointer}.tmb-range-start{position:absolute;bottom:-14px;left:0;font-size:10px;color:var(--tmb-text-faint);white-space:nowrap;pointer-events:none}.tmb-range-end{position:absolute;bottom:-14px;right:0;font-size:10px;color:var(--tmb-text-faint);white-space:nowrap;pointer-events:none;text-align:right}.tmb-desc{font-size:12px;color:var(--tmb-text-dim);min-height:16px;margin-top:14px}.tmb-legend{display:flex;gap:16px;font-size:11px;color:var(--tmb-text-dim)}.tmb-legend-deleted:before{content:"●";color:#f87171;margin-right:4px}.tmb-legend-added:before{content:"●";color:#4ade80;margin-right:4px}.tmb-badge{display:inline-block;border-radius:3px;padding:1px 6px;font-size:10px;font-weight:600;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.tmb-badge-human{background:#1d4ed8;color:#fff}.tmb-badge-ai{background:#7e22ce;color:#fff}.tmb-badge-system{background:#374151;color:#d1d5db}.tmb-badge-unknown{background:#1e293b;color:var(--tmb-text-dim)}.tmb-side-panel{position:fixed;right:16px;bottom:16px;width:380px;height:400px;background:var(--tmb-bg);border:1px solid var(--tmb-border);border-radius:6px;z-index:1210;display:flex;flex-direction:column;font-size:12px;color:var(--tmb-text);box-shadow:var(--tmb-side-shadow);overflow:hidden}.tmb-side-header{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--tmb-border);font-size:11px;color:var(--tmb-text-dim);flex-wrap:wrap;background:var(--tmb-bg-alt)}.tmb-side-drag-handle{cursor:grab;-webkit-user-select:none;user-select:none}.tmb-side-drag-handle:active{cursor:grabbing}.tmb-drag-grip{color:var(--tmb-text-faint);font-size:14px;line-height:1}.tmb-side-resize{position:absolute;right:0;bottom:0;width:14px;height:14px;cursor:nwse-resize;background:linear-gradient(135deg,transparent 0 50%,var(--tmb-text-faint) 50% 60%,transparent 60% 70%,var(--tmb-text-faint) 70% 80%,transparent 80% 100%)}.tmb-side-body{overflow-y:auto;flex:1;padding:6px 8px}.tmb-group-block{margin-bottom:8px}.tmb-group-header{width:100%;display:flex;align-items:center;gap:6px;background:var(--tmb-bg-alt);border:none;border-radius:4px;padding:4px 8px;color:var(--tmb-text);font-size:12px;cursor:pointer;text-align:left}.tmb-group-header:hover{background:var(--tmb-bg-strong)}.tmb-group-arrow{font-size:9px;color:var(--tmb-text-faint)}.tmb-group-label{font-weight:600;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tmb-group-count{color:var(--tmb-text-faint);font-size:11px}.tmb-event-row{display:flex;gap:6px;align-items:baseline;padding:2px 8px;font-size:11px;border-bottom:1px solid var(--tmb-border)}.tmb-event-type{color:var(--tmb-accent);font-size:10px;min-width:48px}.tmb-event-id{color:var(--tmb-text-faint);font-size:10px;font-family:monospace}.tmb-event-action{color:#a78bfa;font-size:10px;min-width:40px}.tmb-event-diff{color:var(--tmb-text-dim);font-size:10px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tmb-expand-btn{background:none;border:none;color:#3b82f6;font-size:11px;cursor:pointer;padding:2px 8px}.tmb-expand-btn:hover{text-decoration:underline}.tmb-memo-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:1300;display:flex;align-items:center;justify-content:center}.tmb-memo-modal{background:#1e2a40;border:1px solid #334155;border-radius:8px;width:600px;max-width:90vw;max-height:70vh;display:flex;flex-direction:column;color:var(--tmb-text);box-shadow:0 16px 48px #0009}.tmb-memo-modal-header{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid #334155;flex-wrap:wrap}.tmb-memo-subject{font-weight:700;font-size:14px;color:#93c5fd;flex:1}.tmb-memo-ts{font-size:11px;color:var(--tmb-text-faint)}.tmb-memo-body{flex:1;overflow-y:auto;padding:16px;font-size:13px;line-height:1.6;color:var(--tmb-text)}.tmb-memo-body h1,.tmb-memo-body h2,.tmb-memo-body h3{color:#93c5fd;margin:12px 0 6px}.tmb-memo-body code{background:var(--tmb-bg-alt);border-radius:3px;padding:1px 4px;font-size:12px}.tmb-memo-actions{padding:10px 16px;border-top:1px solid #334155;display:flex;justify-content:flex-end}.tmb-float-tooltip{position:fixed;background:var(--tmb-bg-alt);border:1px solid #334155;border-radius:4px;padding:4px 8px;font-size:11px;color:var(--tmb-text);white-space:nowrap;pointer-events:none;z-index:1400;max-width:360px;white-space:normal;word-break:break-word}.tm-row-deleted,.tmb-row-deleted{background:#ef44441f!important}.tm-row-deleted:hover,.tmb-row-deleted:hover{background:#ef444433!important}.tm-row-added,.tmb-row-added{background:#4ade801a!important}.tm-row-added:hover,.tmb-row-added:hover{background:#4ade802e!important}.fr-view{display:flex;height:100%;background:var(--bg, #f9fafb);font-size:13px;color:var(--text, #1f2937);overflow:hidden}.fr-left{width:320px;min-width:240px;max-width:480px;display:flex;flex-direction:column;border-right:1px solid var(--border, #e5e7eb);background:var(--panel-bg, #fff);flex-shrink:0}.fr-left-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 8px;border-bottom:1px solid var(--border, #e5e7eb);flex-shrink:0;gap:8px}.fr-left-title{font-size:13px;font-weight:600;color:var(--text-strong, #111827);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fr-left-actions{display:flex;gap:4px;flex-shrink:0}.fr-rule-list{flex:1;overflow-y:auto;padding:4px 0}.fr-rule-section{margin-bottom:4px}.fr-rule-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280);padding:6px 12px 2px}.fr-manual-group{margin-bottom:2px}.fr-manual-group-label{font-size:11px;color:var(--text-muted, #9ca3af);padding:2px 12px 0 20px;font-style:italic}.fr-rule-row{display:flex;align-items:center;gap:6px;padding:7px 10px;border-bottom:1px solid var(--border-light, #f3f4f6);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s}.fr-rule-row:hover{background:var(--hover-bg, #f3f4f6)}.fr-rule-row-selected{background:#eff6ff;border-left:3px solid #2563eb;padding-left:7px}.fr-rule-row-disabled{opacity:.5}.fr-rule-drag-handle{cursor:grab;color:var(--text-muted, #9ca3af);font-size:12px;flex-shrink:0;padding:0 2px}.fr-rule-drag-handle:active{cursor:grabbing}.fr-rule-priority{font-size:11px;color:var(--text-muted, #9ca3af);width:20px;text-align:right;flex-shrink:0}.fr-rule-info{flex:1;min-width:0}.fr-rule-name{font-weight:500;color:var(--text-strong, #111827);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fr-rule-name em{font-style:italic;color:var(--text-muted, #9ca3af)}.fr-rule-summary{font-size:11px;color:var(--text-muted, #6b7280);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}.fr-rule-meta{display:flex;align-items:center;gap:4px;flex-shrink:0}.fr-rule-icon-count{display:flex;align-items:center;gap:1px}.fr-rule-icon-more{font-size:10px;color:var(--text-muted, #9ca3af)}.fr-rule-color-swatch{display:inline-block;width:10px;height:10px;border-radius:50%;border:1px solid rgba(0,0,0,.15)}.fr-rule-mini-preview{display:inline-flex;align-items:center;gap:4px}.fr-rule-mini-text{display:inline-flex;align-items:center;padding:0 4px;border-radius:2px;font-size:11px;line-height:16px;border:1px solid rgba(0,0,0,.06)}.fr-rule-mini-bar{display:inline-block;width:28px;height:8px;border-radius:2px;flex-shrink:0}.fr-rule-preview-empty{font-size:11px;color:#9ca3af}.fr-toolbar{display:flex;flex-direction:column;gap:6px;padding:6px 10px;border-bottom:1px solid #e5e7eb;background:#fafafa}.fr-search-input{width:100%;padding:4px 8px;font-size:12px;border:1px solid #d1d5db;border-radius:3px;background:#fff}.fr-search-input:focus{outline:none;border-color:#2563eb}.fr-filter-chips{display:flex;flex-wrap:wrap;gap:4px}.fr-chip{padding:2px 8px;font-size:11px;border:1px solid #d1d5db;border-radius:999px;background:#fff;cursor:pointer;color:#4b5563;-webkit-user-select:none;user-select:none}.fr-chip:hover{background:#f3f4f6;border-color:#9ca3af}.fr-chip-active{background:#2563eb;color:#fff;border-color:#2563eb}.fr-chip-active:hover{background:#1d4ed8;border-color:#1d4ed8}.fr-chip-clear{color:#b91c1c;border-color:#fca5a5;margin-left:4px}.fr-chip-clear:hover{background:#fef2f2}.fr-toggle{position:relative;display:inline-flex;align-items:center;cursor:pointer}.fr-toggle input{position:absolute;opacity:0;width:0;height:0}.fr-toggle-track{display:inline-block;width:28px;height:16px;background:var(--border, #d1d5db);border-radius:8px;transition:background .15s;position:relative}.fr-toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;transition:transform .15s}.fr-toggle input:checked+.fr-toggle-track{background:#2563eb}.fr-toggle input:checked+.fr-toggle-track:after{transform:translate(12px)}.fr-loading,.fr-error,.fr-empty-state,.fr-no-selection{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px 16px;text-align:center;color:var(--text-muted, #6b7280)}.fr-empty-msg,.fr-no-selection-msg{font-size:13px}.fr-error{color:#dc2626;font-size:12px}.fr-right{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg, #f9fafb)}.fr-editor{display:flex;flex-direction:column;height:100%}.fr-editor-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.fr-editor-section{border:1px solid var(--border, #e5e7eb);border-radius:6px;overflow:hidden}.fr-editor-section-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted, #6b7280);padding:8px 12px;background:var(--panel-bg, #fff);border-bottom:1px solid var(--border, #e5e7eb)}.fr-editor-footer{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--border, #e5e7eb);background:var(--panel-bg, #fff);flex-shrink:0}.fr-footer-spacer{flex:1}.fr-field-row{display:flex;align-items:center;gap:8px;min-height:32px}.fr-field-label{font-size:12px;font-weight:500;color:var(--text-muted, #374151);width:90px;flex-shrink:0}.fr-field-hint{font-size:11px;color:var(--text-muted, #9ca3af)}.fr-field-inline{display:flex;align-items:center;gap:8px}.fr-manual-task-name{font-size:12px;color:var(--text, #374151);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fr-text-input,.fr-textarea,.fr-select,.fr-value-input{font-size:12px;padding:5px 8px;border:1px solid var(--border, #d1d5db);border-radius:5px;background:var(--panel-bg, #fff);color:var(--text, #1f2937);outline:none;transition:border-color .15s}.fr-text-input{flex:1;min-width:0}.fr-textarea{flex:1;resize:vertical;font-family:inherit}.fr-text-input:focus,.fr-textarea:focus,.fr-select:focus,.fr-value-input:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.fr-value-input-sm{width:80px}.fr-value-input-wide{width:220px}.fr-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border:1px solid var(--border, #d1d5db);border-radius:5px;background:var(--panel-bg, #fff);font-size:12px;color:var(--text, #374151);cursor:pointer;transition:background .1s,border-color .1s;white-space:nowrap}.fr-btn:hover:not(:disabled){background:var(--hover-bg, #f3f4f6)}.fr-btn:disabled{opacity:.4;cursor:default}.fr-btn-primary{background:#2563eb;color:#fff;border-color:#2563eb}.fr-btn-primary:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}.fr-btn-danger{color:#dc2626;border-color:#fca5a5}.fr-btn-danger:hover:not(:disabled){background:#fef2f2}.fr-delete-btn{padding:0 6px;border:none;background:transparent;color:var(--text-muted, #9ca3af);cursor:pointer;font-size:14px;border-radius:3px;line-height:1}.fr-delete-btn:hover{background:#fee2e2;color:#dc2626}.fr-add-btn{font-size:11px;padding:3px 8px;border:1px dashed var(--border, #d1d5db);border-radius:4px;background:transparent;color:var(--text-muted, #6b7280);cursor:pointer;transition:background .1s,border-color .1s}.fr-add-btn:hover{background:var(--hover-bg, #f3f4f6);border-color:#2563eb;color:#2563eb}.fr-clear-link{font-size:11px;padding:1px 4px;border:none;background:transparent;color:var(--text-muted, #9ca3af);cursor:pointer;text-decoration:underline}.fr-clear-link:hover{color:#dc2626}.fr-tree-editor{padding:10px}.fr-manual-sentinel{font-size:12px;color:var(--text-muted, #6b7280);font-style:italic;padding:8px}.fr-composite-box{border:1px solid var(--border, #e5e7eb);border-radius:6px;padding:8px;margin-bottom:6px;background:var(--panel-bg, #fff)}.fr-depth-1{background:#f9fafb}.fr-depth-2{background:#f3f4f6}.fr-depth-3{background:#e5e7eb}.fr-depth-4{background:#d1d5db}.fr-composite-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.fr-composite-children{display:flex;flex-direction:column;gap:4px;padding-left:12px;border-left:2px solid var(--border, #e5e7eb);margin-left:4px}.fr-composite-actions{display:flex;gap:6px;margin-top:8px;padding-top:6px;border-top:1px dashed var(--border, #e5e7eb)}.fr-composite-kind-label{font-size:12px;color:var(--text-muted, #6b7280);font-style:italic}.fr-kind-select{font-size:12px}.fr-validation-hint{font-size:11px;color:#d97706;background:#fffbeb;border:1px solid #fcd34d;border-radius:4px;padding:4px 8px;margin-bottom:4px}.fr-leaf-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:4px 0}.fr-field-select{min-width:120px}.fr-op-select{min-width:90px}.fr-between-pair,.fr-within-pair{display:inline-flex;align-items:center;gap:6px}.fr-between-sep,.fr-within-hint{font-size:11px;color:var(--text-muted, #6b7280)}.fr-style-editor{padding:8px;display:flex;flex-direction:column;gap:2px}.fr-section{border:1px solid var(--border, #e5e7eb);border-radius:5px;overflow:hidden;margin-bottom:6px}.fr-section-header{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--panel-bg, #fff);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:12px;font-weight:600}.fr-section-header:hover{background:var(--hover-bg, #f3f4f6)}.fr-section-arrow{font-size:10px;color:var(--text-muted, #6b7280)}.fr-section-title{flex:1}.fr-section-extra{margin-left:auto}.fr-section-body{padding:8px 10px;border-top:1px solid var(--border, #e5e7eb);display:flex;flex-direction:column;gap:6px;background:var(--bg, #f9fafb)}.fr-style-row{display:flex;align-items:center;gap:8px;min-height:28px}.fr-style-label{font-size:12px;color:var(--text-muted, #374151);width:80px;flex-shrink:0}.fr-color-input{width:36px;height:24px;padding:0 2px;border:1px solid var(--border, #d1d5db);border-radius:4px;cursor:pointer;background:none}.fr-toggle-group{display:flex;gap:2px}.fr-toggle-btn{width:28px;height:26px;border:1px solid var(--border, #d1d5db);border-radius:4px;background:var(--panel-bg, #fff);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:var(--text, #374151);transition:background .1s,border-color .1s}.fr-toggle-btn:hover{background:var(--hover-bg, #f3f4f6)}.fr-toggle-btn-active{background:#2563eb;color:#fff;border-color:#2563eb}.fr-icon-grid{display:flex;flex-wrap:wrap;gap:4px}.fr-icon-btn{width:30px;height:30px;border:1px solid var(--border, #e5e7eb);border-radius:5px;background:var(--panel-bg, #fff);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .1s,border-color .1s}.fr-icon-btn:hover{background:var(--hover-bg, #f3f4f6);border-color:#9ca3af}.fr-icon-btn-selected{background:#eff6ff;border-color:#2563eb}.fr-icon-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.fr-icon-chip{display:inline-flex;align-items:center;gap:3px;padding:2px 6px 2px 4px;border:1px solid var(--border, #e5e7eb);border-radius:12px;background:var(--panel-bg, #fff);font-size:11px}.fr-icon-chip-label{color:var(--text, #374151)}.fr-icon-chip-remove{border:none;background:transparent;color:var(--text-muted, #9ca3af);cursor:pointer;padding:0;font-size:13px;line-height:1}.fr-icon-chip-remove:hover{color:#dc2626}.fr-preview-box{border:1px solid var(--border, #e5e7eb);border-radius:6px;padding:12px;background:var(--panel-bg, #fff)}.fr-preview-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted, #9ca3af);margin-bottom:8px}.fr-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:9999}.fr-modal{background:var(--panel-bg, #fff);border-radius:8px;box-shadow:0 8px 32px #0003;width:380px;max-width:95vw;max-height:75vh;display:flex;flex-direction:column;overflow:hidden}.fr-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border, #e5e7eb);font-size:13px;font-weight:600}.fr-modal-close{border:none;background:transparent;font-size:18px;color:var(--text-muted, #9ca3af);cursor:pointer;padding:0 4px}.fr-modal-close:hover{color:var(--text, #374151)}.fr-modal-search{margin:10px 12px 8px;padding:7px 10px;border:1px solid var(--border, #d1d5db);border-radius:5px;font-size:12px;outline:none}.fr-modal-search:focus{border-color:#2563eb}.fr-modal-list{flex:1;overflow-y:auto;padding:4px 0 8px}.fr-modal-item{padding:7px 16px;font-size:13px;cursor:pointer;transition:background .1s}.fr-modal-item:hover{background:var(--hover-bg, #f3f4f6)}.fr-modal-empty{padding:16px;text-align:center;color:var(--text-muted, #9ca3af);font-size:12px}.proc-view{display:flex;flex-direction:column;height:100%;background:#f9fafb;font-size:13px;color:#1f2937}.proc-toolbar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0}.proc-toolbar-title{font-size:14px;font-weight:600;color:#111827;margin-right:4px}.proc-toolbar-sep{width:1px;height:20px;background:#e5e7eb;margin:0 4px}.proc-search{display:flex;align-items:center;gap:6px;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;padding:4px 8px;flex:1;max-width:280px}.proc-search input{border:none;background:transparent;outline:none;font-size:13px;color:#374151;width:100%}.proc-search input::placeholder{color:#9ca3af}.proc-select{padding:4px 8px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;font-size:12px;color:#374151;cursor:pointer;outline:none}.proc-btn{display:flex;align-items:center;gap:4px;padding:5px 10px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;font-size:12px;color:#374151;cursor:pointer;white-space:nowrap;transition:background .12s}.proc-btn:hover{background:#f3f4f6}.proc-btn-primary{background:#2563eb;border-color:#2563eb;color:#fff}.proc-btn-primary:hover{background:#1d4ed8}.proc-btn-danger{color:#dc2626;border-color:#fecaca}.proc-btn-danger:hover{background:#fef2f2}.proc-btn:disabled{opacity:.45;cursor:default}.proc-spacer{flex:1}.proc-summary{display:flex;gap:10px;padding:10px 12px;background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0}.proc-kpi{display:flex;flex-direction:column;gap:2px;padding:8px 14px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;min-width:110px}.proc-kpi-label{font-size:11px;color:#6b7280;text-transform:uppercase;letter-spacing:.04em}.proc-kpi-value{font-size:18px;font-weight:700;color:#111827}.proc-kpi-sub{font-size:11px;color:#6b7280}.proc-body{display:flex;flex:1;min-height:0;overflow:hidden}.proc-list-panel{width:300px;min-width:220px;flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid #e5e7eb;background:#fff;overflow:hidden}.proc-list-scroll{flex:1;overflow-y:auto;overflow-x:hidden}.proc-list-item{display:flex;flex-direction:column;gap:3px;padding:9px 12px;border-bottom:1px solid #f3f4f6;cursor:pointer;transition:background .1s;-webkit-user-select:none;user-select:none}.proc-list-item:hover{background:#f9fafb}.proc-list-item.proc-list-selected{background:#eff6ff;border-left:3px solid #2563eb;padding-left:9px}.proc-list-item-row{display:flex;align-items:center;gap:6px}.proc-list-item-name{font-weight:500;color:#111827;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proc-list-item-meta{display:flex;align-items:center;gap:6px;font-size:11px;color:#6b7280}.proc-list-empty{padding:32px 16px;text-align:center;color:#9ca3af;font-size:13px}.proc-detail-panel{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden;background:#fff}.proc-detail-empty{flex:1;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:14px}.proc-tabs{display:flex;gap:0;border-bottom:1px solid #e5e7eb;padding:0 12px;flex-shrink:0}.proc-tab{padding:8px 14px;font-size:12px;font-weight:500;color:#6b7280;border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s}.proc-tab:hover{color:#374151}.proc-tab.proc-tab-active{color:#2563eb;border-bottom-color:#2563eb}.proc-tab-content{flex:1;overflow-y:auto;padding:14px}.proc-detail-header{display:flex;align-items:center;gap:8px;padding:12px 14px 8px;border-bottom:1px solid #f3f4f6;flex-shrink:0}.proc-detail-title{font-size:15px;font-weight:600;color:#111827;flex:1}.proc-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:500;white-space:nowrap}.proc-badge-pending{background:#f3f4f6;color:#4b5563}.proc-badge-quoted{background:#fef3c7;color:#92400e}.proc-badge-ordered{background:#dbeafe;color:#1e40af}.proc-badge-delivered{background:#d1fae5;color:#065f46}.proc-badge-cancelled{background:#fee2e2;color:#991b1b}.proc-badge-draft{background:#f3f4f6;color:#4b5563}.proc-badge-submitted{background:#fef3c7;color:#92400e}.proc-badge-approved{background:#d1fae5;color:#065f46}.proc-badge-rejected{background:#fee2e2;color:#991b1b}.proc-badge-implemented{background:#dbeafe;color:#1e40af}.proc-badge-paid{background:#d1fae5;color:#065f46}.proc-badge-overdue{background:#fee2e2;color:#991b1b}.proc-field-grid{display:grid;grid-template-columns:140px 1fr;gap:6px 12px;margin-bottom:16px}.proc-field-label{font-size:11px;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;display:flex;align-items:center;padding-top:1px}.proc-field-value{font-size:13px;color:#111827}.proc-field-input{width:100%;padding:4px 8px;border:1px solid #e5e7eb;border-radius:5px;font-size:13px;color:#111827;background:#fff;outline:none;box-sizing:border-box}.proc-field-input:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1f}.proc-field-textarea{resize:vertical;min-height:60px;font-family:inherit}.proc-section-title{font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin:16px 0 8px}.proc-section-title:first-child{margin-top:0}.proc-vendor-table-wrap{overflow-x:auto;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:12px}.proc-vendor-table{width:100%;border-collapse:collapse;font-size:12px}.proc-vendor-table th{background:#f9fafb;padding:7px 10px;text-align:left;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb;white-space:nowrap}.proc-vendor-table td{padding:7px 10px;border-bottom:1px solid #f3f4f6;vertical-align:middle}.proc-vendor-table tr:last-child td{border-bottom:none}.proc-vendor-table tr.proc-vendor-selected td{background:#eff6ff}.proc-vendor-table input[type=text],.proc-vendor-table input[type=number]{width:100%;padding:3px 6px;border:1px solid #e5e7eb;border-radius:4px;font-size:12px;outline:none;box-sizing:border-box}.proc-vendor-table input:focus{border-color:#2563eb}.proc-payment-table-wrap{overflow-x:auto;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:12px}.proc-payment-table{width:100%;border-collapse:collapse;font-size:12px}.proc-payment-table th{background:#f9fafb;padding:7px 10px;text-align:left;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb;white-space:nowrap}.proc-payment-table td{padding:7px 10px;border-bottom:1px solid #f3f4f6;vertical-align:middle}.proc-payment-table tr:last-child td{border-bottom:none}.proc-payment-table input[type=text],.proc-payment-table input[type=number],.proc-payment-table input[type=date],.proc-payment-table select{width:100%;padding:3px 6px;border:1px solid #e5e7eb;border-radius:4px;font-size:12px;outline:none;box-sizing:border-box;background:#fff}.proc-payment-table input:focus,.proc-payment-table select:focus{border-color:#2563eb}.ccb-priority{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.ccb-priority-1{background:#6b7280}.ccb-priority-2{background:#3b82f6}.ccb-priority-3{background:#f59e0b}.ccb-priority-4{background:#ef4444}.ccb-priority-5{background:#7c3aed}.ccb-approval-chain{display:flex;flex-direction:column;gap:8px}.ccb-approval-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb}.ccb-approval-step{width:22px;height:22px;border-radius:50%;background:#e5e7eb;color:#374151;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}.ccb-approval-step.approved{background:#d1fae5;color:#065f46}.ccb-approval-step.rejected{background:#fee2e2;color:#991b1b}.ccb-approval-name{font-weight:500;flex:1}.ccb-approval-role{font-size:11px;color:#6b7280}.ccb-task-list{display:flex;flex-direction:column;gap:6px}.ccb-task-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #e5e7eb;border-radius:8px;background:#f9fafb}.ccb-change-type{padding:2px 7px;border-radius:10px;font-size:10px;font-weight:600;text-transform:uppercase}.ccb-change-add{background:#d1fae5;color:#065f46}.ccb-change-modify{background:#dbeafe;color:#1e40af}.ccb-change-delete{background:#fee2e2;color:#991b1b}.proc-risk{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:500}.proc-risk-high{color:#dc2626}.proc-risk-medium{color:#d97706}.proc-risk-low{color:#059669}.proc-add-row{display:flex;gap:6px;align-items:center;padding:8px 0}.proc-add-row input,.proc-add-row select{padding:4px 8px;border:1px solid #e5e7eb;border-radius:5px;font-size:12px;outline:none;background:#fff}.proc-add-row input:focus,.proc-add-row select:focus{border-color:#2563eb}.de-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;flex-direction:column;background:#f1f5f9;font-size:13px;color:var(--text, #1f2937)}.de-toolbar{display:flex;align-items:center;gap:4px;padding:6px 10px;background:#1e293b;border-bottom:1px solid #334155;flex-shrink:0;flex-wrap:wrap}.de-tool-btn{display:flex;align-items:center;gap:4px;padding:5px 9px;border:1px solid transparent;border-radius:5px;background:transparent;color:#94a3b8;font-size:12px;cursor:pointer;transition:background .1s,color .1s;white-space:nowrap}.de-tool-btn:hover{background:#334155;color:#e2e8f0}.de-tool-btn.active{background:#2563eb;color:#fff;border-color:#1d4ed8}.de-tool-btn:disabled{opacity:.4;cursor:default}.de-toolbar-sep{width:1px;height:20px;background:#334155;margin:0 4px;flex-shrink:0}.de-page-label{font-size:12px;color:#94a3b8;min-width:40px;text-align:center}.de-zoom-label{font-size:12px;color:#94a3b8;min-width:36px;text-align:center}.de-scale-label{font-size:11px;color:#64748b;padding:3px 8px;background:#0f172a;border-radius:4px}.de-body{display:flex;flex:1;min-height:0;overflow:hidden}.de-canvas-area{flex:1;overflow:hidden;position:relative;background:#e2e8f0}.de-canvas-transform{position:absolute;top:0;left:0;will-change:transform;-webkit-user-select:none;user-select:none}.de-pdf-canvas{display:block;position:relative;z-index:0;box-shadow:0 4px 24px #0003}.de-shape-canvas{display:block;position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.de-sidebar{width:220px;min-width:180px;max-width:280px;display:flex;flex-direction:column;background:var(--panel-bg, #fff);border-left:1px solid var(--border, #e5e7eb);overflow-y:auto;gap:0}.de-sidebar-section{padding:12px;border-bottom:1px solid var(--border, #e5e7eb);display:flex;flex-direction:column;gap:4px}.de-sidebar-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;margin-bottom:6px}.de-sidebar-label{font-size:11px;color:#6b7280;margin-top:4px}.de-sidebar-input{width:100%;padding:4px 6px;border:1px solid var(--border, #e5e7eb);border-radius:4px;font-size:12px;outline:none;background:var(--panel-bg, #fff)}.de-sidebar-input:focus{border-color:#93c5fd;box-shadow:0 0 0 2px #bfdbfe}.de-color-input{width:36px;height:26px;padding:1px;border:1px solid var(--border, #e5e7eb);border-radius:4px;cursor:pointer}.de-sidebar-chip{display:inline-block;padding:2px 8px;border-radius:4px;background:#eff6ff;color:#2563eb;font-size:11px;font-weight:500;border:1px solid #bfdbfe;align-self:flex-start}.de-sidebar-meta{font-size:12px;color:#374151;font-weight:500}.de-sidebar-hint{font-size:11px;color:#9ca3af;font-style:italic}.de-list-row{display:flex;align-items:center;gap:5px;padding:4px 6px;border-radius:4px;cursor:pointer;font-size:12px;color:#374151}.de-list-row:hover{background:#f3f4f6}.de-list-row.active{background:#eff6ff;color:#1d4ed8}.de-list-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.de-list-name{flex:1;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.de-list-chip{font-size:10px;padding:1px 5px;border-radius:3px;background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0;white-space:nowrap;max-width:70px;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.de-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:10000}.de-modal{background:var(--panel-bg, #fff);border-radius:10px;box-shadow:0 8px 32px #00000038;width:360px;max-width:95vw;display:flex;flex-direction:column;overflow:hidden}.de-modal-title{font-size:14px;font-weight:600;color:#111827;padding:14px 16px 0}.de-modal-body{padding:12px 16px}.de-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:10px 16px;border-top:1px solid var(--border, #e5e7eb)}.de-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#1e293b;color:#e2e8f0;font-size:13px;padding:8px 18px;border-radius:8px;box-shadow:0 4px 16px #00000040;z-index:99999;pointer-events:none}.drw-panel{display:flex;flex-direction:column;border-top:1px solid var(--border, #e5e7eb)}.drw-panel-header{display:flex;align-items:center;gap:6px;padding:8px 12px;border-bottom:1px solid var(--border, #e5e7eb);flex-shrink:0;background:var(--panel-bg, #fff)}.drw-panel-title{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;flex:1}.drw-panel-filter-note{font-weight:400;text-transform:none;font-size:10px;color:#9ca3af;letter-spacing:0}.drw-list{display:flex;flex-direction:column;gap:0;overflow-y:auto;max-height:260px}.drw-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px 16px;color:#9ca3af;font-size:12px;text-align:center}.drw-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border, #f3f4f6);cursor:pointer;transition:background .1s}.drw-row:hover{background:var(--hover-bg, #f9fafb)}.drw-row-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;background:#f3f4f6}.drw-row-info{flex:1;min-width:0}.drw-row-name{font-size:12px;font-weight:500;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drw-row-meta{display:flex;align-items:center;gap:6px;margin-top:2px;flex-wrap:wrap}.drw-type-badge{font-size:10px;padding:1px 5px;border-radius:3px;background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe;font-weight:600;letter-spacing:.02em}.drw-loc-chip{display:flex;align-items:center;gap:2px;font-size:10px;padding:1px 5px;border-radius:3px;background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.ltp-panel{display:flex;flex-direction:column;width:220px;min-width:180px;max-width:300px;background:#1e293b;border-right:1px solid #334155;overflow:hidden;flex-shrink:0}.ltp-collapsed{display:flex;flex-direction:column;align-items:center;width:28px;background:#1e293b;border-right:1px solid #334155;flex-shrink:0;padding:8px 0;gap:6px}.ltp-collapsed-label{writing-mode:vertical-rl;text-orientation:mixed;font-size:10px;color:#64748b;letter-spacing:.08em;text-transform:uppercase;transform:rotate(180deg);margin-top:4px;-webkit-user-select:none;user-select:none}.ltp-header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid #334155;flex-shrink:0}.ltp-header-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.ltp-collapse-toggle{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:4px;background:transparent;color:#64748b;cursor:pointer;padding:0}.ltp-collapse-toggle:hover{background:#334155;color:#e2e8f0}.ltp-search-wrap{display:flex;align-items:center;gap:6px;padding:6px 10px;border-bottom:1px solid #334155;flex-shrink:0}.ltp-search-icon{color:#64748b;flex-shrink:0}.ltp-search-input{flex:1;background:transparent;border:none;outline:none;font-size:12px;color:#cbd5e1;padding:0}.ltp-search-input::placeholder{color:#475569}.ltp-tree-scroll{flex:1;overflow-y:auto;overflow-x:hidden}.ltp-tree-scroll::-webkit-scrollbar{width:4px}.ltp-tree-scroll::-webkit-scrollbar-thumb{background:#334155;border-radius:2px}.ltp-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:24px 16px;color:#475569;font-size:12px;text-align:center}.ltp-row{display:flex;align-items:center;gap:4px;padding:4px 8px;cursor:pointer;min-height:28px;transition:background .08s;position:relative}.ltp-row:hover{background:#293548}.ltp-row:hover .ltp-actions{opacity:1}.ltp-row-selected{background:#1e3a5f!important}.ltp-row-selected .ltp-name{color:#93c5fd}.ltp-row.ltp-dragging{opacity:.45}.ltp-row.ltp-drop-above{box-shadow:inset 0 2px #60a5fa}.ltp-row.ltp-drop-below{box-shadow:inset 0 -2px #60a5fa}.ltp-row.ltp-drop-inside{background:#1e3a5f;outline:1px dashed #60a5fa;outline-offset:-2px}.ltp-expand-btn{display:flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0;border:none;background:transparent;color:#64748b;cursor:pointer;padding:0;border-radius:2px}.ltp-expand-btn:hover{background:#334155;color:#e2e8f0}.ltp-expand-placeholder{width:14px;height:14px;flex-shrink:0}.ltp-icon{color:#64748b;flex-shrink:0}.ltp-name{flex:1;font-size:12px;color:#cbd5e1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.ltp-rename-input{flex:1;background:#334155;border:1px solid #2563eb;border-radius:3px;outline:none;font-size:12px;color:#e2e8f0;padding:2px 5px;min-width:0}.ltp-badges{display:flex;align-items:center;gap:3px;flex-shrink:0;margin-right:2px}.ltp-count-badge{font-size:10px;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:#2563eb;color:#fff;padding:0 4px;font-weight:600}.ltp-area-badge{font-size:9px;color:#94a3b8;white-space:nowrap}.ltp-actions{display:flex;align-items:center;gap:1px;flex-shrink:0;opacity:0;transition:opacity .1s}.ltp-action-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;border-radius:3px;background:transparent;color:#64748b;cursor:pointer;padding:0}.ltp-action-btn:hover{background:#334155;color:#e2e8f0}.ltp-action-danger:hover{background:#450a0a;color:#fca5a5}.ltp-inline-add{display:flex;align-items:center;gap:4px;padding:4px 8px;background:#0f172a;border-bottom:1px solid #1e293b}.ltp-inline-input{flex:1;background:#334155;border:1px solid #2563eb;border-radius:3px;outline:none;font-size:12px;color:#e2e8f0;padding:3px 6px;min-width:0}.ltp-inline-input::placeholder{color:#475569}.ltp-inline-ok{padding:2px 8px;border-radius:3px;border:none;background:#2563eb;color:#fff;font-size:11px;cursor:pointer;white-space:nowrap}.ltp-inline-cancel{padding:2px 6px;border-radius:3px;border:none;background:transparent;color:#64748b;font-size:13px;cursor:pointer;line-height:1}.ltp-inline-cancel:hover{color:#e2e8f0}.ltp-footer{border-top:1px solid #334155;padding:6px 8px;flex-shrink:0}.ltp-add-root-btn{display:flex;align-items:center;gap:4px;width:100%;padding:5px 8px;border:1px dashed #334155;border-radius:5px;background:transparent;color:#64748b;font-size:11px;cursor:pointer;transition:background .1s,color .1s}.ltp-add-root-btn:hover{background:#293548;color:#94a3b8;border-color:#475569}.de-inline-popover{position:fixed;z-index:10001;background:#1e293b;border:1px solid #2563eb;border-radius:8px;padding:10px 12px;width:240px;box-shadow:0 8px 24px #0006;display:flex;flex-direction:column;gap:8px}.de-inline-popover-label{font-size:11px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.de-inline-popover-input{width:100%;background:#0f172a;border:1px solid #334155;border-radius:4px;outline:none;font-size:13px;color:#e2e8f0;padding:5px 8px;box-sizing:border-box}.de-inline-popover-input:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb40}.de-inline-popover-input::placeholder{color:#475569}.de-inline-popover-row{display:flex;align-items:center;gap:8px}.de-inline-popover-save{flex:1;padding:5px 10px;border:none;border-radius:5px;background:#2563eb;color:#fff;font-size:12px;cursor:pointer;font-weight:500}.de-inline-popover-save:hover{background:#1d4ed8}.de-inline-popover-skip{padding:5px 10px;border:none;border-radius:5px;background:transparent;color:#64748b;font-size:12px;cursor:pointer}.de-inline-popover-skip:hover{color:#94a3b8}.lts-bar{position:absolute;left:0;right:0;bottom:0;background:var(--tmb-bg, #fff);color:var(--tmb-text, #1f2937);border-top:2px solid #2563eb;padding:8px 16px 10px;display:flex;flex-direction:column;gap:6px;font-size:12px;-webkit-user-select:none;user-select:none;z-index:50;box-shadow:0 -4px 18px #00000026}[data-theme=dark] .lts-bar{box-shadow:0 -4px 18px #00000080}.lts-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.lts-title{font-weight:600}.lts-sep{width:1px;height:16px;background:var(--tmb-border, #e5e7eb);margin:0 4px}.lts-spacer{flex:1}.lts-btn{background:var(--tmb-bg-alt, #f3f4f6);border:1px solid var(--tmb-border, #d1d5db);color:inherit;padding:2px 8px;font-size:12px;line-height:1.4;border-radius:3px;cursor:pointer;min-width:22px}.lts-btn:hover{background:var(--tmb-bg-strong, #e5e7eb)}.lts-btn-play{font-weight:700;min-width:30px;background:#2563eb;color:#fff;border-color:#2563eb}.lts-btn-play:hover{background:#1d4ed8}.lts-select{background:var(--tmb-bg-alt, #f3f4f6);border:1px solid var(--tmb-border, #d1d5db);color:inherit;padding:1px 4px;font-size:11px;border-radius:3px}.lts-look{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--tmb-text-dim, #6b7280)}.lts-look-input{width:44px;background:var(--tmb-bg-alt, #f3f4f6);border:1px solid var(--tmb-border, #d1d5db);color:inherit;padding:1px 4px;font-size:11px;border-radius:3px}.lts-date{font-variant-numeric:tabular-nums;font-weight:600;color:var(--tmb-text, #111827);margin-left:6px}.lts-density-row{display:flex;align-items:flex-end;height:28px;gap:1px;padding:0 1px;background:var(--tmb-bg-alt, #f3f4f6);border-radius:3px}.lts-density-bar{flex:1;min-width:1px;background:#2563eb;border-radius:1px 1px 0 0}.lts-slider-row{display:flex;align-items:center;gap:8px}.lts-slider{flex:1;cursor:pointer;accent-color:#2563eb}.lts-range-end{color:var(--tmb-text-faint, #9ca3af);font-size:10px;white-space:nowrap;font-variant-numeric:tabular-nums}.lts-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--tmb-text-dim, #6b7280)}.lts-legend-item{display:inline-flex;align-items:center;gap:4px}.lts-legend-swatch{display:inline-block;width:14px;height:10px;border:1.5px solid;border-radius:2px}.onboarding-bar{display:flex;align-items:center;gap:16px;padding:8px 12px;background:linear-gradient(180deg,#f0f9ff,#e0f2fe);border-bottom:1px solid #bae6fd;font-size:12px;color:#0f172a;flex-shrink:0}.onboarding-progress{flex-shrink:0;min-width:130px;display:flex;flex-direction:column;gap:3px}.onboarding-progress-label{font-weight:600;color:#075985;font-size:11px;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}.onboarding-progress-track{height:4px;background:#cffafe;border-radius:2px;overflow:hidden}.onboarding-progress-fill{height:100%;background:#0284c7;transition:width .2s ease}.onboarding-steps{flex:1;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}.onboarding-step{display:inline-flex;align-items:center;gap:5px;padding:3px 6px;border-radius:4px;color:#475569}.onboarding-step-done{color:#16a34a}.onboarding-step-done .onboarding-step-label{text-decoration:line-through;text-decoration-color:#16a34a80}.onboarding-step-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#f0f9ff;border:1px solid #bae6fd;color:#94a3b8;flex-shrink:0}.onboarding-step-done .onboarding-step-icon{background:#dcfce7;border-color:#86efac;color:#16a34a}.onboarding-step-label{white-space:nowrap}.onboarding-step-action{display:inline-flex;align-items:center;gap:2px;padding:2px 6px;font-size:11px;background:#0284c7;color:#fff;border:1px solid #0284c7;border-radius:3px;cursor:pointer;margin-left:2px}.onboarding-step-action:hover{background:#0369a1;border-color:#0369a1}.onboarding-dismiss{flex-shrink:0;background:transparent;border:none;cursor:pointer;color:#64748b;padding:4px;border-radius:4px}.onboarding-dismiss:hover{background:#fff;color:#0f172a}.sh-ai-triage{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:5px 10px;font-size:12px;font-weight:500;background:#ede9fe;border:1px solid #c4b5fd;border-radius:4px;color:#5b21b6;cursor:pointer;width:100%;justify-content:center}.sh-ai-triage:hover{background:#ddd6fe;border-color:#a78bfa}.aid-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-start;justify-content:center;padding-top:6vh;z-index:1000}.aid-overlay-stack{z-index:1010}.aid-dialog,.aid-editor{background:#fff;border:1px solid #cbd5e1;border-radius:6px;box-shadow:0 12px 36px #0000002e;display:flex;flex-direction:column;max-height:86vh;overflow:hidden}.aid-dialog{width:min(960px,96vw)}.aid-editor{width:min(620px,96vw);max-height:80vh}.aid-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.aid-header h2,.aid-header h3{margin:0;font-size:1.05em;color:#0f172a}.aid-close{background:transparent;border:none;font-size:1.4em;cursor:pointer;color:#64748b;line-height:1}.aid-close:hover{color:#0f172a}.aid-tabs{display:flex;gap:2px;background:#f1f5f9;padding:4px 8px 0;border-bottom:1px solid #e2e8f0}.aid-tab{background:transparent;border:1px solid transparent;border-bottom:none;border-radius:4px 4px 0 0;padding:6px 14px;font-size:.9em;cursor:pointer;color:#475569}.aid-tab-active{background:#fff;border-color:#e2e8f0;color:#0f172a;font-weight:500;position:relative;top:1px}.aid-tab-content{padding:14px 16px;overflow:auto;flex:1}.aid-row-actions{display:flex;justify-content:flex-end;margin-bottom:10px}.aid-empty{color:#64748b;padding:24px;text-align:center;font-style:italic}.aid-error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;padding:8px 12px;border-radius:4px;margin:8px 16px;font-size:.9em}.aid-loading{color:#64748b;padding:8px 16px}.aid-table{width:100%;border-collapse:collapse;font-size:.92em}.aid-table th,.aid-table td{text-align:left;padding:6px 10px;border-bottom:1px solid #e2e8f0;vertical-align:middle}.aid-table th{font-weight:600;color:#475569;background:#f8fafc;position:sticky;top:0}.aid-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.aid-applies-cell{color:#64748b;font-size:.86em}.aid-row-buttons{display:flex;gap:4px;justify-content:flex-end}.aid-btn{padding:5px 12px;border:1px solid #cbd5e1;border-radius:4px;background:#f1f5f9;color:#0f172a;font-size:.88em;cursor:pointer}.aid-btn:hover:not(:disabled){background:#e2e8f0}.aid-btn:disabled{opacity:.5;cursor:not-allowed}.aid-btn-sm{padding:3px 8px;font-size:.82em}.aid-btn-primary{background:#4f46e5;border-color:#4f46e5;color:#fff}.aid-btn-primary:hover:not(:disabled){background:#4338ca}.aid-btn-danger{background:#fee2e2;border-color:#fca5a5;color:#b91c1c}.aid-btn-danger:hover:not(:disabled){background:#fecaca}.aid-form{display:flex;flex-direction:column;gap:12px;padding:14px 16px;overflow:auto}.aid-form-row{display:flex;gap:12px;flex-wrap:wrap}.aid-form-row .aid-field{flex:1;min-width:80px}.aid-field{display:flex;flex-direction:column;gap:4px}.aid-field-label{font-size:.82em;font-weight:500;color:#475569}.aid-input{border:1px solid #cbd5e1;border-radius:4px;padding:5px 8px;font-size:.92em;font-family:inherit;background:#fff}.aid-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #6366f133}.aid-input-sm{padding:3px 6px;font-size:.88em}.aid-textarea{resize:vertical;min-height:60px}.aid-hint{font-size:.78em;color:#64748b;line-height:1.4}.aid-pill{display:inline-block;padding:1px 5px;margin:2px 2px 0 0;border-radius:3px;background:#e2e8f0;color:#1e293b;font-size:.72em}.aid-sample{background:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;padding:6px 10px;font-size:.88em;color:#475569}.aid-actions{display:flex;justify-content:flex-end;gap:8px;padding:10px 14px;border-top:1px solid #e2e8f0;background:#f8fafc}.aid-actions-inline{border-top:none;background:transparent;padding:4px 0;justify-content:flex-start}.aid-help{margin-top:16px;padding:8px 0 0;border-top:1px solid #e2e8f0;font-size:.86em;color:#475569}.aid-help summary{cursor:pointer;color:#4f46e5}.aid-help ul{margin:6px 0;padding-left:18px}.aid-help code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f1f5f9;padding:1px 4px;border-radius:3px;font-size:.92em}.aid-scope-group{display:flex;flex-direction:column;gap:6px}.aid-scope-group label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.92em}.aid-preview-table{margin-top:12px}.aid-new-id{color:#047857;font-weight:500}[data-theme=dark] .aid-dialog,[data-theme=dark] .aid-editor{background:#1e2436;border-color:#313a55;color:#cdd6f4}[data-theme=dark] .aid-header{background:#182033;border-bottom-color:#313a55}[data-theme=dark] .aid-header h2,[data-theme=dark] .aid-header h3{color:#cdd6f4}[data-theme=dark] .aid-close{color:#94a3b8}[data-theme=dark] .aid-close:hover{color:#cdd6f4}[data-theme=dark] .aid-tabs{background:#182033;border-bottom-color:#313a55}[data-theme=dark] .aid-tab{color:#94a3b8}[data-theme=dark] .aid-tab-active{background:#1e2436;border-color:#313a55;color:#cdd6f4}[data-theme=dark] .aid-table th{background:#182033;color:#94a3b8}[data-theme=dark] .aid-table th,[data-theme=dark] .aid-table td{border-bottom-color:#313a55}[data-theme=dark] .aid-input{background:#0f172a;border-color:#313a55;color:#cdd6f4}[data-theme=dark] .aid-btn{background:#2e3550;border-color:#313a55;color:#cdd6f4}[data-theme=dark] .aid-btn:hover:not(:disabled){background:#3a4565}[data-theme=dark] .aid-btn-primary{background:#6366f1;border-color:#6366f1;color:#fff}[data-theme=dark] .aid-sample,[data-theme=dark] .aid-pill{background:#2e3550;color:#cdd6f4}[data-theme=dark] .aid-hint,[data-theme=dark] .aid-applies-cell,[data-theme=dark] .aid-loading,[data-theme=dark] .aid-empty,[data-theme=dark] .aid-help{color:#94a3b8}[data-theme=dark] .aid-help code{background:#2e3550}[data-theme=dark] .aid-actions{background:#182033;border-top-color:#313a55}[data-theme=dark] .aid-error{background:#3a1e22;border-color:#6b2a30;color:#fca5a5}[data-theme=dark] .aid-new-id{color:#4ade80}.rp-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-start;justify-content:center;padding-top:4vh;z-index:1000}.rp-dialog{background:#fff;border:1px solid #cbd5e1;border-radius:6px;box-shadow:0 12px 36px #0000002e;width:min(1100px,96vw);max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.rp-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.rp-header h2{margin:0;font-size:1.05em;color:#0f172a}.rp-close{background:transparent;border:none;font-size:1.4em;cursor:pointer;color:#64748b}.rp-error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;padding:8px 12px;margin:8px 14px;border-radius:4px;font-size:.9em}.rp-loading{color:#64748b;padding:8px 14px}.rp-body{display:flex;gap:0;flex:1;overflow:hidden}.rp-list{width:280px;min-width:220px;border-right:1px solid #e2e8f0;background:#f8fafc;padding:10px;display:flex;flex-direction:column;gap:8px;overflow:auto}.rp-list ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.rp-list-item{padding:8px 10px;border-radius:4px;cursor:pointer;background:#fff;border:1px solid #e2e8f0;display:flex;flex-direction:column;gap:4px}.rp-list-item:hover{border-color:#cbd5e1}.rp-list-item-active{border-color:#4f46e5;background:#eef2ff}.rp-list-name{font-size:.92em;color:#0f172a}.rp-list-meta{display:flex;align-items:center;justify-content:space-between;font-size:.78em}.rp-status{padding:1px 6px;border-radius:3px;text-transform:uppercase;letter-spacing:.04em;font-weight:500}.rp-status-draft{background:#e2e8f0;color:#1e293b}.rp-status-submitted{background:#dbeafe;color:#1e40af}.rp-status-approved{background:#dcfce7;color:#166534}.rp-status-rejected{background:#fee2e2;color:#991b1b}.rp-detail{flex:1;overflow:auto;padding:14px 18px}.rp-detail-empty{color:#64748b;text-align:center;padding:24px}.rp-empty{color:#94a3b8;padding:10px 0;font-style:italic;font-size:.9em}.rp-section{padding:8px 0 16px;border-bottom:1px solid #e2e8f0}.rp-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.rp-section-head h3{margin:0;font-size:.95em;color:#0f172a}.rp-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.rp-actions-row{margin-top:8px;align-items:center}.rp-status-buttons{display:flex;gap:6px;margin-left:auto}.rp-field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:160px}.rp-field span{font-size:.82em;font-weight:500;color:#475569}.rp-input{border:1px solid #cbd5e1;border-radius:4px;padding:5px 8px;font-size:.92em;background:#fff}.rp-input-sm{padding:3px 6px;font-size:.86em}.rp-textarea{resize:vertical;min-height:70px;font-family:inherit}.rp-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:10px 14px;margin:10px 0;background:#f1f5f9;border-radius:4px;font-size:.88em}.rp-summary div strong{color:#475569;font-weight:500}.rp-variance-bad{color:#b91c1c;font-weight:600}.rp-variance-good{color:#047857;font-weight:600}.rp-add-row{display:flex;gap:6px;margin:8px 0;flex-wrap:wrap}.rp-add-row .rp-input{flex:1;min-width:100px}.rp-table{width:100%;border-collapse:collapse;font-size:.9em;margin-top:6px}.rp-table th,.rp-table td{text-align:left;padding:5px 8px;border-bottom:1px solid #e2e8f0}.rp-table th{font-weight:600;color:#475569;background:#f8fafc}.rp-btn{padding:5px 12px;border:1px solid #cbd5e1;border-radius:4px;background:#f1f5f9;color:#0f172a;font-size:.88em;cursor:pointer}.rp-btn:hover:not(:disabled){background:#e2e8f0}.rp-btn:disabled{opacity:.5;cursor:not-allowed}.rp-btn-sm{padding:3px 8px;font-size:.82em}.rp-btn-primary{background:#4f46e5;border-color:#4f46e5;color:#fff}.rp-btn-primary:hover:not(:disabled){background:#4338ca}.rp-btn-success{background:#22c55e;border-color:#16a34a;color:#fff}.rp-btn-success:hover:not(:disabled){background:#16a34a}.rp-btn-danger{background:#ef4444;border-color:#dc2626;color:#fff}.rp-btn-danger:hover:not(:disabled){background:#dc2626}.rp-mini-btn{background:transparent;border:1px solid #cbd5e1;border-radius:3px;cursor:pointer;padding:0 6px;color:#64748b;font-size:1.1em;line-height:1}.rp-mini-btn:hover{background:#fee2e2;color:#991b1b;border-color:#fca5a5}[data-theme=dark] .rp-dialog{background:#1e2436;border-color:#313a55;color:#cdd6f4}[data-theme=dark] .rp-header{background:#182033;border-bottom-color:#313a55}[data-theme=dark] .rp-header h2{color:#cdd6f4}[data-theme=dark] .rp-list{background:#182033;border-right-color:#313a55}[data-theme=dark] .rp-list-item{background:#1e2436;border-color:#313a55}[data-theme=dark] .rp-list-item-active{background:#2e3550;border-color:#6366f1}[data-theme=dark] .rp-input{background:#0f172a;border-color:#313a55;color:#cdd6f4}[data-theme=dark] .rp-summary{background:#2e3550}[data-theme=dark] .rp-table th{background:#182033;color:#94a3b8}[data-theme=dark] .rp-table th,[data-theme=dark] .rp-table td{border-bottom-color:#313a55}[data-theme=dark] .rp-btn{background:#2e3550;border-color:#313a55;color:#cdd6f4}.ah-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:4000}.ah-dialog{background:#fff;border-radius:10px;box-shadow:0 24px 80px #00000059;width:880px;max-width:96vw;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.ah-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 10px;border-bottom:1px solid #e2e8f0}.ah-title{font-size:15px;font-weight:600;color:#1a202c}.ah-close{background:none;border:none;cursor:pointer;color:#718096;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.ah-close:hover{background:#f7fafc;color:#1a202c}.ah-body{padding:16px 18px 18px;overflow-y:auto;flex:1}.ah-section{margin-bottom:16px}.ah-section:last-child{margin-bottom:0}.ah-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#718096;margin-bottom:8px;padding-left:2px}.ah-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}.ah-card{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:#f7fafc;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;text-align:left;font:inherit;color:inherit;transition:background 80ms,border-color 80ms,box-shadow 80ms,transform 80ms}.ah-card:hover{background:#ebf8ff;border-color:#4299e1;box-shadow:0 2px 8px #4299e126;transform:translateY(-1px)}.ah-card:active{transform:translateY(0)}.ah-card-icon{flex-shrink:0;color:#3182ce;margin-top:1px}.ah-card-text{flex:1;min-width:0}.ah-card-title{font-size:13px;font-weight:600;color:#2d3748}.ah-card-desc{font-size:11px;color:#718096;line-height:1.35;margin-top:2px}.ah-card-chev{flex-shrink:0;color:#cbd5e0;margin-top:4px}.ah-card:hover .ah-card-chev{color:#3182ce}[data-theme=dark] .ah-dialog{background:#1e2235;color:#cdd6f4;box-shadow:0 24px 80px #000000b3}[data-theme=dark] .ah-header{border-bottom-color:#2e3450}[data-theme=dark] .ah-title{color:#cdd6f4}[data-theme=dark] .ah-close{color:#7a8aae}[data-theme=dark] .ah-close:hover{background:#252848;color:#cdd6f4}[data-theme=dark] .ah-section-title{color:#7a8aae}[data-theme=dark] .ah-card{background:#252848;border-color:#2e3450}[data-theme=dark] .ah-card:hover{background:#1a2845;border-color:#4a90d9;box-shadow:0 2px 8px #4a90d940}[data-theme=dark] .ah-card-icon{color:#4a90d9}[data-theme=dark] .ah-card-title{color:#cdd6f4}[data-theme=dark] .ah-card-desc{color:#7a8aae}[data-theme=dark] .ah-card-chev{color:#4a5568}.pv-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;z-index:2000;display:flex;align-items:center;justify-content:center}.pv-modal{width:96vw;height:94vh;background:#fff;border-radius:10px;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000073,0 8px 24px #00000040;overflow:hidden}.pv-topbar{display:flex;align-items:center;padding:8px 14px;gap:10px;border-bottom:1px solid #e5e7eb;background:#f9fafb;flex-shrink:0}.pv-topbar-title{font-size:13px;font-weight:600;color:#374151;margin-right:4px}.pv-topbar-spacer{flex:1}.pv-theme-row{display:flex;align-items:center;gap:6px}.pv-theme-label{font-size:11px;color:#9ca3af;font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-right:2px}.pv-theme-btn{width:44px;height:28px;border-radius:6px;cursor:pointer;border:2px solid transparent;font-size:10px;font-weight:700;color:#fff;transition:border-color .12s,box-shadow .12s;display:flex;align-items:center;justify-content:center;letter-spacing:.02em}.pv-theme-btn.active{border-color:#3b82f6;box-shadow:0 0 0 2px #bfdbfe}.pv-close-btn{background:transparent;border:1px solid #d1d5db;border-radius:6px;padding:5px 11px;font-size:13px;cursor:pointer;color:#374151;font-weight:500;transition:background .1s;display:flex;align-items:center;gap:5px}.pv-close-btn:hover{background:#f3f4f6}.pv-export-btn{background:#3b82f6;color:#fff;border:none;border-radius:6px;padding:6px 14px;font-size:13px;font-weight:600;cursor:pointer;transition:background .1s;display:flex;align-items:center;gap:5px}.pv-export-btn:hover{background:#2563eb}.pv-export-btn:active{background:#1d4ed8}.pv-main{flex:1;display:flex;overflow:hidden;min-height:0}.pv-chart-area{flex:1;overflow:auto;padding:20px;background:#d1d5db;display:flex;align-items:flex-start;justify-content:center}.pv-chart-wrapper{width:100%;max-width:1280px;background:#fff;border-radius:6px;box-shadow:0 2px 12px #00000026;overflow:hidden}.pv-config{width:272px;min-width:272px;border-left:1px solid #e5e7eb;padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:16px;background:#fafafa}.pv-config-section{display:flex;flex-direction:column;gap:5px}.pv-config-label{display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#6b7280;margin-bottom:2px}.pv-config input[type=text],.pv-config select{width:100%;box-sizing:border-box;border:1px solid #d1d5db;border-radius:6px;padding:6px 8px;font-size:13px;color:#111827;background:#fff;outline:none;transition:border-color .1s}.pv-config input[type=text]:focus,.pv-config select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.pv-config-row{display:flex;align-items:center;gap:8px}.pv-config-row input[type=checkbox]{width:15px;height:15px;cursor:pointer}.pv-config-hint{font-size:11px;color:#9ca3af;line-height:1.4}.pv-config-divider{border:none;border-top:1px solid #e5e7eb;margin:0}.pv-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#9ca3af;gap:8px}.pv-empty-state-icon{font-size:40px;opacity:.4}.pv-empty-state-text{font-size:14px;text-align:center}:root{--gantt-critical-red: #e53e3e;--gantt-bar-blue: #3182ce;--gantt-progress-blue: #1a5fa8;--gantt-grid-grey: #e2e8f0;--gantt-today-red: #e53e3e;--gantt-weekend-grey: #f7f7f9;--gantt-summary-brown: #718096;--gantt-row-stripe: #f9fafb;--gantt-header-bg: #f1f5f9;--gantt-border: #e2e8f0;--gantt-row-height: 24px;--gantt-scale-height: 44px;--gantt-label-outside: #333}.gantt-view{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:#fff;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px;position:relative}.gantt-floating-back{position:absolute;top:8px;left:8px;z-index:50;background:#0f172ad9;color:#f1f5f9;border:1px solid #334155;border-radius:4px;padding:4px 10px 4px 8px;font-size:12px;font-weight:500;cursor:pointer;box-shadow:0 2px 6px #00000040;transition:background .1s,transform .1s}.gantt-floating-back:hover{background:#0f172af2;transform:translate(-1px)}.gantt-floating-back:active{transform:translate(0)}[data-theme=light] .gantt-floating-back{background:#f8fafc;color:#0f172a;border-color:#cbd5e1}[data-theme=light] .gantt-floating-back:hover{background:#fff}.ac-chip{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-weight:500}.gantt-header-bar{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:#fff;border-bottom:1px solid var(--gantt-border);flex-shrink:0;min-height:44px}.gantt-header-bar h2{margin:0;font-size:1rem;font-weight:600;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-header-bar button{padding:.3rem .75rem;font-size:.85rem;cursor:pointer;border:1px solid #ccc;border-radius:4px;background:#f5f5f5;white-space:nowrap}.gantt-header-bar button:hover{background:#e8e8e8}.gantt-header-bar button.btn-primary{background:var(--gantt-bar-blue);color:#fff;border-color:var(--gantt-bar-blue)}.gantt-header-bar button.btn-primary:hover{background:var(--gantt-progress-blue)}.gantt-toast{position:fixed;bottom:1.5rem;right:1.5rem;padding:.6rem 1rem;background:#2d3748;color:#fff;border-radius:6px;font-size:.85rem;z-index:1000;pointer-events:none;animation:gantt-toast-in .2s ease}@keyframes gantt-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.baseline-overlay-bar{display:flex;align-items:center;gap:8px;padding:4px 12px;background:#fffbeb;border-bottom:1px solid #f6e05e;font-size:12px;flex-shrink:0}.baseline-overlay-label{color:#744210}.baseline-overlay-name{font-weight:700;color:#92400e}.baseline-overlay-clear{margin-left:auto;background:transparent;border:1px solid #d97706;color:#92400e;padding:2px 8px;border-radius:4px;font-size:11px;cursor:pointer}.baseline-overlay-clear:hover{background:#fef3c7}.scenario-overlay-bar{background:#eef2ff;border-bottom-color:#c7d2fe}.scenario-overlay-bar .baseline-overlay-label{color:#312e81}.scenario-overlay-bar .baseline-overlay-name{color:#4338ca}.scenario-overlay-bar .baseline-overlay-clear{border-color:#6366f1;color:#4338ca}.scenario-overlay-bar .baseline-overlay-clear:hover{background:#e0e7ff}.scenario-overlay-delta{font-weight:600;font-variant-numeric:tabular-nums;padding:1px 6px;border-radius:3px;font-size:11px}.scenario-overlay-delta-slip{background:#fee2e2;color:#b91c1c}.scenario-overlay-delta-gain{background:#dcfce7;color:#166534}.scenario-overlay-delta-flat{background:#e2e8f0;color:#475569}[data-theme=light] .baseline-overlay-bar{background:#fffbeb;border-bottom-color:#f6e05e}[data-theme=dark] .baseline-overlay-bar,.gantt-dark .baseline-overlay-bar{background:#2d2000;border-bottom-color:#744210}[data-theme=dark] .baseline-overlay-label,.gantt-dark .baseline-overlay-label{color:#fbbf24}[data-theme=dark] .baseline-overlay-name,.gantt-dark .baseline-overlay-name{color:#fde68a}[data-theme=dark] .baseline-overlay-clear,.gantt-dark .baseline-overlay-clear{border-color:#92400e;color:#fde68a}[data-theme=dark] .baseline-overlay-clear:hover,.gantt-dark .baseline-overlay-clear:hover{background:#451a03}.gantt-body{display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow:hidden}.gantt-divider{width:4px;background:var(--gantt-border);cursor:col-resize;flex-shrink:0}.gantt-divider:hover{background:#a0aec0}.gantt-table-pane{display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--gantt-border);flex-shrink:0}.gantt-table-scroll{overflow-x:auto;overflow-y:auto;flex:1;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}.gantt-table{border-collapse:collapse;table-layout:fixed}.gantt-table thead tr:first-child{position:sticky;top:0;z-index:3}.gantt-table thead tr:first-child th{height:var(--gantt-scale-height);background:var(--gantt-header-bg);background-clip:padding-box;box-shadow:inset 0 -1px 0 0 var(--gantt-border);text-align:left;padding:0 8px;font-weight:600;font-size:.8rem;color:#4a5568;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:sticky;top:0;z-index:3}.gantt-table tbody tr{height:var(--gantt-row-height);box-shadow:inset 0 -1px 0 0 var(--gantt-border)}.gantt-table tbody tr:nth-child(2n){background:var(--gantt-row-stripe)}.gantt-table tbody tr.critical-row{border-left:3px solid var(--gantt-critical-red)}.gantt-table tbody tr.summary-row td{font-weight:600}.gantt-table tbody td{padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;font-size:.8rem;color:#2d3748}.gantt-col-wbs{width:70px}.gantt-col-name{width:160px}.gantt-col-start,.gantt-col-finish{width:110px}.gantt-col-dur{width:80px}.gantt-col-pct{width:48px}.gantt-col-status{width:90px}.gantt-col-preds{width:80px}.task-name-cell{display:flex;align-items:center;gap:4px;overflow:hidden}.task-group-strip{position:absolute;top:0;bottom:0;pointer-events:none}.task-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-chevron{flex-shrink:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:0;color:#718096}.task-chevron:hover{color:#2d3748}.task-notes-indicator{font-size:10px;color:#718096;margin-right:2px;flex-shrink:0;opacity:.65;letter-spacing:-.5px;line-height:1}[data-theme=dark] .task-notes-indicator{color:#a0aec0}.task-milestone-diamond{flex-shrink:0;display:inline-block;width:10px;height:10px;background:var(--gantt-bar-blue);transform:rotate(45deg);margin-right:2px}.gantt-timeline-pane{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.gantt-timeline-scroll{overflow-x:auto;overflow-y:auto;flex:1;position:relative;will-change:scroll-position;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}.gantt-timeline-canvas{position:relative}.gantt-scale{display:flex;flex-direction:column;position:sticky;top:0;z-index:3;background:var(--gantt-header-bg);border-bottom:1px solid var(--gantt-border)}.gantt-scale-months{display:flex;height:20px;border-bottom:1px solid var(--gantt-border);overflow:hidden}.gantt-scale-days{display:flex;height:24px;overflow:hidden}.gantt-month-cell{flex-shrink:0;padding:0 4px;font-size:.7rem;font-weight:600;color:#4a5568;border-right:1px solid var(--gantt-border);white-space:nowrap;overflow:hidden;line-height:20px}.gantt-day-cell{flex-shrink:0;text-align:center;font-size:.65rem;color:#718096;border-right:1px solid var(--gantt-grid-grey);line-height:24px;overflow:hidden}.gantt-day-cell.weekend{background:var(--gantt-weekend-grey);color:#a0aec0}.gantt-rows-area{position:relative}.gantt-row-bg{position:absolute;top:0;left:0;right:0}.gantt-row-bg-stripe{position:absolute;left:0;right:0}.gantt-grid-lines{position:absolute;top:0;left:0;pointer-events:none}.gantt-today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--gantt-today-red);opacity:.8;pointer-events:none;z-index:5}.gantt-bar{position:absolute;border-radius:3px;overflow:hidden;cursor:default;will-change:transform}.gantt-bar.bar-normal{background:var(--gantt-bar-blue)}.gantt-bar.bar-critical{background:var(--gantt-critical-red)}.gantt-bar.bar-summary{background:transparent!important;overflow:visible!important;border-radius:0}.gantt-bar.bar-summary:before,.gantt-bar.bar-summary:after{content:"";position:absolute;top:0;width:0;height:0;border-style:solid}.gantt-bar.bar-summary:before{left:0;border-width:0 5px 7px 0;border-color:transparent var(--summary-cap-color, var(--gantt-summary-brown)) transparent transparent}.gantt-bar.bar-summary:after{right:0;border-width:0 0 7px 5px;border-color:transparent transparent transparent var(--summary-cap-color, var(--gantt-summary-brown))}.gantt-summary-rail{position:absolute;top:0;left:0;width:100%;height:4px;background:var(--summary-cap-color, var(--gantt-summary-brown));border-radius:1px 1px 0 0}.gantt-bar.bar-summary.summary-critical{--summary-cap-color: var(--gantt-critical-red)}.gantt-bar.bar-summary.summary-collapsed .gantt-summary-rail{opacity:1;filter:brightness(.82)}.gantt-summary-collapsed-glyph{position:absolute;top:-2px;left:4px;font-size:7px;line-height:1;color:#fff;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.85}.gantt-bar-progress{position:absolute;top:0;left:0;height:100%;background:var(--gantt-progress-blue);opacity:.85}.gantt-bar.bar-critical .gantt-bar-progress{background:#9b2c2c}.gantt-milestone{position:absolute;transform:rotate(45deg);cursor:default;z-index:4}.gantt-milestone.milestone-normal{background:var(--gantt-bar-blue);border:2px solid var(--gantt-progress-blue)}.gantt-milestone.milestone-critical{background:var(--gantt-critical-red);border:2px solid #9b2c2c}.gantt-dep-overlay{position:absolute;top:0;left:0;pointer-events:none;overflow:visible;z-index:4}.gantt-bar.bar-selected{outline:2px solid #f6ad55;outline-offset:1px;box-shadow:0 0 0 3px #f6ad5559;z-index:8}.gantt-bar.bar-dragging{opacity:.85;box-shadow:0 2px 8px #00000040}.gantt-milestone.bar-selected{outline:2px solid #f6ad55;box-shadow:0 0 0 3px #f6ad5559}.gantt-table tbody tr.selected-row{background:#ebf4ff!important}.gantt-table tbody tr.clickable-row{cursor:pointer}.gantt-table tbody tr.clickable-row:hover{background:#f0f7ff}.gantt-table tbody tr.selected-row:hover{background:#dbeafe!important}.gantt-resize-handle{position:absolute;top:0;bottom:0;width:5px;cursor:ew-resize;z-index:10;background:transparent}.gantt-resize-handle:hover{background:#fff6}.gantt-resize-handle-left{left:0}.gantt-resize-handle-right{right:0}.gantt-bar{overflow:visible!important}.gantt-bar{cursor:grab}.gantt-bar:active{cursor:grabbing}.details-panel{position:absolute;top:0;right:0;width:420px;height:100%;background:#fff;border-left:1px solid var(--gantt-border);box-shadow:-4px 0 16px #0000001f;display:flex;flex-direction:column;z-index:50;font-size:13px;animation:panel-slide-in .18s ease;overflow:hidden}@keyframes panel-slide-in{0%{transform:translate(40px);opacity:0}to{transform:translate(0);opacity:1}}.details-panel-resizer{position:absolute;top:0;left:0;width:6px;height:100%;cursor:col-resize;z-index:60;background:transparent}.details-panel-resizer:hover{background:#3b82f659}.details-panel-ids{display:flex;flex-wrap:wrap;gap:.3rem;padding:.4rem .75rem;border-bottom:1px solid var(--gantt-border);background:#f8fafc;flex-shrink:0}.details-id-chip{font-size:.72rem;font-weight:600;font-variant-numeric:tabular-nums;color:#334155;background:#e2e8f0;border:1px solid #cbd5e1;border-radius:4px;padding:1px 6px;white-space:nowrap;-webkit-user-select:text;user-select:text}.details-mpp-notes-block{margin-bottom:12px}.details-mpp-notes{white-space:pre-wrap;word-break:break-word;font-size:.8rem;line-height:1.45;color:#1f2937;background:#f8fafc;border:1px solid var(--gantt-border);border-radius:4px;padding:8px 10px;max-height:320px;overflow:auto;-webkit-user-select:text;user-select:text}.details-panel-header{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;border-bottom:1px solid var(--gantt-border);background:var(--gantt-header-bg);flex-shrink:0;min-height:40px}.details-panel-title{flex:1;font-weight:600;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#1a202c}.details-panel-close{flex-shrink:0;background:none;border:none;font-size:1.25rem;line-height:1;cursor:pointer;color:#718096;padding:0 4px;border-radius:3px}.details-panel-close:hover{background:#e2e8f0;color:#2d3748}.details-save-bar{padding:3px .75rem;font-size:.75rem;flex-shrink:0}.details-save-bar.saving{background:#ebf8ff;color:#2b6cb0}.details-save-bar.saved{background:#f0fff4;color:#276749}.details-save-bar.error{background:#fff5f5;color:#c53030}.details-tab-bar{display:flex;border-bottom:1px solid var(--gantt-border);background:var(--gantt-header-bg);flex-shrink:0;flex-wrap:wrap}.details-tab{padding:.35rem .7rem;font-size:.78rem;font-weight:500;color:#4a5568;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}.details-tab:hover:not(.disabled):not(.active){background:#e8edf3;color:#2d3748}.details-tab.active{color:var(--gantt-bar-blue);border-bottom-color:var(--gantt-bar-blue)}.details-tab.disabled{color:#a0aec0;cursor:not-allowed;font-style:italic}.details-tab-content{flex:1;overflow-y:auto;padding:.75rem}.details-fields{display:grid;grid-template-columns:120px 1fr;gap:8px 10px;align-items:center}.field-label{font-size:.78rem;font-weight:500;color:#4a5568;text-align:right;padding-right:4px}.field-input,.field-select{width:100%;padding:4px 6px;border:1px solid #cbd5e0;border-radius:4px;font-size:.8rem;color:#2d3748;background:#fff;box-sizing:border-box}.field-input:focus,.field-select:focus{outline:none;border-color:var(--gantt-bar-blue);box-shadow:0 0 0 2px #3182ce33}.field-input[disabled],.field-select[disabled]{background:#f7fafc;color:#a0aec0;cursor:not-allowed}.field-input-number{max-width:100%}.field-checkbox{width:16px;height:16px;justify-self:start}.field-textarea{width:100%;min-height:180px;padding:6px 8px;border:1px solid #cbd5e0;border-radius:4px;font-size:.8rem;color:#2d3748;background:#fff;resize:vertical;box-sizing:border-box;font-family:inherit}.field-textarea:focus{outline:none;border-color:var(--gantt-bar-blue);box-shadow:0 0 0 2px #3182ce33}.details-info-list{display:flex;flex-direction:column;gap:0;overflow-y:auto;flex:1}.details-info-edit-block{display:grid;grid-template-columns:108px 1fr;gap:7px 8px;align-items:center;padding:10px 12px 12px;border-bottom:1px solid #e2e8f0}.details-info-edit-label{font-size:.75rem;font-weight:500;color:#4a5568;text-align:right;padding-right:4px}.details-info-edit-row{display:contents}.details-prop-section{border-bottom:1px solid #f0f4f8}.details-prop-heading{font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#a0aec0;padding:8px 12px 3px;background:#f8fafc}.details-prop-row{display:flex;align-items:baseline;gap:8px;padding:4px 12px;min-height:22px}.details-prop-row:hover{background:#f7fafc}.details-prop-key{flex-shrink:0;width:104px;font-size:.74rem;color:#718096;text-align:right}.details-prop-val{flex:1;font-size:.78rem;color:#2d3748;word-break:break-word}[data-theme=dark] .details-info-edit-block{border-bottom-color:#2d3748}[data-theme=dark] .details-info-edit-label{color:#a0aec0}[data-theme=dark] .details-prop-heading{background:#1a202c;color:#718096}[data-theme=dark] .details-prop-section{border-bottom-color:#2d3748}[data-theme=dark] .details-prop-row:hover{background:#252d3d}[data-theme=dark] .details-prop-key{color:#718096}[data-theme=dark] .details-prop-val{color:#e2e8f0}.details-fields-tab{padding:8px;display:flex;flex-direction:column;gap:10px}.details-fields-empty{font-size:.78rem;color:#a0aec0;text-align:center;margin:8px 0}.cf-field-block{border:1px solid var(--gantt-border);border-radius:5px;padding:6px 8px;display:flex;flex-direction:column;gap:4px;background:#f9fbfd}[data-theme=dark] .cf-field-block{background:#1e2535;border-color:#2d3748}.cf-field-header{display:flex;align-items:center;gap:4px}.cf-label-input{flex:1;font-weight:500;font-size:.75rem}.cf-type-select{width:80px;font-size:.75rem;flex-shrink:0}.cf-delete-btn{flex-shrink:0;width:22px;height:22px;border:none;background:transparent;color:#a0aec0;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;border-radius:3px}.cf-delete-btn:hover{background:#fee2e2;color:#e53e3e}[data-theme=dark] .cf-delete-btn:hover{background:#2d1b1b;color:#fc8181}.cf-cancel-btn{flex-shrink:0;width:22px;height:22px;border:1px solid transparent;background:transparent;color:#6b7280;cursor:pointer;font-size:16px;line-height:18px;display:flex;align-items:center;justify-content:center;border-radius:3px}.cf-cancel-btn:hover{background:#f3f4f6;border-color:#d1d5db;color:#1f2937}[data-theme=dark] .cf-cancel-btn:hover{background:#374151;color:#f3f4f6}.cf-add-form{border:1px dashed var(--gantt-border);border-radius:5px;padding:8px;display:flex;flex-direction:column;gap:4px}.cf-add-buttons{display:flex;gap:6px;margin-top:4px}.cf-btn-primary{flex:1;padding:4px 8px;background:var(--gantt-bar-blue, #4299e1);color:#fff;border:none;border-radius:4px;font-size:.78rem;cursor:pointer}.cf-btn-primary:hover{background:#3182ce}.cf-btn-secondary{flex:1;padding:4px 8px;background:#e2e8f0;color:#4a5568;border:none;border-radius:4px;font-size:.78rem;cursor:pointer}.cf-btn-secondary:hover{background:#cbd5e0}[data-theme=dark] .cf-btn-secondary{background:#2d3748;color:#e2e8f0}.cf-add-col-btn{width:100%;padding:6px;background:transparent;border:1px dashed var(--gantt-border);border-radius:5px;color:var(--gantt-bar-blue, #4299e1);font-size:.78rem;cursor:pointer;text-align:center}.cf-add-col-btn:hover{background:#ebf8ff;border-color:var(--gantt-bar-blue, #4299e1)}[data-theme=dark] .cf-add-col-btn:hover{background:#1a2a3a}.details-info-dates-block{display:grid;grid-template-columns:108px 1fr;gap:6px 8px;padding:6px 0 10px}.details-cf-heading{display:flex;justify-content:space-between;align-items:center}.details-cf-add-btn{font-size:.72rem;padding:2px 7px;border:1px solid var(--gantt-border);border-radius:3px;background:transparent;cursor:pointer;color:var(--gantt-bar-blue, #4299e1)}.details-cf-add-btn:hover{background:#ebf8ff}[data-theme=dark] .details-cf-add-btn:hover{background:#1a2a3a}.details-cf-item{padding:3px 0;border-bottom:1px solid #f0f4f8}[data-theme=dark] .details-cf-item{border-bottom-color:#2d3748}.details-cf-value-row{display:flex;align-items:center;gap:5px}.details-cf-label{font-size:.74rem;color:#4a5568;flex-shrink:0;width:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-theme=dark] .details-cf-label{color:#a0aec0}.details-cf-value{flex:1;min-width:0}.details-cf-meta-btn{font-size:13px;color:#a0aec0;background:transparent;border:none;cursor:pointer;padding:0 3px;flex-shrink:0;line-height:1}.details-cf-meta-btn:hover{color:#4a5568}[data-theme=dark] .details-cf-meta-btn:hover{color:#e2e8f0}.details-cf-meta-row{display:flex;align-items:center;gap:4px;padding:2px 0 4px;flex-wrap:wrap}.details-cf-done-btn{font-size:.72rem;padding:2px 7px;border:1px solid var(--gantt-border);border-radius:3px;background:transparent;cursor:pointer;color:var(--gantt-bar-blue, #4299e1);white-space:nowrap}.details-cf-done-btn:hover{background:#ebf8ff}[data-theme=dark] .details-cf-done-btn:hover{background:#1a2a3a}.gantt-table-scroll::-webkit-scrollbar,.gantt-timeline-scroll::-webkit-scrollbar{height:8px;width:8px}.gantt-table-scroll::-webkit-scrollbar-track,.gantt-timeline-scroll::-webkit-scrollbar-track{background:#f1f5f9}.gantt-table-scroll::-webkit-scrollbar-thumb,.gantt-timeline-scroll::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:4px}.app-main .gantt-view{height:100%}.gantt-toolbar{display:flex;align-items:center;align-content:flex-start;gap:0;padding:2px .5rem;min-height:36px;background:var(--gantt-header-bg);border-bottom:1px solid var(--gantt-border);flex-shrink:0;overflow:visible;flex-wrap:wrap;row-gap:2px}.toolbar-group{display:flex;align-items:center;gap:2px;flex-shrink:0}.toolbar-sep{width:1px;height:18px;background:var(--gantt-border);margin:0 4px;flex-shrink:0}.toolbar-btn{padding:.2rem .55rem;font-size:.78rem;cursor:pointer;border:1px solid transparent;border-radius:3px;background:transparent;color:#2d3748;white-space:nowrap;line-height:1.4;transition:background .1s;flex-shrink:0}.toolbar-btn:hover:not(:disabled){background:#e2e8f0;border-color:#cbd5e0}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-btn-primary{background:var(--gantt-bar-blue);color:#fff;border-color:var(--gantt-bar-blue)}.toolbar-btn-primary:hover:not(:disabled){background:var(--gantt-progress-blue);border-color:var(--gantt-progress-blue)}.toolbar-btn-danger{color:#c53030}.toolbar-btn-danger:hover:not(:disabled){background:#fff5f5;border-color:#fc8181;color:#9b2c2c}.toolbar-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:none;border-radius:4px;background:transparent;color:#4a5568;cursor:pointer;flex-shrink:0;transition:background 80ms,color 80ms;position:relative}.toolbar-icon-btn:hover:not(:disabled){background:#e2e8f0;color:#1a202c}.toolbar-icon-btn-disabled{opacity:.3;cursor:not-allowed}.toolbar-icon-btn:disabled{opacity:.3;cursor:not-allowed}.toolbar-icon-btn svg{display:block;pointer-events:none}.toolbar-icon-btn-active{background:var(--gantt-bar-blue)!important;color:#fff!important}.toolbar-icon-btn-active:hover:not(:disabled){background:var(--gantt-progress-blue)!important;color:#fff!important}.toolbar-icon-btn-primary{background:var(--gantt-bar-blue);color:#fff}.toolbar-icon-btn-primary:hover:not(:disabled){background:var(--gantt-progress-blue);color:#fff}.toolbar-icon-btn-danger{color:#c53030}.toolbar-icon-btn-danger:hover:not(:disabled){background:#fff5f5;color:#9b2c2c}.toolbar-icon-btn-labeled{width:auto;height:auto;min-width:26px;padding:2px 5px 3px;flex-direction:column;gap:1px}.toolbar-icon-btn-label{display:block;font-size:9px;line-height:1.1;text-align:center;white-space:nowrap;pointer-events:none;font-weight:500}.toolbar-groupby-active-dot{position:absolute;top:3px;right:3px;width:6px;height:6px;border-radius:50%;background:#fff;border:1.5px solid var(--gantt-bar-blue)}.gantt-table tbody tr.selected-row{background:#ebf4ff!important;box-shadow:inset 3px 0 0 var(--gantt-bar-blue),inset 0 -1px 0 0 var(--gantt-border)}.gantt-table tbody tr.selected-row:hover{background:#dbeafe!important;box-shadow:inset 3px 0 0 var(--gantt-bar-blue),inset 0 -1px 0 0 var(--gantt-border)}.editable-cell{display:inline-block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;padding:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.editable-cell.clickable{cursor:text}.editable-cell.clickable:hover{background:#3182ce0f;border-radius:2px}.editable-cell.readonly{cursor:default;color:#718096}.editable-cell-input{display:inline-block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;padding:0;font-size:.8rem;font-family:inherit;border:none;border-radius:2px;background:#fff;color:#1a202c;outline:1px solid var(--gantt-bar-blue);outline-offset:-1px;box-shadow:0 0 0 2px #3182ce33;height:calc(var(--gantt-row-height) - 4px)}.editable-cell-input:focus{outline-color:#2b6cb0;box-shadow:0 0 0 2px #2b6cb04d}.save-indicator{font-size:.7rem;padding:0 4px;border-radius:3px;top:50%;transform:translateY(-50%)}.save-saving{color:#2b6cb0}.save-saved{color:#276749;background:#f0fff4}.save-error{color:#c53030;background:#fff5f5;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-menu{position:fixed;z-index:2000;background:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 16px #00000026;padding:4px 0;min-width:180px;font-size:.82rem}.context-menu-item{display:block;width:100%;text-align:left;padding:6px 14px;background:none;border:none;cursor:pointer;color:#2d3748;font-size:.82rem}.context-menu-item:hover:not(.disabled){background:#edf2f7}.context-menu-item.disabled{color:#a0aec0;cursor:default}.context-menu-item.danger{color:#c53030}.context-menu-item.danger:hover:not(.disabled){background:#fff5f5}.context-menu-sep{height:1px;background:#e2e8f0;margin:4px 0}.shortcuts-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;z-index:3000;display:flex;align-items:flex-start;justify-content:center;padding-top:8vh;padding-bottom:24px;overflow-y:auto}.shortcuts-modal{background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 24px 48px #0f172a40;width:min(720px,92vw);display:flex;flex-direction:column;max-height:80vh;overflow:hidden}.shortcuts-body{overflow-y:auto;padding:8px 4px 12px;display:grid;grid-template-columns:1fr 1fr;gap:4px 24px}.shortcuts-group{padding:4px 12px;break-inside:avoid}.shortcuts-group-title{margin:8px 0 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#64748b}.shortcut-or{color:#94a3b8;font-size:11px;padding:0 2px}@media (max-width: 640px){.shortcuts-body{grid-template-columns:1fr}}.shortcuts-popover{position:fixed;z-index:3000;top:80px;right:1rem;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 8px 24px #00000026;width:380px;max-height:70vh;overflow-y:auto;font-size:.8rem}.shortcuts-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .9rem;border-bottom:1px solid #e2e8f0;font-weight:600;font-size:.85rem;background:var(--gantt-header-bg);border-radius:8px 8px 0 0}.shortcuts-close{background:none;border:none;font-size:1.2rem;line-height:1;cursor:pointer;color:#718096;padding:0 4px}.shortcuts-close:hover{color:#2d3748}.shortcuts-table{width:100%;border-collapse:collapse;padding:.5rem}.shortcuts-table tr:nth-child(2n){background:#f9fafb}.shortcut-keys{padding:5px 10px;white-space:nowrap;width:44%}.shortcut-keys kbd{display:inline-block;padding:1px 5px;font-size:.75rem;background:#edf2f7;border:1px solid #cbd5e0;border-radius:3px;font-family:system-ui,sans-serif;color:#2d3748}.shortcut-desc{padding:5px 10px;color:#4a5568}.summary-date-cell{color:#a0aec0;font-style:italic;cursor:default!important}.col-resize-handle{position:absolute;top:0;right:0;width:4px;height:100%;cursor:col-resize;-webkit-user-select:none;user-select:none;background:transparent;z-index:5}.col-resize-handle:hover{background:var(--gantt-bar-blue);opacity:.4}.zoom-btn{min-width:44px}.zoom-btn-active{background:var(--gantt-bar-blue)!important;color:#fff!important;border-color:var(--gantt-bar-blue)!important}.gantt-week-cell{flex-shrink:0;text-align:center;font-size:.65rem;color:#718096;border-right:1px solid var(--gantt-grid-grey);line-height:24px;overflow:hidden;white-space:nowrap}.gantt-toast{position:fixed;bottom:1.5rem;right:1.5rem;padding:.6rem 1rem;background:#2d3748;color:#fff;border-radius:6px;font-size:.85rem;z-index:1000;pointer-events:none;max-width:320px;box-shadow:0 2px 12px #00000040;animation:gantt-toast-slide .22s ease}@keyframes gantt-toast-slide{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.gantt-col-handle{width:12px;min-width:12px;max-width:12px;padding:0!important;cursor:default;text-align:center;color:#cbd5e0;font-size:9px;letter-spacing:-1px;-webkit-user-select:none;user-select:none;flex-shrink:0}.row-drag-handle{display:inline-block;width:8px;text-align:center;cursor:grab;color:#a0aec0;font-size:9px;line-height:var(--gantt-row-height);-webkit-user-select:none;user-select:none}.row-drag-handle:hover{color:#4a5568}.row-drag-handle:active{cursor:grabbing}body.row-dragging{-webkit-user-select:none;user-select:none;cursor:grabbing!important}.gantt-insertion-indicator{position:absolute;left:0;right:0;height:2px;background:var(--gantt-bar-blue);pointer-events:none;z-index:100;box-shadow:0 0 4px #3182ce80}.gantt-insertion-indicator:before{content:"";position:absolute;left:0;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--gantt-bar-blue)}.gantt-table tbody tr.row-being-dragged{opacity:.4}.gantt-table tbody tr.row-drop-target{background:#dbeafe!important;outline:2px solid var(--gantt-bar-blue);outline-offset:-2px}.gantt-connector-handle{position:absolute;right:-5px;top:50%;transform:translateY(-50%);width:8px;height:8px;background:#fff;border:2px solid currentColor;border-radius:1px;cursor:crosshair;z-index:20;opacity:0;transition:opacity .12s;pointer-events:all}.gantt-bar.bar-summary .gantt-connector-handle{right:-4px;top:-2px;transform:none;color:var(--gantt-summary-brown)}.gantt-bar.bar-summary.summary-critical .gantt-connector-handle{color:var(--gantt-critical-red)}.gantt-bar:hover .gantt-connector-handle,.gantt-bar.bar-selected .gantt-connector-handle{opacity:1}.gantt-link-drag-overlay{position:absolute;top:0;left:0;pointer-events:none;overflow:visible;z-index:30}.gantt-bar.link-drag-target{outline:2px solid #68d391;outline-offset:2px;box-shadow:0 0 0 4px #68d3914d}.gantt-dep-hitarea{stroke:transparent;stroke-width:12;fill:none;cursor:pointer;pointer-events:stroke}.gantt-dep-path:hover,.gantt-dep-path.hovered{stroke:#4a90d9!important;stroke-width:2!important;stroke-opacity:1!important}.toolbar-spinner{display:inline-block;width:10px;height:10px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:toolbar-spin .6s linear infinite;vertical-align:middle;margin-right:4px}@keyframes toolbar-spin{to{transform:rotate(360deg)}}.toolbar-auto-schedule-label{display:inline-flex;align-items:center;font-size:12px;color:#4a5568;cursor:pointer;-webkit-user-select:none;user-select:none;padding:0 4px;white-space:nowrap}.toolbar-auto-schedule-label input[type=checkbox]{cursor:pointer}.gantt-empty-timeline{display:flex;align-items:center;justify-content:center;flex:1;color:#a0aec0;font-size:.85rem;font-style:italic}.bl-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:4000;display:flex;align-items:center;justify-content:center;padding:1rem}.bl-card{background:#fff;border-radius:8px;box-shadow:0 16px 48px #00000038;width:720px;max-width:100%;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;outline:none;animation:bl-card-in .18s ease}@keyframes bl-card-in{0%{opacity:0;transform:scale(.97) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.bl-header{display:flex;align-items:center;padding:.65rem 1rem;border-bottom:1px solid var(--gantt-border);background:var(--gantt-header-bg);flex-shrink:0}.bl-title{flex:1;font-weight:600;font-size:.95rem;color:#1a202c}.bl-close{background:none;border:none;font-size:1.4rem;line-height:1;cursor:pointer;color:#718096;padding:0 4px;border-radius:3px}.bl-close:hover{background:#e2e8f0;color:#2d3748}.bl-tab-bar{display:flex;border-bottom:1px solid var(--gantt-border);background:var(--gantt-header-bg);flex-shrink:0}.bl-tab{padding:.4rem .9rem;font-size:.82rem;font-weight:500;color:#4a5568;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}.bl-tab:hover{background:#e8edf3;color:#2d3748}.bl-tab-active{color:var(--gantt-bar-blue);border-bottom-color:var(--gantt-bar-blue)}.bl-body{flex:1;overflow-y:auto;padding:1rem}.bl-error{color:#c53030;background:#fff5f5;border:1px solid #fed7d7;border-radius:4px;padding:.4rem .6rem;font-size:.8rem;margin-bottom:.5rem}.bl-empty{color:#718096;font-size:.85rem;font-style:italic;padding:1rem 0}.bl-input{width:100%;padding:5px 8px;border:1px solid #cbd5e0;border-radius:4px;font-size:.82rem;color:#2d3748;background:#fff;box-sizing:border-box;margin-bottom:6px}.bl-input:focus{outline:none;border-color:var(--gantt-bar-blue);box-shadow:0 0 0 2px #3182ce33}.bl-btn{padding:.3rem .7rem;font-size:.8rem;cursor:pointer;border:1px solid #cbd5e0;border-radius:4px;background:#f7fafc;color:#2d3748;white-space:nowrap}.bl-btn:hover:not(:disabled){background:#edf2f7}.bl-btn:disabled{opacity:.45;cursor:not-allowed}.bl-btn-primary{background:var(--gantt-bar-blue);color:#fff;border-color:var(--gantt-bar-blue)}.bl-btn-primary:hover:not(:disabled){background:var(--gantt-progress-blue);border-color:var(--gantt-progress-blue)}.bl-btn-danger{color:#c53030;border-color:#fc8181}.bl-btn-danger:hover:not(:disabled){background:#fff5f5}.bl-btn-active{background:#ebf8ff;color:#2b6cb0;border-color:#90cdf4;font-weight:600}.bl-btn-active:hover:not(:disabled){background:#bee3f8}.bl-form-actions{display:flex;gap:6px;margin-top:4px}.bl-new-form{background:#f7fafc;border:1px solid var(--gantt-border);border-radius:6px;padding:.75rem;margin-bottom:.75rem}.bl-list{display:flex;flex-direction:column;gap:0}.bl-row{display:flex;align-items:flex-start;gap:.75rem;padding:.6rem 0;border-bottom:1px solid var(--gantt-border)}.bl-row:last-child{border-bottom:none}.bl-row-info{flex:1;min-width:0}.bl-row-name{font-weight:600;font-size:.85rem;color:#1a202c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bl-row-desc{font-size:.78rem;color:#4a5568;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bl-row-date{font-size:.75rem;color:#a0aec0;margin-top:2px}.bl-row-actions{display:flex;gap:4px;flex-shrink:0;align-items:center}.bl-rename-form{flex:1}.bl-pickers{display:flex;gap:1rem;margin-bottom:1rem}.bl-picker-group{flex:1}.bl-picker-label{display:block;font-size:.78rem;font-weight:600;color:#4a5568;margin-bottom:4px}.bl-select{width:100%;padding:5px 8px;border:1px solid #cbd5e0;border-radius:4px;font-size:.82rem;color:#2d3748;background:#fff;box-sizing:border-box}.bl-select:focus{outline:none;border-color:var(--gantt-bar-blue);box-shadow:0 0 0 2px #3182ce33}.bl-summary-bar{display:flex;gap:1.5rem;padding:.5rem .75rem;background:#f7fafc;border:1px solid var(--gantt-border);border-radius:6px;margin-bottom:.75rem;font-size:.82rem;color:#4a5568}.bl-summary-item strong{font-weight:700}.bl-table-wrap{overflow-x:auto}.bl-table{width:100%;border-collapse:collapse;font-size:.8rem;color:#2d3748}.bl-th{padding:6px 8px;text-align:center;font-weight:600;font-size:.75rem;color:#4a5568;background:var(--gantt-header-bg);border-bottom:2px solid var(--gantt-border);white-space:nowrap}.bl-th-name{text-align:left;min-width:160px}.bl-th-sub{font-weight:400;font-size:.7rem;color:#718096}.bl-tr:nth-child(2n){background:var(--gantt-row-stripe)}.bl-tr-missing{background:#fffbf0!important}.bl-td{padding:5px 8px;border-bottom:1px solid var(--gantt-border);white-space:nowrap}.bl-td-name{font-weight:500;color:#1a202c;max-width:220px;overflow:hidden;text-overflow:ellipsis}.bl-td-center{text-align:center}.bl-td-delta{font-weight:600;min-width:52px}.bl-delta-red{color:#c53030}.bl-delta-green{color:#276749}.bl-delta-neutral{color:#718096}.bl-badge{display:inline-block;font-size:.68rem;font-weight:600;padding:1px 5px;border-radius:3px;margin-left:5px;vertical-align:middle}.bl-badge-new{background:#c6f6d5;color:#276749}.bl-badge-removed{background:#fed7d7;color:#9b2c2c}.preds-edit-wrap{display:flex;align-items:center;gap:3px;width:100%}.preds-input{flex:1;min-width:0}.preds-help{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:.7rem;font-weight:700;color:#fff;background:#a0aec0;border-radius:50%;cursor:help;-webkit-user-select:none;user-select:none;line-height:1}.preds-help:hover{background:var(--gantt-bar-blue)}.toolbar-btn.toolbar-btn-active{background:var(--gantt-bar-blue);color:#fff;border-color:var(--gantt-bar-blue)}.gantt-split-row{display:flex;flex:1 1 0;overflow:hidden;position:relative;min-height:0}.bp-container{flex-shrink:0;display:flex;flex-direction:column;border-top:1px solid var(--gantt-border);background:#fff;position:relative;overflow:hidden;min-height:100px}.bp-resize-handle{position:absolute;top:0;left:0;right:0;height:4px;cursor:row-resize;background:transparent;z-index:20;flex-shrink:0}.bp-resize-handle:hover{background:var(--gantt-bar-blue);opacity:.35}.bp-panes-row{display:flex;flex:1;overflow:hidden;padding-top:4px}.bp-subpane{display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--gantt-border);min-width:0}.bp-subpane:last-child{border-right:none}.bp-subpane-header{display:flex;align-items:center;gap:0;background:var(--gantt-header-bg);border-bottom:1px solid var(--gantt-border);flex-shrink:0;min-height:28px;overflow:hidden}.bp-tab{padding:4px 10px;font-size:.76rem;font-weight:500;color:#4a5568;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;flex-shrink:0}.bp-tab:hover{background:#e8edf3;color:#2d3748}.bp-tab-active{color:var(--gantt-bar-blue);border-bottom-color:var(--gantt-bar-blue)}.bp-subpane-actions{display:flex;align-items:center;gap:2px;margin-left:auto;padding-right:4px;flex-shrink:0}.bp-action-btn{width:20px;height:20px;padding:0;font-size:.85rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;border-radius:3px;cursor:pointer;color:#718096;flex-shrink:0}.bp-action-btn:hover{background:#e2e8f0;color:#2d3748;border-color:#cbd5e0}.bp-action-close:hover{background:#fff5f5;color:#c53030;border-color:#fc8181}.bp-subpane-body{flex:1;overflow-y:auto;overflow-x:hidden;font-size:.78rem;color:#2d3748}.bp-empty-state{display:flex;align-items:center;justify-content:center;height:100%;color:#a0aec0;font-size:.82rem;font-style:italic;padding:1rem;text-align:center}.bp-subpane-content{padding:6px 8px;display:flex;flex-direction:column;gap:6px;height:100%;box-sizing:border-box;position:relative}.bp-link-table{width:100%;border-collapse:collapse;font-size:.77rem}.bp-link-table th{text-align:left;padding:3px 6px;font-weight:600;color:#4a5568;background:var(--gantt-header-bg);border-bottom:1px solid var(--gantt-border);white-space:nowrap}.bp-link-table td{padding:3px 6px;border-bottom:1px solid var(--gantt-border);vertical-align:middle}.bp-link-table tbody tr:last-child td{border-bottom:none}.bp-link-table tr:nth-child(2n){background:var(--gantt-row-stripe)}.bp-col-wbs{width:48px}.bp-col-link{width:80px}.bp-col-action{width:28px}.bp-td-wbs{color:#718096;white-space:nowrap}.bp-td-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:0}.bp-td-action{text-align:center}.bp-link-input{width:100%;font-family:ui-monospace,monospace;font-size:11px}.bp-select-sm{padding:1px 2px;font-size:.75rem;border:1px solid #cbd5e0;border-radius:3px;background:#fff;color:#2d3748;width:100%}.bp-select-sm:focus{outline:none;border-color:var(--gantt-bar-blue)}.bp-input-sm{padding:1px 4px;font-size:.75rem;border:1px solid #cbd5e0;border-radius:3px;background:#fff;color:#2d3748;width:100%;box-sizing:border-box}.bp-input-sm:focus{outline:none;border-color:var(--gantt-bar-blue)}.bp-del-btn{padding:0 4px;font-size:.85rem;line-height:1.4;background:none;border:none;cursor:pointer;color:#a0aec0;border-radius:3px}.bp-del-btn:hover{background:#fff5f5;color:#c53030}.bp-add-tr td{border-top:2px solid var(--gantt-border);border-bottom:none;background:#f7fafc;padding:4px 6px}.bp-add-label{color:#718096;font-weight:700;font-size:.9rem;text-align:center;padding-left:0}.bp-add-btn{padding:1px 5px;font-size:.8rem;border:1px solid var(--gantt-bar-blue);border-radius:3px;background:var(--gantt-bar-blue);color:#fff;cursor:pointer;width:100%;line-height:1.6}.bp-add-btn:hover{background:var(--gantt-progress-blue);border-color:var(--gantt-progress-blue)}.bp-hint{margin:0;font-size:.75rem;color:#a0aec0;font-style:italic}.bp-col-opt{width:60px}.bp-col-start,.bp-col-finish{width:68px}.bp-col-duration{width:52px}.bp-col-total_float,.bp-col-free_float{width:44px}.bp-col-driving{width:46px}.bp-td-opt{color:#718096;font-size:.73rem;white-space:nowrap;text-align:right;padding-right:8px}.bp-td-date{text-align:right}.bp-td-driving{text-align:center}.bp-driving-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#e53e3e}.bp-driving-dash{color:#cbd5e0;font-size:.8rem}.bp-row-driving td{background:#fff5f5}.bp-settings-wrap{position:absolute;top:4px;right:6px;z-index:20}.bp-settings-btn{padding:2px 5px;font-size:.8rem;background:none;border:1px solid transparent;border-radius:4px;cursor:pointer;color:#a0aec0;line-height:1}.bp-settings-btn:hover{background:#edf2f7;border-color:#cbd5e0;color:#4a5568}.bp-settings-panel{position:absolute;right:0;top:calc(100% + 2px);background:#fff;border:1px solid #cbd5e0;border-radius:6px;padding:6px 10px;box-shadow:0 4px 12px #0000001f;min-width:130px;display:flex;flex-direction:column;gap:4px}.bp-settings-item{display:flex;align-items:center;gap:6px;font-size:.75rem;color:#4a5568;cursor:pointer;white-space:nowrap}.bp-settings-item input[type=checkbox]{cursor:pointer}.bp-combo-list{position:absolute;top:100%;left:0;right:0;z-index:100;background:#fff;border:1px solid #cbd5e0;border-radius:4px;box-shadow:0 4px 12px #00000026;margin:0;padding:2px 0;list-style:none;max-height:180px;overflow-y:auto;min-width:200px}.bp-combo-item{padding:4px 8px;font-size:.75rem;color:#2d3748;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bp-combo-item:hover,.bp-combo-item:focus{background:#ebf8ff;outline:none}.bp-combo-wbs{color:#718096;font-weight:600;margin-right:2px}.bp-notes-pane{height:100%}.bp-notes-textarea{flex:1;width:100%;resize:none;border:1px solid #cbd5e0;border-radius:4px;padding:6px 8px;font-size:.8rem;font-family:inherit;color:#2d3748;background:#fff;box-sizing:border-box;min-height:80px}.bp-notes-textarea:focus{outline:none;border-color:var(--gantt-bar-blue);box-shadow:0 0 0 2px #3182ce26}.bp-notes-save-status{font-size:.72rem;padding:2px 6px;border-radius:3px;align-self:flex-start}.bp-notes-save-saving{background:#ebf8ff;color:#2b6cb0}.bp-notes-save-saved{background:#f0fff4;color:#276749}.cm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:5000;display:flex;align-items:center;justify-content:center;padding:1rem}.cm-card{background:#fff;border-radius:8px;box-shadow:0 16px 48px #00000038;width:520px;max-width:100%;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;animation:cm-card-in .16s ease}@keyframes cm-card-in{0%{opacity:0;transform:scale(.97) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.cm-header{display:flex;align-items:center;padding:.65rem 1rem;border-bottom:1px solid var(--gantt-border);background:var(--gantt-header-bg);flex-shrink:0}.cm-title{flex:1;font-weight:600;font-size:.95rem;color:#1a202c}.cm-close{background:none;border:none;font-size:1.4rem;line-height:1;cursor:pointer;color:#718096;padding:0 4px;border-radius:3px}.cm-close:hover{background:#e2e8f0;color:#2d3748}.cm-legend{display:flex;align-items:center;padding:4px 12px;background:var(--gantt-header-bg);border-bottom:1px solid var(--gantt-border);font-size:.72rem;font-weight:600;color:#4a5568;gap:0;flex-shrink:0}.cm-legend-handle{width:24px;flex-shrink:0}.cm-legend-check{width:28px;flex-shrink:0}.cm-legend-label{flex:1}.cm-legend-type{width:170px;flex-shrink:0;padding-right:8px}.cm-legend-width{width:70px;text-align:right;padding-right:28px;flex-shrink:0}.cm-type-cell{width:170px;flex-shrink:0;display:flex;align-items:center;gap:6px;padding-right:8px}.cm-type-pill{display:inline-block;padding:1px 7px;border-radius:3px;font-size:.72rem;font-weight:500;white-space:nowrap}.cm-type-pill.cm-type-builtin{background:#e2e8f0;color:#4a5568}.cm-type-pill.cm-type-ac{background:#ede9fe;color:#6d28d9}.cm-type-manage-btn{font-size:.72rem;padding:1px 6px;border:1px solid #cbd5e0;border-radius:3px;background:#fff;cursor:pointer;color:#2563eb}.cm-type-manage-btn:hover{background:#eff6ff;border-color:#2563eb}.cm-type-select{padding:1px 4px;font-size:.78rem;border:1px solid #cbd5e0;border-radius:3px;background:#fff;cursor:pointer}.cm-type-select:focus{outline:none;border-color:var(--gantt-bar-blue)}.cm-list{flex:1;overflow-y:auto;padding:4px 0}.cm-row{display:flex;align-items:center;padding:4px 12px;gap:6px;font-size:.82rem;color:#2d3748;border-bottom:1px solid #f1f5f9;cursor:default;-webkit-user-select:none;user-select:none}.cm-row:hover{background:#f7fafc}.cm-row-pinned{background:#fffbeb}.cm-row-dragover{background:#ebf4ff;border-top:2px solid var(--gantt-bar-blue)}.cm-row-focused{outline:1.5px solid var(--gantt-bar-blue);outline-offset:-1.5px}.cm-row-flash{animation:cm-row-flash-anim 1.2s ease-out}@keyframes cm-row-flash-anim{0%{background:#fef3c7}to{background:transparent}}.cm-drag-handle{flex-shrink:0;width:20px;cursor:grab;text-align:center;color:#a0aec0;font-size:10px}.cm-drag-handle:active{cursor:grabbing}.cm-checkbox{flex-shrink:0;width:16px;height:16px;cursor:pointer}.cm-col-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.82rem}.cm-width-input{width:60px;padding:2px 4px;font-size:.78rem;border:1px solid #cbd5e0;border-radius:3px;text-align:right;flex-shrink:0}.cm-width-input:focus{outline:none;border-color:var(--gantt-bar-blue)}.cm-width-unit{font-size:.72rem;color:#a0aec0;flex-shrink:0;width:16px}.cm-footer{display:flex;gap:6px;padding:.6rem 1rem;border-top:1px solid var(--gantt-border);background:var(--gantt-header-bg);flex-shrink:0;align-items:center}.cm-btn{padding:.3rem .7rem;font-size:.8rem;cursor:pointer;border:1px solid #cbd5e0;border-radius:4px;background:#f7fafc;color:#2d3748;white-space:nowrap}.cm-btn:hover{background:#edf2f7}.cm-btn-primary{background:var(--gantt-bar-blue);color:#fff;border-color:var(--gantt-bar-blue)}.cm-btn-primary:hover{background:var(--gantt-progress-blue)}.filter-bar-row td{background:#fffbeb;background-clip:padding-box;border-bottom:2px solid var(--gantt-border);padding:2px 4px;vertical-align:middle}.filter-bar-row{position:sticky;top:var(--gantt-scale-height);z-index:2;height:32px}.fb-cell{overflow:hidden}.fb-text-input,.fb-select{width:100%;padding:1px 4px;font-size:.72rem;border:1px solid #cbd5e0;border-radius:2px;background:#fff;color:#2d3748;box-sizing:border-box;height:22px}.fb-text-input:focus,.fb-select:focus{outline:none;border-color:var(--gantt-bar-blue)}.fb-range{display:flex;align-items:center;gap:2px;width:100%}.fb-num-input,.fb-date-input{flex:1;min-width:0;padding:1px 2px;font-size:.68rem;border:1px solid #cbd5e0;border-radius:2px;background:#fff;box-sizing:border-box;height:22px}.fb-range-dash{flex-shrink:0;font-size:.7rem;color:#a0aec0}.fb-clear-btn{padding:1px 5px;font-size:.72rem;background:#fed7d7;border:1px solid #fc8181;border-radius:3px;cursor:pointer;color:#9b2c2c;white-space:nowrap}.fb-clear-btn:hover{background:#fff5f5}.group-header-row{border-bottom:1px solid rgba(0,0,0,.12)}.group-header-cell{padding:4px 8px!important;display:flex;align-items:center;overflow:visible;white-space:nowrap;gap:6px;font-size:.8rem}.group-header-toggle{background:none;border:none;cursor:pointer;padding:0 4px;font-size:.75rem;line-height:1;flex-shrink:0}.group-header-toggle:hover{opacity:1!important}.group-header-label{white-space:nowrap}.group-header-count{font-size:.72rem;font-weight:400;flex-shrink:0}.toolbar-labeled-group{display:flex;align-items:center;gap:4px;flex-wrap:nowrap}.toolbar-labeled-btn{display:inline-flex;align-items:center;gap:4px;padding:0 10px;height:22px;border-radius:11px;border:1px solid #cbd5e0;background:#f7fafc;color:#2d3748;font-size:.76rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s;line-height:1}.toolbar-labeled-btn:hover{background:#e2e8f0;border-color:#a0aec0}.toolbar-labeled-btn-active{background:var(--gantt-bar-blue)!important;color:#fff!important;border-color:var(--gantt-bar-blue)!important}.toolbar-labeled-btn-active:hover{background:var(--gantt-progress-blue)!important;border-color:var(--gantt-progress-blue)!important}.toolbar-labeled-btn-accent{color:#6b46c1!important;border-color:#c7b3eb!important;background:#f5f0ff!important;font-weight:600}.toolbar-labeled-btn-accent:hover{background:#ebe1fa!important;border-color:#9f7aea!important}.toolbar-labeled-btn-danger{color:#c53030!important;border-color:#feb2b2!important;background:#fff5f5!important}.toolbar-labeled-btn-danger:hover{background:#fed7d7!important}.toolbar-groupby-label{display:inline-flex;align-items:center;font-size:.78rem;color:#4a5568;white-space:nowrap;padding:0 4px;gap:2px}.toolbar-groupby-select{padding:1px 4px;font-size:.78rem;border:1px solid #cbd5e0;border-radius:3px;background:#fff;color:#2d3748;height:24px}.toolbar-groupby-select:focus{outline:none;border-color:var(--gantt-bar-blue)}.toolbar-filter-active-pill,.toolbar-icon-btn.toolbar-filter-active-pill{background:#fef3c7;color:#7c4a02}.toolbar-filter-active-pill:hover:not(:disabled),.toolbar-icon-btn.toolbar-filter-active-pill:hover:not(:disabled){background:#fde68a;color:#7c4a02}.gantt-col-priority{width:70px}.gantt-col-deadline{width:110px}.gantt-col-constraint_type{width:90px}.gantt-col-constraint_date{width:110px}.gantt-col-total_float,.gantt-col-free_float{width:80px}.gantt-col-is_critical{width:60px;text-align:center}.gantt-col-budget,.gantt-col-actual_cost{width:80px}.gantt-col-actual_start,.gantt-col-actual_finish{width:110px}.gantt-col-calendar_id{width:100px}.gantt-col-cost_account_id{width:110px}.view-selector{position:relative;display:inline-flex;align-items:center}.view-selector-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;height:28px;background:#fff;border:1px solid #cbd5e0;border-radius:4px;cursor:pointer;font-size:.82rem;color:#2d3748;white-space:nowrap;transition:border-color .15s,background .15s}.view-selector-btn:hover,.view-selector-btn-open{border-color:var(--gantt-bar-blue, #3182ce);background:#ebf8ff}.view-selector-icon{font-size:.95rem;opacity:.7}.view-selector-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;font-weight:500}.view-selector-caret{font-size:.7rem;opacity:.6}.view-selector-menu{position:absolute;top:calc(100% + 3px);left:0;z-index:1200;background:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 16px #0000001f;min-width:220px;padding:4px 0;display:flex;flex-direction:column}.vs-section{display:flex;flex-direction:column}.vs-item{display:flex;align-items:center;gap:6px;padding:5px 12px;background:none;border:none;cursor:pointer;font-size:.82rem;color:#2d3748;text-align:left;white-space:nowrap;transition:background .1s}.vs-item:hover:not(:disabled){background:#ebf8ff}.vs-item:disabled{opacity:.45;cursor:default}.vs-item-active{background:#ebf8ff;font-weight:600;color:var(--gantt-bar-blue, #3182ce)}.vs-item-danger{color:#c53030}.vs-item-danger:hover:not(:disabled){background:#fff5f5}.vs-item-type-active{font-weight:600}.vs-check{width:14px;text-align:center;font-size:.75rem;color:var(--gantt-bar-blue, #3182ce);flex-shrink:0}.vs-item-name{flex:1;overflow:hidden;text-overflow:ellipsis}.vs-item-type{font-size:.68rem;color:#718096;background:#edf2f7;padding:1px 4px;border-radius:3px;flex-shrink:0}.vs-shortcut{margin-left:auto;font-size:.7rem;color:#a0aec0;flex-shrink:0}.vs-sep{height:1px;background:#e2e8f0;margin:3px 0}.vs-section-label{padding:3px 12px 2px;font-size:.7rem;font-weight:600;color:#a0aec0;text-transform:uppercase;letter-spacing:.05em}.vs-inline-form{display:flex;align-items:center;gap:4px;padding:4px 8px}.vs-inline-input{flex:1;padding:3px 6px;border:1px solid #cbd5e0;border-radius:3px;font-size:.82rem;outline:none;min-width:0}.vs-inline-input:focus{border-color:var(--gantt-bar-blue, #3182ce)}.vs-inline-ok{padding:2px 8px;background:var(--gantt-bar-blue, #3182ce);color:#fff;border:none;border-radius:3px;cursor:pointer;font-size:.78rem;flex-shrink:0}.vs-inline-ok:hover{background:#2b6cb0}.vs-inline-cancel{padding:2px 6px;background:none;border:1px solid #cbd5e0;border-radius:3px;cursor:pointer;font-size:.78rem;color:#718096;flex-shrink:0}.vs-inline-cancel:hover{background:#f7fafc}.kanban-view{display:flex;flex-direction:column;height:100%;overflow:hidden;background:#f7fafc}.kanban-toolbar{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0}.kanban-show-summary-label{display:inline-flex;align-items:center;font-size:.8rem;color:#4a5568;cursor:pointer;-webkit-user-select:none;user-select:none}.kanban-board{display:flex;flex-direction:row;gap:12px;padding:12px;overflow-x:auto;overflow-y:hidden;flex:1;align-items:flex-start}.kanban-column{display:flex;flex-direction:column;width:230px;min-width:200px;max-height:100%;background:#edf2f7;border-radius:8px;flex-shrink:0;border:2px solid transparent;transition:border-color .12s}.kanban-column-drag-over{border-color:var(--gantt-bar-blue, #3182ce);background:#ebf8ff}.kanban-column-header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px 4px;gap:6px;flex-shrink:0}.kanban-col-title{font-size:.82rem;font-weight:700;color:#2d3748;text-transform:capitalize;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kanban-col-count{font-size:.72rem;color:#718096;background:#fff;padding:1px 5px;border-radius:9px;font-weight:600;flex-shrink:0}.kanban-cards-list{display:flex;flex-direction:column;gap:6px;padding:4px 8px;overflow-y:auto;flex:1;min-height:40px}.kanban-col-empty{font-size:.78rem;color:#a0aec0;text-align:center;padding:16px 0;-webkit-user-select:none;user-select:none}.kanban-col-add-btn{display:block;width:100%;padding:6px 0;background:none;border:none;border-top:1px solid #e2e8f0;color:#4a5568;font-size:.78rem;cursor:pointer;border-bottom-left-radius:8px;border-bottom-right-radius:8px;transition:background .1s;flex-shrink:0}.kanban-col-add-btn:hover{background:#e2e8f0}.kanban-card{background:#fff;border-radius:5px;border:1px solid #e2e8f0;padding:8px 9px;cursor:grab;transition:box-shadow .12s,border-color .12s;-webkit-user-select:none;user-select:none}.kanban-card:hover{box-shadow:0 2px 8px #0000001a;border-color:#bee3f8}.kanban-card:active{cursor:grabbing}.kanban-card-selected{border-color:var(--gantt-bar-blue, #3182ce);box-shadow:0 0 0 2px #3182ce40}.kanban-card-critical{border-left:3px solid var(--gantt-critical-red, #e53e3e)}.kanban-card-header{display:flex;align-items:flex-start;gap:5px;margin-bottom:4px}.kanban-card-wbs{font-size:.68rem;color:#718096;font-family:monospace;flex-shrink:0;padding-top:1px}.kanban-card-name{font-size:.82rem;font-weight:600;color:#1a202c;line-height:1.3;word-break:break-word}.kanban-card-dates{font-size:.72rem;color:#718096;margin-bottom:5px}.kanban-card-progress-track{height:4px;background:#e2e8f0;border-radius:2px;overflow:hidden;margin-bottom:5px}.kanban-card-progress-fill{height:100%;background:var(--gantt-bar-blue, #3182ce);border-radius:2px;transition:width .2s}.kanban-card-footer{display:flex;align-items:center;gap:5px}.kanban-card-pct{font-size:.7rem;color:#4a5568}.kanban-card-priority{font-size:.65rem;color:#fff;padding:1px 5px;border-radius:3px;font-weight:600;text-transform:uppercase}.kanban-card-milestone{font-size:.7rem;color:#d69e2e}.kanban-settings-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:2500;display:flex;align-items:center;justify-content:center}.kanban-settings-dialog{background:#fff;border-radius:8px;box-shadow:0 8px 32px #0000002e;width:360px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.kanban-settings-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 8px;border-bottom:1px solid #e2e8f0}.kanban-settings-header h3{margin:0;font-size:1rem;font-weight:700;color:#1a202c}.kanban-settings-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:#718096;padding:2px 6px;border-radius:3px}.kanban-settings-close:hover{background:#f7fafc;color:#2d3748}.kanban-settings-hint{padding:6px 16px;font-size:.78rem;color:#718096;margin:0}.kanban-settings-list{flex:1;overflow-y:auto;padding:4px 12px;display:flex;flex-direction:column;gap:3px}.kanban-settings-row{display:flex;align-items:center;gap:6px;padding:5px 8px;background:#f7fafc;border-radius:4px;border:1px solid #e2e8f0;cursor:grab;transition:background .1s}.kanban-settings-row:hover{background:#ebf8ff}.ks-drag-over{border-color:var(--gantt-bar-blue, #3182ce);background:#ebf8ff}.ks-drag-handle{color:#a0aec0;font-size:1rem;cursor:grab;flex-shrink:0}.ks-col-name{flex:1;font-size:.82rem;color:#2d3748;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ks-remove-btn{background:none;border:none;color:#a0aec0;cursor:pointer;font-size:1rem;padding:0 2px;border-radius:3px;flex-shrink:0}.ks-remove-btn:hover{background:#fed7d7;color:#c53030}.ks-empty{text-align:center;font-size:.8rem;color:#a0aec0;padding:12px 0}.kanban-settings-add{display:flex;align-items:center;gap:6px;padding:8px 12px;border-top:1px solid #e2e8f0}.ks-add-input{flex:1;padding:4px 8px;border:1px solid #cbd5e0;border-radius:4px;font-size:.82rem;outline:none;min-width:0}.ks-add-input:focus{border-color:var(--gantt-bar-blue, #3182ce)}.ks-add-btn{padding:4px 10px;background:var(--gantt-bar-blue, #3182ce);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.8rem;white-space:nowrap}.ks-add-btn:hover{background:#2b6cb0}.kanban-settings-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:8px 12px;border-top:1px solid #e2e8f0}.ks-apply-btn{padding:5px 16px;background:var(--gantt-bar-blue, #3182ce);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:600}.ks-apply-btn:hover{background:#2b6cb0}.kts-strip{flex-shrink:0;padding:8px 12px 4px;border-bottom:1px solid var(--gantt-border, #e2e8f0);background:#fafbfc;-webkit-user-select:none;user-select:none}.kts-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.kts-range-label{font-size:.72rem;color:#718096;font-weight:500}.kts-body{position:relative}.kts-track{position:relative;height:32px;border-radius:4px;overflow:hidden;cursor:crosshair;background:#edf2f7}.kts-day{position:absolute;top:0;bottom:0;border-right:1px solid rgba(0,0,0,.06)}.kts-day-weekend{background:#0000000a}.kts-day-today{background:#3182ce2e}.kts-bar{position:absolute;top:10px;height:8px;border-radius:2px;opacity:.7}.kts-bar-normal{background:var(--gantt-bar-blue, #3182ce)}.kts-bar-done{background:#48bb78}.kts-bar-critical{background:var(--gantt-critical-red, #e53e3e)}.kts-today-line{position:absolute;top:0;bottom:0;width:2px;background:#e53e3ecc;z-index:10;pointer-events:none}.kts-shade{position:absolute;top:0;bottom:0;background:#ffffff8c;z-index:20;pointer-events:none}.kts-window{position:absolute;top:0;bottom:0;z-index:30;display:flex}.kts-handle{width:10px;flex-shrink:0;cursor:ew-resize;background:#3182ce26;border:2px solid rgba(49,130,206,.7);transition:background .1s}.kts-handle-left{border-radius:3px 0 0 3px;border-right:none}.kts-handle-right{border-radius:0 3px 3px 0;border-left:none}.kts-handle:hover{background:#3182ce59}.kts-window-body{flex:1;cursor:grab;border-top:1px solid rgba(49,130,206,.3);border-bottom:1px solid rgba(49,130,206,.3);background:#3182ce0d;display:flex;align-items:center;justify-content:center}.kts-window-body:active{cursor:grabbing}.kts-span-label{font-size:9px;color:#3182cebf;font-weight:600;pointer-events:none}.kts-window-label{position:absolute;top:100%;font-size:10px;color:var(--gantt-bar-blue, #3182ce);font-weight:500;background:#ffffffeb;padding:1px 6px;border-radius:0 0 3px 3px;border:1px solid rgba(49,130,206,.3);border-top:none;white-space:nowrap;text-align:center;pointer-events:none}.kts-presets-row{display:flex;align-items:center;justify-content:space-between;margin-top:18px;padding:0 1px}.kts-endpoint{font-size:10px;color:#a0aec0}.kts-presets{display:flex;align-items:center;gap:2px}.kts-preset-btn{padding:2px 6px;font-size:10px;border:1px solid transparent;border-radius:3px;background:none;color:#718096;cursor:pointer;transition:border-color .1s,color .1s}.kts-preset-btn:hover{border-color:var(--gantt-border, #e2e8f0);color:#2d3748}.kts-preset-btn-active{border-color:var(--gantt-bar-blue, #3182ce);color:var(--gantt-bar-blue, #3182ce);background:#3182ce14}.kts-clear-btn{margin-left:4px;padding:2px 5px;font-size:10px;border:1px solid transparent;border-radius:3px;background:none;color:#a0aec0;cursor:pointer;transition:border-color .1s,color .1s}.kts-clear-btn:hover{border-color:var(--gantt-critical-red, #e53e3e);color:var(--gantt-critical-red, #e53e3e)}.kts-enable-btn{margin-left:4px;padding:2px 6px;font-size:10px;border:1px dashed #a0aec0;border-radius:3px;background:none;color:#a0aec0;cursor:pointer;transition:border-color .1s,color .1s}.kts-enable-btn:hover{border-color:var(--gantt-bar-blue, #3182ce);color:var(--gantt-bar-blue, #3182ce)}.ks-cancel-btn{padding:5px 12px;background:#fff;color:#4a5568;border:1px solid #cbd5e0;border-radius:4px;cursor:pointer;font-size:.85rem}.ks-cancel-btn:hover{background:#f7fafc}.mgmt-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:2000}.mgmt-dialog-card{background:#fff;border-radius:8px;box-shadow:0 8px 32px #00000038;max-width:96vw;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px}.mgmt-dialog-header{display:flex;align-items:center;gap:.5rem;padding:.6rem .9rem;background:#f1f5f9;border-bottom:1px solid #e2e8f0;flex-shrink:0}.mgmt-dialog-title{flex:1;font-weight:600;font-size:.9rem;color:#1a202c}.mgmt-dialog-close{background:none;border:none;font-size:1.3rem;line-height:1;cursor:pointer;color:#718096;padding:0 4px;border-radius:3px}.mgmt-dialog-close:hover{color:#2d3748;background:#e2e8f0}.mgmt-dialog-status{padding:3px .9rem;font-size:.75rem;flex-shrink:0}.mgmt-dialog-status-saving{background:#ebf8ff;color:#2b6cb0}.mgmt-dialog-status-saved{background:#f0fff4;color:#276749}.mgmt-dialog-status-error{background:#fff5f5;color:#c53030}.mgmt-dialog-body{display:flex;flex:1;overflow:hidden}.mgmt-dialog-list-pane{width:220px;flex-shrink:0;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;overflow:hidden}.mgmt-dialog-list-header{display:flex;justify-content:space-between;padding:.3rem .65rem;border-bottom:1px solid #e2e8f0;flex-shrink:0}.mgmt-dialog-list-scroll{flex:1;overflow-y:auto;padding:.25rem 0}.mgmt-dialog-list-row{display:flex;align-items:center;gap:4px;padding:.35rem .65rem;cursor:pointer;border-left:3px solid transparent;-webkit-user-select:none;user-select:none}.mgmt-dialog-list-row:hover{background:#f7fafc}.mgmt-dialog-list-row-selected{background:#ebf4ff;border-left-color:#3182ce}.mgmt-dialog-list-footer{padding:.4rem .65rem;border-top:1px solid #e2e8f0;flex-shrink:0}.mgmt-dialog-new-btn{width:100%;padding:.3rem .5rem;font-size:.78rem;cursor:pointer;border:1px solid #cbd5e0;border-radius:3px;background:#f7fafc;color:#2d3748;text-align:left}.mgmt-dialog-new-btn:hover:not(:disabled){background:#edf2f7}.mgmt-dialog-new-btn:disabled{opacity:.5;cursor:not-allowed}.mgmt-dialog-delete-btn{background:none;border:none;cursor:pointer;color:#e53e3e;padding:0 2px;font-size:.9rem;line-height:1;flex-shrink:0;opacity:.6}.mgmt-dialog-delete-btn:hover{opacity:1}.mgmt-dialog-editor-pane{flex:1;overflow-y:auto;padding:.85rem 1rem;display:flex;flex-direction:column;gap:.5rem}.mgmt-dialog-section-header{font-size:.75rem;font-weight:700;color:#4a5568;text-transform:uppercase;letter-spacing:.04em;margin:.4rem 0 .2rem;padding-bottom:4px;border-bottom:1px solid #e2e8f0}.mgmt-dialog-form-grid{display:grid;grid-template-columns:110px 1fr;gap:6px 10px;align-items:start}.mgmt-dialog-label{font-size:.78rem;font-weight:500;color:#4a5568;text-align:right;padding-top:5px}.mgmt-dialog-input{padding:4px 6px;border:1px solid #cbd5e0;border-radius:4px;font-size:.8rem;color:#2d3748;background:#fff;width:100%;box-sizing:border-box;font-family:inherit}.mgmt-dialog-input:focus{outline:none;border-color:#3182ce;box-shadow:0 0 0 2px #3182ce33}.mgmt-dialog-select{padding:4px 6px;border:1px solid #cbd5e0;border-radius:4px;font-size:.8rem;color:#2d3748;background:#fff;width:100%;box-sizing:border-box}.mgmt-dialog-select:focus{outline:none;border-color:#3182ce}.mgmt-dialog-editor-footer{display:flex;justify-content:flex-end;padding-top:4px;margin-top:auto}.mgmt-dialog-save-btn{padding:.35rem 1rem;font-size:.8rem;cursor:pointer;border:none;border-radius:4px;background:#3182ce;color:#fff;font-weight:500}.mgmt-dialog-save-btn:hover:not(:disabled){background:#2b6cb0}.mgmt-dialog-save-btn:disabled{background:#a0aec0;cursor:not-allowed}.mgmt-dialog-empty{padding:1rem;color:#a0aec0;font-size:.8rem;text-align:center}.rt-root{display:flex;flex-direction:column;height:100%;background:#fff;font-size:13px;overflow:hidden;position:relative}.rt-toolbar{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--gantt-header-bg);border-bottom:1px solid var(--gantt-border);flex-shrink:0;gap:6px;flex-wrap:wrap}.rt-toolbar-left{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.rt-title{font-weight:600;font-size:14px;color:#2d3748;margin-right:2px;white-space:nowrap}.rt-search{padding:3px 8px;font-size:12px;border:1px solid #cbd5e0;border-radius:4px;width:130px;outline:none;color:#2d3748}.rt-search:focus{border-color:#4299e1;box-shadow:0 0 0 2px #4299e133}.rt-type-filter,.rt-preset-select{padding:3px 5px;font-size:12px;border:1px solid #cbd5e0;border-radius:4px;background:#fff;color:#2d3748;cursor:pointer}.rt-filter-badge{background:#3182ce;color:#fff;font-size:10px;font-weight:700;border-radius:10px;padding:1px 5px;margin-left:-2px}.rt-sep{width:1px;height:18px;background:#e2e8f0;margin:0 2px;flex-shrink:0}.rt-preset-label{font-size:12px;color:#718096;white-space:nowrap}.rt-btn-group{display:flex;gap:1px;background:#e2e8f0;border-radius:5px;padding:2px}.rt-grp-btn{padding:2px 7px;font-size:12px;border:none;border-radius:3px;cursor:pointer;background:transparent;color:#4a5568;transition:background .1s;white-space:nowrap}.rt-grp-btn:hover{background:#cbd5e0}.rt-grp-btn.active{background:#fff;color:#2d3748;box-shadow:0 1px 2px #0000001f}.rt-toggle-btn{padding:3px 9px;font-size:12px;border:1px solid #cbd5e0;border-radius:4px;cursor:pointer;background:#fff;color:#4a5568;transition:background .1s,border-color .1s;white-space:nowrap}.rt-toggle-btn:hover{background:#edf2f7}.rt-toggle-btn.active{background:#ebf8ff;border-color:#4299e1;color:#2b6cb0}.rt-back-btn{padding:4px 11px;font-size:12px;border:1px solid #cbd5e0;border-radius:4px;cursor:pointer;background:#fff;color:#4a5568;white-space:nowrap;flex-shrink:0}.rt-back-btn:hover{background:#edf2f7}.rt-btn{padding:4px 10px;font-size:12px;border:1px solid #cbd5e0;border-radius:4px;cursor:pointer;background:#fff;color:#4a5568}.rt-btn:hover{background:#edf2f7}.rt-body{flex:1;display:flex;overflow:hidden}.rt-table-wrapper{flex:1;overflow:auto}.rt-table{border-collapse:collapse;font-size:12px}.rt-th{background:var(--gantt-header-bg, #f7fafc);border:1px solid var(--gantt-border, #e2e8f0);padding:5px 4px;text-align:center;white-space:nowrap;font-weight:600;color:#4a5568;position:sticky;top:0;z-index:2;overflow:hidden;text-overflow:ellipsis}.rt-th-name{text-align:left;width:180px;min-width:180px;left:0;z-index:3;padding-left:8px;box-shadow:1px 0 0 var(--gantt-border, #e2e8f0)}.rt-th-period{font-size:11px}.rt-th-total{width:68px;min-width:68px;background:#e8edf4}.rt-td{border:1px solid var(--gantt-border, #e2e8f0);padding:3px 4px;white-space:nowrap;overflow:hidden}.rt-td-name{position:sticky;left:0;z-index:1;background:#fff;width:180px;min-width:180px;padding:3px 6px;box-shadow:1px 0 0 var(--gantt-border, #e2e8f0)}.rt-name-inner{display:flex;align-items:center;gap:6px}.rt-td-cell{text-align:center;font-size:11px;cursor:default}.rt-td-cell:hover{filter:brightness(.92)}.rt-td-rowtotal{text-align:center;font-weight:600;background:#f7fafc;font-size:11px}.rt-cell-empty{color:#a0aec0;background:#fff}.rt-cell-ok{background:#c6f6d5;color:#276749}.rt-cell-near{background:#fefcbf;color:#744210}.rt-cell-overload{background:#fed7d7;color:#9b2c2c}.rt-cell-hours{background:#ebf8ff;color:#2b6cb0}.rt-cell-cost{background:#faf5ff;color:#553c9a}.rt-group-hdr{font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:4px 10px}.rt-avatar{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:9px;font-weight:700;flex-shrink:0}.rt-res-name{font-weight:500;color:#2d3748;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:130px}.rt-row-focused .rt-td-name{background:#ebf8ff}.rt-row-focused .rt-res-name{color:#2b6cb0;font-weight:600}.rt-footer-row .rt-td{background:#f7fafc;font-weight:600;position:sticky;bottom:0;z-index:1}.rt-footer-name{position:sticky;left:0;z-index:2!important;padding-left:8px;color:#4a5568;background:#f7fafc}.rt-footer-cell{color:#4a5568}.rt-focus-panel{width:200px;min-width:200px;border-left:1px solid var(--gantt-border, #e2e8f0);display:flex;flex-direction:column;background:#fafafa;flex-shrink:0}.rt-focus-header{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-bottom:1px solid var(--gantt-border, #e2e8f0);background:var(--gantt-header-bg, #f7fafc)}.rt-focus-title{font-weight:600;font-size:12px;color:#2d3748}.rt-focus-close{background:none;border:none;cursor:pointer;color:#718096;font-size:14px;line-height:1;padding:0 2px}.rt-focus-close:hover{color:#2d3748}.rt-focus-actions{display:flex;gap:6px;padding:5px 10px;border-bottom:1px solid var(--gantt-border, #e2e8f0)}.rt-focus-act-btn{flex:1;padding:2px 6px;font-size:11px;border:1px solid #cbd5e0;border-radius:3px;cursor:pointer;background:#fff;color:#4a5568}.rt-focus-act-btn:hover{background:#edf2f7}.rt-focus-list{flex:1;overflow-y:auto;padding:3px 0}.rt-focus-item{display:flex;align-items:center;gap:6px;padding:4px 10px;cursor:pointer;font-size:12px;color:#2d3748;transition:background .1s}.rt-focus-item:hover{background:#edf2f7}.rt-focus-item input[type=checkbox]{flex-shrink:0}.rt-focus-avatar{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:8px;font-weight:700;flex-shrink:0}.rt-focus-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.rt-tooltip{position:fixed;background:#1a202c;color:#e2e8f0;border-radius:7px;padding:8px 11px;font-size:12px;max-width:270px;z-index:9999;pointer-events:none;box-shadow:0 4px 14px #0000004d;line-height:1.45}.rt-tt-header{font-weight:700;color:#e2e8f0;margin-bottom:1px}.rt-tt-period{color:#a0aec0;font-size:11px}.rt-tt-value{font-size:16px;font-weight:700;color:#68d391;margin-top:4px}.rt-tt-divider{height:1px;background:#4a5568;margin:6px 0 4px}.rt-tt-tasks-label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#a0aec0;margin-bottom:4px}.rt-tt-task-row{display:flex;align-items:baseline;gap:3px;margin-bottom:3px;font-size:11px}.rt-tt-bullet{color:#68d391;flex-shrink:0}.rt-tt-task-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-tt-task-val{font-weight:600;color:#90cdf4;flex-shrink:0}.rt-tt-secondary{color:#718096;font-size:10px;flex-shrink:0}.rt-tt-more{color:#a0aec0;font-size:10px;font-style:italic;margin-top:2px}.rt-legend{display:flex;align-items:center;gap:12px;padding:5px 12px;border-top:1px solid var(--gantt-border, #e2e8f0);background:var(--gantt-header-bg, #f7fafc);font-size:11px;color:#4a5568;flex-shrink:0}.rt-legend-item{display:flex;align-items:center;gap:4px}.rt-legend-swatch{display:inline-block;width:12px;height:12px;border-radius:2px;border:1px solid rgba(0,0,0,.1)}.rt-legend-ok .rt-legend-swatch{background:#c6f6d5}.rt-legend-near .rt-legend-swatch{background:#fefcbf}.rt-legend-overload .rt-legend-swatch{background:#fed7d7}.rt-legend-stat{color:#a0aec0;font-size:10px}.rt-loading,.rt-error,.rt-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:12px;color:#718096;padding:2rem}.network-view{display:flex;flex-direction:column;width:100%;height:100%;background:#f1f5f9;overflow:hidden}.network-view-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--gantt-text-secondary, #6b7280);font-size:14px;padding:32px;text-align:center}.network-toolbar{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--gantt-toolbar-bg, #f9fafb);border-bottom:1px solid var(--gantt-border, #e5e7eb);flex-shrink:0}.network-zoom-label{font-size:11px;color:var(--gantt-text-secondary, #6b7280);margin-left:4px;min-width:40px}.network-filter-badge{font-size:11px;color:#f59e0b;background:#fef3c7;padding:2px 8px;border-radius:10px;border:1px solid #fde68a}.network-canvas-wrap{flex:1;overflow:hidden;position:relative}.reporting-view{display:flex;flex-direction:column;width:100%;height:100%;background:#f1f5f9;overflow-y:auto;padding:16px;box-sizing:border-box}.reporting-header{display:flex;align-items:baseline;gap:16px;margin-bottom:16px}.reporting-title{font-size:16px;font-weight:600;color:#111827}.reporting-status-date{font-size:12px;color:#6b7280}.reporting-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}.rpt-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px;box-shadow:0 1px 3px #0000000f}.rpt-card-title{font-size:13px;font-weight:600;color:#374151;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #f3f4f6}.rpt-kpi-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:8px}.rpt-kpi-card{flex:1;min-width:80px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;padding:8px 12px}.rpt-kpi-label{font-size:10px;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.rpt-kpi-value{font-size:20px;font-weight:700;color:#3b82f6;line-height:1.2}.rpt-kpi-subtext{font-size:10px;color:#9ca3af;margin-top:2px}.rpt-card-chart{min-width:360px}.rpt-chart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}.rpt-chart-empty-msg{font-size:12px;color:#9ca3af;margin:0 0 8px}.rpt-line-chart,.rpt-bar-chart{display:block;max-width:100%}.gantt-bar-label{pointer-events:none;-webkit-user-select:none;user-select:none;overflow:visible;z-index:5;text-shadow:0 0 3px rgba(0,0,0,.45),0 0 3px rgba(255,255,255,.45)}.gantt-bar-summary-solid{position:absolute;display:flex;align-items:center;overflow:visible!important}.gantt-rich-tooltip{background:#1e2433;border:1px solid #3a4060;border-radius:6px;padding:8px 12px;font-size:12px;color:#cdd6f4;box-shadow:0 4px 16px #00000073;line-height:1.4;min-width:180px;max-width:340px}.gantt-rich-tooltip-title{font-weight:600;font-size:13px;margin-bottom:6px;color:#cba6f7;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-rich-tooltip-body{display:flex;flex-direction:column;gap:2px}.gantt-rich-tooltip-row{display:flex;flex-wrap:wrap;gap:0 6px}.gantt-rich-tooltip-cell{display:inline-flex;align-items:baseline;gap:3px;white-space:nowrap}.gantt-rich-tooltip-sep{color:#4a5070}.gantt-rich-tooltip-label{color:#6e7890}.gantt-rich-tooltip-value{color:#cdd6f4}.bs-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:5000;display:flex;align-items:center;justify-content:center}.bs-dialog{background:#fff;border-radius:8px;box-shadow:0 16px 48px #00000047;width:540px;max-width:calc(100vw - 32px);max-height:85vh;display:flex;flex-direction:column;overflow:hidden;animation:bs-in .16s ease}@keyframes bs-in{0%{opacity:0;transform:scale(.97) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.bs-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--gantt-border);background:var(--gantt-header-bg);border-radius:8px 8px 0 0;flex-shrink:0}.bs-title{font-weight:600;font-size:.92rem;color:#1a202c}.bs-close{background:none;border:none;font-size:1.1rem;line-height:1;cursor:pointer;color:#718096;padding:0 4px}.bs-close:hover{color:#2d3748}.bs-tabs{display:flex;border-bottom:1px solid var(--gantt-border);flex-shrink:0;background:#f9fafb}.bs-tab{flex:1;padding:8px 4px;font-size:.8rem;font-weight:500;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;color:#4a5568;transition:color .12s,border-color .12s}.bs-tab:hover{color:#2d3748;background:#edf2f7}.bs-tab-active{color:var(--gantt-bar-blue);border-bottom-color:var(--gantt-bar-blue);background:#fff!important}.bs-body{flex:1;overflow-y:auto;padding:16px}.bs-section{display:flex;flex-direction:column;gap:10px}.bs-row{display:flex;align-items:center;gap:10px}.bs-label{width:120px;flex-shrink:0;font-size:.82rem;color:#4a5568}.bs-color-input{width:36px;height:26px;padding:1px;border:1px solid #cbd5e0;border-radius:4px;cursor:pointer;background:none}.bs-color-code{font-family:monospace;font-size:.78rem;color:#718096}.bs-range{flex:1;accent-color:var(--gantt-bar-blue)}.bs-range-val{width:36px;text-align:right;font-size:.8rem;color:#4a5568;flex-shrink:0}.bs-num-input{width:60px;padding:2px 6px;font-size:.82rem;border:1px solid #cbd5e0;border-radius:4px;background:#fff;color:#2d3748}.bs-hint{font-size:.78rem;color:#718096;line-height:1.4;margin-bottom:4px}.bs-mode-buttons{display:flex;gap:4px}.bs-mode-btn{padding:3px 10px;font-size:.8rem;border:1px solid #cbd5e0;border-radius:4px;cursor:pointer;background:#f9fafb;color:#4a5568}.bs-mode-btn:hover{background:#edf2f7}.bs-mode-btn-active{background:var(--gantt-bar-blue);color:#fff;border-color:var(--gantt-bar-blue)}.bs-labels-section{margin-top:6px}.bs-labels-header{font-size:.8rem;font-weight:600;color:#4a5568;margin-bottom:6px}.bs-labels-list{display:flex;flex-direction:column;gap:5px}.bs-label-row{display:flex;align-items:center;gap:6px;background:#f9fafb;border:1px solid #e2e8f0;border-radius:4px;padding:4px 8px}.bs-select{flex:1;min-width:0;padding:2px 4px;font-size:.78rem;border:1px solid #cbd5e0;border-radius:3px;background:#fff;color:#2d3748}.bs-delete-btn{background:none;border:none;color:#a0aec0;cursor:pointer;font-size:12px;padding:0 3px;flex-shrink:0}.bs-delete-btn:hover{color:#c53030}.bs-add-label-btn{display:inline-block;margin-top:6px;padding:4px 10px;font-size:.8rem;border:1px dashed #a0aec0;border-radius:4px;background:none;color:#4a5568;cursor:pointer}.bs-add-label-btn:hover{border-color:var(--gantt-bar-blue);color:var(--gantt-bar-blue)}.bs-checkbox-row{display:flex;align-items:center;gap:8px;font-size:.85rem;color:#2d3748;cursor:pointer}.bs-footer{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-top:1px solid var(--gantt-border);background:var(--gantt-header-bg);flex-shrink:0}.bs-footer-right{display:flex;gap:8px}.bs-btn{padding:5px 14px;font-size:.82rem;border:1px solid #cbd5e0;border-radius:4px;background:#f9fafb;color:#2d3748;cursor:pointer}.bs-btn:hover{background:#edf2f7}.bs-btn-primary{background:var(--gantt-bar-blue);color:#fff;border-color:var(--gantt-bar-blue)}.bs-btn-primary:hover{background:var(--gantt-progress-blue)}.tts-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:5100;display:flex;align-items:center;justify-content:center}.tts-dialog{background:#fff;border-radius:10px;box-shadow:0 8px 32px #00000047;width:540px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);display:flex;flex-direction:column;overflow:hidden}.tts-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 12px;border-bottom:1px solid #e8eaef}.tts-title{font-size:15px;font-weight:600;color:#1e2433}.tts-close{background:none;border:none;font-size:16px;cursor:pointer;color:#6b7280;padding:2px 6px;border-radius:4px}.tts-close:hover{background:#f3f4f6}.tts-tabs{display:flex;gap:2px;padding:8px 12px 0;border-bottom:1px solid #e8eaef;flex-shrink:0}.tts-tab{background:none;border:none;border-bottom:2px solid transparent;padding:6px 12px;font-size:12px;cursor:pointer;color:#6b7280;border-radius:4px 4px 0 0;margin-bottom:-1px;transition:color .15s}.tts-tab:hover:not(:disabled){color:#374151;background:#f9fafb}.tts-tab-active{color:#3b82f6!important;border-bottom-color:#3b82f6!important;font-weight:500}.tts-tab-disabled{opacity:.4;cursor:not-allowed}.tts-template-bar{display:flex;gap:8px;align-items:center;padding:8px 18px;border-bottom:1px solid #e5e7eb;background:#fafbfc;font-size:12px;flex-wrap:wrap}.tts-template-select{border:1px solid #d1d5db;border-radius:4px;padding:4px 6px;font-size:12px;background:#fff;color:#1f2937}[data-theme=dark] .tts-template-bar{background:#1e293b;border-bottom-color:#334155}[data-theme=dark] .tts-template-select{background:#0f172a;border-color:#475569;color:#e2e8f0}.tts-body{flex:1;overflow-y:auto;padding:14px 18px}.tts-view-editor{display:flex;flex-direction:column;gap:10px}.tts-enable-row{display:flex;align-items:center;gap:8px;font-size:13px;color:#374151;cursor:pointer}.tts-items-header{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;color:#374151;margin-top:4px}.tts-items-hint{font-size:11px;font-weight:400;color:#9ca3af}.tts-items-list{display:flex;flex-direction:column;gap:4px;min-height:24px}.tts-empty-hint{font-size:12px;color:#9ca3af;padding:8px 0;font-style:italic}.tts-item-row{display:flex;align-items:center;gap:6px;padding:4px 6px;border:1px solid #e5e7eb;border-radius:5px;background:#f9fafb;cursor:grab;transition:border-color .1s,background .1s}.tts-item-row:hover{background:#f0f4ff;border-color:#c7d2fe}.tts-item-drag-over{border-color:#3b82f6;background:#eff6ff}.tts-drag-handle{font-size:14px;color:#9ca3af;cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0}.tts-inline-btn{background:#e5e7eb;border:1px solid #d1d5db;border-radius:4px;padding:2px 6px;font-size:13px;cursor:pointer;color:#6b7280;flex-shrink:0;min-width:28px;text-align:center;transition:background .12s}.tts-inline-btn:hover{background:#d1d5db}.tts-inline-btn-active{background:#3b82f6;border-color:#2563eb;color:#fff}.tts-inline-btn-active:hover{background:#2563eb}.tts-field-select{flex:1;min-width:0;font-size:12px;border:1px solid #d1d5db;border-radius:4px;padding:3px 6px;background:#fff;color:#374151}.tts-label-input{width:100px;flex-shrink:0;font-size:12px;border:1px solid #d1d5db;border-radius:4px;padding:3px 6px;background:#fff;color:#374151}.tts-delete-btn{background:none;border:none;font-size:14px;cursor:pointer;color:#9ca3af;padding:2px 4px;border-radius:3px;flex-shrink:0}.tts-delete-btn:hover{background:#fee2e2;color:#ef4444}.tts-add-btn{align-self:flex-start;background:none;border:1px dashed #9ca3af;border-radius:5px;padding:4px 12px;font-size:12px;cursor:pointer;color:#6b7280;margin-top:2px}.tts-add-btn:hover{border-color:#3b82f6;color:#3b82f6;background:#eff6ff}.tts-preview-section{margin-top:6px}.tts-preview-label{font-size:11px;font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}.tts-preview-box{background:#1e2433;border-radius:6px;padding:8px 12px;font-size:12px;color:#cdd6f4;display:flex;flex-direction:column;gap:2px}.tts-preview-row{display:flex;flex-wrap:wrap;gap:0 8px}.tts-preview-cell{display:inline-flex;align-items:baseline;gap:3px;white-space:nowrap}.tts-preview-sep{color:#4a5070}.tts-preview-field-label{color:#6e7890}.tts-preview-field-value{color:#cdd6f4}.tts-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-top:1px solid #e8eaef;flex-shrink:0}.tts-footer-right{display:flex;gap:8px}.tts-btn{background:#f3f4f6;border:1px solid #d1d5db;border-radius:5px;padding:5px 14px;font-size:13px;cursor:pointer;color:#374151}.tts-btn:hover{background:#e5e7eb}.tts-btn-primary{background:#3b82f6;border-color:#2563eb;color:#fff}.tts-btn-primary:hover{background:#2563eb}[data-theme=dark]{--gantt-weekend-grey: #1b1e2e;--gantt-row-stripe: #1e2235;--gantt-header-bg: #181b2c;--gantt-border: #2e3450;--gantt-grid-grey: #252848;--gantt-bar-blue: #4a90d9;--gantt-progress-blue: #3070b8;--gantt-critical-red: #f56565;--gantt-today-red: #f56565;--gantt-summary-brown: #9f85cc;--gantt-label-outside: #cdd6f4}[data-theme=dark] .gantt-view{background:#1a1d2e;color:#cdd6f4}[data-theme=dark] .gantt-table tbody td{color:#c0c8e4}[data-theme=dark] .gantt-table thead th{color:#7a8aae}[data-theme=dark] .gantt-table tbody tr.selected-row{background:#1e2d52!important;box-shadow:inset 3px 0 0 var(--gantt-bar-blue),inset 0 -1px 0 0 var(--gantt-border)}[data-theme=dark] .gantt-table tbody tr.selected-row:hover{background:#233462!important;box-shadow:inset 3px 0 0 var(--gantt-bar-blue),inset 0 -1px 0 0 var(--gantt-border)}[data-theme=dark] .gantt-table tbody tr.clickable-row:hover{background:#1e2540}[data-theme=dark] .toolbar-btn{color:#cdd6f4}[data-theme=dark] .toolbar-btn:hover:not(:disabled){background:#252848;border-color:#3a4060}[data-theme=dark] .toolbar-btn-danger{color:#fc8181}[data-theme=dark] .toolbar-btn-danger:hover:not(:disabled){background:#2d2020;border-color:#f56565;color:#fc8181}[data-theme=dark] .toolbar-icon-btn{color:#a0aec0}[data-theme=dark] .toolbar-icon-btn:hover:not(:disabled){background:#252848;color:#e2e8f0}[data-theme=dark] .toolbar-icon-btn-active{background:var(--gantt-bar-blue)!important;color:#fff!important}[data-theme=dark] .toolbar-icon-btn-active:hover:not(:disabled){background:var(--gantt-progress-blue)!important;color:#fff!important}[data-theme=dark] .toolbar-icon-btn-danger{color:#fc8181}[data-theme=dark] .toolbar-icon-btn-danger:hover:not(:disabled){background:#2d2020;color:#fc8181}[data-theme=dark] .toolbar-labeled-btn{background:#252848;color:#cdd6f4;border-color:#3a4060}[data-theme=dark] .toolbar-labeled-btn:hover{background:#2e3450;border-color:#4a5580}[data-theme=dark] .toolbar-labeled-btn-danger{background:#2d1515!important;color:#fc8181!important;border-color:#5a2020!important}[data-theme=dark] .toolbar-auto-schedule-label,[data-theme=dark] .toolbar-groupby-label{color:#cdd6f4}[data-theme=dark] .toolbar-groupby-select{background:#252848;color:#cdd6f4;border-color:#3a4060}[data-theme=dark] .toolbar-filter-active-pill{background:#1e2d52;color:#93c5fd;border-color:#2e4080}[data-theme=dark] .gantt-divider{background:#2e3450}[data-theme=dark] .gantt-find-bar,[data-theme=dark] .editable-cell{color:#cdd6f4}[data-theme=dark] .summary-date-cell{color:#4a5580}[data-theme=dark] .gantt-table tbody tr.summary-row td{color:#d0daff}[data-theme=dark] .gantt-table tbody tr.row-being-dragged{background:#252848!important}[data-theme=dark] .gantt-table tbody tr.row-drop-target{box-shadow:inset 0 -2px 0 0 var(--gantt-bar-blue)}[data-theme=dark] .bs-dialog{background:#1e2235;color:#cdd6f4;border-color:#2e3450}[data-theme=dark] .bs-header{background:#181b2c;border-bottom-color:#2e3450}[data-theme=dark] .bs-title{color:#cdd6f4}[data-theme=dark] .bs-tabs{background:#181b2c;border-bottom-color:#2e3450}[data-theme=dark] .bs-tab{color:#7a8aae}[data-theme=dark] .bs-tab:hover{color:#cdd6f4}[data-theme=dark] .bs-tab-active{color:#cdd6f4;border-bottom-color:var(--gantt-bar-blue)}[data-theme=dark] .bs-body{background:#1e2235}[data-theme=dark] .bs-label,[data-theme=dark] .bs-color-code,[data-theme=dark] .bs-range-val{color:#94a3b8}[data-theme=dark] .bs-select,[data-theme=dark] .bs-num-input{background:#252848;color:#cdd6f4;border-color:#3a4060}[data-theme=dark] .bs-footer{background:#181b2c;border-top-color:#2e3450}[data-theme=dark] .bs-btn{background:#252848;color:#cdd6f4;border-color:#3a4060}[data-theme=dark] .bs-btn:hover{background:#2e3460}[data-theme=dark] .bs-labels-header{color:#94a3b8}[data-theme=dark] .bs-hint{color:#5a6a90}[data-theme=dark] .bs-mode-btn{background:#252848;color:#94a3b8;border-color:#3a4060}[data-theme=dark] .bs-mode-btn:hover{background:#2e3460}[data-theme=dark] .bs-mode-btn-active{background:var(--gantt-bar-blue);color:#fff}[data-theme=dark] .bs-checkbox-row{color:#cdd6f4}[data-theme=dark] .gantt-rich-tooltip{background:#1e2235;border-color:#2e3450;color:#cdd6f4}[data-theme=dark] .gantt-rich-tooltip-title{color:#cdd6f4;border-bottom-color:#2e3450}[data-theme=dark] .gantt-rich-tooltip-label{color:#7a8aae}[data-theme=dark] .gantt-rich-tooltip-value{color:#cdd6f4}.details-panel-pin-btn{flex-shrink:0;background:none;border:1px solid transparent;border-radius:3px;font-size:13px;line-height:1;cursor:pointer;padding:2px 4px;opacity:.45;transition:opacity .15s,background .15s}.details-panel-pin-btn:hover{opacity:.8;background:#e2e8f0}.details-panel-pin-btn-active{opacity:1;background:#ebf8ff;border-color:#bee3f8}.details-panel-pin-btn-active:hover{background:#bee3f8}.details-panel-mode-btn{flex-shrink:0;background:none;border:1px solid #cbd5e0;border-radius:3px;font-size:10px;font-weight:600;line-height:1;cursor:pointer;padding:2px 5px;color:#718096;letter-spacing:.02em;transition:background .15s,color .15s,border-color .15s}.details-panel-mode-btn:hover{background:#edf2f7;color:#2d3748}.details-panel-mode-btn-active{background:#fef3c7;border-color:#f6ad55;color:#7c4a02}.details-panel-mode-btn-active:hover{background:#fde68a}.panel-pull-tab{position:absolute;right:0;top:50%;transform:translateY(-50%);width:14px;height:52px;background:#e2e8f0;border:1px solid #c8d0d8;border-right:none;border-radius:5px 0 0 5px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:40;transition:width .15s ease,background .15s ease;-webkit-user-select:none;user-select:none}.panel-pull-tab:hover:not(.panel-pull-tab-inactive){width:22px;background:#bee3f8;border-color:#90cdf4}.panel-pull-tab-inactive{opacity:.3;cursor:default}.panel-pull-tab-icon{font-size:7px;color:#4a5568;line-height:1;pointer-events:none}[data-theme=dark] .details-panel-pin-btn:hover{background:#2d3748}[data-theme=dark] .details-panel-pin-btn-active{background:#1a2744;border-color:#2b4a8a}[data-theme=dark] .details-panel-mode-btn{border-color:#3a4060;color:#7a8aae}[data-theme=dark] .details-panel-mode-btn:hover{background:#252848;color:#cdd6f4}[data-theme=dark] .details-panel-mode-btn-active{background:#3a2a04;border-color:#8a6020;color:#f6ad55}[data-theme=dark] .panel-pull-tab{background:#2d3748;border-color:#3a4060}[data-theme=dark] .panel-pull-tab:hover:not(.panel-pull-tab-inactive){background:#2b4a8a;border-color:#3b6bbf}[data-theme=dark] .panel-pull-tab-icon{color:#7a8aae}.col-header-inner{display:flex;align-items:center;gap:2px;overflow:hidden;width:100%;min-width:0;padding-right:6px}.col-drag-grip{flex-shrink:0;font-size:10px;color:#b0b8c8;cursor:grab;padding:0 2px;opacity:0;transition:opacity .1s;-webkit-user-select:none;user-select:none;line-height:1}.gantt-table thead th:hover .col-drag-grip{opacity:1}.col-drag-grip:active{cursor:grabbing}.col-header-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.col-header-label:hover,.col-header-sorted{color:var(--gantt-bar-blue)}.col-sort-arrow{font-size:11px;font-weight:700;color:var(--gantt-bar-blue)}.col-filter-dot{flex-shrink:0;display:inline-block;width:7px;height:7px;border-radius:50%;background:#f6ad55;cursor:pointer;transition:background .15s,transform .1s;margin-left:1px}.col-filter-dot:hover{background:#ed8936;transform:scale(1.3)}.gantt-table thead th.col-being-dragged{opacity:.4}.gantt-table thead th.col-drop-target{box-shadow:inset 2px 0 0 var(--gantt-bar-blue)}body.col-dragging{-webkit-user-select:none;user-select:none;cursor:grabbing!important}.toolbar-groupby-wrapper{position:relative;display:flex;align-items:center;gap:2px}.toolbar-groupby-chevron{display:none}.toolbar-groupby-menu{position:absolute;top:calc(100% + 2px);left:0;background:#fff;border:1px solid #c8c8c8;border-radius:4px;box-shadow:0 4px 12px #00000029;z-index:500;min-width:160px;padding:3px 0}.toolbar-groupby-item{padding:5px 14px 5px 28px;font-size:12px;color:#2d3748;cursor:pointer;position:relative;white-space:nowrap}.toolbar-groupby-item:hover{background:#e8f0f8}.toolbar-groupby-item-active{font-weight:600}.toolbar-groupby-check{position:absolute;left:10px;color:var(--gantt-bar-blue);font-weight:700}[data-theme=dark] .col-drag-grip{color:#4a5580}[data-theme=dark] .col-header-label:hover,[data-theme=dark] .col-header-sorted,[data-theme=dark] .col-sort-arrow{color:#63b3ed}[data-theme=dark] .toolbar-groupby-menu{background:#252848;border-color:#3a4060;box-shadow:0 4px 12px #0006}[data-theme=dark] .toolbar-groupby-item{color:#cdd6f4}[data-theme=dark] .toolbar-groupby-item:hover{background:#2e3460}[data-theme=dark] .toolbar-groupby-check{color:#63b3ed}.evm-view{display:flex;flex-direction:column;height:100%;overflow:auto;background:#f8fafc;padding:16px;gap:0}.evm-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:8px}.evm-title{font-size:16px;font-weight:700;color:#1a202c}.evm-project-name{color:#3b82f6}.evm-status-date{display:flex;align-items:center;gap:6px;font-size:12px}.evm-sd-label{color:#6b7280;font-weight:500}.evm-sd-input{border:1px solid #d1d5db;border-radius:4px;padding:3px 6px;font-size:12px;color:#374151;background:#fff;cursor:pointer}.evm-sd-input:focus{outline:none;border-color:#3b82f6}.evm-sd-reset{background:none;border:1px solid #d1d5db;border-radius:4px;padding:2px 8px;font-size:11px;color:#6b7280;cursor:pointer}.evm-sd-reset:hover{background:#f3f4f6;color:#374151}.evm-body{display:flex;flex-direction:column;gap:8px}.evm-empty{display:flex;align-items:center;justify-content:center;flex:1;min-height:200px}.evm-doe-banner{background:#1e3a8a20;border:1px solid #1e40af;color:var(--text-primary, #e2e8f0);border-radius:5px;padding:7px 12px;font-size:12px;margin-bottom:4px}.evm-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#9ca3af;margin-top:8px;margin-bottom:4px}.evm-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.evm-eac-table{background:#fff;border:1px solid #e5e7eb;border-radius:6px;overflow:hidden;font-size:12px}.evm-eac-row{display:grid;grid-template-columns:120px 1fr 100px 100px;gap:0;border-bottom:1px solid #f3f4f6}.evm-eac-row:last-child{border-bottom:none}.evm-eac-row span{padding:7px 12px}.evm-eac-header{background:#f9fafb;font-weight:600;color:#6b7280;font-size:11px}.evm-eac-header span{padding:6px 12px}.evm-eac-row:not(.evm-eac-header):hover{background:#f9fafb}.evm-scurve-card{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:12px;overflow:hidden}.evm-scurve-card svg{width:100%;height:auto}.evm-scurve-legend{display:flex;align-items:center;gap:12px;margin-top:6px;font-size:11px;flex-wrap:wrap}.evm-legend-item{font-weight:500}.evm-legend-sep{color:#d1d5db}[data-theme=dark] .evm-view{background:#1e2035}[data-theme=dark] .evm-title{color:#cdd6f4}[data-theme=dark] .evm-sd-input{background:#252848;border-color:#3a4060;color:#cdd6f4}[data-theme=dark] .evm-eac-table{background:#252848;border-color:#3a4060}[data-theme=dark] .evm-eac-row{border-color:#2e3460}[data-theme=dark] .evm-eac-header{background:#1e2035;color:#8a93c0}[data-theme=dark] .evm-eac-row:not(.evm-eac-header):hover{background:#2e3460}[data-theme=dark] .evm-scurve-card{background:#252848;border-color:#3a4060}[data-theme=dark] .evm-section-label{color:#5a6490}@media (max-width: 900px){.evm-kpi-row{grid-template-columns:repeat(2,1fr)}.evm-eac-row{grid-template-columns:100px 1fr 80px 80px}}.rh-container{display:flex;flex-direction:column;border-top:2px solid #3182ce;background:#f8fafc;flex-shrink:0}.rh-resize-handle{height:4px;background:#e2e8f0;cursor:ns-resize;flex-shrink:0}.rh-resize-handle:hover{background:#3182ce}.rh-controls{display:flex;align-items:center;gap:12px;padding:0 12px;background:#f1f5f9;border-bottom:1px solid #e2e8f0;flex-shrink:0}.rh-controls-label{font-size:11px;font-weight:600;color:#4a5568;text-transform:uppercase;letter-spacing:.05em;margin-right:4px}.rh-control-group{display:flex;border:1px solid #cbd5e0;border-radius:4px;overflow:hidden}.rh-ctrl-btn{padding:2px 8px;font-size:11px;border:none;background:#fff;color:#4a5568;cursor:pointer;border-right:1px solid #cbd5e0}.rh-ctrl-btn:last-child{border-right:none}.rh-ctrl-btn:hover{background:#ebf4ff}.rh-ctrl-btn.active{background:#3182ce;color:#fff}.rh-filter-group{margin-left:auto}.rh-filter-group .rh-ctrl-btn.active{background:#7c3aed}.rh-filter-group .rh-ctrl-btn.active:hover{background:#6d28d9}.rh-filter-badge{display:inline-block;margin-left:6px;font-size:9px;font-weight:700;background:#7c3aed;color:#fff;padding:1px 5px;border-radius:8px;vertical-align:middle;letter-spacing:.03em}.rh-empty-filter{color:#a0aec0;font-style:italic;padding:12px 8px;font-size:11px}.rh-body{display:flex;flex:1;overflow:hidden}.rh-names{flex-shrink:0;border-right:1px solid #e2e8f0;background:#fff;overflow:hidden}.rh-names-header{border-bottom:1px solid #e2e8f0;background:#f8fafc}.rh-name-row{display:flex;align-items:center;gap:6px;padding:0 8px;border-bottom:1px solid #f0f4f8;font-size:12px;color:#2d3748;box-sizing:border-box}.rh-name-row-selected{background:#3b82f61a;border-left:3px solid #3b82f6}.rh-name-initials{width:22px;height:22px;border-radius:50%;color:#fff;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.rh-name-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rh-name-max{font-size:10px;color:#a0aec0;flex-shrink:0}.rh-empty{padding:12px;font-size:12px;color:#a0aec0;font-style:italic}.rh-chart-scroll{overflow-x:scroll;overflow-y:hidden;flex:1}.rh-header-row{border-bottom:1px solid #e2e8f0;background:#f8fafc;display:flex}.rh-header-cell{font-size:10px;color:#718096;text-align:center;border-right:1px solid #e2e8f0;display:flex;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap;flex-shrink:0;box-sizing:border-box}.rh-row{display:flex;border-bottom:1px solid #f0f4f8}.rh-cell{border-right:1px solid #f0f4f8;display:flex;align-items:flex-end;justify-content:center;position:relative;flex-shrink:0;overflow:hidden;box-sizing:border-box}.rh-cell-over{background:#feb2b226}.rh-cell-selected{background:#3b82f62e;box-shadow:inset 0 0 0 1px #3b82f666}.rh-bar{width:calc(100% - 2px);background:#3b82f6;border-radius:2px 2px 0 0;margin-bottom:1px}.rh-bar-over{background:#e53e3e}.rh-val{font-size:9px;color:#4a5568;text-align:center;position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.rh-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.rh-modal{background:#1e2533;border:1px solid #2d3748;border-radius:8px;padding:24px;min-width:360px;max-width:480px;box-shadow:0 20px 60px #00000080;color:#e2e8f0}.rh-modal h2{margin:0 0 20px;font-size:18px;font-weight:600;color:#f7fafc}.rh-modal-field{margin-bottom:16px}.rh-modal-field>label{display:block;font-size:12px;color:#a0aec0;margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}.rh-modal-field select,.rh-modal-field input[type=number]{width:100%;background:#2d3748;border:1px solid #4a5568;border-radius:4px;color:#e2e8f0;padding:8px 12px;font-size:14px;box-sizing:border-box}.rh-modal-radio-group{display:flex;flex-direction:column;gap:8px}.rh-modal-radio-option{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer;color:#e2e8f0}.rh-modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:24px}.rh-modal-btn{padding:8px 16px;border-radius:4px;border:1px solid #4a5568;font-size:13px;cursor:pointer;background:#2d3748;color:#e2e8f0;transition:background .15s}.rh-modal-btn:hover{background:#4a5568}.rh-modal-btn.primary{background:#3b82f6;border-color:#3b82f6;color:#fff}.rh-modal-btn.primary:hover{background:#2563eb}.rh-modal-btn:disabled{opacity:.5;cursor:not-allowed}.rh-modal-result{margin-top:16px;padding:12px;border-radius:4px;font-size:14px}.rh-modal-result.success{background:#1a3a2a;border:1px solid #276749;color:#68d391}.rh-modal-result.error{background:#3a1a1a;border:1px solid #742a2a;color:#fc8181}.sp-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;z-index:10000;display:flex;align-items:center;justify-content:center;padding:24px}.sp-modal{background:#fff;color:#1f2937;border-radius:10px;box-shadow:0 20px 60px #00000059;width:min(1080px,100%);max-height:90vh;display:flex;flex-direction:column;font-size:13px}.sp-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #e5e7eb;background:#f9fafb;border-radius:10px 10px 0 0}.sp-modal-title{font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px;color:#111827}.sp-modal-close{background:none;border:none;cursor:pointer;color:#6b7280;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px}.sp-modal-close:hover{background:#f3f4f6;color:#111827}.sp-modal-body{display:grid;grid-template-columns:280px 1fr 280px;gap:0;flex:1;min-height:0}.sp-modal-col{display:flex;flex-direction:column;min-height:0;overflow:hidden}.sp-modal-col+.sp-modal-col{border-left:1px solid #e5e7eb}.sp-modal-col-editor{background:#fafbfc}.sp-col-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid #e5e7eb;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;font-weight:600;background:#f9fafb}.sp-col-count{background:#e5e7eb;color:#374151;padding:1px 6px;border-radius:8px;font-size:10px;letter-spacing:0;text-transform:none}.sp-search{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid #e5e7eb;background:#fff;color:#6b7280}.sp-search input{border:none;outline:none;width:100%;font-size:12px;background:transparent;color:#1f2937}.sp-list{flex:1;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:2px}.sp-list-empty{padding:16px;font-size:12px;color:#9ca3af;text-align:center}.sp-list-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:12.5px;color:#1f2937}.sp-list-item:hover{background:#f3f4f6}.sp-list-item.active{background:#dbeafe}.sp-list-prefix{font-size:10px;font-weight:700;letter-spacing:.04em;border-radius:3px;padding:2px 6px;flex-shrink:0}.sp-list-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-list-crit{width:10px;height:10px;border-radius:50%;flex-shrink:0;border:1px solid rgba(0,0,0,.1)}.sp-icon-btn{background:none;border:none;cursor:pointer;color:#6b7280;padding:3px 5px;border-radius:3px;display:inline-flex;align-items:center;justify-content:center}.sp-icon-btn:hover{background:#e5e7eb;color:#111827}.sp-icon-btn.danger:hover{background:#fee2e2;color:#b91c1c}.sp-pick-check{color:#2563eb;opacity:0;flex-shrink:0}.sp-pick-check.visible{opacity:1}.sp-editor{padding:16px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.sp-editor-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#9ca3af;gap:12px;padding:24px;text-align:center}.sp-editor-title{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:#111827}.sp-field{display:flex;flex-direction:column;gap:4px}.sp-field-label{font-size:12px;font-weight:600;color:#374151;display:flex;align-items:baseline;gap:6px}.sp-field-hint{font-weight:400;color:#6b7280;font-size:11px}.sp-field-input{border:1px solid #d1d5db;border-radius:4px;padding:6px 8px;font-size:13px;font-family:inherit;outline:none}.sp-field-input:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb2e}.sp-input-error{border-color:#dc2626!important}.sp-field-error{color:#dc2626;font-size:11px}.sp-role{display:flex;flex-direction:column;gap:4px}.sp-role-head{display:flex;align-items:baseline;gap:6px}.sp-role-label{font-weight:600;font-size:12px;color:#374151}.sp-role-hint{color:#6b7280;font-size:11px}.sp-role-body{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sp-palette{display:grid;grid-template-columns:repeat(8,18px);gap:4px}.sp-palette-cell{width:18px;height:18px;border:1px solid rgba(0,0,0,.12);border-radius:3px;cursor:pointer;padding:0}.sp-palette-cell:hover{transform:scale(1.1)}.sp-palette-cell.selected{outline:2px solid #1f2937;outline-offset:1px}.sp-role-input-wrap{display:flex;align-items:center;gap:4px;margin-left:auto}.sp-role-color{width:26px;height:26px;border:1px solid #d1d5db;border-radius:3px;cursor:pointer;background:none;padding:0}.sp-role-hex{width:80px;border:1px solid #d1d5db;border-radius:3px;padding:4px 6px;font-family:ui-monospace,Cascadia Code,Menlo,monospace;font-size:11px;outline:none}.sp-role-hex:focus{border-color:#2563eb}.sp-preview{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.sp-preview-title{font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.sp-preview-row{display:flex;align-items:center;gap:8px}.sp-preview-prefix{font-size:10px;font-weight:700;border-radius:3px;padding:2px 6px;letter-spacing:.04em}.sp-preview-name{font-weight:500;font-size:13px}.sp-preview-bar-row{margin-top:2px}.sp-preview-bar{height:22px;border-radius:3px;display:flex;align-items:center;padding:0 8px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px;padding-top:12px;border-top:1px solid #e5e7eb}.sp-btn{padding:6px 14px;border-radius:4px;border:1px solid #d1d5db;background:#fff;color:#1f2937;font-size:12.5px;cursor:pointer;font-family:inherit}.sp-btn:hover{background:#f3f4f6}.sp-btn:disabled{opacity:.5;cursor:not-allowed}.sp-btn.primary{background:#2563eb;border-color:#2563eb;color:#fff}.sp-btn.primary:hover{background:#1d4ed8}.sp-btn.danger{color:#b91c1c;border-color:#fecaca;background:#fef2f2}.sp-btn.danger:hover{background:#fee2e2}.scenario-panel{position:absolute;top:40px;right:8px;width:300px;background:#1a2233;border:1px solid #2d3748;border-radius:6px;z-index:300;box-shadow:0 8px 30px #00000080;overflow:hidden}.scenario-panel-header{padding:10px 12px;border-bottom:1px solid #2d3748;font-weight:600;color:#f7fafc;font-size:13px;display:flex;align-items:center;justify-content:space-between}.scenario-list{max-height:240px;overflow-y:auto}.scenario-row{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:13px;color:#e2e8f0;border-bottom:1px solid #1e2533}.scenario-row:hover{background:#2d3748}.scenario-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.scenario-date{font-size:11px;color:#718096;margin-top:1px}.scenario-actions{display:flex;gap:2px;flex-shrink:0}.scenario-create-form{padding:12px;border-top:1px solid #2d3748;display:flex;flex-direction:column;gap:8px}.scenario-create-form input[type=text]{background:#2d3748;border:1px solid #4a5568;border-radius:4px;color:#e2e8f0;padding:6px 8px;font-size:13px;width:100%;box-sizing:border-box}.scenario-compare-active{background:#3b82f61a;border-left:2px solid #3b82f6}@media print{body:not(.gantt-printing){display:none}.gantt-printing .gantt-toolbar,.gantt-printing .gantt-sidebar-toggle,.gantt-printing button{display:none!important}.gantt-printing{background:#fff!important;color:#000!important}.gantt-printing .gantt-row{border-bottom:1px solid #ccc}.gantt-printing .timeline-bar{print-color-adjust:exact;-webkit-print-color-adjust:exact}}.lookahead-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:600;display:flex;align-items:flex-start;justify-content:center;padding-top:60px}.lookahead-panel{background:#1a2035;border:1px solid #2d3748;border-radius:8px;width:min(860px,96vw);max-height:80vh;display:flex;flex-direction:column;box-shadow:0 12px 40px #0009;overflow:hidden}.lookahead-header{padding:12px 16px;border-bottom:1px solid #2d3748;display:flex;align-items:center;justify-content:space-between;font-weight:600;color:#f7fafc;font-size:14px;gap:8px;flex-shrink:0}.lookahead-title{display:flex;align-items:center;gap:8px}.lookahead-window-select{background:#2d3748;border:1px solid #4a5568;border-radius:4px;color:#e2e8f0;padding:2px 6px;font-size:13px;cursor:pointer}.lookahead-asof{font-size:11px;color:#718096}.lookahead-loading,.lookahead-error,.lookahead-empty{padding:24px;text-align:center;font-size:13px;color:#718096}.lookahead-error{color:#fc8181}.lookahead-table-wrap{overflow-y:auto;flex:1}.lookahead-table{width:100%;border-collapse:collapse;font-size:13px;color:#e2e8f0}.lookahead-table th{position:sticky;top:0;background:#1a2035;padding:8px 12px;text-align:left;font-size:11px;color:#a0aec0;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #2d3748}.lookahead-table td{padding:8px 12px;border-bottom:1px solid #1e2533}.lookahead-table tr:hover td{background:#2d3748}.lookahead-milestone td{color:#f59e0b}.lookahead-name{max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lookahead-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;color:#475569;white-space:nowrap}.lookahead-pct-bar{display:flex;align-items:center;gap:6px;min-width:80px}.lookahead-pct-bar>div:first-child{flex:1;height:4px;background:#3b82f6;border-radius:2px;max-width:60px;position:relative}.lookahead-pct-fill{height:100%;background:#3b82f6;border-radius:2px}.lookahead-pct-bar>span{font-size:11px;color:#718096}.lookahead-status{display:inline-block;padding:1px 6px;border-radius:10px;font-size:11px;font-weight:500;text-transform:capitalize}.lookahead-status-active{background:#3b82f620;color:#60a5fa}.lookahead-status-complete,.lookahead-status-completed{background:#10b98120;color:#34d399}.lookahead-status-not_started{background:#71809620;color:#a0aec0}.risk-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:600;display:flex;align-items:flex-start;justify-content:center;padding-top:60px}.risk-panel{background:#1a2035;border:1px solid #2d3748;border-radius:8px;width:min(900px,96vw);max-height:85vh;display:flex;flex-direction:column;box-shadow:0 12px 40px #0009;overflow:hidden}.risk-header{padding:12px 16px;border-bottom:1px solid #2d3748;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.risk-title{font-weight:600;color:#f7fafc;font-size:14px}.risk-view-btn{padding:3px 10px;font-size:12px;border-radius:4px;cursor:pointer;background:#2d3748;border:1px solid #4a5568;color:#a0aec0}.risk-view-btn.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.risk-form{padding:12px 16px;border-bottom:1px solid #2d3748;display:flex;flex-direction:column;gap:8px;flex-shrink:0}.risk-form-row{display:flex;gap:8px;flex-wrap:wrap}.risk-form-row label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:#a0aec0;flex:1;min-width:120px}.risk-form-row label select{margin-top:2px}.risk-input{background:#2d3748;border:1px solid #4a5568;border-radius:4px;color:#e2e8f0;padding:6px 8px;font-size:13px;width:100%;box-sizing:border-box;resize:vertical;font-family:inherit}.risk-input:focus{outline:none;border-color:#3b82f6}.risk-list{overflow-y:auto;flex:1}.risk-empty{padding:24px;text-align:center;font-size:13px;color:#718096}.risk-row{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid #1e2533;color:#e2e8f0}.risk-row:hover{background:#2d374840}.risk-score{width:32px;height:32px;border-radius:6px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff}.risk-info{flex:1;min-width:0}.risk-row-title{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.risk-row-meta{font-size:11px;color:#718096;margin-top:2px}.risk-status-badge{padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500;color:#fff;cursor:pointer;flex-shrink:0;text-transform:capitalize;-webkit-user-select:none;user-select:none}.risk-status-badge:hover{opacity:.8}.risk-matrix-wrap{overflow:auto;flex:1;padding:16px}.risk-matrix{border-collapse:collapse;font-size:12px;color:#e2e8f0;min-width:480px}.risk-matrix th,.risk-matrix td{border:1px solid #2d3748;padding:6px 8px;text-align:center}.risk-matrix th{background:#2d3748;color:#a0aec0;font-size:11px}.risk-matrix-corner{background:#1a2035!important}.risk-matrix-cell{vertical-align:top;min-width:100px;min-height:60px}.risk-matrix-score{font-size:16px;font-weight:700;color:#f7fafc;margin-bottom:4px}.risk-matrix-chip{display:inline-block;background:#fff2;border-radius:3px;padding:1px 5px;font-size:10px;color:#e2e8f0;margin:1px;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sh-side{position:fixed;top:0;right:0;bottom:0;width:380px;background:#1a2035;border-left:1px solid #2d3748;display:flex;flex-direction:column;box-shadow:-8px 0 24px #0006;z-index:600}.sh-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:600;display:flex;align-items:flex-start;justify-content:center;padding-top:60px}.sh-panel{background:#1a2035;border:1px solid #2d3748;border-radius:8px;width:min(960px,96vw);max-height:85vh;display:flex;flex-direction:column;box-shadow:0 12px 40px #0009;overflow:hidden}.sh-stepper{display:flex;align-items:center;gap:8px;padding:6px 12px;border-bottom:1px solid #2d3748;background:#1e2533;flex-shrink:0}.sh-step-btn{display:inline-flex;align-items:center;gap:3px;background:#2d3748;border:1px solid #4a5568;border-radius:4px;color:#e2e8f0;padding:3px 8px;font-size:11px;cursor:pointer}.sh-step-btn:hover:not(:disabled){background:#3a4660;border-color:#6b7280}.sh-step-btn:disabled{opacity:.4;cursor:not-allowed}.sh-step-pos{flex:1;text-align:center;font-size:12px;color:#a0aec0;font-variant-numeric:tabular-nums}.sh-finding-active{background:#3b82f640!important;outline:1px solid #3b82f6;outline-offset:-1px}.sh-header{padding:10px 14px;border-bottom:1px solid #2d3748;display:flex;align-items:center;gap:8px;flex-shrink:0}.sh-title{font-weight:600;color:#f7fafc;font-size:14px;flex:1}.sh-mode-badge{font-size:11px;color:#a0aec0;background:#2d3748;padding:2px 6px;border-radius:3px}.sh-close{background:none;border:none;color:#a0aec0;cursor:pointer;padding:2px}.sh-summary{padding:8px 14px;border-bottom:1px solid #2d3748;font-size:13px;color:#e2e8f0;display:flex;align-items:center;gap:8px}.sh-overall-pass,.sh-overall-fail{display:flex;align-items:center;gap:6px}.sh-overall-pass{color:#34d399}.sh-overall-fail{color:#f87171}.sh-rules{border-bottom:1px solid #2d3748;max-height:30vh;overflow-y:auto;flex-shrink:0}.sh-rules-header{padding:6px 14px;font-size:11px;color:#718096;text-transform:uppercase;background:#1e2533}.sh-rule-row{display:flex;align-items:center;gap:8px;padding:5px 14px;width:100%;background:none;border:none;text-align:left;cursor:pointer;color:#e2e8f0;font-size:12px}.sh-rule-row:hover{background:#2d374840}.sh-rule-row-sel{background:#3b82f640}.sh-rule-row-failed{color:#fca5a5}.sh-rule-id{font-family:monospace;font-size:11px;color:#a0aec0;min-width:130px}.sh-rule-label{flex:1}.sh-rule-count{background:#dc2626;color:#fff;padding:1px 6px;border-radius:9px;font-size:10px;font-weight:600;min-width:18px;text-align:center}.sh-clear-filter{display:block;margin:4px 14px 8px;padding:3px 10px;font-size:11px;background:#2d3748;border:1px solid #4a5568;border-radius:3px;color:#a0aec0;cursor:pointer}.sh-findings{overflow-y:auto;flex:1}.sh-findings-header{padding:6px 14px;font-size:11px;color:#718096;text-transform:uppercase;background:#1e2533;position:sticky;top:0;z-index:1}.sh-no-findings{padding:20px;text-align:center;color:#718096;font-size:13px}.sh-finding{display:flex;align-items:flex-start;gap:8px;padding:8px 14px;border-bottom:1px solid #1e2533}.sh-finding-clickable{cursor:pointer}.sh-finding-clickable:hover{background:#2d374840}.sh-finding-icon{padding-top:2px}.sh-finding-body{flex:1;min-width:0}.sh-finding-rule{font-family:monospace;font-size:10px;color:#a0aec0;text-transform:uppercase;letter-spacing:.05em}.sh-finding-msg{font-size:12px;color:#e2e8f0;margin-top:1px}.sh-finding-error{border-left:3px solid #dc2626}.sh-finding-warning{border-left:3px solid #d97706}.sh-finding-info{border-left:3px solid #2563eb}.sov-panel{width:min(1080px,96vw)}.sov-meta{padding:10px 14px;border-bottom:1px solid #2d3748;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sov-meta-label{font-size:12px;color:#a0aec0}.sov-recon{margin-left:auto;font-size:12px}.sov-recon-ok{color:#34d399;display:inline-flex;align-items:center;gap:5px}.sov-recon-bad{color:#f87171;display:inline-flex;align-items:center;gap:5px}.sov-recon-empty{color:#718096;font-style:italic}.sov-action{display:inline-flex;align-items:center;gap:4px;background:#2d3748;border:1px solid #4a5568;border-radius:4px;color:#e2e8f0;padding:4px 8px;font-size:12px;cursor:pointer}.sov-action:hover{background:#3a4660}.sov-table-wrap{overflow:auto;flex:1}.sov-table{width:100%;border-collapse:collapse;font-size:12px;color:#e2e8f0}.sov-table th,.sov-table td{padding:6px 10px;border-bottom:1px solid #1e2533}.sov-table th{background:#1e2533;color:#a0aec0;font-weight:600;text-transform:uppercase;font-size:10px;letter-spacing:.05em;position:sticky;top:0}.sov-table tbody tr:hover{background:#2d374840}.sov-table .sov-total-row{background:#1e2533;font-weight:600;border-top:2px solid #4a5568}.notebook-entries{display:flex;flex-direction:column;gap:10px;padding-bottom:8px}.notebook-add-form{display:flex;flex-direction:column;gap:4px;padding:8px;background:#1e2533;border:1px solid #2d3748;border-radius:5px}.notebook-add-row{display:flex;gap:6px;align-items:center}.notebook-cat-select{background:#2d3748;border:1px solid #4a5568;border-radius:3px;color:#e2e8f0;padding:3px 6px;font-size:11px;flex:1}.notebook-add-btn{display:inline-flex;align-items:center;gap:3px;background:#3b82f6;border:none;border-radius:3px;color:#fff;padding:3px 9px;font-size:11px;font-weight:600;cursor:pointer}.notebook-add-btn:disabled{background:#4a5568;cursor:not-allowed;opacity:.7}.notebook-add-body{background:#2d3748;border:1px solid #4a5568;border-radius:3px;color:#e2e8f0;padding:5px 7px;font-size:12px;font-family:inherit;resize:vertical}.notebook-add-body:focus{outline:none;border-color:#3b82f6}.notebook-empty{text-align:center;color:#718096;font-size:12px;padding:12px}.notebook-list{display:flex;flex-direction:column;gap:6px}.notebook-entry{border:1px solid #2d3748;border-radius:5px;padding:7px 9px;background:#1a2035}.notebook-entry-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.notebook-cat-chip{display:inline-block;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:8px}.notebook-entry-meta{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:#a0aec0;flex:1}.notebook-entry-time{color:#718096}.notebook-entry-delete{background:none;border:none;color:#718096;cursor:pointer;padding:2px}.notebook-entry-delete:hover{color:#fca5a5}.notebook-entry-body{font-size:12px;color:#e2e8f0;white-space:pre-wrap;word-wrap:break-word}.tm-panel{position:fixed;bottom:0;left:0;right:0;z-index:1200;background:#1a2035;border-top:2px solid #3b82f6;color:#e2e8f0;padding:8px 16px 10px;display:flex;flex-direction:column;gap:6px;box-shadow:0 -4px 24px #00000073;font-size:13px}.tm-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tm-title{font-weight:700;font-size:13px;color:#93c5fd;white-space:nowrap}.tm-header-controls{display:flex;gap:6px}.tm-btn{background:#2d3a55;border:1px solid #4b6bab;color:#cbd5e1;border-radius:4px;padding:2px 10px;font-size:12px;cursor:pointer;transition:background .15s}.tm-btn:hover{background:#3b5080}.tm-btn-active{background:#3b82f6;border-color:#2563eb;color:#fff}.tm-date-label{margin-left:auto;font-size:12px;color:#94a3b8;white-space:nowrap}.tm-close-btn{background:transparent;border:none;color:#64748b;font-size:14px;cursor:pointer;padding:0 4px;line-height:1;margin-left:4px}.tm-close-btn:hover{color:#e2e8f0}.tm-body{display:flex;flex-direction:column;gap:4px}.tm-loading,.tm-empty{color:#64748b;font-size:12px;padding:4px 0}.tm-timeline-wrap{position:relative;height:28px}.tm-tick-row{position:absolute;top:0;left:0;right:0;height:10px;pointer-events:none}.tm-tick{position:absolute;transform:translate(-50%);width:2px;height:8px;background:#4b6bab;border-radius:1px;top:1px}.tm-slider{position:absolute;bottom:0;left:0;right:0;width:100%;accent-color:#3b82f6;cursor:pointer}.tm-desc{font-size:12px;color:#94a3b8;min-height:16px}.tm-legend{display:flex;gap:16px;font-size:11px;color:#94a3b8}.tm-legend-deleted:before{content:"●";color:#f87171;margin-right:4px}.tm-legend-added:before{content:"●";color:#4ade80;margin-right:4px}.spotlight-should-finish{background:#ef44441a!important;box-shadow:inset 3px 0 #dc2626}.spotlight-should-finish:hover{background:#ef44442e!important}.spotlight-should-start{background:#fb923c1a!important;box-shadow:inset 3px 0 #f97316}.spotlight-should-start:hover{background:#fb923c2e!important}.spotlight-behind{background:#fbbf241a!important;box-shadow:inset 3px 0 #f59e0b}.spotlight-behind:hover{background:#fbbf242e!important}.gantt-spotlight-bar{display:flex;align-items:center;gap:8px;padding:6px 12px;background:linear-gradient(to right,#fff7ed,#fef3c7);border-bottom:1px solid #fbbf24;font-size:12px;color:#374151;flex-shrink:0}.gsb-title{font-weight:600;color:#b45309}.gsb-divider{width:1px;align-self:stretch;background:#0000001a}.gsb-status-date strong{color:#111827}.gsb-fallback{color:#9ca3af;font-style:italic;margin-left:4px}.gsb-counts{display:flex;align-items:center;gap:6px}.gsb-count-pill{padding:1px 8px;border-radius:999px;font-size:11px;white-space:nowrap}.gsb-total{color:#6b7280;font-size:11px}.gsb-spacer{flex:1}.gsb-filter-toggle{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#4b5563;-webkit-user-select:none;user-select:none;cursor:pointer}.gsb-btn{padding:2px 10px;font-size:11px;border:1px solid #d97706;border-radius:3px;background:#fff;color:#b45309;cursor:pointer}.gsb-btn:hover{background:#fff7ed}.gsb-btn:disabled{opacity:.4;cursor:not-allowed}.gsb-btn-close{border-color:#9ca3af;color:#6b7280;font-weight:600;padding:0 8px;line-height:18px}.gsb-btn-settings{font-size:13px;padding:0 8px;line-height:18px}.gsb-btn-primary{background:#2563eb;color:#fff;border-color:#2563eb}.gsb-btn-primary:hover{background:#1d4ed8;border-color:#1d4ed8}.gsb-popover{position:absolute;top:100%;right:8px;margin-top:4px;z-index:50;min-width:360px;max-width:420px;padding:10px 12px;background:#fff;color:#1f2937;border:1px solid #d1d5db;border-radius:6px;box-shadow:0 8px 24px #0000002e;font-size:12px}.gantt-spotlight-bar{position:relative}.gsb-popover-title{font-weight:600;font-size:13px;margin-bottom:8px;color:#111827}.gsb-popover-section{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 0;border-top:1px solid #f3f4f6}.gsb-popover-section-block{flex-direction:column;align-items:stretch}.gsb-popover-section:first-of-type{border-top:none;padding-top:0}.gsb-popover-label{font-weight:600;color:#374151;flex-basis:100%}.gsb-popover-input{padding:2px 6px;border:1px solid #d1d5db;border-radius:3px;font-size:12px}.gsb-popover-value{font-variant-numeric:tabular-nums;font-weight:600;min-width:36px;text-align:right}.gsb-popover-hint{flex-basis:100%;font-size:11px;color:#6b7280;margin-top:2px}.gsb-popover-link{background:none;border:none;color:#2563eb;font-size:11px;text-decoration:underline;cursor:pointer;padding:0}.gsb-popover-link:disabled{color:#9ca3af;cursor:not-allowed;text-decoration:none}.gsb-popover-check{display:grid;grid-template-columns:18px 1fr;grid-template-rows:auto auto;column-gap:6px;row-gap:1px;align-items:start;padding:4px 0;cursor:pointer}.gsb-popover-check input{grid-row:1;grid-column:1;margin-top:2px}.gsb-popover-check>span:first-of-type{grid-row:1;grid-column:2;font-weight:500}.gsb-popover-rule{grid-row:2;grid-column:2;font-size:11px;color:#6b7280;font-family:ui-monospace,SFMono-Regular,monospace}.gsb-popover-footer{display:flex;justify-content:flex-end;gap:6px;margin-top:10px;padding-top:8px;border-top:1px solid #f3f4f6}.tm-row-deleted{background:#ef44441f!important}.tm-row-deleted:hover{background:#ef444433!important}.tm-row-added{background:#4ade801a!important}.tm-row-added:hover{background:#4ade802e!important}.tm-row-changed{background:#ffeb641a!important}.tm-row-changed:hover{background:#ffeb642e!important}.tm-row-created{background:#50c87826!important}.tm-row-created:hover{background:#50c87838!important}.tm-row-ghost-deleted{opacity:.55;text-decoration:line-through;background:#ef444414!important}.tm-cell-changed{background:#ffc85059!important;border-left:2px solid #f59e0b!important}.cycle-err-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;z-index:10000;display:flex;align-items:center;justify-content:center}.cycle-err-dialog{background:#fff;border-radius:8px;box-shadow:0 10px 40px #00000040;width:min(640px,95vw);max-height:85vh;display:flex;flex-direction:column;font-size:13px}.cycle-err-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e5e7eb;background:#fef2f2;border-radius:8px 8px 0 0}.cycle-err-title{font-weight:600;color:#b91c1c;font-size:14px}.cycle-err-close{background:none;border:none;cursor:pointer;font-size:16px;color:#6b7280}.cycle-err-close:hover{color:#111827}.cycle-err-body{padding:16px;overflow-y:auto}.cycle-err-intro{margin:0 0 14px;color:#374151}.cycle-err-steps{list-style:decimal inside;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.cycle-err-step{display:flex;align-items:center;gap:8px;padding:6px 8px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:4px;flex-wrap:wrap}.cycle-err-task-link{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;border-radius:4px;padding:2px 8px;font-size:12px;cursor:pointer;font-family:inherit}.cycle-err-task-link:hover{background:#dbeafe}.cycle-err-task-link:disabled{color:#9ca3af;background:#f3f4f6;cursor:default}.cycle-err-arrow{display:inline-flex;align-items:center;gap:4px;color:#6b7280;font-size:11px}.cycle-err-link-type{background:#f3f4f6;padding:1px 5px;border-radius:3px;font-family:ui-monospace,Cascadia Code,Menlo,monospace}.cycle-err-arrow-glyph{color:#6b7280}.cycle-err-remove-btn{margin-left:auto;background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;border-radius:4px;padding:3px 10px;font-size:12px;cursor:pointer}.cycle-err-remove-btn:hover{background:#fee2e2}.cycle-err-remove-btn:disabled{color:#9ca3af;background:#f3f4f6;cursor:default}.cycle-err-raw{margin-top:14px;font-size:11px;color:#6b7280}.cycle-err-raw summary{cursor:pointer;-webkit-user-select:none;user-select:none}.cycle-err-raw pre{margin-top:6px;background:#f3f4f6;padding:8px;border-radius:4px;overflow-x:auto;font-family:ui-monospace,Cascadia Code,Menlo,monospace;font-size:11px;line-height:1.4;white-space:pre-wrap;word-break:break-all}.cycle-err-footer{padding:10px 16px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:8px}.cycle-err-btn{background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:6px 14px;cursor:pointer;font-size:13px}.cycle-err-btn:hover{background:#f9fafb}.gantt-table-scroll td.cell-selected-range{background:#2563eb1a!important;box-shadow:inset 0 0 0 1px #2563eb59}.gantt-table-scroll td.cell-selected-active{background:#2563eb2e!important;box-shadow:inset 0 0 0 2px #2563eb!important;position:relative;z-index:1}.gantt-table-scroll td.cell-selected-active .cell-fill-handle{position:absolute;right:-3px;bottom:-3px;width:7px;height:7px;background:#2563eb;border:1px solid #fff;cursor:crosshair;z-index:2}.gantt-table-scroll td.cell-fill-target{outline:1px dashed #2563eb;outline-offset:-1px;background:#2563eb12!important}body.fill-dragging,body.fill-dragging .gantt-table-scroll,body.fill-dragging .gantt-table-scroll td{cursor:crosshair!important;-webkit-user-select:none;user-select:none}.tmb-filter-check-modified .tmb-modified-label{color:#fbbf24;font-weight:600;font-size:11px}.project-tabs-strip{display:flex;flex-direction:row;align-items:flex-end;height:32px;background:#111827;border-bottom:1px solid #374151;flex-shrink:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-user-select:none;user-select:none}.project-tabs-strip::-webkit-scrollbar{display:none}.project-tabs-strip-empty{align-items:center;padding:0 8px;gap:8px}.pt-tab{display:flex;align-items:center;height:28px;padding:0 10px 0 12px;gap:6px;flex-shrink:0;cursor:pointer;border:1px solid transparent;border-bottom:none;border-radius:6px 6px 0 0;background:#1e2533;color:#9ca3af;font-size:12px;position:relative;transition:background .1s,color .1s;max-width:200px;margin-top:4px;margin-left:2px}.pt-tab:first-child{margin-left:6px}.pt-tab:hover{background:#263045;color:#d1d5db}.pt-tab-active{background:#1a1d2e;color:#e2e8f0;border-color:#374151;border-bottom-color:#1a1d2e;z-index:1}.pt-tab-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px}.pt-tab-close{display:none;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;background:transparent;border:none;border-radius:3px;color:#6b7280;font-size:14px;line-height:1;cursor:pointer;padding:0}.pt-tab:hover .pt-tab-close,.pt-tab-active .pt-tab-close{display:flex}.pt-tab-close:hover{background:#374151;color:#f87171}.pt-add-wrapper{position:relative;display:flex;align-items:center;flex-shrink:0;padding:0 4px;align-self:center}.pt-add-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid #374151;border-radius:4px;background:transparent;color:#6b7280;font-size:16px;line-height:1;cursor:pointer;padding:0;transition:background .1s,color .1s}.pt-add-btn:hover{background:#263045;color:#e2e8f0;border-color:#4b5563}.pt-hint{font-size:11px;color:#4b5563;flex:1}.pt-picker-popover{position:absolute;top:calc(100% + 4px);left:0;min-width:220px;max-width:320px;background:#1e2533;border:1px solid #374151;border-radius:6px;box-shadow:0 8px 24px #00000073;z-index:9999;display:flex;flex-direction:column;overflow:hidden}.pt-picker-search{padding:6px 10px;font-size:12px;border:none;border-bottom:1px solid #374151;background:#111827;color:#e2e8f0;outline:none}.pt-picker-search::placeholder{color:#4b5563}.pt-picker-list{max-height:260px;overflow-y:auto;padding:4px 0}.pt-picker-empty{padding:10px 12px;font-size:12px;color:#6b7280}.pt-picker-row{display:block;width:100%;padding:6px 12px;font-size:12px;text-align:left;background:transparent;border:none;color:#d1d5db;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt-picker-row:hover{background:#263045;color:#f1f5f9}.pt-context-menu{position:fixed;min-width:150px;background:#1e2533;border:1px solid #374151;border-radius:5px;box-shadow:0 6px 18px #0006;z-index:99999;padding:4px 0}.pt-ctx-item{display:block;width:100%;padding:5px 16px;font-size:12px;text-align:left;background:transparent;border:none;color:#d1d5db;cursor:pointer}.pt-ctx-item:hover{background:#263045;color:#f1f5f9}[data-theme=light] .project-tabs-strip{background:#edf2f7;border-bottom:1px solid #cbd5e0}[data-theme=light] .pt-tab{background:#e2e8f0;color:#718096;border-color:transparent}[data-theme=light] .pt-tab:hover{background:#dce4ef;color:#2d3748}[data-theme=light] .pt-tab-active{background:#f7fafc;color:#1a202c;border-color:#cbd5e0;border-bottom-color:#f7fafc}[data-theme=light] .pt-tab-close{color:#a0aec0}[data-theme=light] .pt-tab-close:hover{background:#e2e8f0;color:#e53e3e}[data-theme=light] .pt-add-btn{border-color:#cbd5e0;color:#a0aec0}[data-theme=light] .pt-add-btn:hover{background:#e2e8f0;color:#2d3748}[data-theme=light] .pt-hint{color:#a0aec0}[data-theme=light] .pt-picker-popover{background:#fff;border-color:#cbd5e0}[data-theme=light] .pt-picker-search{background:#f7fafc;color:#1a202c;border-bottom-color:#e2e8f0}[data-theme=light] .pt-picker-search::placeholder{color:#a0aec0}[data-theme=light] .pt-picker-row{color:#2d3748}[data-theme=light] .pt-picker-row:hover{background:#edf2f7;color:#1a202c}[data-theme=light] .pt-picker-empty{color:#a0aec0}[data-theme=light] .pt-context-menu{background:#fff;border-color:#cbd5e0}[data-theme=light] .pt-ctx-item{color:#2d3748}[data-theme=light] .pt-ctx-item:hover{background:#edf2f7;color:#1a202c}.pt-rename-input{background:#ffffff14;border:1px solid rgba(96,165,250,.6);border-radius:3px;color:inherit;font:inherit;padding:1px 4px;outline:none;min-width:60px}.pt-rename-input:focus{border-color:#60a5fa;background:#ffffff26}[data-theme=light] .pt-rename-input{background:#fff;border-color:#2563eb;color:#1f2937}.app-menubar{display:flex;align-items:center;height:28px;background:#f0f0f0;border-bottom:1px solid #d0d0d0;flex-shrink:0;-webkit-user-select:none;user-select:none;position:relative;z-index:200}.app-menubar-compact{height:38px;background:#1a202c;border-bottom:1px solid #2d3748;gap:0;padding:0 6px 0 0}.menubar-brand{font-size:13px;font-weight:700;color:#e2e8f0;letter-spacing:-.01em;padding:0 12px;flex-shrink:0;white-space:nowrap;height:100%;display:flex;align-items:center;gap:6px;border-right:1px solid #2d3748}.menubar-theme-toggle svg,.menubar-brand svg{display:block}.menubar-menus{display:flex;align-items:center;height:100%;flex-shrink:0}.mb-menu-container{position:relative;height:100%;display:flex;align-items:center}.mb-menu-btn{padding:2px 10px;font-size:12px;font-family:inherit;background:transparent;border:1px solid transparent;border-radius:2px;cursor:pointer;color:#e2e8f0;height:26px;display:flex;align-items:center;white-space:nowrap}.mb-menu-btn:hover,.mb-menu-btn-open{background:#2d3748;border-color:#4a5568;color:#fff}.mb-menu-btn u{text-decoration:underline;text-underline-offset:2px}.menubar-project-controls{display:flex;align-items:center;gap:6px;margin-left:8px;flex:1;min-width:0}.project-picker{padding:2px 6px;font-size:12px;border:1px solid #4a5568;border-radius:4px;background:#2d3748;color:#e2e8f0;cursor:pointer;max-width:220px;min-width:140px;height:24px}.project-picker:focus{outline:none;border-color:#63b3ed}.project-picker option{background:#2d3748;color:#fff}.menubar-project-name{font-size:12px;color:#a0aec0;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1}.menubar-new-project-form{display:flex;align-items:center;gap:4px}.menubar-new-project-input{padding:2px 6px;font-size:12px;border:1px solid #4a5568;border-radius:4px;background:#2d3748;color:#fff;width:160px;height:24px}.menubar-new-project-input::placeholder{color:#718096}.menubar-new-project-input:focus{outline:none;border-color:#63b3ed}.menubar-btn{padding:2px 8px;font-size:11px;cursor:pointer;border:1px solid #4a5568;border-radius:4px;background:#2d3748;color:#e2e8f0;white-space:nowrap;flex-shrink:0;height:22px;display:flex;align-items:center}.menubar-btn:hover:not(:disabled){background:#4a5568;color:#fff}.menubar-btn:disabled{opacity:.4;cursor:not-allowed}.menubar-btn-primary{background:#3182ce;border-color:#3182ce;color:#fff}.menubar-btn-primary:hover:not(:disabled){background:#2b6cb0;border-color:#2b6cb0}.menubar-theme-toggle{background:transparent;border:none;cursor:pointer;font-size:14px;line-height:1;padding:0 8px;height:100%;color:#718096;flex-shrink:0;margin-left:auto;transition:color .15s;display:flex;align-items:center}.menubar-theme-toggle:hover{color:#e2e8f0}.target-badge{font-size:.7rem;padding:.1rem .45rem;border-radius:999px;background:#2d3748;color:#a0aec0;border:1px solid #4a5568;flex-shrink:0;margin-left:0}.menubar-loading{font-size:.7rem;color:#718096;flex-shrink:0;margin-left:4px}.mb-dropdown{position:absolute;top:100%;left:0;min-width:200px;background:#fff;border:1px solid #c8c8c8;border-radius:3px;box-shadow:0 4px 12px #0000002e;padding:3px 0;margin:0;list-style:none;z-index:9999}.mb-dropdown-nested{position:absolute;top:-4px;left:100%;min-width:140px}.mb-dropdown-item{display:flex;align-items:center;padding:4px 20px 4px 10px;font-size:12px;color:#1a202c;cursor:pointer;position:relative;white-space:nowrap;gap:8px}.mb-dropdown-item:hover:not(.mb-dropdown-item-disabled){background:#d8e4f0}.mb-dropdown-item-disabled{color:#aaa;cursor:default}.mb-dropdown-item-checked .mb-dropdown-label{font-weight:600}.mb-check-mark{color:#2b6cb0;font-weight:700}.mb-dropdown-label{flex:1}.mb-dropdown-shortcut{color:#888;font-size:11px;margin-left:auto;padding-left:16px}.mb-submenu-arrow{margin-left:auto;font-size:13px;color:#555}.mb-dropdown-sep{height:1px;background:#e0e0e0;margin:3px 0}.mb-about-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:10000}.mb-about-dialog{background:#fff;border-radius:6px;padding:28px 36px 20px;box-shadow:0 8px 30px #00000040;min-width:280px;text-align:center}.mb-about-title{font-size:1.3rem;font-weight:700;margin:0 0 12px;color:#1a202c}.mb-about-line{font-size:13px;color:#4a5568;margin:0 0 6px}.mb-about-link{color:#3182ce;text-decoration:none}.mb-about-link:hover{text-decoration:underline}.mb-about-ok{margin-top:18px;padding:5px 24px;font-size:13px;background:#3182ce;color:#fff;border:none;border-radius:4px;cursor:pointer}.mb-about-ok:hover{background:#2b6cb0}[data-theme=light] .app-menubar{background:#f7fafc;border-bottom:1px solid #cbd5e0;color:#1a202c}[data-theme=light] .menubar-brand{color:#1a202c;border-right-color:#e2e8f0}[data-theme=light] .mb-menu-btn{color:#2d3748}[data-theme=light] .mb-menu-btn:hover,[data-theme=light] .mb-menu-btn-open{background:#e2e8f0;color:#1a202c}[data-theme=light] .mb-menu-btn u{text-decoration-color:#4a5568}[data-theme=light] .mb-dropdown{background:#fff;border:1px solid #cbd5e0;color:#1a202c;box-shadow:0 4px 16px #0000001f}[data-theme=light] .mb-dropdown-item{color:#2d3748}[data-theme=light] .mb-dropdown-item:hover:not(.mb-dropdown-item-disabled),[data-theme=light] .mb-dropdown-item:focus:not(.mb-dropdown-item-disabled){background:#edf2f7;color:#1a202c}[data-theme=light] .mb-dropdown-item-disabled{color:#a0aec0}[data-theme=light] .mb-dropdown-shortcut{color:#718096}[data-theme=light] .mb-dropdown-sep{background:#e2e8f0}[data-theme=light] .mb-submenu-arrow{color:#4a5568}[data-theme=light] .project-picker{background:#fff;color:#1a202c;border:1px solid #cbd5e0}[data-theme=light] .project-picker:hover{background:#edf2f7}[data-theme=light] .menubar-project-name{color:#4a5568}[data-theme=light] .menubar-new-project-input{background:#fff;color:#1a202c;border:1px solid #cbd5e0}[data-theme=light] .menubar-btn{background:#fff;color:#2d3748;border:1px solid #cbd5e0}[data-theme=light] .menubar-btn:hover{background:#edf2f7}[data-theme=light] .menubar-btn-primary{background:#3182ce;color:#fff;border-color:#3182ce}[data-theme=light] .menubar-btn-primary:hover{background:#2b6cb0}[data-theme=light] .menubar-theme-toggle{color:#4a5568}[data-theme=light] .menubar-theme-toggle:hover{color:#1a202c;background:#e2e8f0}[data-theme=light] .target-badge{background:#edf2f7;color:#4a5568;border:1px solid #cbd5e0}[data-theme=light] .mb-about-dialog{background:#fff;color:#1a202c;border:1px solid #cbd5e0}[data-theme=light] .mb-about-link{color:#3182ce}.presence-avatars{display:inline-flex;align-items:center;gap:0;padding:0 8px}.presence-avatar{position:relative;width:28px;height:28px;border-radius:50%;border:2px solid var(--bg-primary, #fff);background:#6b7280;color:#fff;font-size:11px;font-weight:600;letter-spacing:.02em;display:flex;align-items:center;justify-content:center;cursor:pointer;margin-left:-8px;transition:transform .1s,box-shadow .1s;padding:0;overflow:visible;z-index:1}.presence-avatar:first-child{margin-left:0}.presence-avatar:hover{transform:translateY(-2px);z-index:10}.presence-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.presence-dot{position:absolute;bottom:-1px;right:-1px;width:9px;height:9px;border-radius:50%;border:2px solid var(--bg-primary, #fff);background:#94a3b8}.presence-active .presence-dot{background:#10b981}.presence-idle .presence-dot{background:#f59e0b}.presence-offline .presence-dot{background:#94a3b8}.presence-overflow{margin-left:4px;font-size:11px;color:var(--text-secondary, #6b7280);background:var(--bg-secondary, #f3f4f6);padding:2px 6px;border-radius:10px}.user-activity-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:700;display:flex;justify-content:flex-end}.user-activity-panel{width:380px;max-width:92vw;background:#1a2035;border-left:1px solid #2d3748;height:100%;display:flex;flex-direction:column;overflow:hidden;box-shadow:-8px 0 30px #0006;animation:slideInRight .18s ease-out}@keyframes slideInRight{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.user-activity-header{display:flex;align-items:flex-start;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #2d3748}.user-activity-title{flex:1;min-width:0}.user-activity-name{font-size:14px;font-weight:600;color:#f7fafc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-activity-email{font-size:11px;color:#a0aec0;margin-top:2px}.user-activity-close{background:none;border:none;color:#a0aec0;cursor:pointer;padding:4px}.user-activity-section{padding:12px 16px;border-bottom:1px solid #1e2533}.user-activity-section:last-child{border-bottom:none;flex:1;overflow-y:auto}.user-activity-section-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#718096;margin-bottom:6px}.user-activity-current{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#e2e8f0}.user-activity-view-pill{display:inline-block;background:#2d3748;color:#cbd5e0;font-size:11px;padding:2px 8px;border-radius:10px;text-transform:capitalize;width:fit-content}.user-activity-task{color:#e2e8f0}.user-activity-task-none{color:#718096;font-style:italic;font-size:12px}.user-activity-seen{color:#718096;font-size:11px}.user-activity-list{display:flex;flex-direction:column;gap:1px}.user-activity-row{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"action entity time" "action label  time";gap:2px 8px;padding:6px 8px;font-size:12px;color:#e2e8f0;border-left:3px solid #2d3748}.user-activity-row.ua-create{border-left-color:#10b981}.user-activity-row.ua-update{border-left-color:#3b82f6}.user-activity-row.ua-delete{border-left-color:#ef4444}.user-activity-action{grid-area:action;align-self:center;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#cbd5e0}.user-activity-entity{grid-area:entity;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#a0aec0}.user-activity-label{grid-area:label;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-activity-time{grid-area:time;align-self:center;font-size:10px;color:#718096}.user-activity-empty,.user-activity-error{font-size:12px;color:#718096;text-align:center;padding:16px 0}.user-activity-error{color:#fca5a5}.user-menu{position:relative;display:inline-flex;align-items:center}.user-menu-trigger{background:none;border:none;padding:0 6px;cursor:pointer;display:inline-flex;align-items:center}.user-menu-avatar{width:26px;height:26px;border-radius:50%;background:#3b82f6;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;letter-spacing:.02em}.user-menu-dropdown{position:absolute;top:calc(100% + 4px);right:0;min-width:200px;background:#1a2035;border:1px solid #2d3748;border-radius:6px;box-shadow:0 8px 24px #0006;z-index:1100;padding:6px 0}.user-menu-header{padding:8px 12px 10px;border-bottom:1px solid #2d3748}.user-menu-name{font-size:13px;font-weight:600;color:#f7fafc}.user-menu-email{font-size:11px;color:#a0aec0;margin-top:2px}.user-menu-role{display:inline-block;margin-top:4px;background:#2d3748;color:#cbd5e0;font-size:10px;text-transform:uppercase;letter-spacing:.05em;padding:1px 6px;border-radius:8px}.user-menu-item{display:block;width:100%;text-align:left;background:none;border:none;color:#e2e8f0;font-size:12px;padding:7px 12px;cursor:pointer}.user-menu-item:hover{background:#2d374840}.ai-badge-wrap{position:relative}.ai-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:12px;background:#f1f5f9;border:1px solid #cbd5e1;font-size:.78em;font-weight:600;color:#475569;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .12s,border-color .12s}.ai-badge:hover{background:#e2e8f0}.ai-badge-active{background:#eef2ff;border-color:#6366f1;color:#3730a3}.ai-badge-dot{width:7px;height:7px;border-radius:50%;background:#94a3b8}.ai-badge-dot-active{background:#4f46e5;box-shadow:0 0 #4f46e599;animation:ai-pulse 1.2s infinite}@keyframes ai-pulse{0%{box-shadow:0 0 #4f46e58c}70%{box-shadow:0 0 0 6px #4f46e500}to{box-shadow:0 0 #4f46e500}}.ai-badge-count{background:#fff;border:1px solid currentColor;opacity:.7;border-radius:10px;padding:0 5px;font-size:.92em}.ai-badge-popover{position:absolute;top:calc(100% + 4px);right:0;width:min(320px,92vw);background:#fff;border:1px solid #cbd5e1;border-radius:6px;box-shadow:0 8px 24px #0000001f;z-index:1000}.ai-badge-popover-head{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-bottom:1px solid #e2e8f0}.ai-badge-hint{color:#64748b;font-size:.78em}.ai-badge-empty{color:#94a3b8;padding:12px;text-align:center;font-style:italic;font-size:.86em}.ai-badge-feed{list-style:none;margin:0;padding:4px 0;max-height:320px;overflow:auto}.ai-badge-feed-row{display:flex;gap:8px;align-items:center;padding:4px 12px;font-size:.84em;color:#475569;border-top:1px solid #f1f5f9}.ai-badge-feed-row:first-child{border-top:none}.ai-badge-feed-action{background:#eef2ff;color:#3730a3;padding:1px 6px;border-radius:3px;font-weight:500;text-transform:lowercase}.ai-badge-feed-entity{color:#475569}.ai-badge-feed-time{color:#94a3b8;margin-left:auto;font-size:.92em}[data-theme=dark] .ai-badge{background:#2e3550;border-color:#313a55;color:#cdd6f4}[data-theme=dark] .ai-badge:hover{background:#3a4565}[data-theme=dark] .ai-badge-active{background:#1e2740;border-color:#6366f1;color:#c7d2fe}[data-theme=dark] .ai-badge-popover{background:#1e2436;border-color:#313a55;color:#cdd6f4}[data-theme=dark] .ai-badge-popover-head{border-bottom-color:#313a55}[data-theme=dark] .ai-badge-hint{color:#94a3b8}[data-theme=dark] .ai-badge-feed-row{border-top-color:#313a55;color:#cdd6f4}[data-theme=dark] .ai-badge-feed-action{background:#312e81;color:#c7d2fe}.left-sidebar{width:48px;min-width:48px;flex-shrink:0;background:#1a202c;display:flex;flex-direction:column;align-items:stretch;border-right:1px solid #2d3748;overflow:hidden;transition:width .18s ease;-webkit-user-select:none;user-select:none}.left-sidebar-expanded{width:180px;min-width:180px}.ls-chevron-btn{width:100%;height:24px;display:flex;align-items:center;justify-content:center;background:#2d3748;border:none;border-bottom:1px solid #4a5568;cursor:pointer;color:#a0aec0;font-size:10px;flex-shrink:0;transition:background .1s}.ls-chevron-btn:hover{background:#4a5568;color:#e2e8f0}.ls-stats-collapsed{display:flex;flex-direction:column;align-items:center;padding:4px 0;border-bottom:1px solid #2d3748;gap:2px;flex-shrink:0}.ls-stats-num{font-size:10px;font-weight:700;line-height:1;padding:1px 3px;border-radius:3px}.ls-stats-tasks{color:#90cdf4}.ls-stats-critical{color:#fc8181}.ls-stats-expanded{padding:8px 10px 6px;border-bottom:1px solid #2d3748;flex-shrink:0;min-width:0}.ls-stats-project-name{font-size:11px;font-weight:700;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:5px;max-width:158px}.ls-stats-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}.ls-stats-label{font-size:10px;color:#718096}.ls-stats-val{font-size:10px;font-weight:600;color:#e2e8f0}.ls-stats-critical-val{color:#fc8181}.ls-stats-sched{color:#90cdf4}.ls-views-section{flex-shrink:0;overflow:hidden}.ls-section-label{padding:4px 10px 2px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#718096}.ls-views-list{max-height:140px;overflow-y:auto;overflow-x:hidden}.ls-views-list::-webkit-scrollbar{width:4px}.ls-views-list::-webkit-scrollbar-thumb{background:#4a5568;border-radius:2px}.ls-view-row{width:100%;display:flex;align-items:center;gap:5px;background:transparent;border:none;cursor:pointer;padding:3px 6px;color:#a0aec0;font-size:11px;text-align:left;transition:background .08s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.ls-view-row:hover{background:#2d3748;color:#e2e8f0}.ls-view-row-active{background:#2a4365;color:#90cdf4}.ls-view-check{font-size:10px;width:12px;flex-shrink:0;color:#63b3ed}.ls-view-name{flex:1;overflow:hidden;text-overflow:ellipsis;min-width:0}.ls-section-sep{height:1px;background:#2d3748;margin:4px 0;flex-shrink:0}.ls-icons{display:flex;flex-direction:column;align-items:stretch;padding:4px 0;width:100%;overflow-y:auto;overflow-x:hidden;flex:1}.ls-icons::-webkit-scrollbar{width:4px}.ls-icons::-webkit-scrollbar-thumb{background:#4a5568;border-radius:2px}.ls-sep{height:1px;background:#2d3748;margin:3px 4px;flex-shrink:0}.ls-icon-btn{width:100%;min-height:34px;display:flex;align-items:center;background:transparent;border:none;border-left:2px solid transparent;cursor:pointer;color:#a0aec0;font-size:14px;flex-shrink:0;transition:background .1s,color .1s,border-color .1s;padding:0 6px;gap:6px;text-align:left;outline:none}.ls-icon-btn:hover{background:#2d3748;color:#e2e8f0}.ls-icon-btn:focus-visible{background:#2d3748;outline:2px solid #63b3ed;outline-offset:-2px}.ls-icon-btn-active{background:#3182ce!important;color:#fff!important;border-left-color:#bee3f8!important}.ls-icon-btn-dragover{border-left-color:#63b3ed;background:#2a4a6b}.ls-group-file{border-left-color:#a0aec0}.ls-group-file:hover{border-left-color:#cbd5e0}.ls-group-views{border-left-color:#7f9cf5}.ls-group-views:hover{border-left-color:#a3bffa}.ls-group-edit{border-left-color:#4299e1}.ls-group-edit:hover{border-left-color:#63b3ed}.ls-group-data{border-left-color:#4fd1c5}.ls-group-data:hover{border-left-color:#81e6d9}.ls-group-view{border-left-color:#b794f4}.ls-group-view:hover{border-left-color:#d6bcfa}.ls-group-schedule{border-left-color:#f6ad55}.ls-group-schedule:hover{border-left-color:#fbd38d}.ls-group-tools{border-left-color:#f687b3}.ls-group-tools:hover{border-left-color:#fbb6ce}.ls-group-zoom{border-left-color:#76e4f7}.ls-group-zoom:hover{border-left-color:#b2f5ea}.ls-group-header{font-size:9px;font-weight:700;letter-spacing:.08em;color:#718096;text-transform:uppercase;padding:6px 10px 2px;pointer-events:none;-webkit-user-select:none;user-select:none}.ls-icon-glyph{font-size:14px;line-height:1;width:20px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,monospace;font-weight:600;pointer-events:none}.ls-icon-glyph svg{width:18px;height:18px;display:block}.ls-icon-label{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;pointer-events:none}.ls-ctx-menu{background:#fff;border:1px solid #c8c8c8;border-radius:4px;box-shadow:0 4px 12px #0000002e;padding:3px 0;min-width:160px;display:flex;flex-direction:column}.ls-ctx-item{background:none;border:none;padding:5px 14px;font-size:12px;font-family:inherit;color:#1a202c;text-align:left;cursor:pointer}.ls-ctx-item:hover:not(:disabled){background:#d8e4f0}.ls-ctx-item:disabled{color:#aaa;cursor:default}.ls-ctx-item-danger{color:#e53e3e}.ls-ctx-item-danger:hover:not(:disabled){background:#fed7d7}.ls-ctx-sep{height:1px;background:#e0e0e0;margin:3px 0}[data-theme=light] .left-sidebar{background:#f7fafc;border-right:1px solid #cbd5e0;color:#1a202c}[data-theme=light] .ls-chevron-btn{background:#e2e8f0;color:#4a5568;border-bottom:1px solid #cbd5e0}[data-theme=light] .ls-chevron-btn:hover{background:#cbd5e0;color:#1a202c}[data-theme=light] .ls-collapse-toggle--unused{background:transparent;color:#4a5568}[data-theme=light] .ls-collapse-toggle:hover{background:#e2e8f0;color:#1a202c}[data-theme=light] .ls-stats-collapsed,[data-theme=light] .ls-stats-expanded{background:#edf2f7;border-bottom:1px solid #cbd5e0;color:#1a202c}[data-theme=light] .ls-stats-project-name{color:#1a202c}[data-theme=light] .ls-stats-label{color:#4a5568}[data-theme=light] .ls-stats-val,[data-theme=light] .ls-stats-num{color:#1a202c}[data-theme=light] .ls-stats-num.ls-stats-tasks{color:#3182ce}[data-theme=light] .ls-stats-num.ls-stats-critical{color:#e53e3e}[data-theme=light] .ls-section-sep,[data-theme=light] .ls-sep{background:#cbd5e0}[data-theme=light] .ls-views-section{background:transparent;color:#1a202c}[data-theme=light] .ls-section-label{color:#4a5568}[data-theme=light] .ls-view-row{color:#2d3748}[data-theme=light] .ls-view-row:hover{background:#e2e8f0;color:#1a202c}[data-theme=light] .ls-view-row-active{background:#ebf8ff;color:#2b6cb0}[data-theme=light] .ls-view-check{color:#3182ce}[data-theme=light] .ls-icon-btn{color:#2d3748;background:transparent}[data-theme=light] .ls-icon-btn:hover{background:#e2e8f0;color:#1a202c}[data-theme=light] .ls-icon-btn:focus-visible{background:#e2e8f0;outline:2px solid #3182ce}[data-theme=light] .ls-icon-btn-active{background:#3182ce!important;color:#fff!important}[data-theme=light] .ls-icon-btn-dragover{background:#ebf8ff}[data-theme=light] .ls-group-header{color:#718096}[data-theme=light] .ls-ctx-menu{background:#fff;border:1px solid #cbd5e0;color:#1a202c;box-shadow:0 4px 14px #0000001f}[data-theme=light] .ls-ctx-item{color:#2d3748}[data-theme=light] .ls-ctx-item:hover:not(:disabled){background:#edf2f7;color:#1a202c}[data-theme=light] .ls-ctx-item-danger{color:#c53030}[data-theme=light] .ls-ctx-sep{background:#e2e8f0}.tpl-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:600;display:flex;align-items:flex-start;justify-content:center;padding-top:60px}.tpl-dialog{background:#1a2035;border:1px solid #2d3748;border-radius:8px;width:min(720px,96vw);max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 12px 40px #0009}.tpl-header{padding:10px 14px;border-bottom:1px solid #2d3748;display:flex;align-items:center;gap:8px}.tpl-title{font-weight:600;color:#f7fafc;font-size:14px;flex:1}.tpl-mode-badge{font-size:11px;color:#a0aec0;background:#2d3748;padding:2px 6px;border-radius:3px}.tpl-close{background:none;border:none;color:#a0aec0;cursor:pointer;padding:4px}.tpl-banner{background:#1e3a8a30;border-bottom:1px solid #1e40af;color:#e2e8f0;font-size:12px;padding:8px 14px}.tpl-error{background:#7f1d1d;color:#fecaca;font-size:12px;padding:8px 14px;border-bottom:1px solid #b91c1c}.tpl-list{overflow-y:auto;flex:1}.tpl-empty{padding:24px;text-align:center;color:#718096;font-size:13px}.tpl-row{display:flex;align-items:flex-start;gap:12px;padding:10px 14px;border-bottom:1px solid #1e2533}.tpl-row:last-child{border-bottom:none}.tpl-row:hover{background:#2d374830}.tpl-row-main{flex:1;min-width:0}.tpl-row-title{font-size:13px;font-weight:600;color:#f7fafc;display:flex;align-items:center;gap:8px}.tpl-row-meta{font-size:11px;color:#a0aec0;margin-top:2px}.tpl-row-desc{font-size:11px;color:#cbd5e0;margin-top:4px;line-height:1.4}.tpl-preset-badge,.tpl-stub-badge{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.05em;padding:1px 5px;border-radius:9px}.tpl-preset-badge{background:#1e3a8a;color:#93c5fd}.tpl-stub-badge{background:#78350f;color:#fde68a}.tpl-row-actions{display:flex;gap:4px;flex-shrink:0}.tpl-action{display:inline-flex;align-items:center;gap:4px;background:#2d3748;border:1px solid #4a5568;border-radius:4px;color:#e2e8f0;font-size:12px;padding:4px 8px;cursor:pointer}.tpl-action:hover:not(:disabled){background:#3a4660}.tpl-action:disabled{opacity:.5;cursor:not-allowed}.tpl-action-primary{background:#3b82f6;border-color:#3b82f6;color:#fff;font-weight:600}.tpl-action-primary:hover:not(:disabled){background:#2563eb}.tpl-action-danger{border-color:#b91c1c;color:#fecaca}.tpl-action-danger:hover:not(:disabled){background:#b91c1c40}.tpl-edit-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:700;display:flex;align-items:center;justify-content:center}.tpl-edit-card{background:#1a2035;border:1px solid #2d3748;border-radius:8px;padding:16px;width:min(560px,92vw);display:flex;flex-direction:column;gap:10px;box-shadow:0 18px 50px #0009}.tpl-edit-header{display:flex;align-items:center;justify-content:space-between;font-weight:600;color:#f7fafc;font-size:14px}.tpl-edit-field{display:flex;flex-direction:column;gap:4px}.tpl-edit-field span{font-size:11px;font-weight:600;text-transform:uppercase;color:#a0aec0;letter-spacing:.04em}.tpl-edit-field input,.tpl-edit-field textarea{background:#2d3748;border:1px solid #4a5568;border-radius:4px;color:#e2e8f0;padding:6px 8px;font-size:13px;font-family:inherit;resize:vertical}.tpl-edit-field input:focus,.tpl-edit-field textarea:focus{outline:none;border-color:#3b82f6}.tpl-edit-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:4px}.lib-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:100000}.lib-dialog-card{background:#1a202c;color:#e2e8f0;border-radius:8px;border:1px solid #2d3748;box-shadow:0 8px 32px #0006;width:760px;max-width:94vw;max-height:80vh;display:flex;flex-direction:column}.lib-dialog-card-wide{width:920px;max-width:96vw}.lib-rules-editor{background:#0f141c;border:1px solid #2d3748;border-radius:4px;padding:8px;display:flex;flex-direction:column;gap:6px;max-height:340px;overflow-y:auto}.lib-rule-row{display:flex;align-items:center;gap:6px}.lib-rule-col-select{flex:0 0 200px}.lib-rule-input{flex:1 1 0;min-width:60px}.lib-rule-input-narrow{flex:0 0 90px}.lib-rule-pair{display:flex;align-items:center;gap:4px;flex:1 1 0}.lib-rule-sep{color:#718096;font-size:10px}.lib-icon-btn-danger:hover{background:#742a2a;color:#feb2b2;border-color:#c53030}.lib-btn-add-rule{align-self:flex-start;margin-top:4px}[data-theme=light] .lib-rules-editor{background:#f7fafc;border-color:#cbd5e0}[data-theme=light] .lib-rule-sep{color:#4a5568}[data-theme=light] .lib-icon-btn-danger:hover{background:#fed7d7;color:#c53030}.lib-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #2d3748}.lib-dialog-title{margin:0;font-size:14px;font-weight:700}.lib-dialog-close{background:transparent;border:none;color:#a0aec0;cursor:pointer;padding:4px;border-radius:4px;display:inline-flex;align-items:center}.lib-dialog-close:hover{background:#2d3748;color:#e2e8f0}.lib-dialog-body{flex:1;overflow:hidden;padding:12px 18px}.lib-dialog-grid{display:grid;grid-template-columns:240px 1fr;gap:16px}.lib-list{display:flex;flex-direction:column;border:1px solid #2d3748;border-radius:6px;overflow:hidden;background:#0f141c;min-height:0}.lib-list-header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-bottom:1px solid #2d3748;font-size:9px;font-weight:700;letter-spacing:.06em;color:#718096}.lib-icon-btn{background:transparent;border:1px solid #2d3748;color:#a0aec0;border-radius:3px;padding:2px;cursor:pointer;display:inline-flex;align-items:center}.lib-icon-btn:hover{background:#2d3748;color:#e2e8f0}.lib-list-body{flex:1;overflow-y:auto;min-height:0}.lib-list-empty{padding:16px 12px;font-size:11px;color:#718096;text-align:center}.lib-list-row{display:flex;flex-direction:column;padding:7px 10px;border-bottom:1px solid #1f2937;cursor:pointer;font-size:12px;position:relative}.lib-list-row:hover{background:#1a202c}.lib-list-row-selected{background:#3182ce2e!important;border-left:2px solid #3182ce;padding-left:8px}.lib-list-name{font-weight:500;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib-list-meta{font-size:10px;color:#718096;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib-list-active{position:absolute;top:6px;right:8px;font-size:8px;font-weight:700;text-transform:uppercase;background:#3182ce;color:#fff;padding:1px 5px;border-radius:2px;letter-spacing:.04em}.lib-editor{display:flex;flex-direction:column;gap:10px;overflow-y:auto}.lib-editor-empty{margin:auto;font-size:12px;color:#718096}.lib-editor-row{display:flex;flex-direction:column;gap:4px}.lib-editor-label{font-size:9px;font-weight:700;letter-spacing:.06em;color:#718096;text-transform:uppercase}.lib-editor-input{background:#0f141c;border:1px solid #2d3748;border-radius:4px;color:#e2e8f0;font-size:12px;padding:5px 8px;height:28px;outline:none}.lib-editor-input:focus{border-color:#3182ce}.lib-editor-rules{background:#0f141c;border:1px solid #2d3748;border-radius:4px;padding:6px 8px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:#cbd5e0;max-height:200px;overflow-y:auto}.lib-editor-meta{font-size:11px;color:#718096}.lib-rule{display:flex;gap:8px;padding:2px 0}.lib-rule-col{color:#90cdf4;font-weight:600;min-width:120px}.lib-rule-val{color:#e2e8f0}.lib-editor-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.lib-dialog-footer{padding:10px 18px;border-top:1px solid #2d3748;display:flex;justify-content:space-between;align-items:center;gap:8px}.lib-dialog-hint{font-size:11px;color:#718096}.lib-btn{background:#2d3748;border:1px solid #4a5568;color:#e2e8f0;padding:5px 12px;border-radius:4px;font-size:11px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}.lib-btn:hover{background:#4a5568}.lib-btn-primary{background:#3182ce;border-color:#3182ce}.lib-btn-primary:hover{background:#2b6cb0}.lib-btn-danger{background:#c53030;border-color:#c53030}.lib-btn-danger:hover{background:#9b2c2c}.lib-btn:disabled{opacity:.4;cursor:not-allowed}.lib-confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:100100}.lib-confirm-card{background:#1a202c;border-radius:8px;border:1px solid #4a5568;padding:18px 20px;width:420px;max-width:90vw;display:flex;flex-direction:column;gap:10px}.lib-confirm-title{margin:0;font-size:14px;font-weight:700;color:#e2e8f0}.lib-confirm-msg{margin:0;font-size:12px;color:#cbd5e0;line-height:1.5}.lib-confirm-actions{display:flex;justify-content:flex-end;gap:8px}[data-theme=light] .lib-dialog-card{background:#fff;color:#1a202c;border-color:#cbd5e0}[data-theme=light] .lib-dialog-header{border-bottom-color:#e2e8f0}[data-theme=light] .lib-dialog-close{color:#4a5568}[data-theme=light] .lib-dialog-close:hover{background:#edf2f7;color:#1a202c}[data-theme=light] .lib-list{border-color:#e2e8f0;background:#f7fafc}[data-theme=light] .lib-list-header{border-bottom-color:#e2e8f0}[data-theme=light] .lib-icon-btn{border-color:#e2e8f0;color:#4a5568}[data-theme=light] .lib-icon-btn:hover{background:#edf2f7;color:#1a202c}[data-theme=light] .lib-list-row{border-bottom-color:#edf2f7}[data-theme=light] .lib-list-row:hover{background:#edf2f7}[data-theme=light] .lib-list-row-selected{background:#3182ce1a!important}[data-theme=light] .lib-list-name{color:#1a202c}[data-theme=light] .lib-editor-input{background:#fff;border-color:#cbd5e0;color:#1a202c}[data-theme=light] .lib-editor-rules{background:#f7fafc;border-color:#cbd5e0;color:#2d3748}[data-theme=light] .lib-rule-col{color:#2b6cb0}[data-theme=light] .lib-rule-val{color:#2d3748}[data-theme=light] .lib-dialog-footer{border-top-color:#e2e8f0}[data-theme=light] .lib-btn{background:#fff;border-color:#cbd5e0;color:#2d3748}[data-theme=light] .lib-btn:hover{background:#edf2f7}[data-theme=light] .lib-btn-primary{background:#3182ce;border-color:#3182ce;color:#fff}[data-theme=light] .lib-btn-primary:hover{background:#2b6cb0}[data-theme=light] .lib-btn-danger{background:#c53030;border-color:#c53030;color:#fff}[data-theme=light] .lib-btn-danger:hover{background:#9b2c2c}[data-theme=light] .lib-confirm-card{background:#fff;color:#1a202c}[data-theme=light] .lib-confirm-msg{color:#4a5568}.tcd-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:3000}.tcd-dialog{background:#fff;border-radius:8px;box-shadow:0 20px 60px #0000004d;width:780px;max-width:96vw;max-height:88vh;display:flex;flex-direction:column;overflow:hidden}.tcd-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 10px;border-bottom:1px solid #e2e8f0;flex-shrink:0}.tcd-title{font-size:15px;font-weight:600;color:#1a202c}.tcd-close{background:none;border:none;cursor:pointer;font-size:16px;color:#718096;padding:2px 6px;border-radius:4px;line-height:1}.tcd-close:hover{background:#f7fafc;color:#1a202c}.tcd-label-mode-row{display:flex;align-items:center;gap:16px;margin:10px 18px 0;padding:8px 10px;background:#f7fafc;border-radius:6px;border:1px solid #e2e8f0}.tcd-label-mode-title{font-size:12px;font-weight:600;color:#4a5568;white-space:nowrap}.tcd-label-mode-opt{display:flex;align-items:center;gap:5px;font-size:12px;color:#2d3748;cursor:pointer}.tcd-label-mode-opt input[type=radio]{cursor:pointer}.tcd-hint{margin:8px 18px 0;font-size:12px;color:#718096}.tcd-scroll{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column}.tcd-body{display:flex;gap:12px;padding:12px 18px 8px;flex-shrink:0}.tcd-column{flex:1;min-width:0;display:flex;flex-direction:column;border:2px dashed #e2e8f0;border-radius:6px;padding:8px;transition:border-color .12s,background .12s}.tcd-column-target{border-color:#3182ce;background:#ebf8ff}.tcd-column-header{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#718096;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid #e2e8f0}.tcd-column-body{display:flex;flex-direction:column;gap:4px;min-height:60px}.tcd-empty{font-size:12px;color:#a0aec0;text-align:center;padding:20px 0;border-radius:4px;border:1px dashed #cbd5e0}.tcd-card{display:flex;align-items:center;gap:8px;padding:7px 8px;background:#f7fafc;border:1px solid #e2e8f0;border-radius:5px;cursor:grab;-webkit-user-select:none;user-select:none;transition:background 80ms,border-color 80ms,box-shadow 80ms}.tcd-card:hover{background:#edf2f7;border-color:#cbd5e0;box-shadow:0 1px 4px #00000014}.tcd-card:active{cursor:grabbing}.tcd-card-dragover{border-color:#3182ce;background:#ebf8ff;box-shadow:0 0 0 2px #3182ce40}.tcd-card-grip{color:#a0aec0;font-size:14px;line-height:1;flex-shrink:0;cursor:grab}.tcd-card-icon{font-size:15px;flex-shrink:0;width:20px;text-align:center}.tcd-card-text{display:flex;flex-direction:column;min-width:0}.tcd-card-label{font-size:13px;font-weight:500;color:#2d3748;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tcd-card-desc{font-size:11px;color:#718096;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tcd-icons-section{margin:4px 18px 8px;padding:10px 12px;background:#f7fafc;border:1px solid #e2e8f0;border-radius:6px}.tcd-icons-header{font-size:12px;font-weight:600;color:#2d3748;text-transform:uppercase;letter-spacing:.06em}.tcd-icons-sub{margin-top:2px;font-size:11px;color:#718096}.tcd-icons-grid{margin-top:8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.tcd-icons-group{border:1px solid #e2e8f0;border-radius:5px;background:#fff;padding:6px 8px}.tcd-icons-group-head{display:flex;align-items:center;gap:6px;padding-bottom:4px;border-bottom:1px solid #edf2f7;margin-bottom:4px}.tcd-icons-group-icon{font-size:13px}.tcd-icons-group-label{font-size:12px;font-weight:600;color:#2d3748;flex:1}.tcd-icons-group-count{font-size:10px;color:#a0aec0}.tcd-icons-bulk{background:none;border:none;font-size:10px;color:#3182ce;cursor:pointer;padding:2px 4px;border-radius:3px}.tcd-icons-bulk:hover{background:#ebf8ff}.tcd-icons-list{display:flex;flex-direction:column;gap:2px}.tcd-icon-row{display:flex;align-items:center;gap:6px;font-size:12px;color:#2d3748;padding:2px 0}.tcd-icon-row-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tcd-icon-loc-toggle{display:inline-flex;border:1px solid #cbd5e0;border-radius:4px;overflow:hidden;flex-shrink:0}.tcd-loc-btn{background:#fff;border:none;padding:1px 6px;font-size:10px;color:#4a5568;cursor:pointer;border-right:1px solid #cbd5e0}.tcd-loc-btn:last-child{border-right:none}.tcd-loc-btn:hover{background:#edf2f7}.tcd-loc-btn-active{background:#3182ce;color:#fff}.tcd-loc-btn-active:hover{background:#2b6cb0}.tcd-icons-bulk-set{display:inline-flex;gap:2px}.tcd-icons-bulk-set button{background:none;border:1px solid transparent;border-radius:3px;padding:1px 5px;font-size:11px;color:#718096;cursor:pointer}.tcd-icons-bulk-set button:hover{background:#ebf8ff;color:#3182ce;border-color:#bee3f8}.tcd-icons-bulk-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0;font-size:11px;color:#4a5568}.tcd-icons-bulk-label{font-weight:600;color:#718096;margin-right:4px}.tcd-icons-bulk-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;background:#fff;border:1px solid #e2e8f0;border-radius:4px}.tcd-icons-bulk-chip-label{font-size:11px;color:#4a5568}.tcd-icons-bulk-chip button{background:none;border:none;font-size:11px;color:#718096;cursor:pointer;padding:0 3px;border-radius:3px}.tcd-icons-bulk-chip button:hover{background:#ebf8ff;color:#3182ce}.tcd-icon-cols{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:4px}.tcd-icon-column{border:2px dashed #e2e8f0;border-radius:6px;padding:8px;min-height:200px;display:flex;flex-direction:column;background:#fff;transition:border-color .12s,background .12s}.tcd-icon-column-count{font-weight:400;color:#a0aec0;letter-spacing:0;text-transform:none}.tcd-icon-column-body{display:flex;flex-direction:column;gap:3px;flex:1;min-height:60px}.tcd-icon-card{display:flex;align-items:center;gap:6px;padding:4px 6px;background:#f7fafc;border:1px solid #e2e8f0;border-radius:4px;cursor:grab;-webkit-user-select:none;user-select:none;font-size:12px;color:#2d3748;transition:background 80ms,border-color 80ms,box-shadow 80ms}.tcd-icon-card:hover{background:#edf2f7;border-color:#cbd5e0;box-shadow:0 1px 3px #0000000f}.tcd-icon-card:active{cursor:grabbing}.tcd-icon-card-grip{color:#a0aec0;font-size:12px;flex-shrink:0}.tcd-icon-card-glyph{display:inline-flex;align-items:center;color:#4a5568;flex-shrink:0}.tcd-icon-card-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-theme=dark] .tcd-icons-bulk-label{color:#7a8aae}[data-theme=dark] .tcd-icons-bulk-chip{background:#1e2235;border-color:#2e3450}[data-theme=dark] .tcd-icons-bulk-chip-label{color:#c0c8e4}[data-theme=dark] .tcd-icons-bulk-chip button{color:#7a8aae}[data-theme=dark] .tcd-icons-bulk-chip button:hover{background:#1a2845;color:#4a90d9}[data-theme=dark] .tcd-icon-column{background:#1a1d2e;border-color:#2e3450}[data-theme=dark] .tcd-icon-column-count{color:#4a5568}[data-theme=dark] .tcd-icon-card{background:#252848;border-color:#2e3450;color:#c0c8e4}[data-theme=dark] .tcd-icon-card:hover{background:#2d3460;border-color:#3a4060}[data-theme=dark] .tcd-icon-card-grip{color:#4a5568}[data-theme=dark] .tcd-icon-card-glyph{color:#7a8aae}[data-theme=dark] .tcd-icons-section{background:#1a1d2e;border-color:#2e3450}[data-theme=dark] .tcd-icons-header{color:#cdd6f4}[data-theme=dark] .tcd-icons-sub{color:#7a8aae}[data-theme=dark] .tcd-icons-group{background:#252848;border-color:#2e3450}[data-theme=dark] .tcd-icons-group-head{border-bottom-color:#2e3450}[data-theme=dark] .tcd-icons-group-label{color:#c0c8e4}[data-theme=dark] .tcd-icons-group-count{color:#4a5568}[data-theme=dark] .tcd-icons-bulk{color:#4a90d9}[data-theme=dark] .tcd-icons-bulk:hover{background:#1a2845}[data-theme=dark] .tcd-icon-row{color:#c0c8e4}[data-theme=dark] .tcd-icon-row:hover{color:#cdd6f4}[data-theme=dark] .tcd-icon-loc-toggle{border-color:#2e3450}[data-theme=dark] .tcd-loc-btn{background:#1e2235;color:#7a8aae;border-right-color:#2e3450}[data-theme=dark] .tcd-loc-btn:hover{background:#252848;color:#cdd6f4}[data-theme=dark] .tcd-loc-btn-active{background:#4a90d9;color:#fff}[data-theme=dark] .tcd-loc-btn-active:hover{background:#3070b8}[data-theme=dark] .tcd-icons-bulk-set button{color:#7a8aae}[data-theme=dark] .tcd-icons-bulk-set button:hover{background:#1a2845;color:#4a90d9;border-color:#2e3450}.tcd-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:10px 18px 14px;border-top:1px solid #e2e8f0;flex-shrink:0}.tcd-btn{padding:6px 16px;font-size:13px;border-radius:5px;border:none;cursor:pointer;font-weight:500;transition:background 80ms}.tcd-btn-ghost{background:transparent;color:#718096;margin-right:auto}.tcd-btn-ghost:hover{background:#f7fafc;color:#2d3748}.tcd-btn-primary{background:#3182ce;color:#fff}.tcd-btn-primary:hover{background:#2b6cb0}[data-theme=dark] .tcd-dialog{background:#1e2235;color:#cdd6f4;box-shadow:0 20px 60px #0009}[data-theme=dark] .tcd-header{border-bottom-color:#2e3450}[data-theme=dark] .tcd-title{color:#cdd6f4}[data-theme=dark] .tcd-close{color:#7a8aae}[data-theme=dark] .tcd-close:hover{background:#252848;color:#cdd6f4}[data-theme=dark] .tcd-hint{color:#7a8aae}[data-theme=dark] .tcd-column{border-color:#2e3450}[data-theme=dark] .tcd-column-target{border-color:#4a90d9;background:#1a2845}[data-theme=dark] .tcd-column-header{color:#7a8aae;border-bottom-color:#2e3450}[data-theme=dark] .tcd-empty{color:#4a5568;border-color:#2e3450}[data-theme=dark] .tcd-card{background:#252848;border-color:#2e3450}[data-theme=dark] .tcd-card:hover{background:#2d3460;border-color:#3a4060}[data-theme=dark] .tcd-card-dragover{border-color:#4a90d9;background:#1a2845}[data-theme=dark] .tcd-card-grip{color:#4a5568}[data-theme=dark] .tcd-card-label{color:#c0c8e4}[data-theme=dark] .tcd-card-desc{color:#7a8aae}[data-theme=dark] .tcd-footer{border-top-color:#2e3450}[data-theme=dark] .tcd-btn-ghost{color:#7a8aae}[data-theme=dark] .tcd-btn-ghost:hover{background:#252848;color:#cdd6f4}[data-theme=dark] .tcd-btn-primary{background:#4a90d9}[data-theme=dark] .tcd-btn-primary:hover{background:#3070b8}.ai-chat-drawer{position:fixed;top:0;right:0;bottom:0;width:360px;max-width:90vw;background:var(--panel-bg, #1e1e1e);color:var(--panel-fg, #e0e0e0);border-left:1px solid var(--panel-border, #333);box-shadow:-4px 0 12px #0000004d;display:flex;flex-direction:column;transform:translate(100%);transition:transform .2s ease-out;z-index:1000;font-size:13px}.ai-chat-drawer.open{transform:translate(0)}.ai-chat-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--panel-border, #333);background:var(--panel-bg-elev, #252525)}.ai-chat-title{font-weight:600;font-size:13px}.ai-chat-header-actions{display:flex;gap:6px}.ai-chat-icon-btn{background:none;border:none;color:var(--panel-fg, #e0e0e0);cursor:pointer;font-size:16px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;padding:0}.ai-chat-icon-btn:hover{background:var(--panel-bg-hover, #333)}.ai-chat-icon-btn:disabled{opacity:.4;cursor:not-allowed}.ai-chat-scroll{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px}.ai-chat-empty{color:var(--panel-fg-dim, #888);font-size:12px;padding:16px 8px;text-align:center;line-height:1.5}.ai-chat-msg{display:flex;flex-direction:column}.ai-chat-user{align-items:flex-end}.ai-chat-assistant{align-items:flex-start}.ai-chat-bubble{background:var(--panel-bg-elev, #2a2a2a);padding:8px 10px;border-radius:8px;max-width:92%;white-space:pre-wrap;word-wrap:break-word;line-height:1.45}.ai-chat-user .ai-chat-bubble{background:var(--accent, #2563eb);color:#fff}.ai-chat-assistant-block{display:flex;flex-direction:column;gap:6px;max-width:92%}.ai-chat-tools{display:flex;flex-wrap:wrap;gap:4px}.ai-chat-tool{background:var(--panel-bg-elev, #2a2a2a);border:1px solid var(--panel-border, #444);border-radius:999px;padding:2px 8px;font-size:11px;font-family:ui-monospace,monospace;color:var(--panel-fg-dim, #aaa)}.ai-chat-tool.ok{border-color:#2e7d32;color:#4caf50}.ai-chat-tool.err{border-color:#c62828;color:#ef5350}.ai-chat-tool.pending{border-color:var(--accent, #2563eb);color:var(--accent, #2563eb)}.ai-chat-thinking{color:var(--panel-fg-dim, #888);font-style:italic;font-size:12px}.ai-chat-error{color:#ef5350;background:#ef53501a;border:1px solid rgba(239,83,80,.3);padding:8px 10px;border-radius:6px;font-size:12px}.ai-chat-input-row{display:flex;gap:6px;padding:10px;border-top:1px solid var(--panel-border, #333);background:var(--panel-bg-elev, #252525)}.ai-chat-input{flex:1;background:var(--panel-bg, #1e1e1e);color:var(--panel-fg, #e0e0e0);border:1px solid var(--panel-border, #444);border-radius:6px;padding:6px 8px;font-family:inherit;font-size:13px;resize:none;line-height:1.4}.ai-chat-input:focus{outline:none;border-color:var(--accent, #2563eb)}.ai-chat-input:disabled{opacity:.7}.ai-chat-send-btn{background:var(--accent, #2563eb);color:#fff;border:none;border-radius:6px;padding:0 12px;font-size:14px;cursor:pointer;min-width:36px}.ai-chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.ai-chat-toggle{position:fixed;bottom:24px;right:24px;z-index:999;background:var(--accent, #2563eb);color:#fff;border:none;border-radius:999px;width:48px;height:48px;font-size:20px;box-shadow:0 4px 12px #0000004d;cursor:pointer;display:flex;align-items:center;justify-content:center}.ai-chat-toggle:hover{filter:brightness(1.1)}.mcp-help-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:2000;display:flex;align-items:center;justify-content:center;padding:24px}.mcp-help-dialog{background:#fff;border-radius:8px;box-shadow:0 12px 48px #0000004d;width:100%;max-width:720px;max-height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden;font-size:13px;color:#1a202c}.mcp-help-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid #e2e8f0}.mcp-help-title{margin:0;font-size:16px;font-weight:600}.mcp-help-close{background:transparent;border:0;cursor:pointer;font-size:22px;color:#718096;line-height:1;padding:0 4px}.mcp-help-close:hover{color:#1a202c}.mcp-help-body{overflow-y:auto;padding:16px 20px;line-height:1.5}.mcp-help-body section{margin-bottom:18px}.mcp-help-body section:last-child{margin-bottom:0}.mcp-help-body h3{margin:0 0 6px;font-size:13px;font-weight:600;color:#2d3748}.mcp-help-body p{margin:0 0 8px}.mcp-help-body code{font-family:SFMono-Regular,Consolas,Courier New,monospace;font-size:12px;background:#edf2f7;padding:1px 5px;border-radius:3px}.mcp-help-body a{color:#3182ce;text-decoration:none}.mcp-help-body a:hover{text-decoration:underline}.mcp-help-codeline{display:flex;align-items:center;gap:8px;background:#1a202c;color:#e2e8f0;padding:8px 12px;border-radius:4px;font-family:SFMono-Regular,Consolas,Courier New,monospace;font-size:12px}.mcp-help-codeline code{background:transparent;color:inherit;padding:0;flex:1;word-break:break-all}.mcp-help-codeblock{position:relative;background:#1a202c;color:#e2e8f0;padding:10px 12px;border-radius:4px;margin:4px 0}.mcp-help-codeblock pre{margin:0;font-family:SFMono-Regular,Consolas,Courier New,monospace;font-size:12px;white-space:pre-wrap;word-break:break-word}.mcp-help-codeblock code{background:transparent;color:inherit;padding:0}.mcp-help-copy-btn{background:#4a5568;color:#fff;border:0;border-radius:3px;padding:3px 9px;font-size:11px;cursor:pointer;font-family:inherit;transition:background .12s ease-out}.mcp-help-codeblock .mcp-help-copy-btn{position:absolute;top:8px;right:8px}.mcp-help-copy-btn:hover{background:#2d3748}.mcp-help-note{font-size:12px;color:#4a5568;background:#fffaf0;border-left:3px solid #ed8936;padding:6px 10px;border-radius:0 3px 3px 0}.mcp-help-prompts,.mcp-help-tools{margin:4px 0 8px;padding-left:18px}.mcp-help-prompts li,.mcp-help-tools li{margin-bottom:3px}.mcp-help-footer{border-top:1px solid #e2e8f0;padding:10px 20px;display:flex;justify-content:flex-end}.mcp-help-ok{background:#3182ce;color:#fff;border:0;border-radius:4px;padding:6px 18px;font-size:13px;font-weight:500;cursor:pointer}.mcp-help-ok:hover{background:#2b6cb0}[data-theme=dark] .mcp-help-dialog{background:#1a1f2e;color:#e2e8f0}[data-theme=dark] .mcp-help-header,[data-theme=dark] .mcp-help-footer{border-color:#2d3748}[data-theme=dark] .mcp-help-title{color:#e2e8f0}[data-theme=dark] .mcp-help-body h3{color:#cbd5e0}[data-theme=dark] .mcp-help-body code{background:#2d3748;color:#e2e8f0}[data-theme=dark] .mcp-help-note{background:#2d2519;color:#f6ad55}.login-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#1e293b);z-index:9999}.login-card{background:#1a2035;border:1px solid #2d3748;border-radius:10px;padding:32px 36px 28px;min-width:340px;max-width:420px;width:100%;box-shadow:0 18px 50px #00000080}.login-title{margin:0 0 6px;font-size:24px;font-weight:700;color:#f7fafc;letter-spacing:-.02em}.login-subtitle{margin:0 0 22px;font-size:13px;color:#a0aec0}.login-form{display:flex;flex-direction:column;gap:12px}.login-field{display:flex;flex-direction:column;gap:4px}.login-field span{font-size:11px;font-weight:600;color:#a0aec0;text-transform:uppercase;letter-spacing:.04em}.login-field input{background:#2d3748;border:1px solid #4a5568;border-radius:5px;color:#e2e8f0;padding:8px 10px;font-size:14px;font-family:inherit}.login-field input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f640}.login-error{background:#7f1d1d;color:#fecaca;border:1px solid #b91c1c;border-radius:5px;padding:8px 10px;font-size:12px}.login-submit{margin-top:6px;background:#3b82f6;color:#fff;border:none;border-radius:5px;padding:10px 14px;font-size:14px;font-weight:600;cursor:pointer;transition:background .1s}.login-submit:hover:not(:disabled){background:#2563eb}.login-submit:disabled{background:#4a5568;cursor:default;opacity:.7}.login-hint{margin:18px 0 0;font-size:11px;color:#718096;line-height:1.5}.login-hint code{background:#0f172a;border-radius:3px;padding:1px 5px;font-size:11px;color:#cbd5e0}.cmd-palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;z-index:9000;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh}.cmd-palette{width:min(720px,90vw);max-height:70vh;display:flex;flex-direction:column;background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 24px 48px #0f172a40;overflow:hidden}.cmd-palette-input{width:100%;padding:14px 16px;border:none;border-bottom:1px solid #e2e8f0;font-size:14px;outline:none;background:transparent;color:#0f172a}.cmd-palette-input::placeholder{color:#94a3b8;font-size:13px}.cmd-palette-list{flex:1;overflow-y:auto;padding:4px 0}.cmd-palette-row{display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:baseline;padding:6px 16px;cursor:pointer;font-size:13px;-webkit-user-select:none;user-select:none}.cmd-palette-row.selected{background:#eff6ff}.cmd-palette-row mark{background:transparent;color:#2563eb;font-weight:600}.cmd-palette-label{color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmd-palette-group{font-size:11px;color:#64748b;white-space:nowrap}.cmd-palette-shortcut{font-size:11px;color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:3px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}.cmd-palette-empty{padding:24px 16px;color:#94a3b8;font-size:13px;text-align:center;font-style:italic}.cmd-palette-footer{padding:6px 16px;border-top:1px solid #e2e8f0;font-size:11px;color:#64748b;background:#f8fafc}.pdf-preview-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;z-index:9000;display:flex;align-items:center;justify-content:center;padding:24px}.pdf-preview{width:min(1200px,95vw);height:min(90vh,100% - 48px);display:flex;flex-direction:column;background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 24px 48px #0f172a40;overflow:hidden}.pdf-preview-header{display:flex;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid #e2e8f0;background:#f8fafc;flex-shrink:0}.pdf-preview-title{font-size:13px;font-weight:600;color:#0f172a;white-space:nowrap}.pdf-preview-filename{flex:1;min-width:0;font-size:12px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.pdf-preview-actions{display:flex;gap:6px;flex-shrink:0}.pdf-preview-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;font-size:12px;color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none}.pdf-preview-btn:hover{background:#f1f5f9}.pdf-preview-btn-primary{background:#2563eb;color:#fff;border-color:#2563eb}.pdf-preview-btn-primary:hover{background:#1d4ed8}.pdf-preview-btn-icon{padding:5px 6px}.pdf-preview-frame{flex:1;width:100%;border:none;background:#475569}.welcome-screen{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:48px 24px;overflow-y:auto;background:#f8fafc}.welcome-inner{width:min(720px,100%);display:flex;flex-direction:column;gap:28px}.welcome-header h1{margin:0;font-size:28px;font-weight:700;color:#0f172a;letter-spacing:-.5px}.welcome-tagline{margin:8px 0 0;color:#475569;font-size:14px;line-height:1.5}.welcome-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.welcome-action{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;row-gap:2px;align-items:center;padding:14px 16px;text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;color:#0f172a;transition:background .12s,border-color .12s,transform 80ms}.welcome-action:hover{background:#f1f5f9;border-color:#cbd5e1}.welcome-action:active{transform:translateY(1px)}.welcome-action>svg{grid-row:1 / span 2;color:#475569}.welcome-action-label{grid-column:2;font-weight:600;font-size:13px}.welcome-action-sub{grid-column:2;font-size:11px;color:#64748b}.welcome-action-primary{background:#2563eb;border-color:#2563eb;color:#fff}.welcome-action-primary:hover{background:#1d4ed8;border-color:#1d4ed8}.welcome-action-primary>svg,.welcome-action-primary .welcome-action-sub{color:#ffffffd9}.welcome-recent h2{margin:0 0 8px;display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#64748b}.welcome-recent-list{display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.welcome-recent-row{display:flex;align-items:stretch}.welcome-recent-row+.welcome-recent-row{border-top:1px solid #f1f5f9}.welcome-recent-open{flex:1;display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:10px 14px;background:transparent;border:none;cursor:pointer;text-align:left;color:#0f172a;font-size:13px}.welcome-recent-open:hover{background:#f8fafc}.welcome-recent-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.welcome-recent-time{color:#94a3b8;font-size:11px;flex-shrink:0}.welcome-recent-forget{padding:0 10px;background:transparent;border:none;cursor:pointer;color:#cbd5e1}.welcome-recent-forget:hover{color:#ef4444}.welcome-tips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.welcome-tip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:999px;font-size:11px;color:#475569;cursor:pointer}.welcome-tip:hover{background:#f1f5f9;border-color:#cbd5e1}.welcome-tip kbd{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:3px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:#0f172a}.impprog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1100}.impprog-card{background:#fff;border:1px solid #cbd5e1;border-radius:6px;box-shadow:0 12px 36px #0003;width:min(520px,92vw);max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.impprog-header{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid #e2e8f0}.impprog-title{font-size:1.05em;font-weight:600;color:#0f172a}.impprog-status{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;font-size:1em}.impprog-status-uploading,.impprog-status-parsing,.impprog-status-ingesting,.impprog-status-scheduling{background:#dbeafe;color:#1e40af}.impprog-status-done{background:#dcfce7;color:#166534;font-size:1.1em}.impprog-status-error{background:#fee2e2;color:#991b1b;font-size:1.1em}.impprog-spinner{display:inline-block;animation:impprog-rotate 1.2s linear infinite;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}@keyframes impprog-rotate{0%{content:"⠋";transform:rotate(0)}to{transform:rotate(360deg)}}.impprog-body{padding:14px 16px;flex:1;overflow:auto;display:flex;flex-direction:column;gap:10px}.impprog-meta{display:flex;flex-direction:column;gap:4px;font-size:.92em;color:#1e293b}.impprog-engine{color:#64748b;font-size:.85em}.impprog-detail{color:#475569;font-size:.9em}.impprog-success-detail{color:#166534;font-size:.9em;background:#f0fdf4;padding:6px 10px;border-radius:4px}.impprog-error-text{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;padding:8px 10px;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;white-space:pre-wrap;word-break:break-word;max-height:220px;overflow:auto;margin:0}.impprog-hint{color:#64748b;font-size:.82em;font-style:italic}.impprog-bar{height:4px;background:#e2e8f0;border-radius:2px;overflow:hidden;position:relative}.impprog-bar-fill{position:absolute;height:100%;width:35%;background:#4f46e5;border-radius:2px;animation:impprog-slide 1.4s ease-in-out infinite}@keyframes impprog-slide{0%{left:-35%}to{left:100%}}.impprog-actions{display:flex;justify-content:flex-end;gap:8px;padding:10px 16px;border-top:1px solid #e2e8f0;background:#f8fafc}.impprog-btn{padding:6px 16px;border:1px solid #cbd5e1;border-radius:4px;background:#f1f5f9;color:#0f172a;font-size:.9em;cursor:pointer}.impprog-btn:disabled{opacity:.5;cursor:not-allowed}.impprog-btn-primary{background:#4f46e5;border-color:#4f46e5;color:#fff}.impprog-btn-primary:hover:not(:disabled){background:#4338ca}[data-theme=dark] .impprog-card{background:#1e2436;border-color:#313a55;color:#cdd6f4}[data-theme=dark] .impprog-header{border-bottom-color:#313a55}[data-theme=dark] .impprog-title,[data-theme=dark] .impprog-meta{color:#cdd6f4}[data-theme=dark] .impprog-engine,[data-theme=dark] .impprog-detail,[data-theme=dark] .impprog-hint{color:#94a3b8}[data-theme=dark] .impprog-success-detail{background:#14321e;color:#4ade80}[data-theme=dark] .impprog-error-text{background:#3a1e22;border-color:#6b2a30;color:#fca5a5}[data-theme=dark] .impprog-actions{background:#182033;border-top-color:#313a55}[data-theme=dark] .impprog-btn{background:#2e3550;border-color:#313a55;color:#cdd6f4}[data-theme=dark] .impprog-btn-primary{background:#6366f1;border-color:#6366f1;color:#fff}[data-theme=dark] .impprog-bar{background:#2e3550}.app-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px;background:#fff}.app-error-banner{padding:.5rem 1rem;background:#fff5f5;color:#c53030;font-size:.85rem;border-bottom:1px solid #fc8181;flex-shrink:0}.app-loading-bar{height:2px;background:linear-gradient(90deg,#3182ce,#63b3ed,#3182ce);background-size:200% 100%;animation:loading-bar-slide 1.2s linear infinite;flex-shrink:0}@keyframes loading-bar-slide{0%{background-position:200% 0}to{background-position:-200% 0}}.app-main{flex:1;display:flex;flex-direction:row;overflow:hidden;min-height:0}.sidebar-splitter{width:4px;flex-shrink:0;cursor:col-resize;background:transparent;transition:background .15s}.sidebar-splitter:hover,.sidebar-splitter:active{background:#444}.app-content{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0;min-width:0}.app-content .gantt-view,.app-main .gantt-view{flex:1;min-height:0;height:100%}.app-empty-state{flex:1;display:flex;align-items:center;justify-content:center;color:#4a5568}.empty-state-inner{text-align:center;max-width:360px}.empty-state-inner h2{margin:0 0 .5rem;font-size:1.5rem;color:#1a202c}.empty-state-inner p{color:#718096;margin:0;font-size:.95rem}.app-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#1a202c;color:#e2e8f0;padding:8px 20px;border-radius:6px;font-size:13px;box-shadow:0 4px 16px #0000004d;z-index:99999;cursor:pointer;max-width:480px;text-align:center;animation:toast-in .15s ease-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}[data-theme=dark] .app-shell{background:#1a1d2e;color:#cdd6f4}[data-theme=dark] .app-empty-state{color:#7a8aae;background:#1a1d2e}[data-theme=dark] .empty-state-inner h2{color:#cdd6f4}[data-theme=dark] .empty-state-inner p{color:#7a8aae}[data-theme=dark] .sidebar-splitter:hover,[data-theme=dark] .sidebar-splitter:active{background:#4a5580}.cmd-repeat-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:flex-start;justify-content:center;padding-top:18vh;z-index:1000}.cmd-repeat-popup{background:#fff;border:1px solid #cbd5e1;border-radius:6px;box-shadow:0 8px 32px #0000002e;min-width:320px;max-width:420px;padding:12px;outline:none}.cmd-repeat-title{font-size:.85em;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.cmd-repeat-empty{color:#94a3b8;font-style:italic;padding:8px 0}.cmd-repeat-list{list-style:none;margin:0;padding:0}.cmd-repeat-row{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none}.cmd-repeat-row-active{background:#e0e7ff}.cmd-repeat-num{display:inline-block;width:18px;height:18px;line-height:18px;text-align:center;background:#cbd5e1;color:#1e293b;border-radius:3px;font-size:.8em;font-weight:600}.cmd-repeat-row-active .cmd-repeat-num{background:#4f46e5;color:#fff}.cmd-repeat-label{flex:1;font-size:.92em}.cmd-repeat-hint{margin-top:8px;padding-top:8px;border-top:1px solid #e2e8f0;font-size:.78em;color:#64748b}[data-theme=dark] .cmd-repeat-popup{background:#1e2436;border-color:#313a55;color:#cdd6f4}[data-theme=dark] .cmd-repeat-title{color:#94a3b8}[data-theme=dark] .cmd-repeat-row-active{background:#2e3550}[data-theme=dark] .cmd-repeat-num{background:#3a4565;color:#cdd6f4}[data-theme=dark] .cmd-repeat-row-active .cmd-repeat-num{background:#6366f1;color:#fff}[data-theme=dark] .cmd-repeat-hint{border-top-color:#313a55;color:#7a8aae}.new-project-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:flex-start;justify-content:center;padding-top:14vh;z-index:1000}.new-project-dialog{background:#fff;border:1px solid #cbd5e1;border-radius:6px;box-shadow:0 8px 32px #0000002e;min-width:380px;max-width:460px;padding:16px;display:flex;flex-direction:column;gap:12px}.new-project-title{font-size:1.05em;font-weight:600;color:#1e293b}.new-project-row{display:flex;flex-direction:column;gap:4px}.new-project-label{font-size:.82em;font-weight:500;color:#475569}.new-project-input{border:1px solid #cbd5e1;border-radius:4px;padding:6px 8px;font-size:.92em;background:#fff;color:#1e293b;font-family:inherit}.new-project-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #6366f12e}.new-project-textarea{resize:vertical;min-height:60px}.new-project-hint{font-size:.8em;color:#64748b;line-height:1.4}.new-project-error{font-size:.85em;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:4px;padding:6px 8px}.new-project-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.new-project-btn{padding:6px 14px;border-radius:4px;font-size:.9em;cursor:pointer;border:1px solid #cbd5e1;background:#f1f5f9;color:#1e293b}.new-project-btn:disabled{opacity:.55;cursor:not-allowed}.new-project-btn-primary{background:#4f46e5;border-color:#4f46e5;color:#fff}.new-project-btn-primary:hover:not(:disabled){background:#4338ca}.new-project-btn-secondary:hover:not(:disabled){background:#e2e8f0}[data-theme=dark] .new-project-dialog{background:#1e2436;border-color:#313a55}[data-theme=dark] .new-project-title{color:#cdd6f4}[data-theme=dark] .new-project-label{color:#94a3b8}[data-theme=dark] .new-project-input{background:#0f172a;border-color:#313a55;color:#cdd6f4}[data-theme=dark] .new-project-hint{color:#7a8aae}[data-theme=dark] .new-project-btn{background:#2e3550;border-color:#313a55;color:#cdd6f4}[data-theme=dark] .new-project-btn-secondary:hover:not(:disabled){background:#3a4565}[data-theme=dark] .new-project-error{background:#3a1e22;border-color:#6b2a30;color:#fca5a5}:root{color-scheme:light}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0;overflow:hidden}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px;background:#fff;color:#1a202c}@media (max-width: 768px){.app-shell.mobile .app-menubar-compact{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}.app-shell.mobile .app-menubar-compact::-webkit-scrollbar{display:none}.app-shell.mobile .mb-menu-btn{padding:2px 12px;min-height:36px}.app-shell.mobile .project-picker{max-width:130px}.app-shell.mobile .menubar-project-name{display:none}.app-shell.mobile .left-sidebar{position:fixed;top:0;bottom:0;left:0;z-index:1200;width:260px!important;max-width:82vw;transform:translate(-100%);transition:transform .2s ease-out;box-shadow:2px 0 14px #00000059}.app-shell.mobile.sidebar-open .left-sidebar{transform:translate(0)}.app-shell.mobile .sidebar-splitter{display:none}.app-shell.mobile .mobile-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:1150}.app-shell.mobile .mobile-hamburger{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;background:none;border:none;color:#e2e8f0;font-size:20px;cursor:pointer}.app-shell.mobile .app-content{width:100%}.app-shell.mobile .gantt-split-row{flex-direction:column}.app-shell.mobile .gantt-table-pane{width:100%!important;min-width:0!important;flex:1 1 50%!important;border-right:none;border-bottom:1px solid var(--gantt-border)}.app-shell.mobile .gantt-table-scroll{min-width:0}.app-shell.mobile .gantt-table{width:max-content;min-width:100%}.app-shell.mobile .gantt-timeline-pane{width:100%!important;min-width:0!important;flex:1 1 50%!important}.app-shell.mobile .gantt-divider{display:none}.app-shell.mobile .project-tabs,.app-shell.mobile [class*=project-tab-strip]{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap}.app-shell.mobile .ai-chat-drawer{width:100vw;max-width:100vw}.app-shell.mobile .rh-modal,.app-shell.mobile .tcd-dialog,.app-shell.mobile .sh-panel,.app-shell.mobile .mgmt-dialog,.app-shell.mobile .sp-modal,.app-shell.mobile .bs-dialog,.app-shell.mobile .tts-dialog,.app-shell.mobile .new-project-dialog,.app-shell.mobile [role=dialog]{width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important}.app-shell.mobile button,.app-shell.mobile .ls-icon-btn,.app-shell.mobile .gantt-toolbar button{min-height:32px}}
